diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dfdf975b340a4619055c0550806c444ff4547439..2820cfbf9c23e40a88c1da9bcd73e23c6a63f9ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only variables: diff --git a/admin-portal/.env b/admin-portal/.env index dab0a79d196857c1267afeaa0a1bf92303f5ef4e..be6103fbec949edf408c57dbe67e9b2ecad34560 100644 --- a/admin-portal/.env +++ b/admin-portal/.env @@ -1 +1,3 @@ +PUBLIC_ENVIRONMENT_TYPE=local + PUBLIC_FRONTEND_URL=http://localhost:4002 diff --git a/admin-portal/eslint.config.js b/admin-portal/eslint.config.js index b1c5e2676412259b9581b1aa5e669add2331962c..47a6d0e3fa1953e88d2a2bd79b48be46e2c9b3a0 100644 --- a/admin-portal/eslint.config.js +++ b/admin-portal/eslint.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/next-env.d.ts b/admin-portal/next-env.d.ts index 35e1868d740b72055caf5030e797b3eaf48fe237..87521a6e845b4a0d89c1bdd3ac4aeb0556b8289b 100644 --- a/admin-portal/next-env.d.ts +++ b/admin-portal/next-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/next.config.js b/admin-portal/next.config.js index 6eb9829beaa69904b620232e6732d97845d78906..ab8897332b76275723f38468c3a1cd86b6895a1f 100644 --- a/admin-portal/next.config.js +++ b/admin-portal/next.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/actors/page.tsx b/admin-portal/src/app/actors/page.tsx index e4bd708a8f5889cacd208df261dd37b47823a336..637b150adb2dce2630afd5eaed6fb9b72861ee6d 100644 --- a/admin-portal/src/app/actors/page.tsx +++ b/admin-portal/src/app/actors/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/audit-log/page.tsx b/admin-portal/src/app/audit-log/page.tsx index b006c92c3b377a4e7d88e0486331e95eb478ecac..a16fd6878d76754f1bdeca1e288d4538f4d3882b 100644 --- a/admin-portal/src/app/audit-log/page.tsx +++ b/admin-portal/src/app/audit-log/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/layout.tsx b/admin-portal/src/app/layout.tsx index 0a5fae66ca100e6a7e7bd06ff7d31ce762e84520..89aca0fdba3633d8e4098d6aca67ddc6fa6722e1 100644 --- a/admin-portal/src/app/layout.tsx +++ b/admin-portal/src/app/layout.tsx @@ -1,14 +1,16 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { EnvironmentTypeProvider } from "@eshg/lib-portal/components/EnvironmentTypeProvider"; import { NonceProvider } from "@eshg/lib-portal/components/NonceProvider"; import { getNonceFromHeader } from "@eshg/lib-portal/next/contentSecurityPolicyHeaderMiddleware"; import { Box } from "@mui/joy"; import type { Metadata } from "next"; import { ReactNode } from "react"; +import { env } from "@/env/server"; import { ApiProvider } from "@/lib/components/layout/ApiProvider"; import { MainLayoutWithProviders } from "@/lib/components/layout/MainLayout"; import { ThemeProvider } from "@/lib/components/layout/theme/ThemeProvider"; @@ -112,7 +114,11 @@ export default function RootLayout({ Bitte aktivieren Sie JavaScript, um diese Anwendung zu nutzen. </noscript> <ApiProvider> - <MainLayoutWithProviders>{children}</MainLayoutWithProviders> + <EnvironmentTypeProvider + environmentType={env.PUBLIC_ENVIRONMENT_TYPE} + > + <MainLayoutWithProviders>{children}</MainLayoutWithProviders> + </EnvironmentTypeProvider> </ApiProvider> </Box> </ThemeProvider> diff --git a/admin-portal/src/app/legal/[category]/page.tsx b/admin-portal/src/app/legal/[category]/page.tsx index de781e19a3ea930b4b1470204c5f5c92ba22e390..1d892dfdeedbee80d4987d17d92a59bcae1c299b 100644 --- a/admin-portal/src/app/legal/[category]/page.tsx +++ b/admin-portal/src/app/legal/[category]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/legal/page.tsx b/admin-portal/src/app/legal/page.tsx index 73c6d2cf2176f820a436ddfaaa9db9a6f47d09c9..3f0733222407994bec15864605fa5d476d8052e4 100644 --- a/admin-portal/src/app/legal/page.tsx +++ b/admin-portal/src/app/legal/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/org-units/page.tsx b/admin-portal/src/app/org-units/page.tsx index 5a2cead7b3b164bada422de993cb06125aec82fb..958536a43568960d7480ed25e5c53fb375da3a2b 100644 --- a/admin-portal/src/app/org-units/page.tsx +++ b/admin-portal/src/app/org-units/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/page.tsx b/admin-portal/src/app/page.tsx index b4370184107be5ac9c68d44b6323656cd5b35da3..c29659995605a49b310d81f71f56886f0bd97dc0 100644 --- a/admin-portal/src/app/page.tsx +++ b/admin-portal/src/app/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/rules/page.tsx b/admin-portal/src/app/rules/page.tsx index 7588ad189e7d1428a2177562d828a54e8b84a1f2..81949e9c6c626b107f6c297f3f7503975b3244e5 100644 --- a/admin-portal/src/app/rules/page.tsx +++ b/admin-portal/src/app/rules/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/app/service-directory/page.tsx b/admin-portal/src/app/service-directory/page.tsx index e1e95f3b90552b2937b4256713527128ab06bab5..cad713e7ab9c48ea242b3dcddb727577093b377e 100644 --- a/admin-portal/src/app/service-directory/page.tsx +++ b/admin-portal/src/app/service-directory/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/env/client.js b/admin-portal/src/env/client.js index a5b937bb81bcc849607e66a33402ce4e848559db..41043212b43d124ebf766872f3d1b57b2ac7ee19 100644 --- a/admin-portal/src/env/client.js +++ b/admin-portal/src/env/client.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/env/server.js b/admin-portal/src/env/server.js index 40a695a8c1825538f273fa608dff9fe44db0ccec..d954e135dd62a0942c6112db2f36d274caee6284 100644 --- a/admin-portal/src/env/server.js +++ b/admin-portal/src/env/server.js @@ -1,10 +1,15 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ // @ts-check -import { object, parse, picklist, pipe, string, url } from "valibot"; +import { + environmentTypeSchema, + nodeEnvSchema, + urlSchema, +} from "@eshg/lib-portal/schemas/environment"; +import { object, parse } from "valibot"; /* * Environment Variables exposed to the Server (Node.js) @@ -15,8 +20,11 @@ export const schema = object({ * Next.js automatically assigns `development` when running the next dev command, * or `production` for all other commands. */ - NODE_ENV: picklist(["development", "production"]), - PUBLIC_FRONTEND_URL: pipe(string(), url()), + NODE_ENV: nodeEnvSchema, + + PUBLIC_ENVIRONMENT_TYPE: environmentTypeSchema, + + PUBLIC_FRONTEND_URL: urlSchema, }); // eslint-disable-next-line no-restricted-properties diff --git a/admin-portal/src/lib/api/clients.ts b/admin-portal/src/lib/api/clients.ts index 23434ed7ad0b6560868d6749496d8ba86be2a2dc..2a664d342776f4da859b0f41ff5ed9bd2cc30fd2 100644 --- a/admin-portal/src/lib/api/clients.ts +++ b/admin-portal/src/lib/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/AdminSnackbar.tsx b/admin-portal/src/lib/components/AdminSnackbar.tsx index 9122134b621adb3b0f77149a1b0367c8d5c55cdb..5c8c19ebea969337335e9fdbd4fbca9b8875a1cd 100644 --- a/admin-portal/src/lib/components/AdminSnackbar.tsx +++ b/admin-portal/src/lib/components/AdminSnackbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,10 +9,7 @@ import { SnackbarComponentProps } from "@eshg/lib-portal/components/snackbar/Sna import { Check, Info, SvgIconComponent, Warning } from "@mui/icons-material"; import { Snackbar, Theme, styled } from "@mui/joy"; -import { - headerHeightDesktop, - headerHeightMobile, -} from "@/lib/components/layout/theme/sizes"; +import { useHeaderHeights } from "@/lib/components/layout/useHeaderHeights"; const ICONS: Record<SnackbarComponentProps["color"], SvgIconComponent> = { primary: Info, @@ -20,8 +17,21 @@ const ICONS: Record<SnackbarComponentProps["color"], SvgIconComponent> = { danger: Warning, }; -const StyledSnackbar = styled(Snackbar)<SnackbarComponentProps>( - ({ theme, position }) => ({ +interface StyledSnackbarProps extends SnackbarComponentProps { + headerHeightDesktop: string; + headerHeightMobile: string; +} + +function excludeHeaderHeightProps( + prop: PropertyKey, +): prop is keyof StyledSnackbarProps { + return prop !== "headerHeightDesktop" && prop !== "headerHeightMobile"; +} + +const StyledSnackbar = styled(Snackbar, { + shouldForwardProp: excludeHeaderHeightProps, +})<StyledSnackbarProps>( + ({ theme, position, headerHeightDesktop, headerHeightMobile }) => ({ "&.MuiSnackbar-root": { "--Snackbar-padding": theme.spacing(1), "--Snackbar-inset": calculatedSnackbarOffset( @@ -45,11 +55,14 @@ const StyledSnackbar = styled(Snackbar)<SnackbarComponentProps>( ); export function AdminSnackbar(props: SnackbarComponentProps) { + const { headerHeightMobile, headerHeightDesktop } = useHeaderHeights(); const IconComponent = ICONS[props.color]; return ( <StyledSnackbar variant="soft" size="lg" + headerHeightMobile={headerHeightMobile} + headerHeightDesktop={headerHeightDesktop} anchorOrigin={{ vertical: "top", horizontal: "right" }} startDecorator={<IconComponent />} {...props} diff --git a/admin-portal/src/lib/components/button/CertificateDialogButton.tsx b/admin-portal/src/lib/components/button/CertificateDialogButton.tsx index 40121725bbfcf53f2d75883343b58e2f967b502f..ce472e63c2270f0700bf01100d555fb45992031b 100644 --- a/admin-portal/src/lib/components/button/CertificateDialogButton.tsx +++ b/admin-portal/src/lib/components/button/CertificateDialogButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/button/SubmitButton.tsx b/admin-portal/src/lib/components/button/SubmitButton.tsx index 72f82daaa70f6b49049e38f17f654fcd83893a5f..d96c597e3d1278129eea2bb7bea9b6af1a1c94c4 100644 --- a/admin-portal/src/lib/components/button/SubmitButton.tsx +++ b/admin-portal/src/lib/components/button/SubmitButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/context/EntityCart.tsx b/admin-portal/src/lib/components/context/EntityCart.tsx index 215fc7f484a7ff69036a908bda1f73bcd70b2d62..cbb0e8e5ae8dcb987fad7900c4d102f3a7d344a4 100644 --- a/admin-portal/src/lib/components/context/EntityCart.tsx +++ b/admin-portal/src/lib/components/context/EntityCart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/error/Error.tsx b/admin-portal/src/lib/components/error/Error.tsx index eb0568564dc8aa97f8746cec74d0c739784df1cf..059679b63143c728ccf341f4ad23fb521807db91 100644 --- a/admin-portal/src/lib/components/error/Error.tsx +++ b/admin-portal/src/lib/components/error/Error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/formFields/file/FileField.tsx b/admin-portal/src/lib/components/formFields/file/FileField.tsx index 3b33104ae61cfec528bf550b5685ab70c4a7ab3b..6364256d23c7c6e527cf36d3e570dcbc933e04d9 100644 --- a/admin-portal/src/lib/components/formFields/file/FileField.tsx +++ b/admin-portal/src/lib/components/formFields/file/FileField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/formFields/file/FileInputButton.tsx b/admin-portal/src/lib/components/formFields/file/FileInputButton.tsx index ade6a2bcd564ed24008f932de6f4e6ccb4c44d49..1700b6233821be79bff376c3d8c5d588aacc6ab6 100644 --- a/admin-portal/src/lib/components/formFields/file/FileInputButton.tsx +++ b/admin-portal/src/lib/components/formFields/file/FileInputButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/header/SubHeader.tsx b/admin-portal/src/lib/components/header/SubHeader.tsx index 3c0e573d366d5410f54160f8e509e625fd8d3ad9..b9b1225159f9cad7b9067126fe6ef075c778787a 100644 --- a/admin-portal/src/lib/components/header/SubHeader.tsx +++ b/admin-portal/src/lib/components/header/SubHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/input/FloatingLabelInput.tsx b/admin-portal/src/lib/components/input/FloatingLabelInput.tsx index df906385ab8d53dbcc99dce1c7a036230fb51afc..c4ece882ba2c84551ea41a9c8158376c8470ddad 100644 --- a/admin-portal/src/lib/components/input/FloatingLabelInput.tsx +++ b/admin-portal/src/lib/components/input/FloatingLabelInput.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/ApiProvider.tsx b/admin-portal/src/lib/components/layout/ApiProvider.tsx index 646e6b650c2b3556c36c3846a02d5b3c651025b3..140a4c28b6f24af7c7f007af02b9ad102c734aad 100644 --- a/admin-portal/src/lib/components/layout/ApiProvider.tsx +++ b/admin-portal/src/lib/components/layout/ApiProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/MainLayout.tsx b/admin-portal/src/lib/components/layout/MainLayout.tsx index 8d8f51aea5e507f7591af56f24e0c07208c7d22e..4a859483a74ab2d51aa3a51b77f0759ae9854985 100644 --- a/admin-portal/src/lib/components/layout/MainLayout.tsx +++ b/admin-portal/src/lib/components/layout/MainLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/heading/Heading.tsx b/admin-portal/src/lib/components/layout/heading/Heading.tsx index 5145c50528019b34ad86016a0977883078b683b9..4fe85fea6a7d2242335d1dc502af4fbe2dbe3983 100644 --- a/admin-portal/src/lib/components/layout/heading/Heading.tsx +++ b/admin-portal/src/lib/components/layout/heading/Heading.tsx @@ -1,14 +1,15 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { EnvironmentIndicator } from "@eshg/lib-portal/components/EnvironmentIndicator"; import { Stack, Typography, styled } from "@mui/joy"; import { LanguageSwitch } from "@/lib/components/layout/nav/LanguageSwitch"; import { - headerHeightDesktop, - headerHeightMobile, + appBarHeightDesktop, + appBarHeightMobile, } from "@/lib/components/layout/theme/sizes"; import { UserHeading } from "@/lib/components/user/UserHeading"; import { useTranslation } from "@/lib/i18n/client"; @@ -29,16 +30,19 @@ export function Heading() { const { t } = useTranslation(); return ( - <StyledHeader - sx={{ height: { xxs: headerHeightMobile, sm: headerHeightDesktop } }} - > - <Stack flex={1} justifyContent="space-between" alignItems="center"> - <Typography level="h1">{t("gaLotseAdminPortal")}</Typography> - <Stack alignItems="center" gap={3}> - <LanguageSwitch /> - <UserHeading /> + <Stack display="flex" flexDirection="column"> + <EnvironmentIndicator /> + <StyledHeader + sx={{ height: { xxs: appBarHeightMobile, sm: appBarHeightDesktop } }} + > + <Stack flex={1} justifyContent="space-between" alignItems="center"> + <Typography level="h1">{t("gaLotseAdminPortal")}</Typography> + <Stack alignItems="center" gap={3}> + <LanguageSwitch /> + <UserHeading /> + </Stack> </Stack> - </Stack> - </StyledHeader> + </StyledHeader> + </Stack> ); } diff --git a/admin-portal/src/lib/components/layout/nav/EntityLink.tsx b/admin-portal/src/lib/components/layout/nav/EntityLink.tsx index 9ead8acba7c033aeec99410c82ec61c57c9deaa1..1c485a6710fce8ea91f208ddb65fd3f1edd08717 100644 --- a/admin-portal/src/lib/components/layout/nav/EntityLink.tsx +++ b/admin-portal/src/lib/components/layout/nav/EntityLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/nav/LanguageSwitch.tsx b/admin-portal/src/lib/components/layout/nav/LanguageSwitch.tsx index 426232959f1f4feb32ad146cc9c04c09a799b07b..9224a474ffd97da8b697e2ef62d2fa97ba67ea0e 100644 --- a/admin-portal/src/lib/components/layout/nav/LanguageSwitch.tsx +++ b/admin-portal/src/lib/components/layout/nav/LanguageSwitch.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/nav/Navigation.tsx b/admin-portal/src/lib/components/layout/nav/Navigation.tsx index bffac1ce5d18f79ce585249f637b1029f03f9797..608e5bbe950414bb5331657bf3db6008faad11f1 100644 --- a/admin-portal/src/lib/components/layout/nav/Navigation.tsx +++ b/admin-portal/src/lib/components/layout/nav/Navigation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -18,11 +18,8 @@ import { Button, List, Stack, Typography } from "@mui/joy"; import { useMemo, useState } from "react"; import { prop, sortBy } from "remeda"; -import { - headerHeightDesktop, - headerHeightMobile, -} from "@/lib/components/layout/theme/sizes"; import { theme } from "@/lib/components/layout/theme/theme"; +import { useHeaderHeights } from "@/lib/components/layout/useHeaderHeights"; import { entityToString } from "@/lib/helpers/entityToString"; import { useOrgUnitsQuery } from "@/lib/hooks/useOrgUnits"; import { useTranslation } from "@/lib/i18n/client"; @@ -65,6 +62,7 @@ const items: MainItem[] = [ export function Navigation() { const { data: getOrgUnitsResponse } = useOrgUnitsQuery(); const [navigationSidebarOpen, setNavigationSidebarOpen] = useState(true); + const { headerHeightMobile, headerHeightDesktop } = useHeaderHeights(); const { t } = useTranslation(); const itemsWithActorSubItems = useMemo<MainItem[]>(() => { diff --git a/admin-portal/src/lib/components/layout/nav/NavigationItem.tsx b/admin-portal/src/lib/components/layout/nav/NavigationItem.tsx index 39ae6c1ad8e929360ccc3b4eeee3b10f1adcf9bd..a131b1a4a4f561ed0af33263c93cbc2a0f882b1c 100644 --- a/admin-portal/src/lib/components/layout/nav/NavigationItem.tsx +++ b/admin-portal/src/lib/components/layout/nav/NavigationItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/page/Content.tsx b/admin-portal/src/lib/components/layout/page/Content.tsx index 3d094b07afa02ddebd179b99ca2fc2e4e5d204d4..8f3776bd84bea57895ec3be335f49110d4d11f21 100644 --- a/admin-portal/src/lib/components/layout/page/Content.tsx +++ b/admin-portal/src/lib/components/layout/page/Content.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/page/header/ContentHeader.tsx b/admin-portal/src/lib/components/layout/page/header/ContentHeader.tsx index 0b3e19376a395bea69f8ba7f1149914f9f93b718..bb8be64625f0cbc7ec9b87bfeaf01828116e5a5f 100644 --- a/admin-portal/src/lib/components/layout/page/header/ContentHeader.tsx +++ b/admin-portal/src/lib/components/layout/page/header/ContentHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/theme/ThemeProvider.tsx b/admin-portal/src/lib/components/layout/theme/ThemeProvider.tsx index 00e4b69d30dc28002e00cc03882b1f740e7c4bb6..5739039f8f65a981809446d27d0051bb1b609939 100644 --- a/admin-portal/src/lib/components/layout/theme/ThemeProvider.tsx +++ b/admin-portal/src/lib/components/layout/theme/ThemeProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/theme/customBreakpoints.ts b/admin-portal/src/lib/components/layout/theme/customBreakpoints.ts index fb887911bef9f34b68f8171b99a63833f562505c..6c6b893f5a7bc7d7ba84fa23ab1782a374bc8fb1 100644 --- a/admin-portal/src/lib/components/layout/theme/customBreakpoints.ts +++ b/admin-portal/src/lib/components/layout/theme/customBreakpoints.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/theme/sizes.ts b/admin-portal/src/lib/components/layout/theme/sizes.ts index bc1fde3cd37988a260f22aa2b4366606705ba444..c1fe8418310a02df46fd32d41843a8762a258d43 100644 --- a/admin-portal/src/lib/components/layout/theme/sizes.ts +++ b/admin-portal/src/lib/components/layout/theme/sizes.ts @@ -1,10 +1,10 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -export const headerHeightMobile = "3.5rem"; // 56px -export const headerHeightDesktop = "4.5rem"; // 72px +export const appBarHeightMobile = "3.5rem"; // 56px +export const appBarHeightDesktop = "4.5rem"; // 72px export const mainLayoutMarginBottom = "24px"; diff --git a/admin-portal/src/lib/components/layout/theme/theme.ts b/admin-portal/src/lib/components/layout/theme/theme.ts index 841bdc0ea8ae91d46a8e23d29119843f76c8817c..059c014273b940506784b5e7cbfd4de61b4ef445 100644 --- a/admin-portal/src/lib/components/layout/theme/theme.ts +++ b/admin-portal/src/lib/components/layout/theme/theme.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/layout/useHeaderHeights.tsx b/admin-portal/src/lib/components/layout/useHeaderHeights.tsx new file mode 100644 index 0000000000000000000000000000000000000000..51105ece60a845e13bcdb1ed02d58ecefc51c580 --- /dev/null +++ b/admin-portal/src/lib/components/layout/useHeaderHeights.tsx @@ -0,0 +1,20 @@ +/** + * Copyright 2025 SCOOP Software GmbH, cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { useEnvironmentIndicatorHeight } from "@eshg/lib-portal/components/EnvironmentIndicator"; + +import { + appBarHeightDesktop, + appBarHeightMobile, +} from "@/lib/components/layout/theme/sizes"; + +export function useHeaderHeights() { + const environmentIndicatorHeight = useEnvironmentIndicatorHeight(); + + return { + headerHeightMobile: `calc(${environmentIndicatorHeight} + ${appBarHeightMobile})`, + headerHeightDesktop: `calc(${environmentIndicatorHeight} + ${appBarHeightDesktop})`, + }; +} diff --git a/admin-portal/src/lib/components/progress/CenteredCircularProgress.tsx b/admin-portal/src/lib/components/progress/CenteredCircularProgress.tsx index 22f0c77dd3a1ea5680e47b562a99ee4292e87810..5c5a9584ccb40fe5b9ae173a4607759b2212adb6 100644 --- a/admin-portal/src/lib/components/progress/CenteredCircularProgress.tsx +++ b/admin-portal/src/lib/components/progress/CenteredCircularProgress.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/sidebar/Sidebar.tsx b/admin-portal/src/lib/components/sidebar/Sidebar.tsx index d17276a6a073cf73f994450f579b94adcaa0ca9d..1383f760c036bc6a3a8277da9a6882643661a3f3 100644 --- a/admin-portal/src/lib/components/sidebar/Sidebar.tsx +++ b/admin-portal/src/lib/components/sidebar/Sidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/sidebar/SidebarContent.tsx b/admin-portal/src/lib/components/sidebar/SidebarContent.tsx index 5718a0180bd97ba3710ac7bcddf8b38b140006f0..561fbc7e5dffff018ff1e13e3521169d49b7d774 100644 --- a/admin-portal/src/lib/components/sidebar/SidebarContent.tsx +++ b/admin-portal/src/lib/components/sidebar/SidebarContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/sidebar/SidebarDetails.tsx b/admin-portal/src/lib/components/sidebar/SidebarDetails.tsx index 7e1765cfe73d39b0e42119874e077d8f3caafe55..a09ee8d97fc27036c6201a56e548c05a28d2a393 100644 --- a/admin-portal/src/lib/components/sidebar/SidebarDetails.tsx +++ b/admin-portal/src/lib/components/sidebar/SidebarDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/sidebar/SidebarHeader.tsx b/admin-portal/src/lib/components/sidebar/SidebarHeader.tsx index cf756f35561111a995851c4b6c3c13bd16716f71..55c60743868024afd3228a307c4925cca9f709ff 100644 --- a/admin-portal/src/lib/components/sidebar/SidebarHeader.tsx +++ b/admin-portal/src/lib/components/sidebar/SidebarHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/sidebar/SidebarTable.tsx b/admin-portal/src/lib/components/sidebar/SidebarTable.tsx index fc29abc69b86f9d519fe1760c2cb9548089d8f16..c0c18ea46c0db70f1a7cbdb65545672a76c8a2b6 100644 --- a/admin-portal/src/lib/components/sidebar/SidebarTable.tsx +++ b/admin-portal/src/lib/components/sidebar/SidebarTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/DateFilter.tsx b/admin-portal/src/lib/components/table/DateFilter.tsx index 569bce0131fb3cc48f523f6631ade212b2818d92..7b0130c693d1e7d2980c18a8a02b29a6e94372dd 100644 --- a/admin-portal/src/lib/components/table/DateFilter.tsx +++ b/admin-portal/src/lib/components/table/DateFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/DeleteRow.tsx b/admin-portal/src/lib/components/table/DeleteRow.tsx index d824bb3d85319bf1832fc47a5a88a2c9e1901d69..8ca4fefe05de0da9109c164758a8449bb9c02aaf 100644 --- a/admin-portal/src/lib/components/table/DeleteRow.tsx +++ b/admin-portal/src/lib/components/table/DeleteRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/EditableTable.tsx b/admin-portal/src/lib/components/table/EditableTable.tsx index 89fe45d6027f0c34918d90b76dd6795359b89183..0f6c6cc5f0fe5edf583527f45aa092f1e10d4d4d 100644 --- a/admin-portal/src/lib/components/table/EditableTable.tsx +++ b/admin-portal/src/lib/components/table/EditableTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/EmptyTableHint.tsx b/admin-portal/src/lib/components/table/EmptyTableHint.tsx index 23acccc7de61497fa68649b8cba4e5576e5d8d7b..00ab884787ac6ec5c5ec41283810700fe40435c6 100644 --- a/admin-portal/src/lib/components/table/EmptyTableHint.tsx +++ b/admin-portal/src/lib/components/table/EmptyTableHint.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/Filter.tsx b/admin-portal/src/lib/components/table/Filter.tsx index 1dfdc6914216d67b18ca67617b8b087a4d0b40e7..9a0bb201791f8d14c51a3ba018c66129cf489217 100644 --- a/admin-portal/src/lib/components/table/Filter.tsx +++ b/admin-portal/src/lib/components/table/Filter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/MultiSelectFilter.tsx b/admin-portal/src/lib/components/table/MultiSelectFilter.tsx index 0da1e744aaa487c2632217150cb26de4b655e5a9..036d624935fd794c0e4ad1d1b036dd5f39c801e2 100644 --- a/admin-portal/src/lib/components/table/MultiSelectFilter.tsx +++ b/admin-portal/src/lib/components/table/MultiSelectFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/NewEntityParentRow.tsx b/admin-portal/src/lib/components/table/NewEntityParentRow.tsx index c1ce07be8742d1bdecbe5c2219c021540a3ccf40..024314b8b01b7927c7d471f49c587433d87d0d5a 100644 --- a/admin-portal/src/lib/components/table/NewEntityParentRow.tsx +++ b/admin-portal/src/lib/components/table/NewEntityParentRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/ResetButton.tsx b/admin-portal/src/lib/components/table/ResetButton.tsx index 18fb3b60c9ae1343943b40f857729cb2530e94fb..e140be76dab3b2c6c0bc6b374678ee2c1692d9c6 100644 --- a/admin-portal/src/lib/components/table/ResetButton.tsx +++ b/admin-portal/src/lib/components/table/ResetButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/SearchFilter.tsx b/admin-portal/src/lib/components/table/SearchFilter.tsx index 3ff41e14474b99984a83348b31b04be9c6fee942..c77c5e64b6aeb785f43ca513eed152722fc57707 100644 --- a/admin-portal/src/lib/components/table/SearchFilter.tsx +++ b/admin-portal/src/lib/components/table/SearchFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/SelectOptions.tsx b/admin-portal/src/lib/components/table/SelectOptions.tsx index cec3106c9e573573a4ee15a5f9a70cabff49288f..016cfaef0c07e1e3e9c7681eb81d198009291d86 100644 --- a/admin-portal/src/lib/components/table/SelectOptions.tsx +++ b/admin-portal/src/lib/components/table/SelectOptions.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/SingleSelectFilter.tsx b/admin-portal/src/lib/components/table/SingleSelectFilter.tsx index 8f8079c5b99650ec9066a5a40e59bd3677b44d6b..2c56380868dd8a3488a3596d5855e7cd06db025d 100644 --- a/admin-portal/src/lib/components/table/SingleSelectFilter.tsx +++ b/admin-portal/src/lib/components/table/SingleSelectFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/Table.tsx b/admin-portal/src/lib/components/table/Table.tsx index 083295fb8bf030626ad1f1fd99da257bb74a03c2..4284952a38f73fa03dd51b212c4df71891d473f4 100644 --- a/admin-portal/src/lib/components/table/Table.tsx +++ b/admin-portal/src/lib/components/table/Table.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/TableRow.tsx b/admin-portal/src/lib/components/table/TableRow.tsx index 8737792234ffd8ac8e5b4e509bf93591e0070cc6..6a0ddf15be1972ad5ec20b177b995808213d3d81 100644 --- a/admin-portal/src/lib/components/table/TableRow.tsx +++ b/admin-portal/src/lib/components/table/TableRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/TextInputFilter.tsx b/admin-portal/src/lib/components/table/TextInputFilter.tsx index 76640a80a6c4fec4a4473c28c6230b60ea39b752..56c820727ca2b00ab9a09307bb9c882a303d8375 100644 --- a/admin-portal/src/lib/components/table/TextInputFilter.tsx +++ b/admin-portal/src/lib/components/table/TextInputFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/addEditColumns.tsx b/admin-portal/src/lib/components/table/addEditColumns.tsx index 512d7a90bce6c9f1681addfa118cffa9e03ba5fa..e48c7d31099ebc57a71862a35500692ad09c3036 100644 --- a/admin-portal/src/lib/components/table/addEditColumns.tsx +++ b/admin-portal/src/lib/components/table/addEditColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/ActiveCell.tsx b/admin-portal/src/lib/components/table/cell/ActiveCell.tsx index f7c32335d68e61f7c8b7a3d3ac81e5d7e2e38c6d..b345902a5a1b69bc878f343d223b42fd6e4a5c7d 100644 --- a/admin-portal/src/lib/components/table/cell/ActiveCell.tsx +++ b/admin-portal/src/lib/components/table/cell/ActiveCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/ActorSelectorCell.tsx b/admin-portal/src/lib/components/table/cell/ActorSelectorCell.tsx index 75a3252ea3fd586984da5a7167e60ef1745daaa6..665b8a3af371f8b81e752bf0555ed272a0e832f9 100644 --- a/admin-portal/src/lib/components/table/cell/ActorSelectorCell.tsx +++ b/admin-portal/src/lib/components/table/cell/ActorSelectorCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/AuditCell.tsx b/admin-portal/src/lib/components/table/cell/AuditCell.tsx index f5232d684ba4aa12b7da3c0b5acd041a98b1291d..1e376926ac46829b528ce725e9973bfd1d96eefd 100644 --- a/admin-portal/src/lib/components/table/cell/AuditCell.tsx +++ b/admin-portal/src/lib/components/table/cell/AuditCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/AuditIdCell.tsx b/admin-portal/src/lib/components/table/cell/AuditIdCell.tsx index 1969ecda187cb38145874c7dc75f5c6f867d9221..326405330cbff793c1f6c819336907ea115e7d59 100644 --- a/admin-portal/src/lib/components/table/cell/AuditIdCell.tsx +++ b/admin-portal/src/lib/components/table/cell/AuditIdCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/BooleanCell.tsx b/admin-portal/src/lib/components/table/cell/BooleanCell.tsx index b6babd95e8699fb08ff3335fc3261e3140f0a168..afc0a78ef48b30bfadcc1ba3fa50e7054b5000cb 100644 --- a/admin-portal/src/lib/components/table/cell/BooleanCell.tsx +++ b/admin-portal/src/lib/components/table/cell/BooleanCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/CertificateCell.tsx b/admin-portal/src/lib/components/table/cell/CertificateCell.tsx index 04158090bc03a0b6c15db21dec3dcdfd27d041d4..d915ec84a256ce532f4275bcdeff8b0437cfcf31 100644 --- a/admin-portal/src/lib/components/table/cell/CertificateCell.tsx +++ b/admin-portal/src/lib/components/table/cell/CertificateCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/ColoredText.tsx b/admin-portal/src/lib/components/table/cell/ColoredText.tsx index c1947431b5f9a7778a77fa260d2b05a95018188c..6e80a58452a43832b70ca2e0daaf199b679a5592 100644 --- a/admin-portal/src/lib/components/table/cell/ColoredText.tsx +++ b/admin-portal/src/lib/components/table/cell/ColoredText.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/DebouncedInput.tsx b/admin-portal/src/lib/components/table/cell/DebouncedInput.tsx index e72ebea2f1a53f7badde426caef548879d185c07..c981a1a19ac357a7ceb116644b5d9ba7c824b5d8 100644 --- a/admin-portal/src/lib/components/table/cell/DebouncedInput.tsx +++ b/admin-portal/src/lib/components/table/cell/DebouncedInput.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/EditableCertificateCell.tsx b/admin-portal/src/lib/components/table/cell/EditableCertificateCell.tsx index 5747875b4c52170071d49dbac04b24b52a55b679..fde970107a85f372beac4761cc05aac8932b5fad 100644 --- a/admin-portal/src/lib/components/table/cell/EditableCertificateCell.tsx +++ b/admin-portal/src/lib/components/table/cell/EditableCertificateCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/EditableCommonNameCell.tsx b/admin-portal/src/lib/components/table/cell/EditableCommonNameCell.tsx index 8c6630d2750699acf1f97e1261c2992cf1c9776b..54ce71f0de104b63184a891bda36e89cf488d1fd 100644 --- a/admin-portal/src/lib/components/table/cell/EditableCommonNameCell.tsx +++ b/admin-portal/src/lib/components/table/cell/EditableCommonNameCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/EditableEnumCell.tsx b/admin-portal/src/lib/components/table/cell/EditableEnumCell.tsx index 551cedd4c6e06a483fbaf34c0b54d941b140f0d4..0faf6530098e36bf54c740027be68b37ac8027d3 100644 --- a/admin-portal/src/lib/components/table/cell/EditableEnumCell.tsx +++ b/admin-portal/src/lib/components/table/cell/EditableEnumCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/EmptyCell.tsx b/admin-portal/src/lib/components/table/cell/EmptyCell.tsx index 8479e6666ffbf444d77529cfbfc770b3dea90523..d13e24148f4df448ed581f4296e86c1d7cce0ea3 100644 --- a/admin-portal/src/lib/components/table/cell/EmptyCell.tsx +++ b/admin-portal/src/lib/components/table/cell/EmptyCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/ForeignKeyCell.tsx b/admin-portal/src/lib/components/table/cell/ForeignKeyCell.tsx index b1307b204fcf08d6709ca263039d52bb8fc0c00e..65538947ec2d17e70dc3b3587513623798ac8a60 100644 --- a/admin-portal/src/lib/components/table/cell/ForeignKeyCell.tsx +++ b/admin-portal/src/lib/components/table/cell/ForeignKeyCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/LinkCell.tsx b/admin-portal/src/lib/components/table/cell/LinkCell.tsx index 4da6959bb12bf2591addb3d0ae59ce94f7fddb8d..36f54cfc01084414a3d977fc6678c29af7601a0d 100644 --- a/admin-portal/src/lib/components/table/cell/LinkCell.tsx +++ b/admin-portal/src/lib/components/table/cell/LinkCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/MetadataCell.tsx b/admin-portal/src/lib/components/table/cell/MetadataCell.tsx index 23be1014911445d325daa2305cd2a8c163ebb10c..cbd7e2c5f33f4ff82f9acc63dce12e27ea1494f4 100644 --- a/admin-portal/src/lib/components/table/cell/MetadataCell.tsx +++ b/admin-portal/src/lib/components/table/cell/MetadataCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/OrgUnitCell.tsx b/admin-portal/src/lib/components/table/cell/OrgUnitCell.tsx index 50610c303dae9c9ba5c7d5fcbbfb5f01efa819ed..7503e586e8105da79a4284a58cfce4c340001191 100644 --- a/admin-portal/src/lib/components/table/cell/OrgUnitCell.tsx +++ b/admin-portal/src/lib/components/table/cell/OrgUnitCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/RevisionTypeCell.tsx b/admin-portal/src/lib/components/table/cell/RevisionTypeCell.tsx index b31878b2e4bbc94cdebb3e8e13862488109f13b1..cd1d707e62790221bf7dceca463eff7bf839880a 100644 --- a/admin-portal/src/lib/components/table/cell/RevisionTypeCell.tsx +++ b/admin-portal/src/lib/components/table/cell/RevisionTypeCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/StaticActorSelectorCell.tsx b/admin-portal/src/lib/components/table/cell/StaticActorSelectorCell.tsx index b3cf86b57efd6ce7d2b7669e5513955ec3973e4d..42e25d9b155375febc763d72bbda82f83c02cea3 100644 --- a/admin-portal/src/lib/components/table/cell/StaticActorSelectorCell.tsx +++ b/admin-portal/src/lib/components/table/cell/StaticActorSelectorCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/cell/StringCell.tsx b/admin-portal/src/lib/components/table/cell/StringCell.tsx index d7401111749f87da2778fe2b5e6429c806ec9e19..2ac9d5e6ae9f76dbf42ab2c13472c815d1a0e158 100644 --- a/admin-portal/src/lib/components/table/cell/StringCell.tsx +++ b/admin-portal/src/lib/components/table/cell/StringCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/context/TableEditContext.tsx b/admin-portal/src/lib/components/table/context/TableEditContext.tsx index d03f4943b97ef2b2c3e5e52b7b5e4fc033eff370..fef381bc2bd4997193d26c53e3363cb46cd27ccb 100644 --- a/admin-portal/src/lib/components/table/context/TableEditContext.tsx +++ b/admin-portal/src/lib/components/table/context/TableEditContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/head/Header.tsx b/admin-portal/src/lib/components/table/head/Header.tsx index 26459a71cd1c4ad7c7f5a18e185ae49db373cb38..5aa54c529d9d3293880f796ad454e24d10cbdff6 100644 --- a/admin-portal/src/lib/components/table/head/Header.tsx +++ b/admin-portal/src/lib/components/table/head/Header.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/table/head/TableHead.tsx b/admin-portal/src/lib/components/table/head/TableHead.tsx index 22c4a411c91a1e207e5f5dea02a22ec0b65d84ba..3d3b255de9bd9eede7796a2e3ffddf6729cd5919 100644 --- a/admin-portal/src/lib/components/table/head/TableHead.tsx +++ b/admin-portal/src/lib/components/table/head/TableHead.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/timeline/HistoryEntryIndicator.tsx b/admin-portal/src/lib/components/timeline/HistoryEntryIndicator.tsx index ece45f541f0931c3caea859752e975e96b956b18..9e88362b735da8720c9250edc2e99cec4c091dfd 100644 --- a/admin-portal/src/lib/components/timeline/HistoryEntryIndicator.tsx +++ b/admin-portal/src/lib/components/timeline/HistoryEntryIndicator.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/timeline/InformationSheet.tsx b/admin-portal/src/lib/components/timeline/InformationSheet.tsx index 455b105729310c74fbfef02bfe15285b59b46622..a265f6e969d5d7bf93b96b31fab2da9af3bcc275 100644 --- a/admin-portal/src/lib/components/timeline/InformationSheet.tsx +++ b/admin-portal/src/lib/components/timeline/InformationSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/timeline/Timeline.tsx b/admin-portal/src/lib/components/timeline/Timeline.tsx index 231d5121677bbf7fa759b0298dcf00b805fc3046..99696a85585a3d280b473c326fafa88323f3eb81 100644 --- a/admin-portal/src/lib/components/timeline/Timeline.tsx +++ b/admin-portal/src/lib/components/timeline/Timeline.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/timeline/TimelineEntry.tsx b/admin-portal/src/lib/components/timeline/TimelineEntry.tsx index 0da2df02f475208959d92ce9ab569f3ede40edf5..d23267f80563e28aa6e9833bde8c766cd9ac08a3 100644 --- a/admin-portal/src/lib/components/timeline/TimelineEntry.tsx +++ b/admin-portal/src/lib/components/timeline/TimelineEntry.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/timeline/TimelineEntryIndicator.tsx b/admin-portal/src/lib/components/timeline/TimelineEntryIndicator.tsx index 439681d67b0dde7fb16f0c8f06fd8f12a80393e6..db6717da0e29c234eb9964f760f5641729c44d20 100644 --- a/admin-portal/src/lib/components/timeline/TimelineEntryIndicator.tsx +++ b/admin-portal/src/lib/components/timeline/TimelineEntryIndicator.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/user/UserHeading.tsx b/admin-portal/src/lib/components/user/UserHeading.tsx index 5a999c6eca4933824461583cd878bcceba12191c..2c5076778491ea2db221c0c5b94bc0a6aabeff16 100644 --- a/admin-portal/src/lib/components/user/UserHeading.tsx +++ b/admin-portal/src/lib/components/user/UserHeading.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/user/UserSidebar.tsx b/admin-portal/src/lib/components/user/UserSidebar.tsx index 0f08b1882bf8a4f7bb5935f454bf779a2e2087bc..801f5ae46bd855f3c04e9bf0993b873616e098b3 100644 --- a/admin-portal/src/lib/components/user/UserSidebar.tsx +++ b/admin-portal/src/lib/components/user/UserSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/PageContent.tsx b/admin-portal/src/lib/components/view/PageContent.tsx index 616ec9d1faa4204815e44c843c544913456bc3d0..73d50341a814fb1311ce288640c423201609e7c9 100644 --- a/admin-portal/src/lib/components/view/PageContent.tsx +++ b/admin-portal/src/lib/components/view/PageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/actors/ActorTable.tsx b/admin-portal/src/lib/components/view/actors/ActorTable.tsx index 73d123d2d43725e33a98e3c135087cd9f0de5680..6c1dd92bf2c27e470d54695e08446894fe504dd0 100644 --- a/admin-portal/src/lib/components/view/actors/ActorTable.tsx +++ b/admin-portal/src/lib/components/view/actors/ActorTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/AuditHistory.tsx b/admin-portal/src/lib/components/view/audit-log/AuditHistory.tsx index 6d3bd9e6c228a24e40f2fdecb90945ea90b0773e..636e4bfaf9a31623bb5d52a110d890d88f8501d9 100644 --- a/admin-portal/src/lib/components/view/audit-log/AuditHistory.tsx +++ b/admin-portal/src/lib/components/view/audit-log/AuditHistory.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/AuditLog.tsx b/admin-portal/src/lib/components/view/audit-log/AuditLog.tsx index 90bda69d4e4d1d7ec4c286dcccdc83626b50d724..fcfbdaed17658947374bfdd051724861ffa3716e 100644 --- a/admin-portal/src/lib/components/view/audit-log/AuditLog.tsx +++ b/admin-portal/src/lib/components/view/audit-log/AuditLog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/FilteredAuditHistory.tsx b/admin-portal/src/lib/components/view/audit-log/FilteredAuditHistory.tsx index 5c618fc68446be29f541e02732b41e92c330c16f..133bd844a5317acd272e71ff090e417d486c70de 100644 --- a/admin-portal/src/lib/components/view/audit-log/FilteredAuditHistory.tsx +++ b/admin-portal/src/lib/components/view/audit-log/FilteredAuditHistory.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/tables/AuditActorMetadataTable.tsx b/admin-portal/src/lib/components/view/audit-log/tables/AuditActorMetadataTable.tsx index 922b4319282bf2e5d31b21fac511d08820c9da15..3f28fa248732c0ce77e7d8704c9faa23302b98f5 100644 --- a/admin-portal/src/lib/components/view/audit-log/tables/AuditActorMetadataTable.tsx +++ b/admin-portal/src/lib/components/view/audit-log/tables/AuditActorMetadataTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/tables/AuditActorTable.tsx b/admin-portal/src/lib/components/view/audit-log/tables/AuditActorTable.tsx index f651f83993533e383ed99011c117d924369a96a2..b9b70d719a29e7e3e5f98cf3fd460f8ea8f3019b 100644 --- a/admin-portal/src/lib/components/view/audit-log/tables/AuditActorTable.tsx +++ b/admin-portal/src/lib/components/view/audit-log/tables/AuditActorTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/tables/AuditOrgUnitTable.tsx b/admin-portal/src/lib/components/view/audit-log/tables/AuditOrgUnitTable.tsx index 8df002a85498d657d97be401b5545c6b328b67aa..0c3017f6a5738f946733fef6a2c6ba3ae37a6e0f 100644 --- a/admin-portal/src/lib/components/view/audit-log/tables/AuditOrgUnitTable.tsx +++ b/admin-portal/src/lib/components/view/audit-log/tables/AuditOrgUnitTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/tables/AuditRuleTable.tsx b/admin-portal/src/lib/components/view/audit-log/tables/AuditRuleTable.tsx index 95ced0e914b8b0f38949ab226c006f35415e7c40..84d8e2f3e57462d50f0bb2057e1642df1d8fd557 100644 --- a/admin-portal/src/lib/components/view/audit-log/tables/AuditRuleTable.tsx +++ b/admin-portal/src/lib/components/view/audit-log/tables/AuditRuleTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/tables/AuditTable.tsx b/admin-portal/src/lib/components/view/audit-log/tables/AuditTable.tsx index d37e695c7c4f94e543475a2194bb8f339b18d482..a2bd75820a25f08380fd45c78b6580f8573a51f5 100644 --- a/admin-portal/src/lib/components/view/audit-log/tables/AuditTable.tsx +++ b/admin-portal/src/lib/components/view/audit-log/tables/AuditTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/audit-log/tables/AuditTableHeader.tsx b/admin-portal/src/lib/components/view/audit-log/tables/AuditTableHeader.tsx index ea6b7dd4f121b2cac94990f1e9171f19231945c0..7fe324c9a12d4c3f649879490d873fe4ad54c3cf 100644 --- a/admin-portal/src/lib/components/view/audit-log/tables/AuditTableHeader.tsx +++ b/admin-portal/src/lib/components/view/audit-log/tables/AuditTableHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/legal/LegalContent.tsx b/admin-portal/src/lib/components/view/legal/LegalContent.tsx index 4570d44f1032f25a802031df230bfc60afcc0c0b..e3ec68d72719cc7c6196a34891405813b616b45f 100644 --- a/admin-portal/src/lib/components/view/legal/LegalContent.tsx +++ b/admin-portal/src/lib/components/view/legal/LegalContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/legal/LegalLinkList.tsx b/admin-portal/src/lib/components/view/legal/LegalLinkList.tsx index 412c31fcedd77488da0bee136b534523e94ac849..175d39b2397e9aee50a3e60b4a6d478d9209f317 100644 --- a/admin-portal/src/lib/components/view/legal/LegalLinkList.tsx +++ b/admin-portal/src/lib/components/view/legal/LegalLinkList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/legal/LegalPage.tsx b/admin-portal/src/lib/components/view/legal/LegalPage.tsx index 2d76bc0b3025b1c752105cff6e17b33ce0459a2a..11e8a8a3d1bc117e12a937c4bf9e94cbdc22d432 100644 --- a/admin-portal/src/lib/components/view/legal/LegalPage.tsx +++ b/admin-portal/src/lib/components/view/legal/LegalPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/org-units/OrgUnitTable.tsx b/admin-portal/src/lib/components/view/org-units/OrgUnitTable.tsx index fbb8f03ffba83ec2c608dd4057020e19dd47bbab..229e88a5a1695990b64af4741d514b8ac9d773ba 100644 --- a/admin-portal/src/lib/components/view/org-units/OrgUnitTable.tsx +++ b/admin-portal/src/lib/components/view/org-units/OrgUnitTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/rules/RuleTable.tsx b/admin-portal/src/lib/components/view/rules/RuleTable.tsx index cc800aa1dcbf1febda2977a822d6af55b9faa8dd..8495014c6cd12cd6b6f6347d1a8beb8346e53213 100644 --- a/admin-portal/src/lib/components/view/rules/RuleTable.tsx +++ b/admin-portal/src/lib/components/view/rules/RuleTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/service-directory/ServiceDirectoryConfiguration.tsx b/admin-portal/src/lib/components/view/service-directory/ServiceDirectoryConfiguration.tsx index 2e05edf12926006dd8a885915a4d8d9c5c80bb73..71ad1e163ef7c6ebe5cb5f45bb6ffba0a7e71029 100644 --- a/admin-portal/src/lib/components/view/service-directory/ServiceDirectoryConfiguration.tsx +++ b/admin-portal/src/lib/components/view/service-directory/ServiceDirectoryConfiguration.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/service-directory/dataTransfer/ExportContent.tsx b/admin-portal/src/lib/components/view/service-directory/dataTransfer/ExportContent.tsx index ca18a7e21ded93526edb034ecce91e0717a4a3cb..07c81c42a5e292c120bee4ae4c03e4b0b203ca4f 100644 --- a/admin-portal/src/lib/components/view/service-directory/dataTransfer/ExportContent.tsx +++ b/admin-portal/src/lib/components/view/service-directory/dataTransfer/ExportContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/components/view/service-directory/dataTransfer/ImportContent.tsx b/admin-portal/src/lib/components/view/service-directory/dataTransfer/ImportContent.tsx index 397b9282315370cd46166ea4677c87033ca1fa69..f2d21cffbf134d7a6a28256562c1fcefcbb24b6a 100644 --- a/admin-portal/src/lib/components/view/service-directory/dataTransfer/ImportContent.tsx +++ b/admin-portal/src/lib/components/view/service-directory/dataTransfer/ImportContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/actorSelector.ts b/admin-portal/src/lib/helpers/actorSelector.ts index 0b6ac288ff3120e0936ac654bb367aba1dee21f4..4c23d4fbba74f3438739a5fe215e872d129d38a1 100644 --- a/admin-portal/src/lib/helpers/actorSelector.ts +++ b/admin-portal/src/lib/helpers/actorSelector.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/addFeatureColumns.tsx b/admin-portal/src/lib/helpers/addFeatureColumns.tsx index ea1f4267ee0a65afb98d121b8581c28a7c71b6f2..cabf724a3d488558769372eacf3ed57c0c2eec9f 100644 --- a/admin-portal/src/lib/helpers/addFeatureColumns.tsx +++ b/admin-portal/src/lib/helpers/addFeatureColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/adminName.ts b/admin-portal/src/lib/helpers/adminName.ts index 0cb9fbbcac700b24f2d1b25cdd2a85924101da69..0c13ab9f281c73beb2e35a3afe53909125fa2bf0 100644 --- a/admin-portal/src/lib/helpers/adminName.ts +++ b/admin-portal/src/lib/helpers/adminName.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/crypto.ts b/admin-portal/src/lib/helpers/crypto.ts index a5f26a57c9c870c109206bb29c21f0192da099fb..163a9eddee62ee46a1fb95f3d5f56e6e93794ae5 100644 --- a/admin-portal/src/lib/helpers/crypto.ts +++ b/admin-portal/src/lib/helpers/crypto.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/datetime.ts b/admin-portal/src/lib/helpers/datetime.ts index c9f2c50a1154fd5e47e6060b3d59f6b78d482b1a..347f2f859ecd8c0112ee5bf9281dc38b62047b3c 100644 --- a/admin-portal/src/lib/helpers/datetime.ts +++ b/admin-portal/src/lib/helpers/datetime.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/entities.ts b/admin-portal/src/lib/helpers/entities.ts index fb8891d70ff022d1fbf3de90910024087e65cc7a..b6954d5f502fafee4e11650efa28237317ffd02e 100644 --- a/admin-portal/src/lib/helpers/entities.ts +++ b/admin-portal/src/lib/helpers/entities.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/entityFilter.ts b/admin-portal/src/lib/helpers/entityFilter.ts index 034a14eab931da1f9a17e9b8abb9810806e0511a..ef5d7fc2c3db418660717fad6cdcfd98b01edc4e 100644 --- a/admin-portal/src/lib/helpers/entityFilter.ts +++ b/admin-portal/src/lib/helpers/entityFilter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/entityToString.ts b/admin-portal/src/lib/helpers/entityToString.ts index 809ca0c92e1edc1f98aea1df5dde8a36aeb2867d..b41478496abbb4795f2ef7cabeb4c9c9ba8000c9 100644 --- a/admin-portal/src/lib/helpers/entityToString.ts +++ b/admin-portal/src/lib/helpers/entityToString.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/entityValidation.tsx b/admin-portal/src/lib/helpers/entityValidation.tsx index a8d32692986d1ab466da44ec85d92bd6b0e00389..be6f0b4fc11b27101ceeb3831a1adef2d040ce45 100644 --- a/admin-portal/src/lib/helpers/entityValidation.tsx +++ b/admin-portal/src/lib/helpers/entityValidation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/files.ts b/admin-portal/src/lib/helpers/files.ts index 531f675fd7d3b0ecfec1b87a4227f9c980b9cb95..5140b3d682fde72835c362d712a16be1d654d0bd 100644 --- a/admin-portal/src/lib/helpers/files.ts +++ b/admin-portal/src/lib/helpers/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/table.ts b/admin-portal/src/lib/helpers/table.ts index 78822b71cc918cf71f5355694c30ba5d0683da46..27cb9bcc961e245a248679d74f6790fee48a5a58 100644 --- a/admin-portal/src/lib/helpers/table.ts +++ b/admin-portal/src/lib/helpers/table.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/uuid.ts b/admin-portal/src/lib/helpers/uuid.ts index e322bc60d0cf3f09779ddd010704fba2d7d96cf5..8b502bd5ae871a4f030e0cb9201aa29b3896ddcf 100644 --- a/admin-portal/src/lib/helpers/uuid.ts +++ b/admin-portal/src/lib/helpers/uuid.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/helpers/validators.ts b/admin-portal/src/lib/helpers/validators.ts index 0936b7b37fd9dbeb2e69d61f810288b9a0a678b9..8e28bcb599d37786b92d7146012f1953fb6e0248 100644 --- a/admin-portal/src/lib/helpers/validators.ts +++ b/admin-portal/src/lib/helpers/validators.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useActors.ts b/admin-portal/src/lib/hooks/useActors.ts index 1dba38e15de00bedf6418f3319fdaab1d630ef88..dce3e28a18324def9a6d3e32429a0e065067e578 100644 --- a/admin-portal/src/lib/hooks/useActors.ts +++ b/admin-portal/src/lib/hooks/useActors.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useActorsApi.ts b/admin-portal/src/lib/hooks/useActorsApi.ts index 600af36e84cbdea5ec735650081afac5b2fa2a64..dc35323a8aad6827be1289356ffe7b1ce514a4d2 100644 --- a/admin-portal/src/lib/hooks/useActorsApi.ts +++ b/admin-portal/src/lib/hooks/useActorsApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useAuditLogs.ts b/admin-portal/src/lib/hooks/useAuditLogs.ts index f04904e344b9b1909b89cab92b740a82d0afb3fa..3c01a5a9461afbdd7f300efc49113a1d380b86e3 100644 --- a/admin-portal/src/lib/hooks/useAuditLogs.ts +++ b/admin-portal/src/lib/hooks/useAuditLogs.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useCommitDryRun.tsx b/admin-portal/src/lib/hooks/useCommitDryRun.tsx index 1461b55835f8331bfa4cb47e876f2012e6ff7b77..1a2cebbe4e2fb7127de03ff11d333c51ee012290 100644 --- a/admin-portal/src/lib/hooks/useCommitDryRun.tsx +++ b/admin-portal/src/lib/hooks/useCommitDryRun.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useConfirmationDialog.tsx b/admin-portal/src/lib/hooks/useConfirmationDialog.tsx index 3ea643e85ef045ab074b7a81b89d32bf9a1dc2c5..d830bd2e887bb2d9769bba0899148cf9b39f26cc 100644 --- a/admin-portal/src/lib/hooks/useConfirmationDialog.tsx +++ b/admin-portal/src/lib/hooks/useConfirmationDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useDragAndDrop.tsx b/admin-portal/src/lib/hooks/useDragAndDrop.tsx index ac7ea85cfca59b28222524e2d596b0b9c80b4058..57bdac29f4fead5e1d507732e5cc2e1c430b424a 100644 --- a/admin-portal/src/lib/hooks/useDragAndDrop.tsx +++ b/admin-portal/src/lib/hooks/useDragAndDrop.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useGlobalFilter.tsx b/admin-portal/src/lib/hooks/useGlobalFilter.tsx index b343c72494bb71171d537b51a94ff1fa3db5da59..02f90ed5f1c43a0b0a3c0bafa9b0e9856ca2ecaa 100644 --- a/admin-portal/src/lib/hooks/useGlobalFilter.tsx +++ b/admin-portal/src/lib/hooks/useGlobalFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useOrgUnits.ts b/admin-portal/src/lib/hooks/useOrgUnits.ts index ee900ee724dbf0bbb98257cbccafb45324c44f68..0fe921f53642d67ff5703634b2a83290221f908b 100644 --- a/admin-portal/src/lib/hooks/useOrgUnits.ts +++ b/admin-portal/src/lib/hooks/useOrgUnits.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useOrgUnitsApi.ts b/admin-portal/src/lib/hooks/useOrgUnitsApi.ts index 6db74f8143d5e494b15adf7b73c5afd19cdfcc4e..784aee6bd1e9288464edd9a77ed5b8be68f5888b 100644 --- a/admin-portal/src/lib/hooks/useOrgUnitsApi.ts +++ b/admin-portal/src/lib/hooks/useOrgUnitsApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useReplaceSearchParams.ts b/admin-portal/src/lib/hooks/useReplaceSearchParams.ts index a59429abe207d4599abcc37b656e8851a35343da..3c2d97321d9a5e04972d41666d3a34028fc74d59 100644 --- a/admin-portal/src/lib/hooks/useReplaceSearchParams.ts +++ b/admin-portal/src/lib/hooks/useReplaceSearchParams.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useRules.ts b/admin-portal/src/lib/hooks/useRules.ts index 839492077ff5e5deec213b82665e4c95b762c775..07db0769dbb3071ddab7c54d4c399a8fac507f07 100644 --- a/admin-portal/src/lib/hooks/useRules.ts +++ b/admin-portal/src/lib/hooks/useRules.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/hooks/useRulesApi.ts b/admin-portal/src/lib/hooks/useRulesApi.ts index ce45d192f1f7ee69e285743ae103901d0778031b..f3004f4f21e8746b2a1b331ab79679f0d3015287 100644 --- a/admin-portal/src/lib/hooks/useRulesApi.ts +++ b/admin-portal/src/lib/hooks/useRulesApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/i18n/client.ts b/admin-portal/src/lib/i18n/client.ts index f2f5951f05c494e2e27ae782317d9bc6b8b817c7..602afc4e92607e96471545c847080ba07bc7ec77 100644 --- a/admin-portal/src/lib/i18n/client.ts +++ b/admin-portal/src/lib/i18n/client.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/i18n/options.ts b/admin-portal/src/lib/i18n/options.ts index 93652c558cda4782c351cd70da7d1c0586886ddc..7bb95f23a8049773a4a6c525bc7b7d5ed80e9aa0 100644 --- a/admin-portal/src/lib/i18n/options.ts +++ b/admin-portal/src/lib/i18n/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/types/FileType.ts b/admin-portal/src/lib/types/FileType.ts index ba9271288488519e7277f75a3a5f6668ceecd6a6..5997d8a2e025c8d5404d1a3f839eaba7be2435c2 100644 --- a/admin-portal/src/lib/types/FileType.ts +++ b/admin-portal/src/lib/types/FileType.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/lib/types/audit.ts b/admin-portal/src/lib/types/audit.ts index d5deb642b5eef9c5d9dea5e94a56215b5ba6c0a8..6af9ee51ff4b75e6a8b7c0fb3fe8fe11835f012d 100644 --- a/admin-portal/src/lib/types/audit.ts +++ b/admin-portal/src/lib/types/audit.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/src/middleware.ts b/admin-portal/src/middleware.ts index 40fe8630ae17dab44e56171abbcb6a424fc2fbfb..0d7600a7b02ec74d78b57343edeb89e321dc876d 100644 --- a/admin-portal/src/middleware.ts +++ b/admin-portal/src/middleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/admin-portal/vitest.config.ts b/admin-portal/vitest.config.ts index d06f915f32bc9d46702739752a0af657d90cb7df..ae4bcdea49fcf9a7487ced2e9e85c55f7cf10b69 100644 --- a/admin-portal/vitest.config.ts +++ b/admin-portal/vitest.config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/api-commons/src/main/java/de/eshg/CustomValidations/EmailAddressConstraint.java b/backend/api-commons/src/main/java/de/eshg/CustomValidations/EmailAddressConstraint.java index ac3aafa0b522705b3361a2b71445f5906a584e2d..1c358b787458614090e498c64d7b6d6dfc85089d 100644 --- a/backend/api-commons/src/main/java/de/eshg/CustomValidations/EmailAddressConstraint.java +++ b/backend/api-commons/src/main/java/de/eshg/CustomValidations/EmailAddressConstraint.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,14 +8,15 @@ package de.eshg.CustomValidations; import jakarta.validation.Constraint; import jakarta.validation.Payload; import jakarta.validation.constraints.Email; -import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; @Constraint(validatedBy = {}) @Target({ElementType.TYPE_USE, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) -@NotNull @Email( regexp = "^(?=.{6,254})(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-.]*)[A-Z0-9_+-]@([A-Z0-9]+(-+[A-Z0-9]+)*\\.)+[A-Z]{2,}$", diff --git a/backend/api-commons/src/main/java/de/eshg/CustomValidations/MandatoryEmailAddressConstraint.java b/backend/api-commons/src/main/java/de/eshg/CustomValidations/MandatoryEmailAddressConstraint.java new file mode 100644 index 0000000000000000000000000000000000000000..b7358b246a9a0fe21ab9dc440310742cb5340893 --- /dev/null +++ b/backend/api-commons/src/main/java/de/eshg/CustomValidations/MandatoryEmailAddressConstraint.java @@ -0,0 +1,25 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.CustomValidations; + +import jakarta.validation.Constraint; +import jakarta.validation.Payload; +import jakarta.validation.constraints.NotNull; +import java.lang.annotation.*; + +@Constraint(validatedBy = {}) +@Target({ElementType.TYPE_USE, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@NotNull +@EmailAddressConstraint +public @interface MandatoryEmailAddressConstraint { + + String message() default ""; + + Class<?>[] groups() default {}; + + Class<? extends Payload>[] payload() default {}; +} diff --git a/backend/api-commons/src/main/java/de/eshg/api/commons/InlineParameterObject.java b/backend/api-commons/src/main/java/de/eshg/api/commons/InlineParameterObject.java index bc426dfb52e7a36faf82e63840ffee32e444d4b9..16e4cb36da69f48f1df022026694c0eef0dc204a 100644 --- a/backend/api-commons/src/main/java/de/eshg/api/commons/InlineParameterObject.java +++ b/backend/api-commons/src/main/java/de/eshg/api/commons/InlineParameterObject.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/api-commons/src/main/java/de/eshg/base/OffsetPagedResponse.java b/backend/api-commons/src/main/java/de/eshg/base/OffsetPagedResponse.java index f65ece07585d599f4bf498366cdb5025ab654af6..cd0207585a5229b51223c7ff1e1efbbbaf8c253a 100644 --- a/backend/api-commons/src/main/java/de/eshg/base/OffsetPagedResponse.java +++ b/backend/api-commons/src/main/java/de/eshg/base/OffsetPagedResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/api-commons/src/main/java/de/eshg/base/OffsetPaginationParameters.java b/backend/api-commons/src/main/java/de/eshg/base/OffsetPaginationParameters.java index 9bd910ca775f23fe125c033c874cd7fecc2c71e6..82a02128169b5a135dad6b001b8381eab2b6b650 100644 --- a/backend/api-commons/src/main/java/de/eshg/base/OffsetPaginationParameters.java +++ b/backend/api-commons/src/main/java/de/eshg/base/OffsetPaginationParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/api-commons/src/main/java/de/eshg/base/PagedResponse.java b/backend/api-commons/src/main/java/de/eshg/base/PagedResponse.java index 1a4ee82b03e45db0b85af03bd4813a384e48a163..403dba651d996e7809b09a6d212ceda442d8c61c 100644 --- a/backend/api-commons/src/main/java/de/eshg/base/PagedResponse.java +++ b/backend/api-commons/src/main/java/de/eshg/base/PagedResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/api-commons/src/main/java/de/eshg/base/PaginationParameters.java b/backend/api-commons/src/main/java/de/eshg/base/PaginationParameters.java index 703b974f98df9d80fa4c994bd70e8394653c3cea..7da6453f99c9783fcfd2f20e87e88a44a224f8de 100644 --- a/backend/api-commons/src/main/java/de/eshg/base/PaginationParameters.java +++ b/backend/api-commons/src/main/java/de/eshg/base/PaginationParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/api-commons/src/main/java/de/eshg/base/SortDirection.java b/backend/api-commons/src/main/java/de/eshg/base/SortDirection.java index 76f0b1511fae6584db09dd65bd2fd0cbe0fc06a4..a6cfb5368b323e65a485485168b7de384ea5604d 100644 --- a/backend/api-commons/src/main/java/de/eshg/base/SortDirection.java +++ b/backend/api-commons/src/main/java/de/eshg/base/SortDirection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/api-commons/src/main/java/de/eshg/base/SortParameters.java b/backend/api-commons/src/main/java/de/eshg/base/SortParameters.java index 6bc67005a39b092b4ef380975733c8e038ec11d7..860861c6127828be41feff8181f30cdaf4ba023b 100644 --- a/backend/api-commons/src/main/java/de/eshg/base/SortParameters.java +++ b/backend/api-commons/src/main/java/de/eshg/base/SortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/api-commons/src/main/java/de/eshg/model/HasResolvableUserIds.java b/backend/api-commons/src/main/java/de/eshg/model/HasResolvableUserIds.java index 199ba34a19883e794223df2ff79e20d9e5ee73aa..fc3232c728fc488a5e8811a27ab4008580139e6a 100644 --- a/backend/api-commons/src/main/java/de/eshg/model/HasResolvableUserIds.java +++ b/backend/api-commons/src/main/java/de/eshg/model/HasResolvableUserIds.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AccessibleAuditLogDto.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AccessibleAuditLogDto.java index d993abc9daad391ebc7aae4fa3a874c52f9c9670..3ce1e62d59fd6d075239032ed524fddc7344df3e 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AccessibleAuditLogDto.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AccessibleAuditLogDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AddAuditLogFileRequest.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AddAuditLogFileRequest.java index 2c33cb6766a8ae8c8b0852f48c67610ec1ba7fdc..63f91079779dd7d9a1a5bf06116647876e5a8600 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AddAuditLogFileRequest.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AddAuditLogFileRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogApi.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogApi.java index 62b859585b59e83fe5f172c1616d603b412682d0..65ddb80cc08251f9eff0b952a1841beaaed6cc18 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogApi.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogArchivingApi.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogArchivingApi.java index 64b1bcd62205f3a42395dee8298f467f43998e74..a3ebe052d0aa6b8d9943553498aa60206050fe97 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogArchivingApi.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogArchivingApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogDto.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogDto.java index e824b43fd922f2972bc6b731752e01482d08be77..868eaedf9001cf9ba123d7569e8337c1699ee3c0 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogDto.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogGrantedAccessCountDto.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogGrantedAccessCountDto.java index 582227981097bac64858246520b6d4b5093ff3a0..3ebdb01a22c9c4462cd0b43448257a9adbd0de9d 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogGrantedAccessCountDto.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogGrantedAccessCountDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogSource.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogSource.java index ab14724fb7b1e7b06d90f54a5d17c60f15fb776c..b154ad4ef9d00d7ae6ef57d501f4a917866476f3 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogSource.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogTestHelperApi.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogTestHelperApi.java index 46221cde319a225d95a8bf8e437a0bcf3d8f9bcd..8db01d03fbd317dfa4bbe6fd9b198e2e3ac3aa62 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogTestHelperApi.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/AuditLogTestHelperApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAccessibleAuditLogsResponse.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAccessibleAuditLogsResponse.java index 57b6cfbdf38bf796f1e4b1b33e0e693e3172a587..a116cd6d57871315a91d014ddca9bac8ba84e22c 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAccessibleAuditLogsResponse.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAccessibleAuditLogsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogDataRequest.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogDataRequest.java index 47f77fcf9dc876cf8f1671b4f987749e43e2aec0..0c8778d75f99f89c03da9d18083d96efbc1ef95e 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogDataRequest.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogDataRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogGrantedAccessesResponse.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogGrantedAccessesResponse.java index 4f70f9a6184b9551044d824551500f975f7eda46..d9f4731e8491974e8d45421fb94feef3b790dbc5 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogGrantedAccessesResponse.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAuditLogGrantedAccessesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsFilterOptions.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsFilterOptions.java index 607455cc5c9e439dd276fcadd73785d242178c99..984f9b881bea50b5600efac3f1795bc12695349b 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsFilterOptions.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsPaginationOptions.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsPaginationOptions.java index b95dbadaaeeb4f6743049c2fdeb02e6766ba69a0..e067da0b27a94e4160eb5508201c603d4a8eda6f 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsPaginationOptions.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsResponse.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsResponse.java index 33fe86d64e4e4ad4ca5920279f010825bd20db2f..4d22ee87621e12497517ed1bf8ec19b852478dbd 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsResponse.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetAvailableAuditLogsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyRequest.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyRequest.java index 966008fc1123a3857ca72f0bd921073fb1189b60..5ed6c60345b08c291ec097698bff69454f988fdf 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyRequest.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyResponse.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyResponse.java index 87434eed6d950e44f13b7e90edb57b44824bfbb8..e6a179515c4e4f37e6cb9e9d6943c5991dd0180b 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyResponse.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GetEncryptedSymmetricKeyResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantAuditLogAccessRequest.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantAuditLogAccessRequest.java index 28e1be29d2de01991741db1968917eb8630f31ec..23188e9c18b080e82a4ae04816b29de9bce9d7ff 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantAuditLogAccessRequest.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantAuditLogAccessRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantedAccessDto.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantedAccessDto.java index eba50f3b8d66ba90c5def8c5a34749217d935363..ddb3a96e327ab957536f5ad739937b910d2d92ab 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantedAccessDto.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/GrantedAccessDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/ReadAuditLogFileRequest.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/ReadAuditLogFileRequest.java index 9fe9d2dc84a05e5582652a316a3057286094d05b..325e7d4e536e040a1c73414221d1db374b1d526b 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/ReadAuditLogFileRequest.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/ReadAuditLogFileRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog-api/src/main/java/de/eshg/auditlog/SharedAuditLogTestHelperApi.java b/backend/auditlog-api/src/main/java/de/eshg/auditlog/SharedAuditLogTestHelperApi.java index ecb62e274c5387693abfab38e0cbd59eb6aec839..c422e0c4d8d0b0d87c30caedd5225f73b8a886a1 100644 --- a/backend/auditlog-api/src/main/java/de/eshg/auditlog/SharedAuditLogTestHelperApi.java +++ b/backend/auditlog-api/src/main/java/de/eshg/auditlog/SharedAuditLogTestHelperApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/openApi.yaml b/backend/auditlog/openApi.yaml index 4c0f8e0b76d09c18462e2649d32423500169184d..7cbd1a889559837642d177945294da82249ade8a 100644 --- a/backend/auditlog/openApi.yaml +++ b/backend/auditlog/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogApplication.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogApplication.java index 7b906c82efddedb3c855bd6a520ba9ae60ece1e5..0b8c68291c8ad41012ed893b593cb57b1c2f5b71 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogApplication.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogController.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogController.java index f6baff133b31e2763bd86c9aa99bd223edefd3bf..2bbc95103b08f761a54bba2843dafa52bef171e6 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogController.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogHousekeepingException.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogHousekeepingException.java index b796ca33cd72caef2d6fc1d8493c80a6600fa304..5d88491bc0cda88665ad0788e07db07e2ee5ef83 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogHousekeepingException.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogHousekeepingException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogInternalSecurityConfiguration.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogInternalSecurityConfiguration.java index 9985eefad6c4c4ab02521da1a0fbb28e37256a98..62ec05c5e28c9d82a579e00eb72055ce461e744d 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogInternalSecurityConfiguration.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogInternalSecurityConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceConfig.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceConfig.java index ea1b489dc347bb18d30d9b198bd3a258e44bd75d..55d445163be6192ea1ea0c94c65b60cb4666d5ca 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceConfig.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeeping.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeeping.java index c523cf2d557ea0d14b23219f28ef62419870695a..efc74cf144c6cb830bb704f7ac8d84f985590995 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeeping.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeeping.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeepingConfig.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeepingConfig.java index fc561040eb9549dcb843716302fd6fcc582039bf..16df58fd011596390410b75f991a661d59dc7840 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeepingConfig.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogServiceHousekeepingConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogTestHelperController.java b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogTestHelperController.java index b7efa037fa1a5d26fa13f36314d47dc5410d94dd..b85d403eb561dd4666f886d99c148e3f59d73101 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogTestHelperController.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/AuditLogTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AsymmetricEncryption.java b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AsymmetricEncryption.java index 21d3a608b3608b9b12e366bf4db08564e672b622..78f45a7f547e4661eda2daa53bc87eae44597b81 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AsymmetricEncryption.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AsymmetricEncryption.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogDecryptionException.java b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogDecryptionException.java index f6f6a95523cf3786b72bdd2116d62e717a71e1c9..7a2a221e022a06258be6d94569317760645dd321 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogDecryptionException.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogDecryptionException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogEncryptionException.java b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogEncryptionException.java index 3a89bef432da809ba15d88d20609639f186d00b5..55ae86a41882ffe28e85dc8a529fb2fca6e33446 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogEncryptionException.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/AuditLogEncryptionException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/PublicKeyService.java b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/PublicKeyService.java index 7ed95c9e414e70ade1d3c394062fdbd43a5ab7f2..9cc03322fbb07ddb800cc06950c26994cffca56d 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/PublicKeyService.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/PublicKeyService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/SymmetricEncryption.java b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/SymmetricEncryption.java index cb00001426db298d7930f8b5c97f1649b6a770b9..f3643b8e378ff03bdfc8d73a896f2bbe41132df7 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/SymmetricEncryption.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/crypto/SymmetricEncryption.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogAccessibleProjection.java b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogAccessibleProjection.java index 17147ab90d12c0596eda971d5a7afe5f12e6ba1c..681f5b09e4e51d3fe6e4422c3028ad57995d168c 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogAccessibleProjection.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogAccessibleProjection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGrantedAccessProjection.java b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGrantedAccessProjection.java index 3e84c57b22d84ccafd3e3c2f0bca555f7fa40f3f..6911d49b944eff6b1eb2f261b205b4cdfdc5f7e9 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGrantedAccessProjection.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGrantedAccessProjection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGranteesProjection.java b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGranteesProjection.java index 357edae549163ad676fd7663337230a9db51d346..d2eca1e2055c9dc846bccf2ff9f279a2feba109a 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGranteesProjection.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/AuditLogGranteesProjection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccess.java b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccess.java index 8840c0cf19ac04ced7aae8b28a66525586e7fb4c..32aee481a2cd9d121325820d79c5e84a2a1d656a 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccess.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccess.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccessRepository.java b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccessRepository.java index 6e0e8a2c320e2ec509c4557c839499d15ed3dcde..ae787cb7fc6fc3c15531a5153ba38983a8243e0d 100644 --- a/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccessRepository.java +++ b/backend/auditlog/src/main/java/de/eshg/auditlog/domain/model/GrantedAccessRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auditlog/src/main/resources/migrations/0001_initial.xml b/backend/auditlog/src/main/resources/migrations/0001_initial.xml index 2c6103f902c883715df291da78a0309514946477..27bd9738be1ad61529db756b9a2901d554d58bd5 100644 --- a/backend/auditlog/src/main/resources/migrations/0001_initial.xml +++ b/backend/auditlog/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auditlog/src/main/resources/migrations/0002_add_statistics_as_audit_log_source_value.xml b/backend/auditlog/src/main/resources/migrations/0002_add_statistics_as_audit_log_source_value.xml index 1f48aa2d1455d8c9dbde0bd235829f4f5d91220e..610bac79654c1e22280f1199af55a0e4f58e00fe 100644 --- a/backend/auditlog/src/main/resources/migrations/0002_add_statistics_as_audit_log_source_value.xml +++ b/backend/auditlog/src/main/resources/migrations/0002_add_statistics_as_audit_log_source_value.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auditlog/src/main/resources/migrations/0003_add_sti_protection_as_audit_log_source_value.xml b/backend/auditlog/src/main/resources/migrations/0003_add_sti_protection_as_audit_log_source_value.xml index 3cd50315a36091c2b5cda8f30ee3190b25865a5f..494a19ad85896b148775cfec184e264f824170e8 100644 --- a/backend/auditlog/src/main/resources/migrations/0003_add_sti_protection_as_audit_log_source_value.xml +++ b/backend/auditlog/src/main/resources/migrations/0003_add_sti_protection_as_audit_log_source_value.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auditlog/src/main/resources/migrations/0004_add_medical_registry_as_audit_log_source_value.xml b/backend/auditlog/src/main/resources/migrations/0004_add_medical_registry_as_audit_log_source_value.xml index 2a85ccc30f9f8795573bb47bbe24a84da69754f5..4b081a8f13d1ca8650ea6d95c15810c455574348 100644 --- a/backend/auditlog/src/main/resources/migrations/0004_add_medical_registry_as_audit_log_source_value.xml +++ b/backend/auditlog/src/main/resources/migrations/0004_add_medical_registry_as_audit_log_source_value.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auditlog/src/main/resources/migrations/0005_drop_default_revision_entity_created_by_not_null_contraint.xml b/backend/auditlog/src/main/resources/migrations/0005_drop_default_revision_entity_created_by_not_null_contraint.xml index 494a81eda86b1104f83d401a3dc594ee293c1d0c..b1c96f6bd323e5cbb821b768ae4cf242f56eb3e8 100644 --- a/backend/auditlog/src/main/resources/migrations/0005_drop_default_revision_entity_created_by_not_null_contraint.xml +++ b/backend/auditlog/src/main/resources/migrations/0005_drop_default_revision_entity_created_by_not_null_contraint.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auditlog/src/main/resources/migrations/0006_add_dental_as_audit_log_source.xml b/backend/auditlog/src/main/resources/migrations/0006_add_dental_as_audit_log_source.xml index 280ca6f4d9978915ab35f78c5c3f2a81a8d11b63..49d5cad6e8e402190a6dee9b88303b1b5887d10e 100644 --- a/backend/auditlog/src/main/resources/migrations/0006_add_dental_as_audit_log_source.xml +++ b/backend/auditlog/src/main/resources/migrations/0006_add_dental_as_audit_log_source.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auditlog/src/main/resources/migrations/0007_add_official_medical_service_audit_log_source.xml b/backend/auditlog/src/main/resources/migrations/0007_add_official_medical_service_audit_log_source.xml index 9d78c5bd61b6b051e0acbcdf45731eb71dff9757..787deaaa9f4432edeecdc40f71c5620ae420ba6d 100644 --- a/backend/auditlog/src/main/resources/migrations/0007_add_official_medical_service_audit_log_source.xml +++ b/backend/auditlog/src/main/resources/migrations/0007_add_official_medical_service_audit_log_source.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auditlog/src/main/resources/migrations/changelog.xml b/backend/auditlog/src/main/resources/migrations/changelog.xml index ec6ae80a82a3b4e22cd55f70ffab5458888cc114..2a4da4847c33634f678e0cc7ac5665eca5f92d2f 100644 --- a/backend/auditlog/src/main/resources/migrations/changelog.xml +++ b/backend/auditlog/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auth/src/main/java/de/eshg/security/auth/AccessCodeAndReverseProxyAwareHttpSessionRequestCache.java b/backend/auth/src/main/java/de/eshg/security/auth/AccessCodeAndReverseProxyAwareHttpSessionRequestCache.java index 2ef3584cb3bb5d979256be36b75c66ec405fe3bf..b2e612f0d6315c589427e36e3add9b219f37b4e3 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/AccessCodeAndReverseProxyAwareHttpSessionRequestCache.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/AccessCodeAndReverseProxyAwareHttpSessionRequestCache.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/AuthApplication.java b/backend/auth/src/main/java/de/eshg/security/auth/AuthApplication.java index dd4f9429d4c77d446daff501660c4867d87f66b2..488642c131f81e48d708876251229b6132846bf7 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/AuthApplication.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/AuthApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/AuthController.java b/backend/auth/src/main/java/de/eshg/security/auth/AuthController.java index 4c90410af0c638e960db1384197a7e533735a93c..844ffa762a6f2e21b758f1852c5c68cdd6cd9dae 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/AuthController.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/AuthController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/AuthProperties.java b/backend/auth/src/main/java/de/eshg/security/auth/AuthProperties.java index 590769e123ff49ba8011394398c5e9e3b311ade7..d4906afe8bbf120f9d6c6f5fda362c00805f539c 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/AuthProperties.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/AuthProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/AuthServiceSecurityConfig.java b/backend/auth/src/main/java/de/eshg/security/auth/AuthServiceSecurityConfig.java index 3d5cfd74f6cf93b7fe8f84b27a27ed3f114967c9..443b35d2a9069ae1e2fca5395431e4300c83abef 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/AuthServiceSecurityConfig.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/AuthServiceSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/BadRequestException.java b/backend/auth/src/main/java/de/eshg/security/auth/BadRequestException.java index 2a605cf452a55108039fb7554edf9c48a76a85ad..f5aee8f45157f23e9b408e9adbcd8ba2e3d39929 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/BadRequestException.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/BadRequestException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/CsrfTokenRequestHandlerFromCookie.java b/backend/auth/src/main/java/de/eshg/security/auth/CsrfTokenRequestHandlerFromCookie.java index a139d9e129e7592adb0a71b4995138675223dda9..52f2a9489c0243f20be4ca1a040a90e13483c37a 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/CsrfTokenRequestHandlerFromCookie.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/CsrfTokenRequestHandlerFromCookie.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/ExceptionHandlerAdvice.java b/backend/auth/src/main/java/de/eshg/security/auth/ExceptionHandlerAdvice.java index 980b86fdedff38ec28ed668888c8087c2e9ea399..3965f3f61fd9484c89abaaead633fddcf0237978 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/ExceptionHandlerAdvice.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/ExceptionHandlerAdvice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/ForbiddenException.java b/backend/auth/src/main/java/de/eshg/security/auth/ForbiddenException.java index 8e82f8dcdd27554b7d66cf37c84c0501ccdd02b4..7c87f7b67003c9f8e7bc032044a3ca8eb0d160a0 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/ForbiddenException.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/ForbiddenException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/LoginMethodAwareAuthorizationRequestResolver.java b/backend/auth/src/main/java/de/eshg/security/auth/LoginMethodAwareAuthorizationRequestResolver.java index 60442109fade22d4ca79c925c33c2c843eda3cec..a0fc560961dc9bbbcb404b25c7ba8ed609de03a3 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/LoginMethodAwareAuthorizationRequestResolver.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/LoginMethodAwareAuthorizationRequestResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/LogoutController.java b/backend/auth/src/main/java/de/eshg/security/auth/LogoutController.java index 132775293a50ad1bee030ef0b888fc5448f3a192..c773cb839271f58dc84f025b63f931acb108bdf7 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/LogoutController.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/LogoutController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/RedirectToAuthorizationEndpoint.java b/backend/auth/src/main/java/de/eshg/security/auth/RedirectToAuthorizationEndpoint.java index 7fb182c0d3a26978e04d9974832ffe2ecb48e9a0..749253f588abcb87f6648be2f77775a8e202fc0e 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/RedirectToAuthorizationEndpoint.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/RedirectToAuthorizationEndpoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareHttpSessionRequestCache.java b/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareHttpSessionRequestCache.java index 35ca11433836c8c91a60ace4e426b9dabc5a06b4..213b216b1a3f5ced8bad67be5b72264cd4900dfe 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareHttpSessionRequestCache.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareHttpSessionRequestCache.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareSavedRequestAwareAuthenticationSuccessHandler.java b/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareSavedRequestAwareAuthenticationSuccessHandler.java index a6b8d5e335a42f94e9a99be96819ce3cab35b029..d1729518b88a8fae33dfa965624b8a2a2efb7865 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareSavedRequestAwareAuthenticationSuccessHandler.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/ReverseProxyAwareSavedRequestAwareAuthenticationSuccessHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/UnauthorizedException.java b/backend/auth/src/main/java/de/eshg/security/auth/UnauthorizedException.java index 5dd0c0280aaf5e429e22c27f7dda33da7e7c5bb7..abcf124b356c2584745bb36790251c6953465996 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/UnauthorizedException.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/UnauthorizedException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/UserAgentFilter.java b/backend/auth/src/main/java/de/eshg/security/auth/UserAgentFilter.java index 99d3a133bba1b0cc8389e4d8bb35e1c5490bb022..0d8ba26ba13d6245c1dae651fdc855f24c3fcb65 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/UserAgentFilter.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/UserAgentFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/login/AccessCodeLoginMethod.java b/backend/auth/src/main/java/de/eshg/security/auth/login/AccessCodeLoginMethod.java index 4523e6d1dc406e6ee49c61d158b30da280633d80..4ad9baa297304e05ae569e4a6d560bff4052ddc7 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/login/AccessCodeLoginMethod.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/login/AccessCodeLoginMethod.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/login/BundIdLoginMethod.java b/backend/auth/src/main/java/de/eshg/security/auth/login/BundIdLoginMethod.java index c49e18bd350c9e3e40a236af5428ec0290c50408..1a728f9b36714d87ff207d5d231f1dd03118bd22 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/login/BundIdLoginMethod.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/login/BundIdLoginMethod.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/login/LoginMethod.java b/backend/auth/src/main/java/de/eshg/security/auth/login/LoginMethod.java index 9383062bb0b087eca1f325e6d2c41afabb872a58..be7dc0453c3dd31c6fc930a4a2e8ceac50b014fc 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/login/LoginMethod.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/login/LoginMethod.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/java/de/eshg/security/auth/login/MukLoginMethod.java b/backend/auth/src/main/java/de/eshg/security/auth/login/MukLoginMethod.java index 6abef596e722f5e86a361949b84ef838b928ebe1..b272da3fcfea6e958bd8ce66001747a79330eb56 100644 --- a/backend/auth/src/main/java/de/eshg/security/auth/login/MukLoginMethod.java +++ b/backend/auth/src/main/java/de/eshg/security/auth/login/MukLoginMethod.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/auth/src/main/resources/static/browser_update_required.html b/backend/auth/src/main/resources/static/browser_update_required.html index f2c06096d8650329011fb03b855b9bfccfae05c6..50d6ed5b4cfff81aa000a75a6a26cf60229de5f5 100644 --- a/backend/auth/src/main/resources/static/browser_update_required.html +++ b/backend/auth/src/main/resources/static/browser_update_required.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auth/src/main/resources/static/login_error.html b/backend/auth/src/main/resources/static/login_error.html index d5a2f1f39234230d2c75f32bc39b8437049e06c2..245f9d123aa898aa85d21d3acc21500dc3c966d2 100644 --- a/backend/auth/src/main/resources/static/login_error.html +++ b/backend/auth/src/main/resources/static/login_error.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/auth/src/main/resources/user-agent-filter.yaml b/backend/auth/src/main/resources/user-agent-filter.yaml index a71a2d798b1430c6c23fc1d3643a779a54605d5a..82307c2c60c4c40a34f4cfa7f4b04f68ae8f09fd 100644 --- a/backend/auth/src/main/resources/user-agent-filter.yaml +++ b/backend/auth/src/main/resources/user-agent-filter.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 eshg: diff --git a/backend/base-api/src/main/java/de/eshg/base/GenderDto.java b/backend/base-api/src/main/java/de/eshg/base/GenderDto.java index 8c0a7dad4621c33c57359d737c452342e6ca5b3e..fd2431707db03bff52735a1b4346c540430a6bc1 100644 --- a/backend/base-api/src/main/java/de/eshg/base/GenderDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/GenderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/HasTypeDiscriminator.java b/backend/base-api/src/main/java/de/eshg/base/HasTypeDiscriminator.java index b5478f3a3c5773fc0b425f2d89c914d5cd256da0..e5e6c493233bb3a32f03db83b9fc4e2f58d65442 100644 --- a/backend/base-api/src/main/java/de/eshg/base/HasTypeDiscriminator.java +++ b/backend/base-api/src/main/java/de/eshg/base/HasTypeDiscriminator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/SalutationDto.java b/backend/base-api/src/main/java/de/eshg/base/SalutationDto.java index 435f1b2bce0764f5669331e0ea8a74e728ab17d5..28ca3258ca552a9d7479298b7d50806940ecc9e5 100644 --- a/backend/base-api/src/main/java/de/eshg/base/SalutationDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/SalutationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/address/AddressDto.java b/backend/base-api/src/main/java/de/eshg/base/address/AddressDto.java index 7a536d347e741ae7e3cab752918efdb365301e8f..fbbcc7936c8c2d956cbc6ca5495abca763d7aac9 100644 --- a/backend/base-api/src/main/java/de/eshg/base/address/AddressDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/address/AddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/address/DomesticAddressDto.java b/backend/base-api/src/main/java/de/eshg/base/address/DomesticAddressDto.java index 10b4b8ba991b52866ce54f04972afa207b6d5555..de0141c7ff55428c23e242265583eed9e0cbc0ca 100644 --- a/backend/base-api/src/main/java/de/eshg/base/address/DomesticAddressDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/address/DomesticAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/address/PostboxAddressDto.java b/backend/base-api/src/main/java/de/eshg/base/address/PostboxAddressDto.java index 239a3fbceb61da02e5cb858b3038e49bc668ef35..bf3840a56af6cf7c7ad5ee79ff37b39d9512a662 100644 --- a/backend/base-api/src/main/java/de/eshg/base/address/PostboxAddressDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/address/PostboxAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/bundId/BundIdPersonLinkApi.java b/backend/base-api/src/main/java/de/eshg/base/bundId/BundIdPersonLinkApi.java new file mode 100644 index 0000000000000000000000000000000000000000..c2e61ebcff4d11cb527751cc53e5b64960627fbb --- /dev/null +++ b/backend/base-api/src/main/java/de/eshg/base/bundId/BundIdPersonLinkApi.java @@ -0,0 +1,34 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.bundId; + +import de.eshg.base.bundId.api.AddBundIdPersonLinkRequest; +import de.eshg.base.centralfile.api.person.GetReferencePersonResponse; +import de.eshg.rest.service.security.config.BaseUrls; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import jakarta.validation.Valid; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.service.annotation.GetExchange; +import org.springframework.web.service.annotation.HttpExchange; +import org.springframework.web.service.annotation.PostExchange; + +@HttpExchange(url = BundIdPersonLinkApi.BASE_URL) +public interface BundIdPersonLinkApi { + + String BASE_URL = BaseUrls.Base.BUNDID_PERSON_LINK_API; + + @PostExchange + @ApiResponse(responseCode = "200") + @Operation(summary = "Establish a link between a BundId user and a person") + void createBundIdPersonLink(@RequestBody @Valid AddBundIdPersonLinkRequest request); + + @GetExchange(BaseUrls.Base.BUNDID_SELF_USER_PERSON) + @ApiResponse(responseCode = "200") + @Operation( + summary = "Get the reference person linked to the BUNDID user which is currently active") + GetReferencePersonResponse getReferencePersonLinkedToBundIdSelfUser(); +} diff --git a/backend/base-api/src/main/java/de/eshg/base/bundId/api/AddBundIdPersonLinkRequest.java b/backend/base-api/src/main/java/de/eshg/base/bundId/api/AddBundIdPersonLinkRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..31312370d935d7cdf25d17bfb303666eea8c85a0 --- /dev/null +++ b/backend/base-api/src/main/java/de/eshg/base/bundId/api/AddBundIdPersonLinkRequest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.bundId.api; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import java.util.UUID; + +@Schema( + description = + "Request used for establishing a link between a BundId user and a reference person") +public record AddBundIdPersonLinkRequest( + @Schema(description = "The id of the bundId user", example = "To be added") @NotBlank + String bundId, + @Schema( + description = "The (external) id of the reference person", + example = "be9831d4-dc25-48d8-9bfe-4c0b54bfb2c1") + @NotNull + UUID referencePersonId) {} diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarApi.java b/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarApi.java index f320190554bb84d0cfa1e141de749440d46151e1..62ea6f94ac3354ed04261eb0666b3185bf62693d 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarEventApi.java b/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarEventApi.java index d4cedc4135906f003b7a39257b8550d6be4377c9..74580b84a97a6aea36ef8001689b1811772d2a44 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarEventApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/CalendarEventApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/AddGlobalCalendarRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/AddGlobalCalendarRequest.java index 7e3f0e2ff9f08d21697b10784c99b9313bdcba39..40bb592a46b56e35b5708c1e7c7426c71d8879c1 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/AddGlobalCalendarRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/AddGlobalCalendarRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/AugmentableEvent.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/AugmentableEvent.java index 55b9b553889a8b39a624e91a8a1ebd907ea347ab..b80de03ed62edfb798585e51ed5e66424e9960f1 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/AugmentableEvent.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/AugmentableEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventRequest.java index af0101fa5e884cd86c5103f0b552108144663282..76e41d96cd70a465c7154fd5d7a8a7148248a167 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventTypeDto.java index dd1d35768bb33874ac9e7c187a12031ba473807d..a1c821c5412b3d156be10e9ed452e51ccde5a7b3 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BaseEventTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfCalendar.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfCalendar.java index 5e016ecfa4f669405f13f9b2d821aaa763f227f6..3862204a39005c8d671adba91bcc55457f0a23f5 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfCalendar.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfCalendar.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfResource.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfResource.java index 107e64a20ff3650661004939ab6ba6778c838547..8d6fd82277e0f998508520a1ccbee347f97ab6ba 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfResource.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BlockingEventsOfResource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BusinessCaseEventRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BusinessCaseEventRequest.java index 99a6b1da2f8a6a20fd0fcee29d376b802d6f3fc3..7c86aa326ff948f5ba2436469373097c475c2dd2 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/BusinessCaseEventRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/BusinessCaseEventRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarDto.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarDto.java index 2106bf907ccafb15c64b393849b73df7bb37827f..07c702106157b2d321c431b041de61aae7152505 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarTypeDto.java index f3228ae0022da83ec44074eaa357b2539e3b4e3a..3f47f4a41080cefe9fb808be0ecb4011676e725e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/CalendarTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEvent.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEvent.java index 6510f7a24717c74ee7dd3264c6aa49641275980e..f0e683f2b0b17d336a0cf16567b86febf3f266f1 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEvent.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEventWithoutCalendarId.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEventWithoutCalendarId.java index 6f9b3903984d8aa41eb924f99b7ff2ae8492cd6e..d7b57324eb439b5356ccc039b402e05e65aef0d9 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEventWithoutCalendarId.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/DetailedEventWithoutCalendarId.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventMetaData.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventMetaData.java index 33e0edf737c0799033e2bdd858ac19187b5036d1..f2af6ccec34516e0a677443baa315f626fa34b29 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventMetaData.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTimeData.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTimeData.java index 1bfc487cad788ac24f4031410de01495bc5eb99a..52fe02d1ef79714c3db523869294b5d72853f5d7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTimeData.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTimeData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTypeDto.java index 66842ffa64ba5272d968f151198688ce50360a0a..e2206674de2ccfb60bb0663a0e198fdefc01806a 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventWithTimeData.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventWithTimeData.java index 920109650996d58477505fe4fe0fe73064325d3a..137782c3e46b57cdb746c5a54c81e7b97d41df00 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventWithTimeData.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/EventWithTimeData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsRequest.java index 988a92f8a1ccb54517f3ddd024d298455d9952ae..8cc04990870d3515affba07156d7e3695d20709f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsResponse.java index 4bc6a6479b99c77261d29b3fa7aa813a59ee87ae..b234e08b0892bdbb9ba2b79fe0e453115e265d31 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfCalendarsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesRequest.java index fcbfed888e4e52444e7654cbc0d8cf8441d4809b..565b4132916e4a74b29c429002e7b676bea8ef96 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesResponse.java index a80f2fdd35b83fe6731db7decacae8f89b8c18c0..003c6e936a43ec7a4082b61eecec9dddfd89dc48 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBlockingEventsOfResourcesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBusinessCaseEventResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBusinessCaseEventResponse.java index 68304f7b4d3b051d303bede7861c99e0ee7c290e..25883a9725a69a54e611fa9059cbb5f9fcfa112b 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBusinessCaseEventResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetBusinessCaseEventResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetCalendarsResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetCalendarsResponse.java index e14c0510f97c79991b1ead4bcbedeab4be7bfefd..00b1e98dba5f8e6dd45322250c79f4395c0a607e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetCalendarsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetCalendarsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsOfCalendarResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsOfCalendarResponse.java index b1fe8e94964188aec065f5ba8d101a864beab282..7787aeb327b23b44d5d29dd1edba8c403c3ee40b 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsOfCalendarResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsOfCalendarResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataRequest.java index 187bf61f7b3ff2e7ed5a94250b1f2c499a5df25e..14403b79b3c9b6a2d58cee21cc6219dba932c20e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataResponse.java index b2c4c4a4edb8e86558e7c5c5443a630a5ac15626..ee4e289165a113f63b3cc32b2c2af6df175ed7e7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetEventsWithTimeDataResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetRelevantCalendarsResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetRelevantCalendarsResponse.java index 9a470ddc5a28f1b82ee3b37e6f25e22049c257c6..98f6d6085e59e836ad82fd0baf83f45cd0a9d999 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetRelevantCalendarsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetRelevantCalendarsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsRequest.java index d7ed9ad712bd5dd134e6e65097c7ede7c6b55d44..202a7e730f0be10adad0c32c08ef68a7b68b39cd 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsResponse.java index 412d964aad851bfd42eecdd5639f4808a74aa566..08fea274b0fb8113b0496e2306237f2c441e731f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetResourceCalendarsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsRequest.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsRequest.java index 73c24de8656ec975f5b2505009fabee87e4360ac..dae828525729a362f3e059cc8d1dfe1fa9df9bf9 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsResponse.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsResponse.java index fa6b2eeec34de733603babf47f631f4c54612347..c09abf362fff7f6cabced477a9b313d2eab31b8c 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GetUserCalendarsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GlobalCalendar.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GlobalCalendar.java index 8a32f8ce6170a605e092aeb0d5f7bfb6d1a0b339..0ce0d3204fbaf03e2bb5632344f48c999bd8dc7e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/GlobalCalendar.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/GlobalCalendar.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/ResourceCalendar.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/ResourceCalendar.java index d2d70e3faf28d000eb9503fceaead78ed1fc3316..5337d0fa640a67cccf87ac2585c9ddc6eb881f40 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/ResourceCalendar.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/ResourceCalendar.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/TimeRange.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/TimeRange.java index 1b4b12c19ca44078bce22046a966b836558d2d83..5ac820b0c8fcaaf2ee5a39f0d0aac79d5b8a6dbc 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/TimeRange.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/TimeRange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserCalendar.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserCalendar.java index 404eb11aecf8b66f7fdc9adfc1256bc22e792686..2a4ec7c3c4d1c073bad74408d190359098f6fe24 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserCalendar.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserCalendar.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserGroupCalendarInfo.java b/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserGroupCalendarInfo.java index 17c6eae2eedcbdfe176680d18fc81b14299bc3d2..80ef75dd038258e187f0009d79552b518f184349 100644 --- a/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserGroupCalendarInfo.java +++ b/backend/base-api/src/main/java/de/eshg/base/calendar/api/UserGroupCalendarInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/FacilityApi.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/FacilityApi.java index ad4df6cb5cd668bae6a9eff53a3e36590bd6c8c7..59d75be8ceb9e945ac301ee804a5f91fa10f6935 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/FacilityApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/FacilityApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/PersonApi.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/PersonApi.java index bf9320a6cc22c8a1541d380b7d6182aa3edd9407..87e84ddd2011086ea1d842a93834b0a62876261b 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/PersonApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/PersonApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DataOriginDto.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DataOriginDto.java index e7f9ab0cc0f0c4acb332fda7d31318d5ef883659..9f674c0b6873a99174cbf45d681302045e8d54be 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DataOriginDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DataOriginDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DeleteFileStatesRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DeleteFileStatesRequest.java index 513d1aea3597ffbd78f86ef9ddcd5ffd7470a6bc..8287cef364538ce64b539a43a3fd5fa2a72f5611 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DeleteFileStatesRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DeleteFileStatesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DiffDto.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DiffDto.java index 4386eb1b09fb506c74bdf78c639cecc82ad92fa6..7abf8bd0a4ded0fffb0fc40ee50e634d3e6fd2bd 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DiffDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/DiffDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/GetFileStateIdsResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/GetFileStateIdsResponse.java index 04be3918d7381c198b3988ca387f3e2783eb68b4..b71e63b64be94abbf04095c00f3d02e0281c82d5 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/GetFileStateIdsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/GetFileStateIdsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateRequest.java index 7289626a7064e0531bd321d0551033f430854271..7de4e9992b90c784562a0d62a402509ac9e23dcf 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.facility; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import de.eshg.base.centralfile.api.DataOriginDto; import io.swagger.v3.oas.annotations.media.Schema; @@ -23,7 +23,7 @@ public record AddFacilityFileStateRequest( example = "be9831d4-dc25-48d8-9bfe-4c0b54bfb2c1") UUID referenceFacilityId, @NotNull @Size(min = 1, max = 300) String name, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Valid List<FacilityContactPersonDto> contactPersons, @Valid AddressDto contactAddress, diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateResponse.java index f148236dc774c826807afd1de50d702d2d553d6a..d1c62e84f143b8274b63294ebb32d1b7ce7ad874 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStateResponse.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.facility; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import de.eshg.base.centralfile.api.DataOriginDto; import io.swagger.v3.oas.annotations.media.Schema; @@ -23,7 +23,7 @@ public record AddFacilityFileStateResponse( @NotNull UUID id, @NotNull @Size(min = 1, max = 300) String name, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotNull List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Schema( description = diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesRequest.java index e4a66d25c5631e3fb94503ad6e2ef1256eba4c4a..ca1a649a2940b3f89ec1eb02bd06a3f6e3039591 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesResponse.java index 2af2df2b232a4b926caeb468a420c35a903a4102..44e2fce993c174639bf494682e85b78ec1229da9 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/AddFacilityFileStatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/ExternalAddFacilityFileStateRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/ExternalAddFacilityFileStateRequest.java index 4935c59aca1d6304b701d15169ea8175e0cd02fe..34f33c9f2c881a1c3e2946df4a92634ca50a20d2 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/ExternalAddFacilityFileStateRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/ExternalAddFacilityFileStateRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.facility; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; @@ -16,7 +16,7 @@ import java.util.List; @Schema(description = "Request used for adding facilities from external sources") public record ExternalAddFacilityFileStateRequest( @NotNull @Size(min = 1, max = 300) String name, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Valid List<FacilityContactPersonDto> contactPersons, @Valid AddressDto contactAddress, diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDiffDto.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDiffDto.java index a1adb9f38b24b2eca080bd6b97003b903d47bb8d..1ad4508210d4475a2e997f3fef222d2c6bd612a4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDiffDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDiffDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDto.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDto.java index dcd49f90b0146606c8f33662dad848f400734137..eac10379835a7bda4f52a261188d4535183ff366 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityContactPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetails.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetails.java index 8db9feac00e7e8de14c957f338fa6944cb96dc56..8f53a86c36e68779a49148ac8c9751f517bd0a52 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetails.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetailsDto.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetailsDto.java index 433ab12344bf486ea9d781aaffd90476eed176ff..bce13382614e924879167cf200e4aa21e35c18c6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetailsDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/FacilityDetailsDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.facility; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; @@ -16,7 +16,7 @@ import java.util.List; @Schema(name = FacilityDetailsDto.SCHEMA_NAME, description = "The data relating to a facility") public record FacilityDetailsDto( @NotNull @Size(min = 1, max = 300) String name, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(max = 23) String> phoneNumbers, @Valid List<FacilityContactPersonDto> contactPersons, @Valid AddressDto contactAddress, diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityDiffResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityDiffResponse.java index 53aca3f0371e73575496cb29800ed20fb1f3852e..41ab83ef2b9ce4449df440ebda7df9008a571249 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityDiffResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityDiffResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStateResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStateResponse.java index 9af94f3f99777219d964923fb409ea488a4e1b99..2d14bf51191f23721fde25e832d728b77d3900a8 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStateResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStateResponse.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.facility; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import de.eshg.base.centralfile.api.DataOriginDto; import io.swagger.v3.oas.annotations.media.Schema; @@ -20,7 +20,7 @@ public record GetFacilityFileStateResponse( @NotNull UUID id, @NotNull @Size(min = 1, max = 300) String name, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotNull List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Schema( description = diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesRequest.java index 781412e64b8382b6eaf0155feffc8176e2c7939e..46a5726753d01343bc1fd9d46865e8aa8edf47dd 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesResponse.java index 054cec5edeb8579bb81f5439a3810280e15a8275..47c60f7092b5903728a1a6df104210115fde815f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetFacilityFileStatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetReferenceFacilityResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetReferenceFacilityResponse.java index 9878290f1c9c4f70895496dbccbed3cd2ec4f0e9..98e4e8a7bb5e090b9cf4000704167d6261c245ea 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetReferenceFacilityResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/GetReferenceFacilityResponse.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.facility; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import de.eshg.base.centralfile.api.DataOriginDto; import io.swagger.v3.oas.annotations.media.Schema; @@ -28,7 +28,7 @@ public record GetReferenceFacilityResponse( @NotNull long version, @NotNull @Size(min = 1, max = 300) String name, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotNull List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @NotNull @Valid List<FacilityContactPersonDto> contactPersons, @Valid AddressDto contactAddress, diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/PutFacilityRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/PutFacilityRequest.java index cd282e6ea79e252cac640b9971efd099bf3930c1..b5a4e6a4e929baeab56c5fbf4ab7fb4b9af9da3c 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/PutFacilityRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/PutFacilityRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/SearchReferenceFacilitiesResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/SearchReferenceFacilitiesResponse.java index 4a3f39d4b9c8590ffd397aeb648c569621ca5e7c..71ad00a2e77da9e763b34ffb667d316c9c73d728 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/SearchReferenceFacilitiesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/SearchReferenceFacilitiesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/UpdateReferenceFacilityRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/UpdateReferenceFacilityRequest.java index e1bcc188203da5c22e06850baf2a6f4055aecd7b..2c612b7cfa49e541296fceb74b3c8cec2f2cf3f9 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/UpdateReferenceFacilityRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/facility/UpdateReferenceFacilityRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateRequest.java index 0c9e8376b8f06d13a1ef3e5fa4a8c79e623886f3..47e312cca6b4224c8d80ea8ef41f4905f1fc9a66 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.person; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -35,7 +35,7 @@ public record AddPersonFileStateRequest( @Size(min = 1, max = 40) String nameAtBirth, @Size(min = 1, max = 50) String placeOfBirth, CountryCode countryOfBirth, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress, diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateResponse.java index 3e8f75104992880e6e824d0b85d1bdec2125efd5..582f68297ddcaba67091a4abb0fd7664cc204dd0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStateResponse.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.person; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -33,7 +33,7 @@ public record AddPersonFileStateResponse( @Size(min = 1, max = 40) String nameAtBirth, @Size(min = 1, max = 50) String placeOfBirth, CountryCode countryOfBirth, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotNull List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Schema( description = diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesRequest.java index 96905661ac14021944f828e01cb4526bbb51461f..c3d7ad0f2e99eeff018e86c9aa9a933dd1795c57 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesResponse.java index b871a337984a2d64e2a43a44049df2de07eac54c..6cf9274fa820cb07eb9bd047acc2ed396dfb77d4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/AddPersonFileStatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/ExternalAddPersonFileStateRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/ExternalAddPersonFileStateRequest.java index 9e454fc6f875fea33d3778d232890df7bc1bdc37..e2c93e9c5d0dc0d13bb9b243df6d43f2050fbd92 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/ExternalAddPersonFileStateRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/ExternalAddPersonFileStateRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.person; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -28,7 +28,7 @@ public record ExternalAddPersonFileStateRequest( @Size(min = 1, max = 40) String nameAtBirth, @Size(min = 1, max = 50) String placeOfBirth, CountryCode countryOfBirth, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonDiffResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonDiffResponse.java index f1c4acc46dd82b386d892b98e14cab8ea07c0034..c75eb5a1de6fc881c37efc674fdae8eba9688f73 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonDiffResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonDiffResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesRequest.java index 5c879f6aa4d3f7ff08e5d8392576a72b19d3a1d8..a920d29f0badd58b4910bd630bea2f016c04a9c6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesResponse.java index 9271a700793ba4337317c5db84b651c5d0c8aa25..f675616e2d26c98b91f653d686b8e1712d3d18e6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateIdsByKeyAttributesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateResponse.java index fed54cb0dc442276c52f05da003b6e01e5a2cf13..26ce7cf59286c073fd53bd04a41648bbe46d0900 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStateResponse.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.person; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -32,7 +32,7 @@ public record GetPersonFileStateResponse( @Size(min = 1, max = 40) String nameAtBirth, @Size(min = 1, max = 50) String placeOfBirth, CountryCode countryOfBirth, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotNull List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Schema( description = diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesRequest.java index 3657e2db5724d0cd066b63c11265e79e98baa3eb..1bddabb8003d0e9b40cb64ec26a934450f9b48f1 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesResponse.java index 6bcda160f310565da76c3504522a011fbc6b9c1d..c4ed13caeb1d680075e4d7eef40924fa1c2f477a 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesSortParameters.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesSortParameters.java index 13633c8ea9cbc52d04df742a806aec42923fa41b..c1fbc4a2a5dbf740c9fd94794b718d17c1612031 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesSortParameters.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonFileStatesSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonsSortKey.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonsSortKey.java index b2269f01579b6c9a267dc4232413334a3b935df9..f228494d19de5721f5ebd650c949c7032fd871a4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonsSortKey.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetPersonsSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetReferencePersonResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetReferencePersonResponse.java index 2f29dd5f9c5f4939d9d7da6975764a56d3af1a6f..0957e9948947026283bdeeec02917b3fe6888ef0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetReferencePersonResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/GetReferencePersonResponse.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.person; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -37,7 +37,7 @@ public record GetReferencePersonResponse( @Size(min = 1, max = 40) String nameAtBirth, @Size(min = 1, max = 50) String placeOfBirth, CountryCode countryOfBirth, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotNull List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress, diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetails.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetails.java index 15283724880a17085de009b595c0dd5f63dc3505..839aa9f1be3f2e4d7ede6ad28ee80d33f7980c2a 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetails.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetailsDto.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetailsDto.java index 0e27d0ec2d3dafef24649ec1c3ae36411ab47a33..4bf62afd05f69c93e7c0dbf2b013d7bc899d36ac 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetailsDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonDetailsDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.centralfile.api.person; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -28,7 +28,7 @@ public record PersonDetailsDto( @Size(min = 1, max = 40) String nameAtBirth, @Size(min = 1, max = 50) String placeOfBirth, CountryCode countryOfBirth, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonKeyAttributes.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonKeyAttributes.java index debb4ae35b5ee80d517bc26074a165856dc0ef2c..ce9987f4af2ffc08cd95b228ca24a94ce68ce395 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonKeyAttributes.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/PersonKeyAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SearchReferencePersonsResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SearchReferencePersonsResponse.java index 40ee0ea0b68ea82758034dfb957ad2f1aca3472a..3901fb91af161ec35f909e99b5d8664705103f7a 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SearchReferencePersonsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SearchReferencePersonsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SyncFileStateRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SyncFileStateRequest.java index 1e5394a9e93e44a354350f68e7f71fb37f941c49..74eee2ada2b616ef76dc783366f6763799993fb0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SyncFileStateRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/SyncFileStateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkRequest.java index 49524e7f60711f655a68c6907ead990ee015c894..3fddd966e4e7211c72b8be1af98dfa0dd365ddc3 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkResult.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkResult.java index eeac61b490d79aa89790c8fc9bd05e07cfda7d7c..410a5d109d77e7e4c26970c1108f925b80104fab 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkResult.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonInBulkResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonRequest.java index 671685bc4d57628f8639a6a99247e69d30be7c8d..767c13338985d06d3822f3c6a277a376d3597077 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsRequest.java index a6fac360539312485d5402de443560b7c035a9e7..9af40d89c5156bd44e0335c9dbe39d3b783d0f31 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsResponse.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsResponse.java index 88ed254329249ac7f686c99577c0937ad0d1ca3b..c68bf78ce8c3296364e52d12035583720a8c82a7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdatePersonsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdateReferencePersonRequest.java b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdateReferencePersonRequest.java index 982e509b4eab97dad03674106eb0dc5074b140ce..2f923937732f7fb2db4af53ae4595e6fb27217f0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdateReferencePersonRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/centralfile/api/person/UpdateReferencePersonRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserApi.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserApi.java index ca66b2a92779f3d4ecdcbb9b63c599280f917c36..f316dec6bee52352ac7ef83fb76ea452e2ea06ee 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenUserApi.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenUserApi.java index 0346e5a6a09ada17c578bfb4a1146b121acb5317..9eaaf00b361357d3851756e37320e33d9d8bf2e1 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenUserApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/CitizenUserApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddAnonymousUserRequest.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddAnonymousUserRequest.java index 6482b4741e6843678ed05154b6ac4e4a80f89606..fa46f87fa7d7d282790d2c37616ab400a7faacc6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddAnonymousUserRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddAnonymousUserRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddCitizenAccessCodeUserRequest.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddCitizenAccessCodeUserRequest.java index 6b03f3d16fd260e36daf7f635b4df17828428747..d1261445a897febd0139700b9213a240c8e06cd2 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddCitizenAccessCodeUserRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/AddCitizenAccessCodeUserRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenAccessCodeUserDto.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenAccessCodeUserDto.java index e6117bf68e6c6c9cb47d9155aa1efd6b1830d851..79d8550608d980a29836086e633e169aa4b8fb0e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenAccessCodeUserDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenAccessCodeUserDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenUserRoleDto.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenUserRoleDto.java index 82b66c1809ebf9a49049a0a90bd76685f07ff08a..00491237745ed7cca8be0ba0233e79d2ab9146a7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenUserRoleDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/CitizenUserRoleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/GetCitizenPermissionsResponse.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/GetCitizenPermissionsResponse.java index 5841380784b2794ac1a77e1630e605e0dc9e9fab..a4184dda844f324ad2c97d843d6d812d83e569dd 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/GetCitizenPermissionsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/GetCitizenPermissionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/VerifyPinRequest.java b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/VerifyPinRequest.java index 2700820c60b7b500bd3fce7d83db3dc36e453798..5866193c2756620bd2ad11a153d216d604badb7f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/VerifyPinRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/citizenuser/api/VerifyPinRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/config/PublicConfigApi.java b/backend/base-api/src/main/java/de/eshg/base/config/PublicConfigApi.java index 8470bb661bbcf4332586e7e6fe8a25c56564d9f2..10b024f0db8d7f86168f30449d336302602062c0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/config/PublicConfigApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/config/PublicConfigApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/config/api/GetConfigurationResponse.java b/backend/base-api/src/main/java/de/eshg/base/config/api/GetConfigurationResponse.java index 2e1d4af95515b10ccd8f1d35bdcf8b44b986efbe..8a31c9899a9936b3b9315333b432ccd49e28650a 100644 --- a/backend/base-api/src/main/java/de/eshg/base/config/api/GetConfigurationResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/config/api/GetConfigurationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/ContactApi.java b/backend/base-api/src/main/java/de/eshg/base/contact/ContactApi.java index 252c0ed658096b36eebf5eee5557a56028f5fa78..b3ef8dd8695dd137a0103ee1b0893bd51d70e845 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/ContactApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/ContactApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsRequest.java b/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsRequest.java index 0380ec44f23d236bdc0beedd40f3fb49fddf7e48..58fa6677ad0aebf76df007cee9fb4cc0f7f5b3ce 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsResponse.java b/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsResponse.java index 20ecc0518d57217290f8d46bea348b35c1701781..41feabb59f83243626708511c9ea5e45ba86460d 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/GetContactsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractAddContactRequest.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractAddContactRequest.java index 0899549e90268077318a74fb92aeb91bbe83e5e9..30ba1e48fa0a0706d1e1e7e0f28ffed971a034cc 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractAddContactRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractAddContactRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractContactChange.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractContactChange.java index 1086d1bca0a4906aa39682f19e0debcc5e90fbb0..2408ce6ff9e81700ddd6521be618d7b306967ae6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractContactChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractContactChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractUpdateContactRequest.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractUpdateContactRequest.java index 237f1fb7e40e7083119f1c0d00fb09685ae8c85f..a185a89901006e2a60c3e72860228292b6cec867 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractUpdateContactRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/AbstractUpdateContactRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/AddInstitutionContactRequest.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/AddInstitutionContactRequest.java index 8b86a28167b66afbc99c7a2d376e678030c27adc..2d6b7aed2dd2aa3ed0da1f3bd0d5414c579d011f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/AddInstitutionContactRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/AddInstitutionContactRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.contact.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; @@ -20,7 +20,7 @@ public record AddInstitutionContactRequest( String name, InstitutionContactCategoryDto category, List<@Size(min = 1, max = 23) String> phoneNumbers, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, @Valid @NotNull AddressDto contactAddress, @Valid AddressDto differentBillingAddress) implements AbstractAddContactRequest { diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/AddPersonContactRequest.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/AddPersonContactRequest.java index 0e3ca6848cb6fd7f68d5d9cbfac57ee78b659123..d525035f7054b1e66a83ff53415d6c3d295b6dd9 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/AddPersonContactRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/AddPersonContactRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.contact.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -34,7 +34,7 @@ public record AddPersonContactRequest( @Size(min = 1, max = 255) String externalChatUsername, List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) implements AbstractAddContactRequest { diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressChange.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressChange.java index 9f15960da5e3d6cf85f1521078899df0beaf812f..be254116d011c871bf3d39e6ad7444f279176aba 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressReference.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressReference.java index bbad77271631dab58b11048f805ec813c9ced9a2..b1b9d902a815e24a29fb73bd526ab6bb9f3786b0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressReference.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressReference.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressUsage.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressUsage.java index 98bda963ed520f46ffe4e3ff247268ef55bbac63..9090ad23d602f2040e76833f66cf26ef104a9b85 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressUsage.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactAddressUsage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactChange.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactChange.java index b8c28f5ab864e840822cdce0ff7fd654ae1e6231..cad1f8bcef0cf048d2dc1b2d5aa217b374ef317e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactDto.java index f3ee3407f73c64b75ec313f0e0257922f65da4ca..c569e9a4a8f69d1c3e94e94d2dd9c233500102a4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactFilterParameters.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactFilterParameters.java index 455b63d4b810b501f563c331b115f0999c569e39..b6b2c0ba6439a2df9967cb7033303926e4aa1a46 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactFilterParameters.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactHistoryEntryDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactHistoryEntryDto.java index 14468b2c1edc3b3cd00e3f381ea94fa215229a5b..9e7bd0c53f7f5c8c7faf82e5d0752bcd5f4dd038 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactHistoryEntryDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactHistoryEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactSortKey.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactSortKey.java index 31b6248bbc5bb8fdb5007c34be80d91e1e98b3fc..4693c06734d10fdfdae6b7bc4fd6f86aad5e6a08 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactSortKey.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactTypeDto.java index bf2707d12cfc54c1c326ac30214c1b484d7b5415..a55f29970706da809c6ba3d3c57c7edd24430012 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ContactTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/DomesticContactAddressChange.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/DomesticContactAddressChange.java index ede7782795a7edf4d85e42ab30bc996545996170..677e4c3e1654757d7686e5d9f5c3e5218c4b80aa 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/DomesticContactAddressChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/DomesticContactAddressChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/GetContactHistoryResponse.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/GetContactHistoryResponse.java index 1faced0ee63def6a43f97b298af51e6c24efbf25..36817836a85a9b7458277a011a5d31aa5b640153 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/GetContactHistoryResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/GetContactHistoryResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/GetMergedContactsResponse.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/GetMergedContactsResponse.java index 108b56d80629ebb861312a57264b15d8f941f6d9..3e691d1e6f2ab1fe1750644d59044842e23289de 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/GetMergedContactsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/GetMergedContactsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportInstitutionContactResponse.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportInstitutionContactResponse.java index 03dacb31debb43276b4f368cd154dd77eea5834b..4f2034264fa84ac08e5f681af44c77d20da56570 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportInstitutionContactResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportInstitutionContactResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportPersonContactResponse.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportPersonContactResponse.java index 14481f27047f40b3adc2b2d2efb15a1fed909729..8656fdeb4ae4c42c342ae7337e75a8a7582acbfc 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportPersonContactResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/ImportPersonContactResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactCategoryDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactCategoryDto.java index af6141a37dd1f1eda8605a95cc72d10876e86a71..af64a78f6ddb2305e52dced80c0923d73fa45295 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactCategoryDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactCategoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactChange.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactChange.java index d0a7762ed97438398e662feb570ae4618552789b..be4003d1b8fe1ebd03558cc9a79f1d2069cb37bf 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactDto.java index d2eb2d8e225a73fa39d29317014b096eb4b10f8c..e767818284173e366bde9a81a6b4d8957e3b9dd9 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/InstitutionContactDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.contact.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; @@ -23,7 +23,7 @@ public record InstitutionContactDto( String name, InstitutionContactCategoryDto category, @NotNull List<String> phoneNumbers, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) implements ContactDto { diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactChange.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactChange.java index de54f653e8070be12aca7f4de98f92b799b8aa74..4440f938e16db8d99db37ebab3dbfbbc0173f69d 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactDto.java index fb36be6a355bebcaa27a798eb6f31f3435df5837..93f1184319c4afead76eeae19dce4ac12864fd62 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/PersonContactDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.contact.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -30,7 +30,7 @@ public record PersonContactDto( example = "@username:server") String externalChatUsername, @NotNull List<String> phoneNumbers, - @NotNull List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) implements ContactDto { diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/PostboxContactAddressChange.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/PostboxContactAddressChange.java index 94c1e0b3d500e3045a42b6fee1345a3bee4530f9..6ce4be908da15abae6781eeb02816dfe1d7508af 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/PostboxContactAddressChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/PostboxContactAddressChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/SearchContactsResponse.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/SearchContactsResponse.java index 1ca311c58c4e42adbe6e83356f14ca71430e4e33..3f96bb1a94aae8ce725e9e8f1697e6ac786b6e10 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/SearchContactsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/SearchContactsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdateInstitutionContactRequest.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdateInstitutionContactRequest.java index 0e3b23b58652cb274a40d5aee8754720f45eb682..1734d091db04a8089c682954ea09bc47867de6a4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdateInstitutionContactRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdateInstitutionContactRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.contact.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import io.swagger.v3.oas.annotations.media.ArraySchema; import io.swagger.v3.oas.annotations.media.Schema; @@ -37,7 +37,7 @@ public record UpdateInstitutionContactRequest( @Schema( description = "A list of email addresses of the Contact.", example = "['mail1@address.de','mail2@address.de','mail3@address.de']")) - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) implements AbstractUpdateContactRequest { diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdatePersonContactRequest.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdatePersonContactRequest.java index 3c8d4b88fa4064e556825081019cfd8d1ed96585..079f5fc4cf6cab9771aa9d7f27ca38945bf8c719 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdatePersonContactRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/UpdatePersonContactRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.contact.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -51,7 +51,7 @@ public record UpdatePersonContactRequest( @Schema( description = "A list of email addresses of the Contact.", example = "['mail1@address.de','mail2@address.de','mail3@address.de']")) - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) implements AbstractUpdateContactRequest { diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardAddressDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardAddressDto.java index 9d6aa9799ee07aef45dbe75a790037f58212ee78..bd961342f615136b04f315851a4d6362e88d39ed 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardAddressDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardContactDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardContactDto.java index 99247562f1e32a6cf6373a5cace599a3c83d8dd7..82ece360e7f44c338126f0db6a9d1b5f6aac7959 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardContactDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardContactDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardInstitutionContactDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardInstitutionContactDto.java index 5d136356b98c20f01a53d9601501f6b946139111..f7d170d7530ed257dd5915ee1b5dd3e683a1eaed 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardInstitutionContactDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardInstitutionContactDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardPersonContactDto.java b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardPersonContactDto.java index fdcd825c8cf45a6dc6ea121bddfbad5f387ec350..35deacabaa9a4ef27df1dff1436630d82b578cb3 100644 --- a/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardPersonContactDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/contact/api/VCardPersonContactDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/department/DepartmentApi.java b/backend/base-api/src/main/java/de/eshg/base/department/DepartmentApi.java index b02abd800525a1f01602584b29c34f5177469825..8fb0fd2c9171e77d14db5d77eb31a11f308a8502 100644 --- a/backend/base-api/src/main/java/de/eshg/base/department/DepartmentApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/department/DepartmentApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/department/GetDepartmentInfoResponse.java b/backend/base-api/src/main/java/de/eshg/base/department/GetDepartmentInfoResponse.java index 16c1873fd34aa0cd40ce777f407a985c464c8d3c..ce9ac1c30c4dfd5a046cb5133c8fd8133b43addc 100644 --- a/backend/base-api/src/main/java/de/eshg/base/department/GetDepartmentInfoResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/department/GetDepartmentInfoResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/department/LocationDto.java b/backend/base-api/src/main/java/de/eshg/base/department/LocationDto.java index 6ecc73c6d33bd867a6bcd1e37f47f9b2db75cf07..b2b61ee29ba3357386d610bae2f31165d6756289 100644 --- a/backend/base-api/src/main/java/de/eshg/base/department/LocationDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/department/LocationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeature.java b/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeature.java index 5737ec41e675d828f81740ec9bded0c793bffcd1..4198f7600e7fcb898cb83170b20fb41709e3f879 100644 --- a/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeature.java +++ b/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -14,4 +14,5 @@ public enum BaseFeature { GDPR, GDPR_ONLINE_PORTAL, MUK_FACILITY_LINK, + BUNDID_PERSON_LINK, } diff --git a/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeatureTogglesApi.java b/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeatureTogglesApi.java index df0dbc0fe00200c2302d976667499b08b238cd8a..14503390ee17bb0a1de54a915c54816679bef113 100644 --- a/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeatureTogglesApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/feature/BaseFeatureTogglesApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/feature/GetBaseFeatureTogglesResponse.java b/backend/base-api/src/main/java/de/eshg/base/feature/GetBaseFeatureTogglesResponse.java index 6622fab38bcacefcece0a31c9f6219c4c5f4ad00..01cce722efda58ff52bcfc00b2d68d196d31b4b0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/feature/GetBaseFeatureTogglesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/feature/GetBaseFeatureTogglesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/GdprProcedureApi.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/GdprProcedureApi.java index 56f923144c56b086d65deed30785636633f32fe0..3de9f46d6b710e4f76af8d50e85029bf1775bd43 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/GdprProcedureApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/GdprProcedureApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddCentralFileIdToGdprProcedureRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddCentralFileIdToGdprProcedureRequest.java index ae52ea7d7a82f7fa3eb319ffcf2a2fcb2e66102a..ca193483876cdda016a84bb0a85af5e865952f4f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddCentralFileIdToGdprProcedureRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddCentralFileIdToGdprProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprDownloadsRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprDownloadsRequest.java index d1bd963cf5797fad12bbe4421ac67ec65ab78b4b..c913bc5d3ec8aeec03f21e7af9a698f53bcff050 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprDownloadsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprDownloadsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprProcedureRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprProcedureRequest.java index 603eb3490f39dd37a784f7b97ac41b1f86c5dfc2..abac0d5334f1ba929a3eff8d16c30428129685b3 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprProcedureRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/AddGdprProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CancelGdprProcedureRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CancelGdprProcedureRequest.java index 3f9281fa1391572a76c72ca922ab392a29ef35da..1718c55f496dd074e82ea87a81ed08148ea9cc99 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CancelGdprProcedureRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CancelGdprProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CloseGdprProcedureRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CloseGdprProcedureRequest.java index 53652c77c3297ca091da744a8a29eca013fad493..3e4aef909b1e9b05215c8fa5e8d1eb78450317ef 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CloseGdprProcedureRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/CloseGdprProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/DeleteGdprDownloadsRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/DeleteGdprDownloadsRequest.java index 2f1a7a1af61b4cc0173605fc85bc3cdfb825f3dc..8b8c4f76e245e2d78a264710c03e010e5a908782 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/DeleteGdprDownloadsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/DeleteGdprDownloadsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprFacilityDto.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprFacilityDto.java index d92b270e5a4d2ba744a5e5b7fdfbd728570b70fc..dfe228bc2da4ba6eeffa0d0724a42c340567950b 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprFacilityDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprFacilityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprIdentificationDataDto.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprIdentificationDataDto.java index 60a7daa54e586f42c322387b09cc8523c0d3a026..97ddd77f957e67ad3de37c89b0307f4372e858cc 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprIdentificationDataDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprIdentificationDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprPersonDto.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprPersonDto.java index 42b8a449365c1a0ad36ed8d370e5182effd701a8..9f38e7443a33b866e4cdab1595161f91a13c5c12 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprPersonDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureFilterParameters.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureFilterParameters.java index 0d64390941970527a6a2af7b80be8a19398020ed..a482685b041297022cf002a899d72f0b4c80ad02 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureFilterParameters.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureSortKey.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureSortKey.java index cd9688694fb810c914679657eee59d653210c4e5..63d1f6c4708b95084b5a5718b7190d6228d9a5b7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureSortKey.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureStatusDto.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureStatusDto.java index a5435f87976659dcb8928a0c88d738f1bad4df40..0961e6db6e0ab747d49e8ba9e426072f324f7ff7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureStatusDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureTypeDto.java index fd09f73758298d6086db185ef3a7fd1d334d5438..fd11e58c25ae52ec64bbf582bc23f0fdd390c849 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GdprProcedureTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprDownloadsResponse.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprDownloadsResponse.java index 2eace7804f76df0332cc22809105074c9c18b08f..888664fc28222b0ae04347ae5a07478f4e0dad68 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprDownloadsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprDownloadsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureDetailsPageResponse.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureDetailsPageResponse.java index 8f492adca608315cd4616a3e4eeb6c4fe3dfbbaf..b3b6b550163806075597aa33c22eb6418a4f209f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureDetailsPageResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureDetailsPageResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureFileStateIdsResponse.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureFileStateIdsResponse.java index f1da20d76b534e034cbb843d5707d05dfcb0fb67..30af5ef611f0b2be869ff2588367ef3bdabb81cb 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureFileStateIdsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureFileStateIdsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureResponse.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureResponse.java index 4de11efe6979a545b07c65eb2cacf25932111f3a..515e08a0e060146bfc082e8b9e631a8f8c5e0255 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProceduresResponse.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProceduresResponse.java index 4edca4a456696c39e41c0765246291e522cd587f..62a1a9ce3f5a6e42c9fcdc9c9b5b0f88a311a8b3 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProceduresResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/GetGdprProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/SetMatterOfConcernRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/SetMatterOfConcernRequest.java index bc26c898ff1ddcb2b84bc2d994ed8a7e6472d605..694d06b1ea5b1a778a6275776d4ff584a1cd1670 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/SetMatterOfConcernRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/SetMatterOfConcernRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/StartGdprProcedureRequest.java b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/StartGdprProcedureRequest.java index a08233547e7404eb5a42bbadff7b48b088fecf69..643e254e0a4e0519904c72180f9e6f3b0bad8ed6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/gdpr/api/StartGdprProcedureRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/gdpr/api/StartGdprProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/history/HistoryChange.java b/backend/base-api/src/main/java/de/eshg/base/history/HistoryChange.java index 2a1c6efeec4a87ccfae6741c50bcefd3de16e535..526f63cee0992f617b591f5d6d16bae25d792f55 100644 --- a/backend/base-api/src/main/java/de/eshg/base/history/HistoryChange.java +++ b/backend/base-api/src/main/java/de/eshg/base/history/HistoryChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntry.java b/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntry.java index 12ec143a1759453aa214a3aee181d8d2aede8d5f..cf900c96877da62ccc3dac6ea27e5756ed113638 100644 --- a/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntry.java +++ b/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntryType.java b/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntryType.java index 78ccd9a3d9a3770ebb1379283f25e88807a1c586..8a222882349aca5c982d74c8baf3f456d9f53293 100644 --- a/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntryType.java +++ b/backend/base-api/src/main/java/de/eshg/base/history/HistoryEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/history/HistoryStep.java b/backend/base-api/src/main/java/de/eshg/base/history/HistoryStep.java index 2491830016590898875653364511c1c281dd7101..ad5077d0ab81f9f8bb0b09d1579e7ebc150c84e4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/history/HistoryStep.java +++ b/backend/base-api/src/main/java/de/eshg/base/history/HistoryStep.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/InventoryApi.java b/backend/base-api/src/main/java/de/eshg/base/inventory/InventoryApi.java index 337598fc870ac523d68a2fdc1c3aaeb713456f01..fbf53d145d678e436eafb6e4e4c34f60b289cc01 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/InventoryApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/InventoryApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/AddInventoryItemRequest.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/AddInventoryItemRequest.java index d886068bb2f1d2d3f1a96d57994084a5c3bbbd31..436d27ef09b6418200f0c12b06f894396baf8fb4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/AddInventoryItemRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/AddInventoryItemRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/BookInventoryItemRequest.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/BookInventoryItemRequest.java index b35c62e65577c9ad41394228774eb225b0e727fe..1a5355e99f75f79423391895225757ca1eed8861 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/BookInventoryItemRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/BookInventoryItemRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/GetInventoryItemsResponse.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/GetInventoryItemsResponse.java index 783b0b394e83f512a20ee9607d6ad7c8b24e6813..0ec2b43fac439145fbcf9eb9dae6880f42a2c195 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/GetInventoryItemsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/GetInventoryItemsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingStatusDto.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingStatusDto.java index abda4752b15bbcef48a2fb442e6ac35e842c3224..7318840a339441d819f3415bc664dfbbe82c74dc 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingStatusDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingTypeDto.java index 3009b710399b841a62c74549a18b2a51b0bed8d7..d9fe052fe3b09eabeb5ddb61fed9601451d63936 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryBookingTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingEntry.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingEntry.java index 3dbd2f2c53069598ed7d75c2f0ab4280e818dee4..79f3e8ac2a258aaf13d7adbcdbed0ff9efaa344a 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingEntry.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingHistory.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingHistory.java index 64c7273e5842da7b64bb5b62d14dcf62c34909e1..d0ebe7b4b32d62de16be6326bc853107da639df2 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingHistory.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemBookingHistory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemDto.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemDto.java index 2affc37f6f423f60fc2b758cc8631e5bf269a524..929777c01fbe91cc183b4a5b0403f2c4dcbaa1ad 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemFilterParameters.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemFilterParameters.java index e32ab3d7143f6425a822fce151c094c79fe9f899..8a96f27b6cae29959a533babe447945e1a859a4d 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemFilterParameters.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemTypeDto.java index 2bc29d6f3fde5f6fe7b251ae58aa5994adc5ba6a..ae919018fd5d5ebabea8d864941a5c390eeb48e4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventoryItemTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventorySortKey.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventorySortKey.java index 39f84171f8f418669a3072d40a388575a7f7d142..794bd6d1dd88094efd388c5b9ca3f17135d7f21f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventorySortKey.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/InventorySortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/RestockInventoryItemRequest.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/RestockInventoryItemRequest.java index f578da0f2690808d86e62a0161678d8873d28122..0af0834b80dbac47fbbd3e78df6c21b3051a44d4 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/RestockInventoryItemRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/RestockInventoryItemRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemCountRequest.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemCountRequest.java index 9644fc6836f59cc5360c014db5f30f7a38c9c42c..3e12eefe6a3b2799645672d407617a9fbf8189ca 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemCountRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemCountRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemRequest.java b/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemRequest.java index 9d6e381d99b68d484e12805204f143686fb2466a..171f867d7bec33eaa21bc0a6e46dd6b6ba9df89e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/inventory/api/UpdateInventoryItemRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/label/LabelApi.java b/backend/base-api/src/main/java/de/eshg/base/label/LabelApi.java index 488cdd022576c9a23f09f31820911accbd628eed..22e661c594c3908d80acad21af32da8cdaa13a2f 100644 --- a/backend/base-api/src/main/java/de/eshg/base/label/LabelApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/label/LabelApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/label/api/AddLabelRequest.java b/backend/base-api/src/main/java/de/eshg/base/label/api/AddLabelRequest.java index f1080d446db51c4becda1cee542554d56ed66752..b7dd9cf481ec2aa590a1281129eb89d0b346f78e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/label/api/AddLabelRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/label/api/AddLabelRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/label/api/GetLabelsResponse.java b/backend/base-api/src/main/java/de/eshg/base/label/api/GetLabelsResponse.java index ea97bda2503d7927d73762f36517fbf6502f76a0..d5178fb8ab2f944d72f7fa5eeb44a7b19909c8db 100644 --- a/backend/base-api/src/main/java/de/eshg/base/label/api/GetLabelsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/label/api/GetLabelsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/label/api/LabelDto.java b/backend/base-api/src/main/java/de/eshg/base/label/api/LabelDto.java index a51844f6e5472435602b94afe540980f1959070a..fc9cfc4082a753936897da4a2f6c9d284b5b0e72 100644 --- a/backend/base-api/src/main/java/de/eshg/base/label/api/LabelDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/label/api/LabelDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/mail/MailApi.java b/backend/base-api/src/main/java/de/eshg/base/mail/MailApi.java index 7594e9e7643b2a6ce8ff079f98b5470cd011cbb1..7f8f1ad35bfb241c5a1aa50b4f810b87af81fd97 100644 --- a/backend/base-api/src/main/java/de/eshg/base/mail/MailApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/mail/MailApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailNotificationRequest.java b/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailNotificationRequest.java index 14cc232bd7d32b84048e57c3f6a231f99f9e2588..e3d0ffdb79024c1278d3c9e3b772775fa42e2cfb 100644 --- a/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailNotificationRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailNotificationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailRequest.java b/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailRequest.java index bd8067aec9a1264d5ba43291b67cb083dd78656c..2c04451bfb2dea304659fb769fa83a54ce4d145d 100644 --- a/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/mail/SendEmailRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/muk/Api/AddMukFacilityLinkRequest.java b/backend/base-api/src/main/java/de/eshg/base/muk/Api/AddMukFacilityLinkRequest.java index dd2012bed642d07078cccafae46900e9ea22ca90..99a65b71fe918b3a133a67ebcf2bea0004a597b2 100644 --- a/backend/base-api/src/main/java/de/eshg/base/muk/Api/AddMukFacilityLinkRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/muk/Api/AddMukFacilityLinkRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -15,10 +15,10 @@ import java.util.UUID; "Request used for establishing a link between a MUK user and a reference facility") public record AddMukFacilityLinkRequest( @Schema( - description = "The id of the mukUser", + description = "The 'DatenübermittlerPseudonymId' of the MUK user", example = "du-986b2b54ab89cf4ed674ad8c3126b966b54d4872") @NotBlank - String mukId, + String dataTransmitterPseudonymId, @Schema( description = "The (external) id of the reference facility", example = "be9831d4-dc25-48d8-9bfe-4c0b54bfb2c1") diff --git a/backend/base-api/src/main/java/de/eshg/base/muk/MukFacilityLinkApi.java b/backend/base-api/src/main/java/de/eshg/base/muk/MukFacilityLinkApi.java index 02bbdfd276f6575d574d050fecc9e79af5f9fe75..a7bcdca2096a4ee276d0a40db3205045bbff55be 100644 --- a/backend/base-api/src/main/java/de/eshg/base/muk/MukFacilityLinkApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/muk/MukFacilityLinkApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/ResourceApi.java b/backend/base-api/src/main/java/de/eshg/base/resource/ResourceApi.java index 1429baf0f404c35f65a12b84cfc803ab1a097c66..45199a40662c74905715a5ac17099a93be39e734 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/ResourceApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/ResourceApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/api/AddResourceRequest.java b/backend/base-api/src/main/java/de/eshg/base/resource/api/AddResourceRequest.java index d8bad530b277403be26f1cccb8217cea880cff45..ba689ae22b0bb496853865c60f14a566fa5a803c 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/api/AddResourceRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/api/AddResourceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/api/GetResourcesResponse.java b/backend/base-api/src/main/java/de/eshg/base/resource/api/GetResourcesResponse.java index 258f400ea3c6a4a3d473efaf9b85ba077d71fb04..9e57b00bb0f5d67e02f2eb91386e9e88f464fb98 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/api/GetResourcesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/api/GetResourcesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceDto.java b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceDto.java index ff0afca05e01a4b7b7bf6c837df6704f8b8ca6af..1c82b7cf4ae89b3eca18999f4193f708a9e882e7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceFilterParameters.java b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceFilterParameters.java index 91b2017b6d38773e7de5886e0ea06b22ac31ca95..37cb450c68ec8ce1ebfbd36238dc170bb9b87670 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceFilterParameters.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceSortKey.java b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceSortKey.java index a95d9cf84279b909bfaebe8121d57c277e065d91..9a4d299e1ed65ee23a5881a0a32ce53b3de61e30 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceSortKey.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceTypeDto.java index 1e50b7967456d674aa53cb7ae1e327fa25b7de5d..20c4ce9b7a12e47f75d5293ac654563cecbf01b6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/api/ResourceTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/resource/api/UpdateResourceRequest.java b/backend/base-api/src/main/java/de/eshg/base/resource/api/UpdateResourceRequest.java index 76af78747c29b3b246b25b3292cc8df072c23279..3da4d7984b8d6d2afce0218b18aa239df05b0b05 100644 --- a/backend/base-api/src/main/java/de/eshg/base/resource/api/UpdateResourceRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/resource/api/UpdateResourceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/statistics/BaseStatisticsApi.java b/backend/base-api/src/main/java/de/eshg/base/statistics/BaseStatisticsApi.java index c7e075e7e00ae2984d30d6ca0ef9165c298580d3..ce868811846fdb3e74a5baf286a250136a734117 100644 --- a/backend/base-api/src/main/java/de/eshg/base/statistics/BaseStatisticsApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/statistics/BaseStatisticsApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAttribute.java b/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAttribute.java index 982046cf173a263a38fd07266acf9dd27e7c025e..e960e27a34b8e8e3a8229a0f776d2139eb8aaf7b 100644 --- a/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAttribute.java +++ b/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAvailableDataSource.java b/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAvailableDataSource.java index ef23e4977baeb289be3a76edd40f2f5a6fa18661..7ae617f07762b95bf81acf24ff190fabcc2b849c 100644 --- a/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAvailableDataSource.java +++ b/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseAvailableDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseDataTableHeader.java b/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseDataTableHeader.java index 1f315658393209922a8aa5f7380e219c573b1e8d..7eb1ebca600b86fabb862709a345c01688183720 100644 --- a/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseDataTableHeader.java +++ b/backend/base-api/src/main/java/de/eshg/base/statistics/api/BaseDataTableHeader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseDataSourcesResponse.java b/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseDataSourcesResponse.java index 1ce8792ff0fbcbd2a03f9874936fdca8b2ce8533..963c066ca8dddc07c2530b379f13026bd6df1512 100644 --- a/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseDataSourcesResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseDataSourcesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataRequest.java b/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataRequest.java index a9566d5bbcfffa045c4c7fda21dd67aab5833972..61ee3fa225c2e9066aa525649922e5ac22d4a4d2 100644 --- a/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataResponse.java b/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataResponse.java index c95cedbb1c9c62b893d1e4ee4015d5acffefdc0c..20c78e79b63cc9f782fa26d063f62a27025dc714 100644 --- a/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/statistics/api/GetBaseStatisticsDataResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/street/AutocompleteStreetResponse.java b/backend/base-api/src/main/java/de/eshg/base/street/AutocompleteStreetResponse.java index 07c5a70b888ee8049035195a74a6e1e080dd1780..a4ac37fb2c64028ceb92a7f46ab50cf6fc1d3ce0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/street/AutocompleteStreetResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/street/AutocompleteStreetResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/street/DistrictDto.java b/backend/base-api/src/main/java/de/eshg/base/street/DistrictDto.java index 8cf4b5984c04bb7f343b7002ee2121139d58d609..78c806227d00b16aff9f9f0744fd438b71531600 100644 --- a/backend/base-api/src/main/java/de/eshg/base/street/DistrictDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/street/DistrictDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/street/SearchStreetResponse.java b/backend/base-api/src/main/java/de/eshg/base/street/SearchStreetResponse.java index 87a22ffa652dd077f327c8d31d23b50c490abf5a..a850a69f704889dbf5d930283a12453ce0006544 100644 --- a/backend/base-api/src/main/java/de/eshg/base/street/SearchStreetResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/street/SearchStreetResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/street/StreetApi.java b/backend/base-api/src/main/java/de/eshg/base/street/StreetApi.java index c5c3d8bff06a65163c5d15956d036db328058d0f..72c3a8017eab197b0b62783e59b74f91fd1e5787 100644 --- a/backend/base-api/src/main/java/de/eshg/base/street/StreetApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/street/StreetApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/testhelper/BaseTestHelperApi.java b/backend/base-api/src/main/java/de/eshg/base/testhelper/BaseTestHelperApi.java index 85c2423bb9132dc654d4e5516d5583a39e228868..1335d2f15e3a0cd0ae3c22bc1001af1cc844fce7 100644 --- a/backend/base-api/src/main/java/de/eshg/base/testhelper/BaseTestHelperApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/testhelper/BaseTestHelperApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ import de.eshg.base.contact.api.SearchContactsResponse; import de.eshg.base.feature.BaseFeature; import de.eshg.base.inventory.api.GetInventoryItemsResponse; import de.eshg.base.resource.api.GetResourcesResponse; +import de.eshg.base.testhelper.api.CitizenUserDto; import de.eshg.base.testhelper.api.CreateCalendarTestEventsRequest; import de.eshg.base.testhelper.api.CreateCalendarTestEventsResponse; import de.eshg.base.testhelper.api.CreateSetupAdminRequest; @@ -24,6 +25,7 @@ import jakarta.validation.Valid; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.service.annotation.DeleteExchange; +import org.springframework.web.service.annotation.GetExchange; import org.springframework.web.service.annotation.HttpExchange; import org.springframework.web.service.annotation.PostExchange; @@ -85,4 +87,7 @@ public interface BaseTestHelperApi extends TestHelperApi, LoginProvider { @DeleteExchange("/setup-admin/{userName}") void deleteSetupAdmin(@PathVariable("userName") String userName); + + @GetExchange("/idp-user/{nameId}") + CitizenUserDto getIdpUser(@PathVariable("nameId") String nameId); } diff --git a/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CitizenUserDto.java b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CitizenUserDto.java new file mode 100644 index 0000000000000000000000000000000000000000..22c3ca422d91d9ccd2fb27ab6e6849848dcffaa8 --- /dev/null +++ b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CitizenUserDto.java @@ -0,0 +1,16 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.testhelper.api; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +@Schema(name = "CitizenUser") +public record CitizenUserDto(@NotNull UUID userId, @Valid Map<String, List<String>> attributes) {} diff --git a/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsRequest.java b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsRequest.java index 43eceab0066b302064cfebfd281aa8f61cd0c099..1e295279bee7d4572335e88818fbc3aa77a25a50 100644 --- a/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsResponse.java b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsResponse.java index c8097cd92cb30dad68e3e41d7c9a5c458f446f85..0b75d3234fdc991c764596b6d6372542b0ddbbde 100644 --- a/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateCalendarTestEventsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateSetupAdminRequest.java b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateSetupAdminRequest.java index a6d1168a57c6d68a81887f0d53ba7aba0e3ef542..5e52043ef8055b0b3fd1c81751a6a4ca34ef3843 100644 --- a/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateSetupAdminRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/testhelper/api/CreateSetupAdminRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/UserApi.java b/backend/base-api/src/main/java/de/eshg/base/user/UserApi.java index e959c8ba2d0b434f987a61c98c36e5ee558b96a1..533a7f802f2fd21ef60253a4784f658c3bb338b5 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/UserApi.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/UserApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/ActiveUserSession.java b/backend/base-api/src/main/java/de/eshg/base/user/api/ActiveUserSession.java index 71fe3b0578fee1b5f6c013c9b3c226bd087f5b5c..f68d841ec0795ee3ae68c6f765bc0079b96b4dd0 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/ActiveUserSession.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/ActiveUserSession.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/AddUserRequest.java b/backend/base-api/src/main/java/de/eshg/base/user/api/AddUserRequest.java index be2d60555cdfb2a15f3d63fca79395fb4b4b5f22..7d3bd9a21221a24157942cba1a9088a7003a81b6 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/AddUserRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/AddUserRequest.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.user.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.SalutationDto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; @@ -30,7 +30,7 @@ public record AddUserRequest( @Size(min = 3, max = 255) String username, @Schema(description = "The email address of a user", example = "example@mail.de") - @EmailAddressConstraint + @MandatoryEmailAddressConstraint String email, @Schema(description = "The given name(s) of a user", example = "John") @NotNull diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysDto.java index bde9edc691e19591ad09f540cd8b245df07aa229..6ce29f63e86e3f791c7b27040d5f6417474124e1 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysInfo.java b/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysInfo.java index 5720422117f84c4a22166b0e8a3906a716c9b1bd..5db3e838fe934538ea55185fad36ae011a7dfc29 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysInfo.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/EmployeeUserKeysInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetActiveSessionsResponse.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetActiveSessionsResponse.java index 67acfd6d47e7c67074ef6f642fed351d77e59321..1889c26d15914f194f9b9b4e809210629de8c538 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetActiveSessionsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetActiveSessionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetEventsResponse.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetEventsResponse.java index 2930833c7d36f38b454c13fb671df8afa628d48f..30202f9851bebe4c44abf69f8bbd9b5e0cc3857d 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetEventsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetEventsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetGroupsResponse.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetGroupsResponse.java index 935c6cf299efe3694a677c7593273cd3627b1160..564709b690d2c3b229fb8a67ff1d8775a3e1e2ed 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetGroupsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetGroupsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetPermissionsResponse.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetPermissionsResponse.java index 48552f986603e84d51483557c93c764d926b2f8a..607e9e3e26f60a577e9e294d0c00877f5f169e74 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetPermissionsResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetPermissionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetPublicEmployeeUserKeysResponse.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetPublicEmployeeUserKeysResponse.java index 364412f8003ee4805929ffcef873db6aabdc4b85..3feffa3ebf0c459a01c405c3c76aaa52a31dfd3d 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetPublicEmployeeUserKeysResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetPublicEmployeeUserKeysResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetUserManagementPageResponse.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetUserManagementPageResponse.java index d8239219e232fadd8a2f19a683fc82a9a3a90349..e9f7526fadcad24d7e6e559f81ecc85802f5af74 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetUserManagementPageResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetUserManagementPageResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersRequest.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersRequest.java index 2240f43777202dd5504d82e6a0733b6fe3c0ea5e..ee2855fb94acf42f267e0ea0b27c94035c8fb550 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersResponse.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersResponse.java index 130049a84ca0d54d182b4a4b341433d851eff47d..c3e868aba4f866a4aad16e7d14dc1c9ea7bbd08e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersResponse.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GetUsersResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/GroupMemberDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/GroupMemberDto.java index ebd396bc97dac18d4aedd9caf272fd8028560c05..f8a340a331403e849a7d76c6a30f6378aa4a48d8 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/GroupMemberDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/GroupMemberDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/InvalidateSessionsRequest.java b/backend/base-api/src/main/java/de/eshg/base/user/api/InvalidateSessionsRequest.java index 6391a96ff1ecb1002305fb6ed7f3644e16b04517..bcf333f6569e289ef2eac2ef3111dec786415b8c 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/InvalidateSessionsRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/InvalidateSessionsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/PrivateEmployeeUserKeyDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/PrivateEmployeeUserKeyDto.java index 2dec4ba4f087eb6c0440acb5e3b75acd376bfc47..9d8af804d171ee9d226740e6808c1c6e27bc314c 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/PrivateEmployeeUserKeyDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/PrivateEmployeeUserKeyDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/PublicEmployeeUserKeyDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/PublicEmployeeUserKeyDto.java index 577bc21853fd45819d07342e48ed0267cdda2592..a5bc4ae242087bbe1d80a2612825f6249e18910e 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/PublicEmployeeUserKeyDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/PublicEmployeeUserKeyDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UpdateSelfUserRequest.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UpdateSelfUserRequest.java index 6801d9f5edfc35774bf379097cd239a16b355650..49efdf3534dbb499d4c1c2e167fbd4876255edac 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UpdateSelfUserRequest.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UpdateSelfUserRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserDto.java index acde5d8e31d302991f1f246a82416ba521e77059..db63a97fc0f922e164b04e5d588339c96a59fd28 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.user.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -23,7 +23,7 @@ public record UserDto( @NotBlank String username, @Schema(description = "The email address of a user.", example = "example@mail.de") - @EmailAddressConstraint + @MandatoryEmailAddressConstraint String email, @Schema(description = "The phone number of a user.", example = "+491234567890") String phoneNumber, diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventDto.java index f3d5c0532c3f48c283192f2ce3937b66407e2127..b05e93eba3b7006d8c351c29cdf08d1cb19ca548 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventFilterParameters.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventFilterParameters.java index 275228c166c4f87cb8e0e16d957fc2d719e7795d..e3f72f74d4e98f1cdd6d9840efa0add266072e78 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventFilterParameters.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventTypeDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventTypeDto.java index 3f1a940d91762b2ce5e25f63f412e6d94dc43ac5..0293b9e2cb683438ede405b8cdbf5afd40eac2fa 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventTypeDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserEventTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserFilterParameters.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserFilterParameters.java index 1fd8fda5363cca3c5afbf7f28315ea431d3fb882..558e5ee4abc5943a41bd8577ec9abc4889d2071a 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserFilterParameters.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserGroupDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserGroupDto.java index 6056ef54249a46b80b6ded8a535df80005cc25bb..73658a9f8ef8122bb3b6a89fa89b588b0ffc94a3 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserGroupDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserGroupDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserProfileDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserProfileDto.java index c2fb6aea77a3b30f1a6b84c6806d6b884af615a0..18b614c3e497f42f47ccb4ee96867503ef229480 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserProfileDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserProfileDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base-api/src/main/java/de/eshg/base/user/api/UserRoleDto.java b/backend/base-api/src/main/java/de/eshg/base/user/api/UserRoleDto.java index 0bf359949060f7b1892f47775267aea26b6e4053..6283573b9775dd67c790fa4c1992db98c83af9e8 100644 --- a/backend/base-api/src/main/java/de/eshg/base/user/api/UserRoleDto.java +++ b/backend/base-api/src/main/java/de/eshg/base/user/api/UserRoleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -35,6 +35,7 @@ public enum UserRoleDto { BASE_GDPR_PROCEDURE_READ, BASE_GDPR_PROCEDURE_WRITE, BASE_MUK_FACILITY_LINK_WRITE, + BASE_BUNDID_PERSON_LINK_WRITE, BASE_GLOBAL_CALENDARS_WRITE, BASE_CALENDAR_BUSINESS_EVENTS_WRITE, @@ -86,5 +87,4 @@ public enum UserRoleDto { MEDICAL_REGISTRY_IMPORT, OFFICIAL_MEDICAL_SERVICE_LEADER, OFFICIAL_MEDICAL_SERVICE_ADMIN, - OFFICIAL_MEDICAL_SERVICE_PHYSICIAN, } diff --git a/backend/base/build.gradle b/backend/base/build.gradle index 01c0612579d8fab06341fac833f4038a65966930..eeb2a0bd6d3259bfadf7f85b3ede76f1c14255f9 100644 --- a/backend/base/build.gradle +++ b/backend/base/build.gradle @@ -19,6 +19,7 @@ dependencies { implementation project(':file-commons') implementation project(':lib-aggregation') + implementation 'com.bucket4j:bucket4j-core:latest.release' implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.apache.commons:commons-collections4:latest.release' diff --git a/backend/base/gradle.lockfile b/backend/base/gradle.lockfile index 4c67affdb1a599b67902a77b9b6345df75c573ba..ba819b68cee3c9f2de8b2544a15537ea8f71887b 100644 --- a/backend/base/gradle.lockfile +++ b/backend/base/gradle.lockfile @@ -3,6 +3,7 @@ # This file is expected to be part of source control. ch.qos.logback:logback-classic:1.5.12=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath ch.qos.logback:logback-core:1.5.12=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.bucket4j:bucket4j-core:8.10.1=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.18.1=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-core:2.18.1=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-databind:2.18.1=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/backend/base/openApi.yaml b/backend/base/openApi.yaml index 23dbf818d00cfde1cb770836bdeeef1ccf32078e..06a115ec0b5b12a2e5ab237abd9da3836c3fdb00 100644 --- a/backend/base/openApi.yaml +++ b/backend/base/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 @@ -9,6 +9,35 @@ info: servers: - url: http://localhost:8080 paths: + /bundid-person-link: + post: + operationId: createBundIdPersonLink + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AddBundIdPersonLinkRequest" + required: true + responses: + "200": + description: OK + summary: Establish a link between a BundId user and a person + tags: + - BundIdPersonLink + /bundid-person-link/self/person: + get: + operationId: getReferencePersonLinkedToBundIdSelfUser + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/GetReferencePersonResponse" + description: OK + summary: Get the reference person linked to the BUNDID user which is currently + active + tags: + - BundIdPersonLink /calendars: get: operationId: getCalendars @@ -3177,6 +3206,24 @@ paths: description: OK tags: - TestHelper + /test-helper/idp-user/{nameId}: + get: + operationId: getIdpUser + parameters: + - in: path + name: nameId + required: true + schema: + type: string + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CitizenUser" + description: OK + tags: + - TestHelper /test-helper/keycloak/reset: post: operationId: resetKeycloak @@ -3964,6 +4011,23 @@ components: minimum: 1 required: - barrierId + AddBundIdPersonLinkRequest: + type: object + description: Request used for establishing a link between a BundId user and + a reference person + properties: + bundId: + type: string + description: The id of the bundId user + example: To be added + referencePersonId: + type: string + format: uuid + description: The (external) id of the reference person + example: be9831d4-dc25-48d8-9bfe-4c0b54bfb2c1 + required: + - bundId + - referencePersonId AddCentralFileIdToGdprProcedureRequest: type: object properties: @@ -4197,9 +4261,9 @@ components: description: Request used for establishing a link between a MUK user and a reference facility properties: - mukId: + dataTransmitterPseudonymId: type: string - description: The id of the mukUser + description: The 'DatenübermittlerPseudonymId' of the MUK user example: du-986b2b54ab89cf4ed674ad8c3126b966b54d4872 referenceFacilityId: type: string @@ -4207,7 +4271,7 @@ components: description: The (external) id of the reference facility example: be9831d4-dc25-48d8-9bfe-4c0b54bfb2c1 required: - - mukId + - dataTransmitterPseudonymId - referenceFacilityId AddPersonContactRequest: type: object @@ -4542,6 +4606,7 @@ components: - GDPR - GDPR_ONLINE_PORTAL - MUK_FACILITY_LINK + - BUNDID_PERSON_LINK BlockingEventsOfCalendar: type: object properties: @@ -4658,6 +4723,20 @@ components: required: - accessCode - userId + CitizenUser: + type: object + properties: + attributes: + type: object + additionalProperties: + type: array + items: + type: string + userId: + type: string + format: uuid + required: + - userId CitizenUserRole: type: string enum: @@ -9083,6 +9162,7 @@ components: - BASE_GDPR_PROCEDURE_READ - BASE_GDPR_PROCEDURE_WRITE - BASE_MUK_FACILITY_LINK_WRITE + - BASE_BUNDID_PERSON_LINK_WRITE - BASE_GLOBAL_CALENDARS_WRITE - BASE_CALENDAR_BUSINESS_EVENTS_WRITE - BASE_PROCEDURES_READ @@ -9133,7 +9213,6 @@ components: - MEDICAL_REGISTRY_IMPORT - OFFICIAL_MEDICAL_SERVICE_LEADER - OFFICIAL_MEDICAL_SERVICE_ADMIN - - OFFICIAL_MEDICAL_SERVICE_PHYSICIAN VCardAddress: type: object properties: diff --git a/backend/base/src/main/java/de/eshg/base/BaseApplication.java b/backend/base/src/main/java/de/eshg/base/BaseApplication.java index 3475c66c4ab57103c9b9eece5af3619462999161..50fa40f4eec3dfcc8d232dc5a4f477b7f868eda7 100644 --- a/backend/base/src/main/java/de/eshg/base/BaseApplication.java +++ b/backend/base/src/main/java/de/eshg/base/BaseApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/mapper/AddressMapper.java b/backend/base/src/main/java/de/eshg/base/address/mapper/AddressMapper.java index d9930cc4e45ecc698b360de38618807ad0b20fd0..883ba862cbba3c8b86cb8c3642417d4caad16413 100644 --- a/backend/base/src/main/java/de/eshg/base/address/mapper/AddressMapper.java +++ b/backend/base/src/main/java/de/eshg/base/address/mapper/AddressMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableAddress.java index d628b35b3e4c878dc129de86baf388f3e9968a71..fa5f00efcdd47d3debebec3efc047b01bb9ebeff 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableDomesticAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableDomesticAddress.java index dc7c829cb9d74ce88787e833e16e2183cbb10dbb..7bb2e2aa4c3575369aeb3c70d4a6e529487b0ad8 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableDomesticAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddableDomesticAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddablePostboxAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddablePostboxAddress.java index 7064faecaba2d59486b34441d2abfd68de9ef582..90ee1abd4a6e8538ba6f9f2c76dab6de2020bf38 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddablePostboxAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/embeddable/EmbeddablePostboxAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/Address.java b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/Address.java index e89f5dbbf11e726713ec8422d89cb0fe295e6b01..d61b683c43d92ed16dcd42f41193b8357ccaabd7 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/Address.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/Address.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingAddress.java index 6bf8be8ed35f157dfc1fa852653bc5aeaae4974b..7a03dcf02a2084ffe10e51798a770bc6c62b39ea 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingDomesticAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingDomesticAddress.java index a97155b811f0e696f8e733810ef451c3cec7d8ad..a1bf0d7da99b596a7cd3ff2af40aa070a505d0dd 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingDomesticAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingDomesticAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingPostboxAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingPostboxAddress.java index dddb38e95d462a810b56a74bbdfc622113edf1b0..541c0b9c791f702cb5ccd3f896a106e4aeb828e7 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingPostboxAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DelegatingPostboxAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DomesticAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DomesticAddress.java index 7a5a3d44c51ff1485f965d14ec6aa8247c441349..0f65535cde9d8258f23edc837046edd8211bc750 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DomesticAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/DomesticAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/PostboxAddress.java b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/PostboxAddress.java index 55f2932ad8da18ebb43460a78eac8182744be712..6786685cf8683d84f3976d3449f6380964495801 100644 --- a/backend/base/src/main/java/de/eshg/base/address/persistence/entity/PostboxAddress.java +++ b/backend/base/src/main/java/de/eshg/base/address/persistence/entity/PostboxAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/notification/GetAggregatedNotificationsResponse.java b/backend/base/src/main/java/de/eshg/base/aggregation/notification/GetAggregatedNotificationsResponse.java index 313c8e149ef026cdd3f3368de56b98335ed776e9..d1dbb7cde094f90edfa59104e7e6929e3f025191 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/notification/GetAggregatedNotificationsResponse.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/notification/GetAggregatedNotificationsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/notification/MarkNotificationsAsReadResponse.java b/backend/base/src/main/java/de/eshg/base/aggregation/notification/MarkNotificationsAsReadResponse.java index 8ea8141bc2ebfcc0244ce51da7fe4ec2b1600980..10bf7bbd4ce5849a51756a807127cf5f21c1d5d6 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/notification/MarkNotificationsAsReadResponse.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/notification/MarkNotificationsAsReadResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationController.java b/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationController.java index ab9a4295dd9f43f2403a4cae5368e8bd23d69187..035813641c8b5feaae655d294afdae282ac61d5d 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationController.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationService.java b/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationService.java index 66c76289e8fab3218ec45fc4e85917ad2720e813..29a5eb9622abd184c2ab1888901d02eaa73b5df4 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationService.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/notification/NotificationAggregationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedProcedureMetricsResponse.java b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedProcedureMetricsResponse.java index f91a82fda2f657d2ae52041099e4f2c6389534bc..9a0e2ce4fffe6cf6e633b1cc1b3dc079fd1390c9 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedProcedureMetricsResponse.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedProcedureMetricsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedRecentProceduresResponse.java b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedRecentProceduresResponse.java index 340446bf1143fc375480914c4f46c1144d53ca7c..8a92986e24ab6ee84615521dbe1ac1cde3fbf5cd 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedRecentProceduresResponse.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/GetAggregatedRecentProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationApi.java b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationApi.java index af5e627d4b4ee42f56da94fad64f4ea50062eac8..6cb29d003abc487975b1ec25cc5701d0e4708813 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationApi.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationController.java b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationController.java index 3779cd90642aec9cf52aae1ccc7fa484fffbe0d9..c20c42af9587ff12eeedddb97428e5644c25468d 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationController.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationService.java b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationService.java index 26cc8e903787a14de1f5eb6788460a0de1fefa85..50cbedba9764c7c45990b0205edd2848f0f25de2 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationService.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/procedure/ProcedureAggregationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/task/GetAggregatedTasksResponse.java b/backend/base/src/main/java/de/eshg/base/aggregation/task/GetAggregatedTasksResponse.java index c65b394c608356696cb0d4c29553f293a7667c43..f56127ef0ac95390d21e4120d7f5577ff33c3a8c 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/task/GetAggregatedTasksResponse.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/task/GetAggregatedTasksResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationController.java b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationController.java index 0f54468e66ffd185038a108d99c1dfecb1e4611d..0ba1d8c6f08cc52c0cabe6374043bbc425532efb 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationController.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationService.java b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationService.java index 2468c09767bb92978c5c7cc735935f115d72b985..d3fee556bda5cf2abb70f813a50759fe2520862e 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationService.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecification.java b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecification.java index 122ea808d94afc9aa57d480eb9114a271d65993f..d3befc02347d8a0750346aa5eb49ae0939521827 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecification.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecificationBuilder.java b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecificationBuilder.java index c0c07d82e92593e3732e861819404a172248fd6f..0a7991635fbb7e10ee0ced6afff956501a37e694 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecificationBuilder.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskAggregationSpecificationBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskMetricsController.java b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskMetricsController.java index 9f6900821471a6aad254fb3c11047bfa1284c597..7c98205e9942eab44fd59303252de42ce34bf00d 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskMetricsController.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskMetricsController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskSortHelper.java b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskSortHelper.java index 20d77485ed67a2d76f9fffbd77c9a995191993d9..5d99cdf48f71f1438467ed7e294fa9c69066bb83 100644 --- a/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskSortHelper.java +++ b/backend/base/src/main/java/de/eshg/base/aggregation/task/TaskSortHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/audit/RevisionHistoryMapper.java b/backend/base/src/main/java/de/eshg/base/audit/RevisionHistoryMapper.java index 424bf6b3fe6fe826d9cb726c4f227ff690ece4ee..862c88ac696c957f04f66cd0d0b8843c428a9d45 100644 --- a/backend/base/src/main/java/de/eshg/base/audit/RevisionHistoryMapper.java +++ b/backend/base/src/main/java/de/eshg/base/audit/RevisionHistoryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/audit/RevisionPair.java b/backend/base/src/main/java/de/eshg/base/audit/RevisionPair.java index 099b80ce224e267bf267fe9e1b2b68d629fdc069..df1ef5360e4f54f9bcbb284247d309212c2f15f8 100644 --- a/backend/base/src/main/java/de/eshg/base/audit/RevisionPair.java +++ b/backend/base/src/main/java/de/eshg/base/audit/RevisionPair.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/bundid/muk/BundIdConfig.java b/backend/base/src/main/java/de/eshg/base/bundid/BundIdConfig.java similarity index 91% rename from backend/base/src/main/java/de/eshg/base/bundid/muk/BundIdConfig.java rename to backend/base/src/main/java/de/eshg/base/bundid/BundIdConfig.java index af802473bb5f17b7a50356db9334689323aa6d66..f38e467b0351fdbd54fe084dd814c507c7d89945 100644 --- a/backend/base/src/main/java/de/eshg/base/bundid/muk/BundIdConfig.java +++ b/backend/base/src/main/java/de/eshg/base/bundid/BundIdConfig.java @@ -1,9 +1,9 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ -package de.eshg.base.bundid.muk; +package de.eshg.base.bundid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/backend/base/src/main/java/de/eshg/base/bundid/BundIdPersonLinkController.java b/backend/base/src/main/java/de/eshg/base/bundid/BundIdPersonLinkController.java new file mode 100644 index 0000000000000000000000000000000000000000..d5afcbda5961279d7fdb1fa6e64b1f4186e76adb --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/bundid/BundIdPersonLinkController.java @@ -0,0 +1,63 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.bundid; + +import de.eshg.base.bundId.BundIdPersonLinkApi; +import de.eshg.base.bundId.api.AddBundIdPersonLinkRequest; +import de.eshg.base.bundid.persistence.BundIdPersonLinkService; +import de.eshg.base.centralfile.PersonController; +import de.eshg.base.centralfile.api.person.GetReferencePersonResponse; +import de.eshg.base.centralfile.mapper.PersonMapper; +import de.eshg.base.centralfile.persistence.entity.Person; +import de.eshg.base.centralfile.persistence.repository.PersonRepository; +import de.eshg.base.feature.BaseFeature; +import de.eshg.base.feature.BaseFeatureToggle; +import de.eshg.rest.service.error.NotFoundException; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Tag(name = "BundIdPersonLink") +public class BundIdPersonLinkController implements BundIdPersonLinkApi { + + private final BundIdPersonLinkService bundIdPersonLinkService; + private final BaseFeatureToggle featureToggle; + private final PersonRepository personRepository; + + public BundIdPersonLinkController( + BundIdPersonLinkService bundIdPersonLinkService, + BaseFeatureToggle featureToggle, + PersonRepository personRepository) { + this.bundIdPersonLinkService = bundIdPersonLinkService; + this.featureToggle = featureToggle; + this.personRepository = personRepository; + } + + @Override + @Transactional + public void createBundIdPersonLink(AddBundIdPersonLinkRequest request) { + featureToggle.assertNewFeatureIsEnabled(BaseFeature.BUNDID_PERSON_LINK); + + Person refPerson = + personRepository + .findByExternalId(request.referencePersonId()) + .orElseThrow(() -> new NotFoundException(PersonController.REFERENCE_PERSON_NOT_FOUND)); + + bundIdPersonLinkService.addBundIdPersonLink(request.bundId(), refPerson); + } + + @Override + @Transactional + public GetReferencePersonResponse getReferencePersonLinkedToBundIdSelfUser() { + featureToggle.assertNewFeatureIsEnabled(BaseFeature.BUNDID_PERSON_LINK); + + String bundId = bundIdPersonLinkService.getBundIdSelfUserId(); + Person referencePerson = bundIdPersonLinkService.getReferencePersons(bundId); + + return PersonMapper.mapReferencePersonToApi(referencePerson); + } +} diff --git a/backend/base/src/main/java/de/eshg/base/bundid/persistence/BundIdPersonLinkService.java b/backend/base/src/main/java/de/eshg/base/bundid/persistence/BundIdPersonLinkService.java new file mode 100644 index 0000000000000000000000000000000000000000..b5f332324abd6fdf54c6ce13d2265ece51cfffdf --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/bundid/persistence/BundIdPersonLinkService.java @@ -0,0 +1,103 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.bundid.persistence; + +import de.eshg.base.bundid.persistence.entity.BundIdPersonLink; +import de.eshg.base.bundid.persistence.repository.BundIdPersonLinkRepository; +import de.eshg.base.centralfile.persistence.entity.Person; +import de.eshg.base.keycloak.CitizenKeycloakClient; +import de.eshg.base.keycloak.RealmBoundKeycloakClient; +import de.eshg.lib.auditlog.AuditLogger; +import de.eshg.rest.service.error.NotFoundException; +import de.eshg.rest.service.security.CurrentUserHelper; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Optional; +import org.keycloak.representations.idm.UserRepresentation; +import org.springframework.stereotype.Service; + +@Service +public class BundIdPersonLinkService { + + private final BundIdPersonLinkRepository bundIdPersonLinkRepository; + private final CitizenKeycloakClient citizenKeycloakClient; + private final AuditLogger auditLogger; + + public BundIdPersonLinkService( + BundIdPersonLinkRepository bundIdPersonLinkRepository, + CitizenKeycloakClient citizenKeycloakClient, + AuditLogger auditLogger) { + this.citizenKeycloakClient = citizenKeycloakClient; + this.bundIdPersonLinkRepository = bundIdPersonLinkRepository; + this.auditLogger = auditLogger; + } + + public void addBundIdPersonLink(String bundId, Person refPerson) { + if (identicalBundIdPersonLinkAlreadyExists(bundId, refPerson)) { + return; + } + + if (citizenKeycloakClient.getUserByName(bundId).isEmpty()) { + throw new NotFoundException("BundId user id not found"); + } + + BundIdPersonLink bundIdPersonLink = new BundIdPersonLink(); + bundIdPersonLink.setBundId(bundId); + bundIdPersonLink.setReferencePerson(refPerson); + refPerson.setBundIdPersonLink(bundIdPersonLink); + + BundIdPersonLink savedBundIdPersonLink = bundIdPersonLinkRepository.save(bundIdPersonLink); + writeAuditLog(mapAuditLog(savedBundIdPersonLink)); + } + + private boolean identicalBundIdPersonLinkAlreadyExists(String mukId, Person refPerson) { + Optional<BundIdPersonLink> potentialMatch = bundIdPersonLinkRepository.findByBundId(mukId); + return potentialMatch + .map( + mukFacilityLink -> + mukFacilityLink + .getReferencePerson() + .getExternalId() + .equals(refPerson.getExternalId())) + .orElse(false); + } + + // TODO (ISSUE-6575): Use 'bPK2' as bundId instead of username + public String getBundIdSelfUserId() { + UserRepresentation selfUserRepresentation = + citizenKeycloakClient.getSelfUser().toRepresentation(); + + RealmBoundKeycloakClient.getSelfUserId(); + + return selfUserRepresentation.getUsername(); + } + + public Person getReferencePersons(String bundId) { + BundIdPersonLink bundIdPersonLink = + bundIdPersonLinkRepository + .findByBundId(bundId) + .orElseThrow(() -> new NotFoundException("BundId Person Link not found")); + + return bundIdPersonLink.getReferencePerson(); + } + + private void writeAuditLog(Map<String, String> attributes) { + attributes = new LinkedHashMap<>(attributes); + attributes.put( + "durch Benutzer", CurrentUserHelper.getCurrentUserIdAsStringGracefully().orElse("-")); + auditLogger.log("BundIdPersonLink", "Hinzufügen", attributes); + } + + private Map<String, String> mapAuditLog(BundIdPersonLink bundIdPersonLink) { + return Map.of( + "BundIdPersonLink Id", + bundIdPersonLink.getId().toString(), + "MukId", + bundIdPersonLink.getBundId(), + "PersonId", + bundIdPersonLink.getReferencePerson().getExternalId().toString()); + } +} diff --git a/backend/base/src/main/java/de/eshg/base/bundid/persistence/entity/BundIdPersonLink.java b/backend/base/src/main/java/de/eshg/base/bundid/persistence/entity/BundIdPersonLink.java new file mode 100644 index 0000000000000000000000000000000000000000..bce5dfd977bf38100f5d97f89ac72454340dff63 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/bundid/persistence/entity/BundIdPersonLink.java @@ -0,0 +1,51 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.bundid.persistence.entity; + +import de.eshg.base.centralfile.persistence.entity.Person; +import de.eshg.base.centralfile.persistence.entity.Person_; +import de.eshg.domain.model.BaseEntity; +import de.eshg.lib.common.DataSensitivity; +import de.eshg.lib.common.SensitivityLevel; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Index; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.MapsId; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; + +@Entity +@Table(indexes = {@Index(columnList = "reference_person_id"), @Index(columnList = "bund_id")}) +public class BundIdPersonLink extends BaseEntity { + + @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) + @Column(nullable = false) + private String bundId; + + @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) + @OneToOne(optional = false, fetch = FetchType.LAZY) + @JoinColumn(name = Person_.BUND_ID_PERSON_LINK) + @MapsId + private Person referencePerson; + + public String getBundId() { + return bundId; + } + + public void setBundId(String bundId) { + this.bundId = bundId; + } + + public Person getReferencePerson() { + return referencePerson; + } + + public void setReferencePerson(Person refPerson) { + this.referencePerson = refPerson; + } +} diff --git a/backend/base/src/main/java/de/eshg/base/bundid/persistence/repository/BundIdPersonLinkRepository.java b/backend/base/src/main/java/de/eshg/base/bundid/persistence/repository/BundIdPersonLinkRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..3ddb72a1d0d67c5eaa687bc0d0a764027cae4df6 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/bundid/persistence/repository/BundIdPersonLinkRepository.java @@ -0,0 +1,15 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.bundid.persistence.repository; + +import de.eshg.base.bundid.persistence.entity.BundIdPersonLink; +import java.util.Optional; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface BundIdPersonLinkRepository extends JpaRepository<BundIdPersonLink, Long> { + + Optional<BundIdPersonLink> findByBundId(String bundId); +} diff --git a/backend/base/src/main/java/de/eshg/base/calendar/BusinessModuleEventAugmentation.java b/backend/base/src/main/java/de/eshg/base/calendar/BusinessModuleEventAugmentation.java index 5f0e90a5e5fdcd1af753da2b101825542051fdf7..7f3c843cf6cdab9d489946e834b4ab90fe6f108d 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/BusinessModuleEventAugmentation.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/BusinessModuleEventAugmentation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/CalendarController.java b/backend/base/src/main/java/de/eshg/base/calendar/CalendarController.java index 0f2cf30e4d1f8e155ff756d09a266878b8d45384..50fe0d08c292882910dadba1e9aec1909f8e1eef 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/CalendarController.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/CalendarController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventController.java b/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventController.java index 61ce007414a373f8dc92e17909f5a802ff5e0d18..2ddda6e17b23883aa7ee58cf941b3dc745248c9e 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventController.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventService.java b/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventService.java index b4945676353f593ff7363d659ded770df9934794..cc0de5f26d4c1d001cc2c3afe1e2d41a43b2596e 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventService.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/CalendarEventService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -411,11 +411,7 @@ public class CalendarEventService { List<CalendarData> calendars = calendarEventDomainModelHandler.findCalendarsById(calendarExternalIds); if (calendars.size() != calendarExternalIds.size()) { - List<UUID> notFoundIds = - identifyNotExistingIds(calendarExternalIds, calendars, CalendarData::getExternalId); - throw new NotFoundException( - "CalendarId %s not found" - .formatted(String.join(";", notFoundIds.stream().map(UUID::toString).toList()))); + throw new NotFoundException("CalendarId not found"); } return calendars; } @@ -496,9 +492,9 @@ public class CalendarEventService { CalendarEventData calendarEventData = calendarEventDomainModelHandler .findEvent(eventExternalId) - .orElseThrow(() -> eventNotFound(eventExternalId)); + .orElseThrow(CalendarEventService::eventNotFound); if (EventType.BUSINESS_CASE.equals(calendarEventData.getEventType())) { - throw eventNotFound(eventExternalId); + throw eventNotFound(); } return calendarEventData; } @@ -507,9 +503,9 @@ public class CalendarEventService { CalendarEventData calendarEventData = calendarEventDomainModelHandler .findEvent(eventExternalId) - .orElseThrow(() -> eventNotFound(eventExternalId)); + .orElseThrow(CalendarEventService::eventNotFound); if (!EventType.BUSINESS_CASE.equals(calendarEventData.getEventType())) { - throw eventNotFound(eventExternalId); + throw eventNotFound(); } return calendarEventData; } @@ -523,7 +519,7 @@ public class CalendarEventService { } } - private NotFoundException eventNotFound(UUID eventExternalId) { - return new NotFoundException("Event with id %s not found".formatted(eventExternalId)); + private static NotFoundException eventNotFound() { + return new NotFoundException("Event not found"); } } diff --git a/backend/base/src/main/java/de/eshg/base/calendar/CalendarService.java b/backend/base/src/main/java/de/eshg/base/calendar/CalendarService.java index ccf42cdf7ab70d658dcb51add59e891dcce010d8..949177c87b221b220484638a9a21c2fdb2a51417 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/CalendarService.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/CalendarService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -71,7 +71,7 @@ public class CalendarService { Calendar calendar = calendarRepository .findByResourceId(resourceId) - .orElseThrow(() -> notFoundWithResourceId(resourceId)); + .orElseThrow(() -> new NotFoundException("Calendar with given resource id not found")); return CalendarMapper.mapToResourceCalendar(calendar); } @@ -132,10 +132,6 @@ public class CalendarService { return new GetCalendarsResponse(calendarTypeDtos); } - private static NotFoundException notFoundWithResourceId(UUID resourceId) { - return new NotFoundException("Calendar with resource id %s not found".formatted(resourceId)); - } - @Transactional public GetUserCalendarsResponse getUserCalendars(List<UUID> userIds) { List<UserDto> users = userService.getUsers(userIds, true); diff --git a/backend/base/src/main/java/de/eshg/base/calendar/RegionalHolidayCalendar.java b/backend/base/src/main/java/de/eshg/base/calendar/RegionalHolidayCalendar.java index 61ac9914aabbaa0fc04a3002a816d923396bbcbc..20deb4cb29fb0a5219436aa0e12b9c59c7adfa69 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/RegionalHolidayCalendar.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/RegionalHolidayCalendar.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarData.java b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarData.java index 63aa0fbf8bf408d946bb2c8a9334b87b343f0319..c8c218bdc57dcd4f83187f8f27d0815b369fe7e3 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarData.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventData.java b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventData.java index 3beaf0849a39beda8beae8c36d45743c56818ad7..8f7b2283ebaf00100bc0ec0ac8b3c610551c3575 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventData.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventMapper.java b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventMapper.java index b43040e9f66e7a37bd9c3ceb3b988c8979006597..0e6447ce70b8a733d9c15640a725113121e325ef 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventMapper.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarEventMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarMapper.java b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarMapper.java index 0830360f80c6d7042e768ec2bc7d072dc817f25d..7525b8803b22ba21c39e8179fcf57f0d3b3aa955 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarMapper.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/mapper/CalendarMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/CalendarEventDomainModelHandler.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/CalendarEventDomainModelHandler.java index 99e6e5c34870ea7c54f556b1f52c80022a883a95..28fe77ef5a1e81341ac3885adab83e895c15a3a5 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/CalendarEventDomainModelHandler.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/CalendarEventDomainModelHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/Calendar.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/Calendar.java index 543586eb39999de3aa5f226cad61c76434f24b11..8d0af288bf92e6f53385ab12333a7e51225e05b5 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/Calendar.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/Calendar.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEvent.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEvent.java index 7d98f935159f611fe7b00fbe5b2cbf2692aa7d5c..62d8d58aa0b55dd02c4c7b4739cca8bcd82b1344 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEvent.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEventMutex.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEventMutex.java index cdd69cbb6af89c0c2375dee40488e294b5e94f15..fdd653d9f41a2a58728183241defbc44227624c8 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEventMutex.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarEventMutex.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarType.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarType.java index 78a6146a2d7d8bce829135b888861496315215f4..27acf658af7e350a229c91eec5eb57844e40298a 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarType.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/CalendarType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/EventType.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/EventType.java index be0b72cf15dfb32fb198f45c053ba409a86bd6b3..ec888c01c1c62417a8c006855e8bde3cbd7b6079 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/EventType.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/entity/EventType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventMutexRepository.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventMutexRepository.java index e29de74d853d653283613e96b9daa9fbf537ba43..3f31cfe3d6c9367e0f574fc2670435082a32ce51 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventMutexRepository.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventMutexRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventRepository.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventRepository.java index 9c0bd012c6bb863b6890dfb675549bd8bccfafde..e8258c297cf09ce1450e02f604a5cc034f4ec001 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventRepository.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarEventRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarRepository.java b/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarRepository.java index 44b6f1c36abacf75dc100700332aba21ad4b7e87..40a0844a378d26d5ff165c5faddebd78456967eb 100644 --- a/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarRepository.java +++ b/backend/base/src/main/java/de/eshg/base/calendar/persistence/repository/CalendarRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileAuditLogger.java b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileAuditLogger.java index cdc91cec9a8922cf2d525a61816a2b71e5103dad..5fcf8894b8e640d3d7f0907d03615935a322dd02 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileAuditLogger.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileAuditLogger.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupService.java b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupService.java index f7687d4c3ce953b976e53b8c365972e15198b6bf..612aa60e98357837675a4e66c680476262770a12 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupService.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupServiceConfig.java b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupServiceConfig.java index 5be6ab68e741908903f2adf38499116e566bcfe2..0f6c5c85f338bb01a0a7578b2fe284fd6af6aa3b 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupServiceConfig.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileCleanupServiceConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileData.java b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileData.java index 9b2f6b7c017bb7472914eb4b12fa3e6e87fb3634..1b9c3969877f2b55559ce04cefe8201c198e9ed2 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileData.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/CentralFileData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/FacilityController.java b/backend/base/src/main/java/de/eshg/base/centralfile/FacilityController.java index 6b9b2ae49faf786d1f0475c48862e338cc5ddaef..070b3fa4424789a9064b17428895de905cf4b360 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/FacilityController.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/FacilityController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -218,8 +218,7 @@ public class FacilityController implements FacilityApi { .orElseThrow( () -> new NotFoundException( - "Facility File State with ID %s (or associated Reference Facility) not found" - .formatted(id))); + "Facility File State with given ID (or associated Reference Facility) not found")); } private static GetFacilityFileStateResponse mapFacilityToGetFacilityFileStateResponse( diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/PersonController.java b/backend/base/src/main/java/de/eshg/base/centralfile/PersonController.java index 45f61d938a61d0756682bf7ac398cf1f68651d92..51666662da65db05ee831ef96d6592d4fdb200c3 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/PersonController.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/PersonController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -334,8 +334,7 @@ public class PersonController implements PersonApi { .orElseThrow( () -> new NotFoundException( - "Person File State with ID %s (or associated Reference Person) not found" - .formatted(id))); + "Person File State with given ID (or associated Reference Person) not found")); } public static GetPersonFileStateResponse mapPersonToGetPersonFileStateResponse( diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/mapper/FacilityMapper.java b/backend/base/src/main/java/de/eshg/base/centralfile/mapper/FacilityMapper.java index fade12e988592d6a443df55d91443424be7a1116..b73f58f316d7d8b75eab7bc81be702ba199d43da 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/mapper/FacilityMapper.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/mapper/FacilityMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/mapper/PersonMapper.java b/backend/base/src/main/java/de/eshg/base/centralfile/mapper/PersonMapper.java index d76f7d9c364d497f9e1071c9b8988b86e16eb043..ae9a0f4dae068fbb28a6de1fbabf6c04b4d06609 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/mapper/PersonMapper.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/mapper/PersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/FacilityService.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/FacilityService.java index 1c7f177ee86df84107aa2de8466dd26a613e252d..41962ea3de9eb9db772a09790d99d6c950b084dc 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/FacilityService.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/FacilityService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonBulkUpdateHelper.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonBulkUpdateHelper.java index d2ed2664b77ee551332b36cbfdd65170350486a6..4e8e3dcd76e22e12aaea9715b3df1506717469e9 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonBulkUpdateHelper.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonBulkUpdateHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonService.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonService.java index 6538a5a1c3eb5a4207a3fac1773ccab5f2aaed91..bccbad720a2eedc3519803024cfc921bd410864a 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonService.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/PersonService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -399,7 +399,8 @@ public class PersonService { } private List<Person> findAllFilesStates(Set<UUID> fileStateIds) { - return personRepository.findAllByExternalIdInAndReferencePersonIsNotNullOrderById(fileStateIds); + return personRepository.findAllByExternalIdInAndReferencePersonIsNotNullOrderById( + new ArrayList<>(fileStateIds)); } private List<Person> findReferencePersonsByKeyAttributes(Collection<Person> fileStates) { diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/BirthDetails.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/BirthDetails.java index 7a63245435c77a0d99f4352baf0e32e0eb5424b1..1026fd3e54a4e9fb2409b2fabd892807c4d52051 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/BirthDetails.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/BirthDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DataOrigin.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DataOrigin.java index 8e0e1bf883161269ae8f3e5efad2cd80a4265db1..1b031f37bafca9fc91cee12dff2be0a1c809fdac 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DataOrigin.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DataOrigin.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticFacilityAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticFacilityAddress.java index 75e0715ece79b269f82defaf1a16a75ddaf95765..114b9c1f5d2b47d41b64c3e28cd93aaca1646ff9 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticFacilityAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticFacilityAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticPersonAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticPersonAddress.java index ba078096a58233712f7120fcced093ae2dcd170b..fdb2c285e651593d2d8f1590511aad7d771b1fab 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticPersonAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/DomesticPersonAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Facility.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Facility.java index ebf44360f09b2ff909b995ec25a6e5145f666857..685381c2ec558b991505815ecdf226172c6784cc 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Facility.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityAddress.java index a6a48f1809ba992e3098de23971c0e483f7ab6b4..f869ce0945fe23b8437b47c7bb411e9270a5ebce 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityContactPerson.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityContactPerson.java index 0dfa8e781c1ac314c4d118ede5d239edf8eac825..4990eeab4155bba2f659600acbb7b4293c06689a 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityContactPerson.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityContactPerson.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityEmailAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityEmailAddress.java index d9ce9239e7943a87d4ddcb0a11e07e1e63c31ff1..2ec0c2a83178c9f15922ba484bcdae39beec48c8 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityEmailAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityEmailAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityPhoneNumber.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityPhoneNumber.java index 4c4871cbb78f94c1b0cb9402b08096ad99889183..8f4ef4854205c844073f14557e122824f2ee54e6 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityPhoneNumber.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/FacilityPhoneNumber.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Person.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Person.java index 3c47e8ac1b96ecf559b03b5c8db2763577a7ac54..88179d610b492b74a06319993c078e629cf7e84b 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Person.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,6 +7,8 @@ package de.eshg.base.centralfile.persistence.entity; import com.fasterxml.jackson.annotation.JsonIgnore; import de.eshg.base.address.persistence.entity.Address; +import de.eshg.base.bundid.persistence.entity.BundIdPersonLink; +import de.eshg.base.bundid.persistence.entity.BundIdPersonLink_; import de.eshg.base.centralfile.CentralFileData; import de.eshg.base.util.Gender; import de.eshg.base.util.Salutation; @@ -111,6 +113,13 @@ public class Person extends SequencedBaseEntityWithExternalId implements Central @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) private PersonAddress differentBillingAddress; + @OneToOne( + cascade = CascadeType.REMOVE, + orphanRemoval = true, + mappedBy = BundIdPersonLink_.REFERENCE_PERSON) + @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) + private BundIdPersonLink bundIdPersonLink; + public Instant getCreatedAt() { return createdAt; } @@ -361,6 +370,10 @@ public class Person extends SequencedBaseEntityWithExternalId implements Central this.differentBillingAddress = differentBillingAddress; } + public void setBundIdPersonLink(BundIdPersonLink bundIdPersonLink) { + this.bundIdPersonLink = bundIdPersonLink; + } + @Override public Instant getDeleteAt() { return deleteAt; diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonAddress.java index 590d1252d33d9c63557da010f70ec7e61570b210..b056cbf592703bd48716a91e7a173429ab84c9df 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonEmailAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonEmailAddress.java index 7aafbc64dc541a4fabf0f5e024b100e72f141d08..e78dea1acf7f8fd2fad5d654c9b7d22604106684 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonEmailAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonEmailAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonPhoneNumber.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonPhoneNumber.java index 0b8945420b65cbf32bbde7079c4b2fa4f93b9a0f..3b8a7093ba3d8c2ec98d1f0b817f2fd23bdb4576 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonPhoneNumber.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PersonPhoneNumber.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxFacilityAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxFacilityAddress.java index 20d885cd213b0bed6ee8977b42fc44bc3c48573a..4807622246cdc6e0a72ef8195fb21632d9b52362 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxFacilityAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxFacilityAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxPersonAddress.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxPersonAddress.java index dcfcf7dbe48b67a06b8d20422c37dfaa03dd0921..1a5099a85486b24e338ae018e9e6051d0f908b8a 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxPersonAddress.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/entity/PostboxPersonAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilityRepository.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilityRepository.java index 74b4384cbe87e7a03e3e4dc1b699e06067ee9616..6f7157b734df03be40ebbf8e5dae58db3bcdcafc 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilityRepository.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilityRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -92,11 +92,9 @@ public interface FacilityRepository select fileState.externalId from Facility fileState join Facility ref on fileState.referenceFacility.id = ref.id where ref.externalId = :refExternalId - and fileState.createdAt <= :createdAt order by fileState.id """) - List<UUID> findAllFileStateIdsByReferenceFacilityCreatedBefore( - @Param("refExternalId") UUID refExternalId, @Param("createdAt") Instant createdAt); + List<UUID> findAllFileStateIdsByReferenceFacility(@Param("refExternalId") UUID refExternalId); @Transactional @Modifying diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilitySearchSpecification.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilitySearchSpecification.java index c7c33d0fea987c7f4ce8cabb762db0072b3b5512..daf55592e963fb8cc64cebaf33136bf8de90b409 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilitySearchSpecification.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/FacilitySearchSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/PersonRepository.java b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/PersonRepository.java index 7c94bd26484913ae91df6542cf2b4337afff13a4..16287dcd750924cff5ba2dbbc58f15ce3a70f7fd 100644 --- a/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/PersonRepository.java +++ b/backend/base/src/main/java/de/eshg/base/centralfile/persistence/repository/PersonRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -98,13 +98,21 @@ public interface PersonRepository Optional<Person> findByExternalIdEqualsAndReferencePersonIsNull(UUID id); + @Query( + """ + select p from Person p + left join fetch p.bundIdPersonLink + left join fetch p.referencePerson + left join fetch p.referencePerson.bundIdPersonLink + where p.externalId in :ids + and p.referencePerson is not null + order by p.id + """) List<Person> findAllByExternalIdInAndReferencePersonIsNotNullOrderById(List<UUID> ids); @Query("select p.referencePerson from Person p where p.externalId = :fileStateId") Optional<Person> findReferencePersonByFileStateId(UUID fileStateId); - List<Person> findAllByExternalIdInAndReferencePersonIsNotNullOrderById(Set<UUID> ids); - @Query( """ select not exists( @@ -117,20 +125,19 @@ public interface PersonRepository @Query( """ - select fileState.externalId from Person fileState - join Person ref on fileState.referencePerson.id = ref.id - where ref.externalId = :refExternalId - and fileState.createdAt <= :createdAt - order by fileState.id - """) - List<UUID> findAllFileStateIdsByReferencePersonCreatedBefore( - @Param("refExternalId") UUID refExternalId, @Param("createdAt") Instant createdAt); +select fileState.externalId from Person fileState +join Person ref on fileState.referencePerson.id = ref.id +where ref.externalId = :refExternalId +order by fileState.id +""") + List<UUID> findAllFileStateIdsByReferencePerson(@Param("refExternalId") UUID refExternalId); @Query( """ select p from Person p left join fetch p.contactAddress left join fetch p.differentBillingAddress + left join fetch p.bundIdPersonLink where p.externalId in :ids and p.referencePerson is not null """) @@ -142,9 +149,11 @@ public interface PersonRepository select p from Person p left join fetch p.contactAddress left join fetch p.differentBillingAddress + left join fetch p.bundIdPersonLink left join fetch p.referencePerson left join fetch p.referencePerson.contactAddress left join fetch p.referencePerson.differentBillingAddress + left join fetch p.referencePerson.bundIdPersonLink where p.externalId in :ids and p.referencePerson is not null order by p.id @@ -156,9 +165,11 @@ public interface PersonRepository select p from Person p left join fetch p.contactAddress left join fetch p.differentBillingAddress + left join fetch p.bundIdPersonLink left join fetch p.referencePerson left join fetch p.referencePerson.contactAddress left join fetch p.referencePerson.differentBillingAddress + left join fetch p.referencePerson.bundIdPersonLink where p.externalId in :ids and p.referencePerson is not null order by p.id diff --git a/backend/base/src/main/java/de/eshg/base/citizenuser/AccessCodeGenerator.java b/backend/base/src/main/java/de/eshg/base/citizenuser/AccessCodeGenerator.java index d69b6fc6eb990e19cf75a375e46b2993fe9d4c86..b62ffd8e5961add7de8df9e63f2c2696d3029416 100644 --- a/backend/base/src/main/java/de/eshg/base/citizenuser/AccessCodeGenerator.java +++ b/backend/base/src/main/java/de/eshg/base/citizenuser/AccessCodeGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserController.java b/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserController.java index d04315a1cc94d1e5ecd9b13386a3cdd53af47f2c..9cd1adb0fd065d37cfd73534a2e02cdbaf2ee55c 100644 --- a/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserController.java +++ b/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenAccessCodeUserController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserController.java b/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserController.java index c252a8d854f03a863cbbac347804dbe8cb96568c..87f582e033c07f41e1e2511cc21637c5e404a19b 100644 --- a/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserController.java +++ b/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserService.java b/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserService.java index ff9e71947023e95f69a7fa1f96c3ed638b7c432d..6859a113d486cde8a0455b87189f9f2cbfacea4f 100644 --- a/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserService.java +++ b/backend/base/src/main/java/de/eshg/base/citizenuser/CitizenUserService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/citizenuser/config/CitizenUserConfig.java b/backend/base/src/main/java/de/eshg/base/citizenuser/config/CitizenUserConfig.java index d14d57f7c029a19ad41b910e07d0a1883217f4ce..70ccf6c79c9e6ebef28c697284accf59087fb6cb 100644 --- a/backend/base/src/main/java/de/eshg/base/citizenuser/config/CitizenUserConfig.java +++ b/backend/base/src/main/java/de/eshg/base/citizenuser/config/CitizenUserConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenAccessCodeUserMapper.java b/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenAccessCodeUserMapper.java index 8a4f8989b4c6fdfb7a2e3b8bc058073c893a5549..d590dfd4dc94904164a9a57f21d51466eb2b4e95 100644 --- a/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenAccessCodeUserMapper.java +++ b/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenAccessCodeUserMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenUserMapper.java b/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenUserMapper.java index ab9110ca77f1c08a83b23b8f18ed7c8b7c22e26b..5d9ea96303d506504d336e586ccdc7bc0832ca64 100644 --- a/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenUserMapper.java +++ b/backend/base/src/main/java/de/eshg/base/citizenuser/mapper/CitizenUserMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/config/PublicConfigController.java b/backend/base/src/main/java/de/eshg/base/config/PublicConfigController.java index 7de83e314ec079ba7a45fce4e8d49bf350db88e0..ec24d35c5f5b351d2a7a97d6fa3c1b26479c54bf 100644 --- a/backend/base/src/main/java/de/eshg/base/config/PublicConfigController.java +++ b/backend/base/src/main/java/de/eshg/base/config/PublicConfigController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/ContactController.java b/backend/base/src/main/java/de/eshg/base/contact/ContactController.java index c2361777dad8a7532767c4d9ff6add4b78c236a5..9300ac75488df28ae5f7824835aab3652f870ca8 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/ContactController.java +++ b/backend/base/src/main/java/de/eshg/base/contact/ContactController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -288,7 +288,7 @@ public class ContactController implements ContactApi { private Contact findByIdOrThrow(UUID id) { return contactService .findById(id) - .orElseThrow(() -> new NotFoundException("Contact with id '%s' not found".formatted(id))); + .orElseThrow(() -> new NotFoundException("Contact with given id not found")); } private Map<UUID, UserDto> getAuditUsers(List<ContactHistoryEntryDto> history) { diff --git a/backend/base/src/main/java/de/eshg/base/contact/ContactMapper.java b/backend/base/src/main/java/de/eshg/base/contact/ContactMapper.java index ee8e130bd6c4b4a5695264c2b06f9cefb4164524..75349c556efde43c0c33c76531778cf28ab78842 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/ContactMapper.java +++ b/backend/base/src/main/java/de/eshg/base/contact/ContactMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/importing/ParseVCardUtils.java b/backend/base/src/main/java/de/eshg/base/contact/importing/ParseVCardUtils.java index a82c3eefe609b2693f4d3b6e107b49ce2916785a..719d070e41bdc1c68543f07d67db44c54ebb2401 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/importing/ParseVCardUtils.java +++ b/backend/base/src/main/java/de/eshg/base/contact/importing/ParseVCardUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/importing/VCardMapper.java b/backend/base/src/main/java/de/eshg/base/contact/importing/VCardMapper.java index 677faf9daed895f9ab8ba9c58a4f86ce0b9796d8..570538b104a89932b83fc3dc82fb4fda8bc5c0d9 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/importing/VCardMapper.java +++ b/backend/base/src/main/java/de/eshg/base/contact/importing/VCardMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactSearchSpecificationUtil.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactSearchSpecificationUtil.java index 9ea3a0f989e329792a52a89a8e17c62e68045d29..24c683f75c5934ca1a68cfbbc6dc38d16f235be8 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactSearchSpecificationUtil.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactSearchSpecificationUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactService.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactService.java index fa3b9854e483f25d82bf20f9a46e69e0b4afb666..f9c11fb9ec3222409ea12614c4d9eb20534d9c1d 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactService.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/ContactService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/Contact.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/Contact.java index a3ca845c82c3d01d6648ca0dacc47912c23fbd8f..391bdeab12f6bf4ff568e7ffa8304efb302a6991 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/Contact.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/Contact.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactAddress.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactAddress.java index 4350327a84f84bf64d691b85f740e594bf12c6bb..e33c716dcfedb36df905ea4498159a976d2af14b 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactAddress.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactEmailAddress.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactEmailAddress.java index 43d511f9d60a30588c66381907e96d462aca3ac3..f931e4f0732177146033a58e50d8f1ca4ff78ee5 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactEmailAddress.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactEmailAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactPhoneNumber.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactPhoneNumber.java index 4bdadc2509dc0c737c3d327ab5e7876dd5d75664..c29b746c8ba2263ccfaa612ea37f1c16048ae21d 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactPhoneNumber.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/ContactPhoneNumber.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/DomesticContactAddress.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/DomesticContactAddress.java index 1e0fdc596354ace16f8b0f77c0a8d837772b7918..135677e6abce42aad853a66c514b6913f07ac4ff 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/DomesticContactAddress.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/DomesticContactAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContact.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContact.java index 926ba16650115ae5490b740ad70afea646e731c4..a0c3855f3c11796911fd482c816d2d2ff7f88a1c 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContact.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContact.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContactCategory.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContactCategory.java index 1797e5ce452e58c776b4f16f9043e511837e1e0d..1c0746f84f3e501b025fd1f23d409ed00048e1fd 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContactCategory.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/InstitutionContactCategory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PersonContact.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PersonContact.java index d8d1222fc35ac65526c093db0ba74b476186aad3..c336dcc0564aebd584a85478a7c23209b209f73d 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PersonContact.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PersonContact.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PostboxContactAddress.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PostboxContactAddress.java index 7b5d671dbcdc425302656a2b045375e4969f80c6..006b10a23b8e4adb67957bbb1616c18b870f0646 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PostboxContactAddress.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/entity/PostboxContactAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/contact/persistence/repository/ContactRepository.java b/backend/base/src/main/java/de/eshg/base/contact/persistence/repository/ContactRepository.java index a8c285b63b691a08d3452c49f898e9e30e1b0931..3cf9171e642e1b901ea1094059cdda84ebaedc3a 100644 --- a/backend/base/src/main/java/de/eshg/base/contact/persistence/repository/ContactRepository.java +++ b/backend/base/src/main/java/de/eshg/base/contact/persistence/repository/ContactRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/department/DepartmentConfiguration.java b/backend/base/src/main/java/de/eshg/base/department/DepartmentConfiguration.java index d4f086d7e3797ecaba726d3fcb1e49163808bf52..0489e88eb260e61bddc48b1e6b2365d6dcca0444 100644 --- a/backend/base/src/main/java/de/eshg/base/department/DepartmentConfiguration.java +++ b/backend/base/src/main/java/de/eshg/base/department/DepartmentConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/department/DepartmentController.java b/backend/base/src/main/java/de/eshg/base/department/DepartmentController.java index cbf73c020eb26a5cf21cb293aaaf08c9946e4689..34ec53950341af7dbfb4a3071389b8e7eb012e54 100644 --- a/backend/base/src/main/java/de/eshg/base/department/DepartmentController.java +++ b/backend/base/src/main/java/de/eshg/base/department/DepartmentController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureToggle.java b/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureToggle.java index 9dff93c7c8a1ae952f09b245d9f70ee1cf44a744..06d7fce8e90b5bd81337af716c6a879b57bd1904 100644 --- a/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureToggle.java +++ b/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureTogglesController.java b/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureTogglesController.java index 3a13d1cceba4da4dba4c476d118d71678d5a6da6..960234a5515140f7f4868f832cc4a60626ffcc1c 100644 --- a/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureTogglesController.java +++ b/backend/base/src/main/java/de/eshg/base/feature/BaseFeatureTogglesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/GdprDownloadRepository.java b/backend/base/src/main/java/de/eshg/base/gdpr/GdprDownloadRepository.java index c1f9d7f4a3f21656b55d0f21cbe85d55683b1a70..11e65b97fa3f3930c3ed82f8944ee4bbc4dc23c0 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/GdprDownloadRepository.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/GdprDownloadRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureController.java b/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureController.java index 07bf8a8c6643f0e26e1fb6cd71aca9c4346a0f14..7ea9fc103d97ed1c788b064f5d9023dca63e00e3 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureController.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,6 +8,7 @@ package de.eshg.base.gdpr; import static de.eshg.base.gdpr.GdprProcedureMapper.*; import static de.eshg.lib.aggregation.AggregationHelper.aggregateErrorResponses; +import de.cronn.commons.lang.StreamUtil; import de.eshg.base.SortDirection; import de.eshg.base.centralfile.mapper.FacilityMapper; import de.eshg.base.centralfile.mapper.PersonMapper; @@ -27,6 +28,8 @@ import de.eshg.file.common.CustomMediaTypes; import de.eshg.lib.aggregation.BusinessModuleAggregationHelper; import de.eshg.lib.aggregation.ClientResponse; import de.eshg.lib.common.BusinessModuleCapability; +import de.eshg.lib.procedure.model.CheckFileStateUsageRequest; +import de.eshg.lib.procedure.model.CheckFileStateUsageResponse; import de.eshg.lib.procedure.model.gdpr.AddGdprValidationTaskRequest; import de.eshg.lib.procedure.model.gdpr.GdprValidationTaskStatusDto; import de.eshg.lib.procedure.model.gdpr.GetGdprValidationTaskResponse; @@ -38,11 +41,12 @@ import de.eshg.rest.service.error.NotFoundException; import de.eshg.validation.ValidationUtil; import io.swagger.v3.oas.annotations.tags.Tag; import java.nio.charset.StandardCharsets; +import java.time.Clock; import java.time.Instant; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.UUID; -import java.util.function.Supplier; import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -70,6 +74,7 @@ public class GdprProcedureController implements GdprProcedureApi { private final GdprRightToObjectLetterGenerator rightToObjectLetterGenerator; private final BaseFeatureToggle baseFeatureToggle; private final BusinessModuleAggregationHelper businessModuleAggregationHelper; + private final Clock clock; public GdprProcedureController( GdprProcedureService service, @@ -79,7 +84,8 @@ public class GdprProcedureController implements GdprProcedureApi { FacilityRepository facilityRepository, GdprRightToObjectLetterGenerator rightToObjectLetterGenerator, BaseFeatureToggle baseFeatureToggle, - BusinessModuleAggregationHelper businessModuleAggregationHelper) { + BusinessModuleAggregationHelper businessModuleAggregationHelper, + Clock clock) { this.service = service; this.personService = personService; this.facilityService = facilityService; @@ -88,6 +94,7 @@ public class GdprProcedureController implements GdprProcedureApi { this.rightToObjectLetterGenerator = rightToObjectLetterGenerator; this.baseFeatureToggle = baseFeatureToggle; this.businessModuleAggregationHelper = businessModuleAggregationHelper; + this.clock = clock; } @Override @@ -119,23 +126,62 @@ public class GdprProcedureController implements GdprProcedureApi { if (isStatusRefreshRequired(gdprProcedureFromDb)) { List<GetGdprValidationTaskResponse> validationTasks = getValidationTasksFromBusinessModules(gdprProcedureFromDb); - closeGdprProcedureIfAllValidationTasksClosed(validationTasks, gdprProcedureFromDb); + + if (gdprProcedureFromDb.getType() == GdprProcedureType.RIGHT_TO_ERASURE + && isAllClosed(validationTasks)) { + deleteUnusedFileStates(gdprProcedureFromDb); + } + + closeGdprProcedureAndCreateCentralFileDownloadIfAllValidationTasksClosed( + validationTasks, gdprProcedureFromDb); } return mapGdprProcedureToApi(gdprProcedureFromDb); } + private void deleteUnusedFileStates(GdprProcedure procedure) { + UUID id = procedure.getExternalId(); + log.info("Deleting unused file states for GdprProcedure(id={}).", id); + + Set<UUID> fileStateIds = fetchFileStateIdsFromDb(procedure); + if (fileStateIds.isEmpty()) { + log.info("No file states to delete. None found in DB for GdprProcedure(id={}).", id); + return; + } + + Set<UUID> fileStatesInUse = + fetchUsedFileStateIdsFromBusinessModules(fileStateIds.stream().toList(), id); + + fileStateIds.removeAll(fileStatesInUse); + log.info("Marking file states for deletion for GdprProcedure(id={}): {}", id, fileStateIds); + personService.markAllForDeletionAt(fileStateIds, Instant.now(clock)); + facilityService.markAllForDeletionAt(fileStateIds, Instant.now(clock)); + } + + private Set<UUID> fetchFileStateIdsFromDb(GdprProcedure procedure) { + Set<UUID> fileStateIds = new LinkedHashSet<>(); + fileStateIds.addAll( + personRepository.findAllFileStateIdsByReferencePerson(procedure.getCentralFileId())); + + fileStateIds.addAll( + facilityRepository.findAllFileStateIdsByReferenceFacility(procedure.getCentralFileId())); + return fileStateIds; + } + private static boolean isStatusRefreshRequired(GdprProcedure gdprProcedureFromDb) { return GdprProcedureStatus.IN_PROGRESS == gdprProcedureFromDb.getStatus() && TYPES_REQUIRING_BROADCAST.contains(gdprProcedureFromDb.getType()); } - private void closeGdprProcedureIfAllValidationTasksClosed( + private void closeGdprProcedureAndCreateCentralFileDownloadIfAllValidationTasksClosed( List<GetGdprValidationTaskResponse> validationTasks, GdprProcedure gdprProcedureFromDb) { UUID id = gdprProcedureFromDb.getExternalId(); if (isAllClosed(validationTasks)) { log.info("GdpProcedure(id={}) is closed. It has no open validation tasks.", id); service.updateStatus(gdprProcedureFromDb, GdprProcedureStatus.CLOSED); + if (gdprProcedureFromDb.getType() == GdprProcedureType.RIGHT_OF_ACCESS) { + service.createDownloadPackageForCentralFiles(gdprProcedureFromDb); + } } else { log.info("GdpProcedure(id={}) is not closed. It has open validation tasks.", id); } @@ -147,7 +193,7 @@ public class GdprProcedureController implements GdprProcedureApi { } private GdprProcedure getGdprProcedureFromDb(UUID id) { - return service.findByExternalId(id).orElseThrow(notFound(id)); + return service.findByExternalId(id).orElseThrow(GdprProcedureController::notFoundException); } private List<GetGdprValidationTaskResponse> getValidationTasksFromBusinessModules( @@ -204,6 +250,27 @@ public class GdprProcedureController implements GdprProcedureApi { }); } + private Set<UUID> fetchUsedFileStateIdsFromBusinessModules(List<UUID> fileStateIds, UUID id) { + log.info("Checking usage in modules: GdprProcedure(id={}), fileStateIds={}", id, fileStateIds); + List<ClientResponse<CheckFileStateUsageResponse>> clientResponses = + businessModuleAggregationHelper.requestFromBusinessModules( + null, + BusinessModuleCapability.PROCEDURES, + client -> { + return client.checkFileStateUsage(new CheckFileStateUsageRequest(fileStateIds)); + }); + + List<ErrorResponseWithLocation> errorResponses = aggregateErrorResponses(clientResponses); + + if (hasError(errorResponses)) { + onBusinessModuleError(errorResponses, "checkFileStateUsage", id); + } + + return clientResponses.stream() + .flatMap(r -> r.response().inUse().stream()) + .collect(StreamUtil.toLinkedHashSet()); + } + @Override @Transactional(readOnly = true) public GetGdprProcedureDetailsPageResponse getGdprProcedureDetailsPage(UUID id) { @@ -245,8 +312,8 @@ public class GdprProcedureController implements GdprProcedureApi { facilityMatches.stream().map(FacilityMapper::mapReferenceFacilityToApi).toList()); } - private static Supplier<NotFoundException> notFound(UUID id) { - return () -> new NotFoundException("GdprProcedure with id '%s' not found.".formatted(id)); + private static NotFoundException notFoundException() { + return new NotFoundException("GdprProcedure with given id not found."); } @Override @@ -281,12 +348,10 @@ public class GdprProcedureController implements GdprProcedureApi { validateCreatedAt(gdprProcedure); List<UUID> personFileStateIds = - personRepository.findAllFileStateIdsByReferencePersonCreatedBefore( - gdprProcedure.getCentralFileId(), gdprProcedure.getCreatedAt()); + personRepository.findAllFileStateIdsByReferencePerson(gdprProcedure.getCentralFileId()); List<UUID> facilityFileStateIds = - facilityRepository.findAllFileStateIdsByReferenceFacilityCreatedBefore( - gdprProcedure.getCentralFileId(), gdprProcedure.getCreatedAt()); + facilityRepository.findAllFileStateIdsByReferenceFacility(gdprProcedure.getCentralFileId()); return new GetGdprProcedureFileStateIdsResponse(personFileStateIds, facilityFileStateIds); } @@ -310,6 +375,7 @@ public class GdprProcedureController implements GdprProcedureApi { public void setMatterOfConcern(UUID id, SetMatterOfConcernRequest request) { GdprProcedure procedure = getProcedureAndValidateVersion(id, request.version()); procedure.setMatterOfConcern(request.concern()); + service.writeAuditLog("Anliegen setzen", service.mapAuditLog(procedure)); } @Override @@ -320,20 +386,13 @@ public class GdprProcedureController implements GdprProcedureApi { validateStatusTransitionToInProgress(procedure); validateMatterOfConcern(procedure); - switch (procedure.getType()) { - case GdprProcedureType.RIGHT_OF_ACCESS -> { - validateCentralFileId(procedure); - validateCreatedAt(procedure); - service.createDownloadPackageForCentralFiles(procedure); - createValidationTasks(procedure); - } - case RIGHT_TO_ERASURE -> { - validateCentralFileId(procedure); - validateCreatedAt(procedure); - createValidationTasks(procedure); - } + if (procedure.getType() == GdprProcedureType.RIGHT_OF_ACCESS + || procedure.getType() == GdprProcedureType.RIGHT_TO_ERASURE) { + validateCentralFileId(procedure); + validateCreatedAt(procedure); + createValidationTasks(procedure); } - changeStatus(id, procedure, GdprProcedureStatus.IN_PROGRESS); + service.updateStatus(procedure, GdprProcedureStatus.IN_PROGRESS); } private static void validateStatusTransitionToInProgress(GdprProcedure procedure) { @@ -370,7 +429,7 @@ public class GdprProcedureController implements GdprProcedureApi { } procedure.setInternalNote(request.internalNote()); - changeStatus(id, procedure, GdprProcedureStatus.ABORTED); + service.updateStatus(procedure, GdprProcedureStatus.ABORTED); } @Override @@ -386,17 +445,7 @@ public class GdprProcedureController implements GdprProcedureApi { } procedure.setInternalNote(request.internalNote()); - changeStatus(id, procedure, GdprProcedureStatus.CLOSED); - } - - private void changeStatus(UUID id, GdprProcedure procedure, GdprProcedureStatus newStatus) { - procedure.setStatus(newStatus); - log.info( - "Changed status of GdprProcedure(id={}) of type {} from {} to {}", - id, - procedure.getType(), - procedure.getStatus(), - newStatus); + service.updateStatus(procedure, GdprProcedureStatus.CLOSED); } private GdprProcedure getProcedureAndValidateVersion(UUID id, long version) { @@ -453,6 +502,7 @@ public class GdprProcedureController implements GdprProcedureApi { ErrorCode.UNEXPECTED_ERROR, "Error from one or more Business Modules while creating ValidationTasks"); } + service.writeAuditLog("Fachmodul Prüfaufträge erzeugen", service.mapAuditLog(gdprProcedure)); } private List<ErrorResponseWithLocation> postValidationTasks( @@ -528,15 +578,20 @@ public class GdprProcedureController implements GdprProcedureApi { byte[] content = centralFileDownload.getContent(); - return ResponseEntity.ok() - .header( - HttpHeaders.CONTENT_DISPOSITION, - ContentDisposition.attachment() - .filename(downloadPackageFilename(id), StandardCharsets.UTF_8) - .build() - .toString()) - .header(HttpHeaders.CONTENT_TYPE, CustomMediaTypes.ZIP_VALUE) - .body(new ByteArrayResource(content)); + ResponseEntity<Resource> body = + ResponseEntity.ok() + .header( + HttpHeaders.CONTENT_DISPOSITION, + ContentDisposition.attachment() + .filename(downloadPackageFilename(id), StandardCharsets.UTF_8) + .build() + .toString()) + .header(HttpHeaders.CONTENT_TYPE, CustomMediaTypes.ZIP_VALUE) + .body(new ByteArrayResource(content)); + + service.writeAuditLog("Stammdaten Paket herunterladen", service.mapAuditLog(procedure)); + + return body; } private static String downloadPackageFilename(UUID id) { diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureMapper.java b/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureMapper.java index 1d392f0f9f52b67da58202b06f5a2c10018523cb..975aea587f5cac61674643fc9d830907d0c613c4 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureMapper.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureService.java b/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureService.java index c5057cd091996f40a4d291a5ac2db176239ce899..165e45b01b267838026b842b1528104dd07a2d3e 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureService.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/GdprProcedureService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -19,16 +19,20 @@ import de.eshg.base.gdpr.persistence.repository.GdprProcedureRepository; import de.eshg.base.util.PaginationUtil; import de.eshg.domain.model.EntityWithExternalId; import de.eshg.domain.model.serialization.SerializationService; +import de.eshg.lib.auditlog.AuditLogger; import de.eshg.rest.service.error.AlreadyExistsException; import de.eshg.rest.service.error.NotFoundException; +import de.eshg.rest.service.security.CurrentUserHelper; import de.eshg.validation.ValidationUtil; import jakarta.validation.constraints.NotNull; import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.UUID; -import java.util.function.Supplier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; @@ -39,12 +43,16 @@ import org.springframework.stereotype.Service; @Service public class GdprProcedureService { + + private static final String AUDITLOG_CATEGORY = "DSGVO"; + private static final Logger log = LoggerFactory.getLogger(GdprProcedureService.class); private final GdprProcedureRepository repository; private final PersonRepository personRepository; private final FacilityRepository facilityRepository; private final GdprDownloadRepository downloadRepository; private final SerializationService serializationService; + private final AuditLogger auditLogger; private static Specification<GdprProcedure> hasType(GdprProcedureType type) { if (type == null) { @@ -58,17 +66,21 @@ public class GdprProcedureService { PersonRepository personRepository, FacilityRepository facilityRepository, GdprDownloadRepository downloadRepository, - SerializationService serializationService) { + SerializationService serializationService, + AuditLogger auditLogger) { this.repository = procedureRepository; this.personRepository = personRepository; this.facilityRepository = facilityRepository; this.downloadRepository = downloadRepository; this.serializationService = serializationService; + this.auditLogger = auditLogger; } public GdprProcedure add(GdprProcedure procedure) { procedure.setStatus(GdprProcedureStatus.DRAFT); - return repository.save(procedure); + GdprProcedure saved = repository.save(procedure); + writeAuditLog("DSGVO Vorgang anlegen", mapAuditLog(saved)); + return saved; } public Optional<GdprProcedure> findByExternalId(UUID id) { @@ -91,21 +103,25 @@ public class GdprProcedureService { storedGdprProcedure.setCentralFileId(centralFileId); - return getGdprProcedure(gdprProcedureId); + GdprProcedure getGdprProcedure = getGdprProcedure(gdprProcedureId); + writeAuditLog("StammdatenID hinzufügen", mapAuditLog(getGdprProcedure)); + return getGdprProcedure; } private GdprProcedure getGdprProcedure(UUID gdprProcedureId) { - return repository.findByExternalId(gdprProcedureId).orElseThrow(notFound(gdprProcedureId)); + return repository + .findByExternalId(gdprProcedureId) + .orElseThrow(GdprProcedureService::notFoundException); } public GdprProcedure getGdprProcedureForUpdate(UUID gdprProcedureId) { return repository .findByExternalIdForUpdate(gdprProcedureId) - .orElseThrow(notFound(gdprProcedureId)); + .orElseThrow(GdprProcedureService::notFoundException); } - private static Supplier<NotFoundException> notFound(UUID id) { - return () -> new NotFoundException("GdprProcedure with id '%s' not found.".formatted(id)); + private static NotFoundException notFoundException() { + return new NotFoundException("GdprProcedure with given id not found."); } public void addGdprDownloads(UUID id, @NotNull Set<UUID> downloadIdsToAdd) { @@ -122,6 +138,8 @@ public class GdprProcedureService { GdprDownload download = new GdprDownload(); download.setDownloadId(uuid); procedure.addDownload(download); + + writeAuditLog("Datenpaket hinzufügen", mapAuditLog(procedure, uuid)); } log.info("Added downloadIds={} to GdprProcedure(id={})", downloadIdsToAdd, id); @@ -133,6 +151,7 @@ public class GdprProcedureService { for (UUID uuid : downloadIdsToDelete) { procedure.deleteDownload(uuid); + writeAuditLog("Datenpaket löschen", mapAuditLog(procedure, uuid)); } log.info("Deleted downloadIds={} of GdprProcedure(id={})", downloadIdsToDelete, id); @@ -142,6 +161,8 @@ public class GdprProcedureService { log.info("Setting status of GdprProcedure(id={}) to {}.", gdprProcedure.getId(), newStatus); gdprProcedure.setStatus(newStatus); repository.flush(); + + writeAuditLog("Status aktualisieren", mapAuditLog(gdprProcedure)); return gdprProcedure; } @@ -152,20 +173,19 @@ public class GdprProcedureService { DownloadPackage downloadPackage = new DownloadPackage(); downloadPackage.setContent(zipped); procedure.setCentralFileDownload(downloadPackage); + writeAuditLog("Stammdatenpaket erzeugen", mapAuditLog(procedure)); } private byte[] serializeCentralFiles(GdprProcedure procedure) { List<UUID> personFileStateIds = - personRepository.findAllFileStateIdsByReferencePersonCreatedBefore( - procedure.getCentralFileId(), procedure.getCreatedAt()); + personRepository.findAllFileStateIdsByReferencePerson(procedure.getCentralFileId()); List<Person> personFileStates = personRepository.findAllByExternalIdInAndReferencePersonIsNotNullOrderById( personFileStateIds); List<UUID> facilityFileStateIds = - facilityRepository.findAllFileStateIdsByReferenceFacilityCreatedBefore( - procedure.getCentralFileId(), procedure.getCreatedAt()); + facilityRepository.findAllFileStateIdsByReferenceFacility(procedure.getCentralFileId()); List<Facility> facilityFileStates = facilityRepository.findAllByExternalIdInAndReferenceFacilityIsNotNullOrderById( @@ -177,4 +197,21 @@ public class GdprProcedureService { return serializationService.toNestedZip("Sachstand-", fileStates); } + + public void writeAuditLog(String operationName, Map<String, String> attributes) { + attributes = new LinkedHashMap<>(attributes); + attributes.put( + "durch Benutzer", CurrentUserHelper.getCurrentUserIdAsStringGracefully().orElse("-")); + auditLogger.log(AUDITLOG_CATEGORY, operationName, attributes); + } + + public Map<String, String> mapAuditLog(GdprProcedure procedure) { + return Map.of("DSGVO Vorgang ID", procedure.getExternalId().toString()); + } + + private Map<String, String> mapAuditLog(GdprProcedure procedure, UUID downloadId) { + Map<String, String> mappedAuditLog = new HashMap<>(mapAuditLog(procedure)); + mappedAuditLog.putIfAbsent("Download ID", downloadId.toString()); + return mappedAuditLog; + } } diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/DownloadPackage.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/DownloadPackage.java index fb96cae97684c3f01d179a8ddc731b2c76bcb3a8..61fb8421f7bc72be4fb6375e3a021cde6fd72528 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/DownloadPackage.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/DownloadPackage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticFacilityAddress.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticFacilityAddress.java index 6239686f3b65b24dfe34e9c253c1402237dd55ee..70d698c47808f19137b61eea1f794dbbcd7027f5 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticFacilityAddress.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticFacilityAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticPersonAddress.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticPersonAddress.java index c9d24e3235ff569086093a48bd44db578a9a6622..1fe7646523b0a8256cec8338d5589627618588f6 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticPersonAddress.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDomesticPersonAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDownload.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDownload.java index eeae02476dc0133e577b9ceafc744e06dbda4eef..be23a357e430438052b5b0d164d47a33972c59e0 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDownload.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprDownload.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacility.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacility.java index b626a747fdd2c90088b621fe8c0da298580f9cbe..bb951ae14fc305794d993c481b5b2c63f8364730 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacility.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacilityAddress.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacilityAddress.java index d017f1836b115649f680f116f2c222d08a0edcf3..c25048a5d5efdc4491dd1750a1f2143c4b03e7c0 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacilityAddress.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprFacilityAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPerson.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPerson.java index ada6fd1de982f8c0e0424e180211f64b06c0b822..b6bcfa5969247a97086030a0e2bb281f12f6e8cd 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPerson.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPerson.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPersonAddress.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPersonAddress.java index 1c6f66b954d26be91794b7c8c68746b6cbb50050..d0c1b138c8338a3b2b1a89e1b097f6f2d67aefa1 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPersonAddress.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPersonAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxFacilityAddress.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxFacilityAddress.java index d3c7ede964ed28a87339e8f2f0ad61979e9e8e4d..74056efd84e90af016f5a0a1f47818562682f07c 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxFacilityAddress.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxFacilityAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxPersonAddress.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxPersonAddress.java index fe0e9951bf8620c748d7972fb639068a917addba..fc4f07ee15c5ae9b0d6c44ea7d9df0aaa2d5e8c6 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxPersonAddress.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprPostboxPersonAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedure.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedure.java index c6423739f172b3dd3b83346cd36479c3d4da81f8..cf1a08ee981feb9cd3dfbeac345b19e6c04113cb 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedure.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -70,10 +70,6 @@ public class GdprProcedure extends BaseEntityWithExternalId { @DataSensitivity(SensitivityLevel.SENSITIVE) private DownloadPackage centralFileDownload; - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - public UUID getCentralFileId() { return centralFileId; } @@ -106,10 +102,6 @@ public class GdprProcedure extends BaseEntityWithExternalId { return modifiedAt; } - public void setModifiedAt(Instant modifiedAt) { - this.modifiedAt = modifiedAt; - } - public Instant getClosedAt() { return closedAt; } diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureStatus.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureStatus.java index c96bf7cee8db8d5b32962a759a3b5da15b4f6e79..d55c45294ee774f17476aceb76266f6ca07eb756 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureStatus.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureType.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureType.java index 0f40ed40934bc6d7b28d6383668a26bca80103bb..9059f4fee94f620c9a5880ae38a3b400b63be614 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureType.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/GdprProcedureType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/IdentificationData.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/IdentificationData.java index 9a1fdfd8c815f4e0f4febdefbd67cd3efb1f7b6a..de81d4fbcb063d3872613ccd59b8e61a14c8006f 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/IdentificationData.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/IdentificationData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/repository/GdprProcedureRepository.java b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/repository/GdprProcedureRepository.java index 802910630f7f3667bbb945dd99286d95574ce1a0..bb4a577840753de3d7e3d7e7aabca74d5201ecf9 100644 --- a/backend/base/src/main/java/de/eshg/base/gdpr/persistence/repository/GdprProcedureRepository.java +++ b/backend/base/src/main/java/de/eshg/base/gdpr/persistence/repository/GdprProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/InventoryController.java b/backend/base/src/main/java/de/eshg/base/inventory/InventoryController.java index 6f4bcf9eb98a2b6dc07d821cccc350778a8530ab..a7f518b300c273f29319cbe3af42b1b367d128a8 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/InventoryController.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/InventoryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/InventoryMapper.java b/backend/base/src/main/java/de/eshg/base/inventory/InventoryMapper.java index 84235a4ee136c50bb441b852d173ede8c3e8e923..1ff6ffce128b341767993a8a369dad49f346e296 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/InventoryMapper.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/InventoryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/InventoryService.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/InventoryService.java index 0de50d8f3672f44351b6bcd21c3622aebd0e0029..9cce03e1082f2404b7337976012cfd14b1e54ff4 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/InventoryService.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/InventoryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -24,12 +24,11 @@ import de.eshg.lib.keycloak.EmployeePermissionRole; import de.eshg.rest.service.error.AlreadyExistsException; import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.error.ErrorCode; +import de.eshg.rest.service.error.NotFoundException; import de.eshg.rest.service.security.CurrentUserHelper; import de.eshg.validation.ValidationUtil; import jakarta.persistence.EntityManager; import jakarta.persistence.LockModeType; -import jakarta.persistence.PersistenceContext; -import jakarta.ws.rs.NotFoundException; import java.util.*; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -50,20 +49,21 @@ public class InventoryService { private final FuzzySearchHelper fuzzySearchHelper; private final LabelService labelService; private final AuditLogger auditLogger; - - @PersistenceContext private EntityManager entityManager; + private final EntityManager entityManager; public InventoryService( InventoryRepository inventoryRepository, InventoryBookingRepository inventoryBookingRepository, FuzzySearchHelper fuzzySearchHelper, LabelService labelService, - AuditLogger auditLogger) { + AuditLogger auditLogger, + EntityManager entityManager) { this.inventoryRepository = inventoryRepository; this.inventoryBookingRepository = inventoryBookingRepository; this.fuzzySearchHelper = fuzzySearchHelper; this.labelService = labelService; this.auditLogger = auditLogger; + this.entityManager = entityManager; } private Specification<InventoryItem> containsNameOrHasNameFuzzy(String name) { @@ -114,29 +114,20 @@ public class InventoryService { }; } - public Optional<InventoryItem> findById(UUID id) { + private Optional<InventoryItem> findById(UUID id) { return inventoryRepository.findById(id); } public InventoryItem findByIdOrThrow(UUID id) { - return findById(id) - .orElseThrow( - () -> new de.eshg.rest.service.error.NotFoundException("InventoryItem not found")); + return findById(id).orElseThrow(InventoryService::inventoryItemNotFoundException); } - public InventoryItem findAndLockByIdOrThrow(UUID id) { - return findById(id) - .map( - item -> { - entityManager.lock(item, LockModeType.OPTIMISTIC_FORCE_INCREMENT); - return item; - }) - .orElseThrow( - () -> new de.eshg.rest.service.error.NotFoundException("InventoryItem not found")); + private static NotFoundException inventoryItemNotFoundException() { + return new NotFoundException("InventoryItem not found"); } public void correctCount(UUID id, long version, int newCount) { - InventoryItem item = findAndLockByIdOrThrow(id); + InventoryItem item = findByIdOrThrow(id); ValidationUtil.validateVersion(version, item); item.setCount(newCount); @@ -152,7 +143,7 @@ public class InventoryService { @Transactional public InventoryItemBooking book(UUID id, int amount) { - InventoryItem item = findAndLockByIdOrThrow(id); + InventoryItem item = findByIdOrThrow(id); try { int count = Math.subtractExact(item.getCount(), amount); if (count < 0) { @@ -179,7 +170,7 @@ public class InventoryService { @Transactional public InventoryItemBooking restock(UUID id, int amount) { - InventoryItem item = findAndLockByIdOrThrow(id); + InventoryItem item = findByIdOrThrow(id); try { item.setCount(Math.addExact(item.getCount(), amount)); } catch (ArithmeticException e) { @@ -200,8 +191,7 @@ public class InventoryService { public InventoryItemBooking findBookingByIdOrThrow(UUID inventoryId, long bookingId) { return inventoryBookingRepository .findByInventoryItemIdAndId(inventoryId, bookingId) - .orElseThrow( - () -> new de.eshg.rest.service.error.NotFoundException("Booking entry not found")); + .orElseThrow(() -> new NotFoundException("Booking entry not found")); } @Transactional @@ -264,7 +254,7 @@ public class InventoryService { } public InventoryItem update(UUID id, UpdateInventoryItemRequest request) { - InventoryItem item = inventoryRepository.findById(id).orElseThrow(NotFoundException::new); + InventoryItem item = findByIdOrThrow(id); item.setName(request.name()); item.setType(InventoryMapper.mapInventoryItemTypeToDm(request.type())); item.setMinCount(request.minCount()); diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingStatus.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingStatus.java index 91cf81c9317df06df838d531ae24162bc3800dcd..45e88dc46ff03f0c569ca969c72d9991fab03272 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingStatus.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingType.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingType.java index 76b9a80299e161231b741cbf1e0547ba7d956f51..7fa2edae9ec01c68a22004663fd3ffe0b0ca4aca 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingType.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryBookingType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItem.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItem.java index 206867d242b36ef84f5a6ff8b19a1a7550acc591..088747c32d71f5b972bb739500b167d2482e1a7d 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItem.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItem.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemBooking.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemBooking.java index 1a11418325497a35895cb7c04f15d64adc50ad68..58da04021c568ace8a1bdba5f1d487f1c48f6107 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemBooking.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemBooking.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemType.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemType.java index 28ebfdb3b0c86da7720abee0e68d27c3721b060a..9efb049331901c7399b5573b2d675cce4e643783 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemType.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/entity/InventoryItemType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryBookingRepository.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryBookingRepository.java index cab33d32b73dc3f6f4566003e2b6043b725bed15..dbc6f0bc2f18af4386dcecd4712be78ff5eda9c4 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryBookingRepository.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryBookingRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryRepository.java b/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryRepository.java index edcdbcd7204b2a91faeb9b6e44a8e9c25de4f2f3..6d75f80c5fee10e871863a13ca24f67f1ba966cd 100644 --- a/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryRepository.java +++ b/backend/base/src/main/java/de/eshg/base/inventory/persistence/repository/InventoryRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/AuthenticationFlowBuilder.java b/backend/base/src/main/java/de/eshg/base/keycloak/AuthenticationFlowBuilder.java index 28b4b980d8012606c8a7096573d910bff9c06b4d..28a497a17c674612cb52a5a5ae6545aba0aa4330 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/AuthenticationFlowBuilder.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/AuthenticationFlowBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/BootstrapKeycloakProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/BootstrapKeycloakProvisioning.java index 948d108c7fea050633ede7fd26510d53fc2d16a5..7337c3028b63fda46d0c687b72f3667f3a2bc97a 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/BootstrapKeycloakProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/BootstrapKeycloakProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/BundIdUserAttribute.java b/backend/base/src/main/java/de/eshg/base/keycloak/BundIdUserAttribute.java new file mode 100644 index 0000000000000000000000000000000000000000..b522d0ef9d7789cc4e6ee861c5eeb79b8914ad05 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/keycloak/BundIdUserAttribute.java @@ -0,0 +1,79 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.keycloak; + +public enum BundIdUserAttribute implements IdpUserAttribute { + B_PK_2(CitizenUserAttribute.BUND_ID_B_PK_2, "urn:oid:1.3.6.1.4.1.25484.494450.3", "bPK2", true), + GIVEN_NAME(CitizenUserAttribute.FIRST_NAME, "urn:oid:2.5.4.42", "givenName", true), + SURNAME(CitizenUserAttribute.LAST_NAME, "urn:oid:2.5.4.4", "surname", true), + MAIL(CitizenUserAttribute.EMAIL, "urn:oid:0.9.2342.19200300.100.1.3", "mail", false), + POSTAL_ADDRESS( + CitizenUserAttribute.BUND_ID_POSTAL_ADDRESS, "urn:oid:2.5.4.16", "postalAddress", false), + POSTAL_CODE(CitizenUserAttribute.BUND_ID_POSTAL_CODE, "urn:oid:2.5.4.17", "postalCode", false), + LOCALITY_NAME( + CitizenUserAttribute.BUND_ID_LOCALITY_NAME, "urn:oid:2.5.4.7", "localityName", false), + COUNTRY( + CitizenUserAttribute.BUND_ID_COUNTRY, "urn:oid:1.2.40.0.10.2.1.1.225599", "country", false), + PERSONAL_TITLE( + CitizenUserAttribute.BUND_ID_PERSONAL_TITLE, + "urn:oid:0.9.2342.19200300.100.1.40", + "personalTitle", + false), + GENDER(CitizenUserAttribute.BUND_ID_GENDER, "urn:oid:1.3.6.1.4.1.33592.1.3.5", "gender", false), + BIRTH_DATE( + CitizenUserAttribute.BUND_ID_BIRTH_DATE, "urn:oid:1.2.40.0.10.2.1.1.55", "birthdate", true), + PLACE_OF_BIRTH( + CitizenUserAttribute.BUND_ID_PLACE_OF_BIRTH, + "urn:oid:1.3.6.1.5.5.7.9.2", + "placeOfBirth", + false), + BIRTH_NAME( + CitizenUserAttribute.BUND_ID_BIRTH_NAME, + "urn:oid:1.2.40.0.10.2.1.1.225566", + "birthName", + false), + TELEPHONE_NUMBER( + CitizenUserAttribute.BUND_ID_TELEPHONE_NUMBER, "urn:oid:2.5.4.20", "telephoneNumber", false); + + private final CitizenUserAttribute citizenUserAttribute; + private final String oid; + private final String friendlyName; + private final boolean required; + + BundIdUserAttribute( + CitizenUserAttribute citizenUserAttribute, + String oid, + String friendlyName, + boolean required) { + this.citizenUserAttribute = citizenUserAttribute; + this.oid = oid; + this.friendlyName = friendlyName; + this.required = required; + } + + @Override + public CitizenUserAttribute getCitizenUserAttribute() { + return citizenUserAttribute; + } + + @Override + public String getSamlName() { + return oid; + } + + @Override + public AttributeNameFormat getAttributeNameFormat() { + return AttributeNameFormat.URI; + } + + public String getFriendlyName() { + return friendlyName; + } + + public boolean isRequired() { + return required; + } +} diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakClient.java b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakClient.java index 1b5cd8dcb71b4d75df7ee8b07f428ed4220acf37..c345c7080b2b7488d94e1bb1b20be708c9ff64e0 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakClient.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakProvisioning.java index 48a814937d5eda77d819e4599608bde2a45d5409..9d4d597631da852172dacd05c0bff037d31bd074 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -19,6 +19,8 @@ import de.eshg.mutex.MutexService; import java.net.URI; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.stream.Stream; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.keycloak.representations.idm.IdentityProviderMapperRepresentation; import org.keycloak.representations.idm.IdentityProviderRepresentation; @@ -44,7 +46,8 @@ public class CitizenKeycloakProvisioning extends KeycloakProvisioning<CitizenKey "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"; public static final String NAMEID_FORMAT_TRANSIENT = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient"; - public static final BundIdAttribute BUND_ID_PRIMARY_KEY_ATTRIBUTE = BundIdAttribute.B_PK_2; + public static final String ATTRIBUTE_NAME_FORMAT = "attribute.name.format"; + public static final String INHERIT = "INHERIT"; public CitizenKeycloakProvisioning( CitizenKeycloakClient citizenKeycloakClient, @@ -127,9 +130,7 @@ public class CitizenKeycloakProvisioning extends KeycloakProvisioning<CitizenKey "Mein Unternehmenskonto", mukIdp, new NameIdPolicy(NAMEID_FORMAT_PERSISTENT, "Subject NameID", null))); - identityProviderMappers.add( - getSAMLIdentityProviderRoleMapper( - MUK_IDENTITY_PROVIDER_ALIAS, CitizenPermissionRole.MUK_USER)); + identityProviderMappers.addAll(getMukIdentityProviderMappers()); } KeycloakProperties.IdentityProvider bundIdIdp = keycloakProperties.citizenRealm().bundIdIdp(); @@ -140,69 +141,68 @@ public class CitizenKeycloakProvisioning extends KeycloakProvisioning<CitizenKey "BundID", bundIdIdp, new NameIdPolicy( - NAMEID_FORMAT_TRANSIENT, "ATTRIBUTE", BUND_ID_PRIMARY_KEY_ATTRIBUTE.getOid()))); - identityProviderMappers.add( - getSAMLIdentityProviderRoleMapper( - BUND_ID_IDENTITY_PROVIDER_ALIAS, CitizenPermissionRole.BUND_ID_USER)); - identityProviderMappers.add( - getSAMLIdentityProviderBundIdAttributeMapper(BundIdAttribute.B_PK_2)); + NAMEID_FORMAT_TRANSIENT, "ATTRIBUTE", BundIdUserAttribute.B_PK_2.getSamlName()))); + identityProviderMappers.addAll(getBundIdIdentityProviderMappers()); } keycloakClient.createOrUpdateIdentityProviders(identityProviders); keycloakClient.createOrUpdateIdentityProviderMappers(identityProviderMappers); } - private IdentityProviderMapperRepresentation getSAMLIdentityProviderBundIdAttributeMapper( - BundIdAttribute attribute) { + private static List<IdentityProviderMapperRepresentation> getMukIdentityProviderMappers() { + return ListUtils.union( + List.of( + getSAMLIdentityProviderRoleMapper( + MUK_IDENTITY_PROVIDER_ALIAS, CitizenPermissionRole.MUK_USER)), + Arrays.stream(MukUserAttribute.values()) + .map( + attribute -> + getSAMLIdentityProviderAttributeMapper(MUK_IDENTITY_PROVIDER_ALIAS, attribute)) + .toList()); + } + + private static List<IdentityProviderMapperRepresentation> getBundIdIdentityProviderMappers() { + return ListUtils.union( + List.of( + getSAMLIdentityProviderRoleMapper( + BUND_ID_IDENTITY_PROVIDER_ALIAS, CitizenPermissionRole.BUND_ID_USER)), + Arrays.stream(BundIdUserAttribute.values()) + .flatMap( + attribute -> + Stream.of( + getSAMLIdentityProviderBundIdAuthnRequestMapper(attribute), + getSAMLIdentityProviderAttributeMapper( + BUND_ID_IDENTITY_PROVIDER_ALIAS, attribute))) + .toList()); + } + + private static IdentityProviderMapperRepresentation + getSAMLIdentityProviderBundIdAuthnRequestMapper(BundIdUserAttribute attribute) { IdentityProviderMapperRepresentation mapper = new IdentityProviderMapperRepresentation(); - mapper.setIdentityProviderAlias(CitizenKeycloakProvisioning.BUND_ID_IDENTITY_PROVIDER_ALIAS); - mapper.setName("Set BundID attribute %s".formatted(attribute.getFriendlyName())); + mapper.setIdentityProviderAlias(BUND_ID_IDENTITY_PROVIDER_ALIAS); + mapper.setName( + "Set requested attribute %s in %s AuthnRequests" + .formatted(attribute.getFriendlyName(), BUND_ID_IDENTITY_PROVIDER_ALIAS)); mapper.setIdentityProviderMapper("saml-bundid-session-attribute-idp-mapper"); mapper.setConfig( Map.of( SYNC_MODE, - "INHERIT", - "attribute.name.format", + INHERIT, + ATTRIBUTE_NAME_FORMAT, "ATTRIBUTE_FORMAT_URI", "attribute.friendly.name", attribute.getFriendlyName(), "attribute.oid", - attribute.getOid(), + attribute.getSamlName(), "attribute.required", String.valueOf(attribute.isRequired()), "session.attribute", - attribute.getFriendlyName(), + attribute.getCitizenUserAttribute().getKey(), "session.attribute.excludeFromAutomapper", TRUE)); return mapper; } - enum BundIdAttribute { - B_PK_2("bPK2", "urn:oid:1.3.6.1.4.1.25484.494450.3", true); - - private final String friendlyName; - private final String oid; - private final boolean required; - - BundIdAttribute(String friendlyName, String oid, boolean required) { - this.friendlyName = friendlyName; - this.oid = oid; - this.required = required; - } - - public String getFriendlyName() { - return friendlyName; - } - - public String getOid() { - return oid; - } - - public boolean isRequired() { - return required; - } - } - private static IdentityProviderMapperRepresentation getSAMLIdentityProviderRoleMapper( String idpAlias, PermissionRole role) { IdentityProviderMapperRepresentation mapper = new IdentityProviderMapperRepresentation(); @@ -213,6 +213,38 @@ public class CitizenKeycloakProvisioning extends KeycloakProvisioning<CitizenKey return mapper; } + private static IdentityProviderMapperRepresentation getSAMLIdentityProviderAttributeMapper( + String idpAlias, IdpUserAttribute attribute) { + IdentityProviderMapperRepresentation mapper = new IdentityProviderMapperRepresentation(); + mapper.setIdentityProviderAlias(idpAlias); + mapper.setName( + "Set attribute %s for %s users" + .formatted(attribute.getCitizenUserAttribute().getDisplayName(), idpAlias)); + Map<String, String> config = getSamlAttributeMapperConfig(attribute); + if (attribute instanceof MukUserAttribute mukUserAttribute + && StringUtils.isNotBlank(mukUserAttribute.getXPath())) { + mapper.setIdentityProviderMapper("saml-xpath-attribute-idp-mapper"); + config.put("attribute.xpath", mukUserAttribute.getXPath()); + } else { + mapper.setIdentityProviderMapper("saml-user-attribute-idp-mapper"); + } + mapper.setConfig(config); + return mapper; + } + + private static Map<String, String> getSamlAttributeMapperConfig(IdpUserAttribute attribute) { + return new LinkedHashMap<>( + Map.of( + SYNC_MODE, + INHERIT, + ATTRIBUTE_NAME_FORMAT, + attribute.getAttributeNameFormat().getIdpMapperName(), + "attribute.name", + attribute.getSamlName(), + "user.attribute", + attribute.getCitizenUserAttribute().getKey())); + } + private IdentityProviderRepresentation getSAMLIdentityProvider( String idpAlias, String idpDisplayName, diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestClient.java b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestClient.java index fb980798c44d263156cd76fdd738a6c0af9a3368..49652a430346276680b0e1b38a39bff6c9834ba7 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestClient.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestProvisioning.java index 792b7127f26cb5893c55ae39ff640a2a7873813f..812e3573d73e474269d6b085320010580b6fdef6 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenKeycloakTestProvisioning.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.keycloak; -import static de.eshg.base.keycloak.CitizenKeycloakProvisioning.BUND_ID_PRIMARY_KEY_ATTRIBUTE; +import static de.eshg.base.keycloak.CitizenKeycloakProvisioning.NAMEID_FORMAT_PERSISTENT; import static de.eshg.base.keycloak.KeycloakProvisioning.FALSE; import static de.eshg.base.keycloak.KeycloakProvisioning.TRUE; @@ -16,6 +16,7 @@ import de.eshg.testhelper.environment.EnvironmentConfig; import jakarta.ws.rs.core.Response; import java.util.*; import java.util.function.Consumer; +import org.apache.commons.collections4.ListUtils; import org.keycloak.admin.client.resource.ClientResource; import org.keycloak.common.util.MultivaluedHashMap; import org.keycloak.representations.idm.*; @@ -56,27 +57,36 @@ public class CitizenKeycloakTestProvisioning extends KeycloakTestProvisioning if (keycloakProperties.mukTestRealm().enabled()) { log.warn("Adding a muk realm for development"); - createOrUpdateIdpTestRealm(mukKeycloakClient, this::getMukTestRealmRepresentation); + List<IdpTestRealmUserAttribute> mukTestRealmUserAttributes = + IdpTestRealmUserAttribute.fromIdpUserAttributes(MukUserAttribute.values()); + createOrUpdateIdpTestRealm( + mukKeycloakClient, this::getMukTestRealmRepresentation, mukTestRealmUserAttributes); createOrUpdateIdpTestRealmKeys( keycloakProperties.mukTestRealm(), keycloakProperties.citizenRealm().mukIdp(), mukKeycloakClient); + createOrUpdateIdpTestRealmClientScopes(mukTestRealmUserAttributes, mukKeycloakClient); createOrUpdateSamlClientInIdpTestRealm( CitizenKeycloakProvisioning.MUK_IDENTITY_PROVIDER_ALIAS, mukKeycloakClient); - addTestUserToMukRealm(); + addTestUserToMukTestRealm(); } if (keycloakProperties.bundIdTestRealm().enabled()) { log.warn("Adding a bund-id realm for development"); - createOrUpdateIdpTestRealm(bundIdKeycloakClient, this::getBundIdTestRealmRepresentation); + List<IdpTestRealmUserAttribute> bundIdTestRealmUserAttributes = + IdpTestRealmUserAttribute.fromIdpUserAttributes(BundIdUserAttribute.values()); + createOrUpdateIdpTestRealm( + bundIdKeycloakClient, + this::getBundIdTestRealmRepresentation, + bundIdTestRealmUserAttributes); createOrUpdateIdpTestRealmKeys( keycloakProperties.bundIdTestRealm(), keycloakProperties.citizenRealm().bundIdIdp(), bundIdKeycloakClient); - createOrUpdateBundIdTestClientScope(); + createOrUpdateIdpTestRealmClientScopes(bundIdTestRealmUserAttributes, bundIdKeycloakClient); createOrUpdateSamlClientInIdpTestRealm( CitizenKeycloakProvisioning.BUND_ID_IDENTITY_PROVIDER_ALIAS, bundIdKeycloakClient); - addTestUserToBundIdRealm(); + addTestUserToBundIdTestRealm(); } } @@ -157,36 +167,42 @@ public class CitizenKeycloakTestProvisioning extends KeycloakTestProvisioning .toList(); } - private void addTestUserToMukRealm() { + private void addTestUserToMukTestRealm() { addTestUsersToIdpTestRealm(mukKeycloakClient, List.of(IdpTestUser.MUK_DUMMY)); } - private void addTestUserToBundIdRealm() { + private void addTestUserToBundIdTestRealm() { addTestUsersToIdpTestRealm(bundIdKeycloakClient, List.of(IdpTestUser.BUND_ID_DUMMY)); } private void addTestUsersToIdpTestRealm( RealmBoundKeycloakClient realmClient, List<KeycloakUser> users) { new KeycloakTestClient(realmClient, keycloakProperties, 16, environmentConfig) - .createOrUpdateUsers(users, this::configureMukUser); + .createOrUpdateUsers(users, this::configureIdpTestUser); } - private void configureMukUser(UserRepresentation userRepresentation, KeycloakUser user) { + private void configureIdpTestUser(UserRepresentation userRepresentation, KeycloakUser user) { userRepresentation.setUsername(user.username()); userRepresentation.setEmail(user.email()); userRepresentation.setEmailVerified(true); userRepresentation.setEnabled(true); userRepresentation.setRequiredActions(List.of()); - userRepresentation.setAttributes(null); + LinkedHashMap<String, List<String>> attributeMap = new LinkedHashMap<>(); + user.additionalAttributes().forEach((key, value) -> attributeMap.put(key, List.of(value))); + userRepresentation.setAttributes(attributeMap); } private void createOrUpdateIdpTestRealm( RealmBoundKeycloakClient idpTestRealmClient, - Consumer<RealmRepresentation> idpTestRealmRepresentation) { + Consumer<RealmRepresentation> idpTestRealmRepresentation, + List<? extends KeycloakUserAttribute> customTestUserAttributes) { String idpTestRealmName = idpTestRealmClient.realmName; idpTestRealmClient.createOrUpdateRealm(idpTestRealmRepresentation); idpTestRealmClient.configureUserProfile( - IdpTestUserAttribute.values(), idpTestRealmName, idpTestRealmName); + ListUtils.union(List.of(TestUserDefaultAttribute.values()), customTestUserAttributes) + .toArray(KeycloakUserAttribute[]::new), + idpTestRealmName, + idpTestRealmName); } private void getMukTestRealmRepresentation(RealmRepresentation realmRepresentation) { @@ -308,25 +324,35 @@ public class CitizenKeycloakTestProvisioning extends KeycloakTestProvisioning return allUsers; } - private enum IdpTestUserAttribute implements KeycloakUserAttribute { - EMAIL(DEFAULT_ATTRIBUTE_EMAIL, KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_EMAIL)), + private enum TestUserDefaultAttribute implements KeycloakUserAttribute { + USERNAME( + DEFAULT_ATTRIBUTE_USERNAME, + KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_USERNAME), + DEFAULT_USERNAME_VALIDATIONS), + EMAIL( + DEFAULT_ATTRIBUTE_EMAIL, + KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_EMAIL), + DEFAULT_EMAIL_VALIDATIONS), FIRST_NAME( DEFAULT_ATTRIBUTE_FIRST_NAME, - KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_FIRST_NAME)), + KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_FIRST_NAME), + DEFAULT_NAME_VALIDATIONS), LAST_NAME( DEFAULT_ATTRIBUTE_LAST_NAME, - KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_LAST_NAME)), + KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_LAST_NAME), + DEFAULT_NAME_VALIDATIONS), ; private final String key; private final String displayName; + private final List<ValidationRule> validationRules; - IdpTestUserAttribute(String key, String displayName) { + TestUserDefaultAttribute(String key, String displayName, ValidationRule... validationRules) { this.key = key; this.displayName = displayName; + this.validationRules = List.of(validationRules); } - @Override public String getKey() { return key; } @@ -347,37 +373,53 @@ public class CitizenKeycloakTestProvisioning extends KeycloakTestProvisioning } @Override - public List<ValidationRule> validationRules() { - return List.of(); + public List<ValidationRule> getValidationRules() { + return validationRules; } } - protected void createOrUpdateBundIdTestClientScope() { + protected void createOrUpdateIdpTestRealmClientScopes( + List<IdpTestRealmUserAttribute> idpTestRealmUserAttributes, + RealmBoundKeycloakClient idpTestRealmClient) { ClientScopeRepresentation clientScope = new ClientScopeRepresentation(); clientScope.setName(SAML_ATTRIBUTES); - clientScope.setDescription("Sets bund-id SAML attributes"); + clientScope.setDescription("Sets SAML user attributes"); clientScope.setProtocol(SAML); clientScope.setAttributes(Map.of("include.in.token.scope", FALSE)); - clientScope.setProtocolMappers(List.of(getHardcodedBPK2SamlAttributeMapper())); + clientScope.setProtocolMappers( + ListUtils.union( + List.of(getUsernameAsSamlNameIdMapper()), + idpTestRealmUserAttributes.stream() + .map(CitizenKeycloakTestProvisioning::getSamlTestRealmUserAttributeMapper) + .toList())); + + idpTestRealmClient.createOrUpdateClientScopes(List.of(clientScope)); + } - bundIdKeycloakClient.createOrUpdateClientScopes(List.of(clientScope)); + private static ProtocolMapperRepresentation getUsernameAsSamlNameIdMapper() { + ProtocolMapperRepresentation realmRolesMapper = new ProtocolMapperRepresentation(); + realmRolesMapper.setName("Username as NameID Mapper"); + realmRolesMapper.setProtocol(SAML); + realmRolesMapper.setProtocolMapper("saml-user-attribute-nameid-mapper"); + realmRolesMapper.setConfig( + Map.of("mapper.nameid.format", NAMEID_FORMAT_PERSISTENT, "user.attribute", "username")); + return realmRolesMapper; } - private static ProtocolMapperRepresentation getHardcodedBPK2SamlAttributeMapper() { + private static ProtocolMapperRepresentation getSamlTestRealmUserAttributeMapper( + IdpTestRealmUserAttribute attribute) { ProtocolMapperRepresentation realmRolesMapper = new ProtocolMapperRepresentation(); - realmRolesMapper.setName("Hardcoded bPK2 attribute"); + realmRolesMapper.setName("User Attribute Mapper: " + attribute.getSamlName()); realmRolesMapper.setProtocol(SAML); - realmRolesMapper.setProtocolMapper("saml-hardcode-attribute-mapper"); + realmRolesMapper.setProtocolMapper("saml-user-attribute-mapper"); realmRolesMapper.setConfig( Map.of( "attribute.nameformat", - "Basic", + attribute.getAttributeNameFormat().getProtocolMapperName(), "attribute.name", - BUND_ID_PRIMARY_KEY_ATTRIBUTE.getOid(), - "friendly.name", - BUND_ID_PRIMARY_KEY_ATTRIBUTE.getFriendlyName(), - "attribute.value", - "hardcoded-bPK2-value")); + attribute.getSamlName(), + "user.attribute", + attribute.getKey())); return realmRolesMapper; } } diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenUserAttribute.java b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenUserAttribute.java index 91c9e5296e6fba41bafa91ed65140021e8f19193..a8e99f97d9124559e6eac4b8c5ffa3a01c9d66e3 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/CitizenUserAttribute.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/CitizenUserAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,23 +9,53 @@ import de.eshg.keycloak.api.user.KeycloakAttributes; import java.util.List; public enum CitizenUserAttribute implements KeycloakUserAttribute { + USERNAME( + DEFAULT_ATTRIBUTE_USERNAME, + KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_USERNAME), + false, + Group.DEFAULT, + DEFAULT_USERNAME_VALIDATIONS), EMAIL( DEFAULT_ATTRIBUTE_EMAIL, KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_EMAIL), false, - Group.DEFAULT), + Group.DEFAULT, + DEFAULT_EMAIL_VALIDATIONS), FIRST_NAME( DEFAULT_ATTRIBUTE_FIRST_NAME, KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_FIRST_NAME), false, - Group.DEFAULT), + Group.DEFAULT, + DEFAULT_NAME_VALIDATIONS), LAST_NAME( DEFAULT_ATTRIBUTE_LAST_NAME, KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_LAST_NAME), false, - Group.DEFAULT), + Group.DEFAULT, + DEFAULT_NAME_VALIDATIONS), ACCESS_CODE(KeycloakAttributes.ACCESS_CODE_ATTRIBUTE, "Zugangscode"), - DATE_OF_BIRTH(KeycloakAttributes.DATE_OF_BIRTH_ATTRIBUTE, "Geburtsdatum"); + DATE_OF_BIRTH(KeycloakAttributes.DATE_OF_BIRTH_ATTRIBUTE, "Geburtsdatum"), + MUK_DATA_TRANSMITTER_PSEUDONYM_ID( + "muk.dataTransmitterPseudonymId", "Datenübermittlerpseudonymid"), + MUK_FACILITY_NAME("muk.facilityName", "Firmenname"), + MUK_ADDRESS_STREET("muk.address.street", "Unternehmensanschrift - Strasse"), + MUK_ADDRESS_HOUSE_NUMBER("muk.address.houseNumber", "Unternehmensanschrift - Hausnummer"), + MUK_ADDRESS_ADDRESS_ADDITION("muk.address.addition", "Unternehmensanschrift - Adressergänzung"), + MUK_ADDRESS_POSTAL_CODE("muk.address.postalCode", "Unternehmensanschrift - PLZ"), + MUK_ADDRESS_CITY("muk.address.city", "Unternehmensanschrift - Ort"), + MUK_ADDRESS_COUNTRY("muk.address.country", "Unternehmensanschrift - Land"), + MUK_ADDRESS_TYPE("muk.address.type", "Unternehmensanschrift - Typ"), + BUND_ID_B_PK_2("bund-id.bPK2", "bPK2"), + BUND_ID_POSTAL_ADDRESS("bund-id.postalAddress", "Privatadresse - Strasse"), + BUND_ID_POSTAL_CODE("bund-id.postalCode", "Privatadresse - PLZ"), + BUND_ID_LOCALITY_NAME("bund-id.localityName", "Privatadresse - Ort"), + BUND_ID_COUNTRY("bund-id.country", "Privatadresse - Land"), + BUND_ID_PERSONAL_TITLE("bund-id.personalTitle", "Titel"), + BUND_ID_GENDER("bund-id.gender", "Anrede"), + BUND_ID_BIRTH_DATE("bund-id.birthDate", "Geburtsdatum"), + BUND_ID_PLACE_OF_BIRTH("bund-id.placeOfBirth", "Geburtsort"), + BUND_ID_BIRTH_NAME("bund-id.birthName", "Geburtsname"), + BUND_ID_TELEPHONE_NUMBER("bund-id.telephoneNumber", "Telefonnummer"); private final String key; private final String displayName; @@ -71,7 +101,7 @@ public enum CitizenUserAttribute implements KeycloakUserAttribute { } @Override - public List<ValidationRule> validationRules() { + public List<ValidationRule> getValidationRules() { return validationRules; } } diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/ConditionalOnTestUserProvisioningEnabled.java b/backend/base/src/main/java/de/eshg/base/keycloak/ConditionalOnTestUserProvisioningEnabled.java index 25d96f4582d8e1c1affbdf292de7887ffd7d3a6c..1e1b7cb09385db84453de51e089ea1408daf7e85 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/ConditionalOnTestUserProvisioningEnabled.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/ConditionalOnTestUserProvisioningEnabled.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakClient.java b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakClient.java index 7012762747730a2e7ce1bc2cf8276e03341fd564..567bcc0a11df506c3f73de6d820e6a11b0c96342 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakClient.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -27,8 +27,6 @@ import jakarta.ws.rs.NotFoundException; import jakarta.ws.rs.core.UriBuilder; import java.net.URI; import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.keycloak.admin.client.resource.RoleScopeResource; import org.keycloak.admin.client.resource.UserResource; import org.keycloak.representations.idm.RoleRepresentation; @@ -62,11 +60,8 @@ public class EmployeeKeycloakClient extends RealmBoundKeycloakClient { .users(); } catch (NotFoundException notFound) { KeycloakError keycloakError = notFound.getResponse().readEntity(KeycloakError.class); - Pattern pattern = Pattern.compile("^User with id '(?<userId>[-a-zA-Z0-9]+)' not found$"); - Matcher matcher = pattern.matcher(keycloakError.error()); - if (matcher.matches()) { - throw new de.eshg.rest.service.error.NotFoundException( - "User with id '%s' not found".formatted(matcher.group("userId"))); + if (keycloakError.error().equals("User with given id not found")) { + throw new de.eshg.rest.service.error.NotFoundException("Some users could not be found"); } throw new IllegalStateException("Unexpected exception for bulk get user by id", notFound); diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakProvisioning.java index 9c9762ab117b9dcf0496cf4c209ab08e96951889..207ceaead18594dfe0ac7dcd0960725e7338c895 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestClient.java b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestClient.java index c595947792df25585239dfa841e6aaaed9c530c7..c887d2500737669d0f2dfcff7f4eef95dfcc3699 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestClient.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestProvisioning.java index 46cb7250809b761af4a58e9e068f326b0193e9d3..92b89e56c4cf641c87480db4ae63875ef36e6b7b 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeKeycloakTestProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -91,6 +91,7 @@ public class EmployeeKeycloakTestProvisioning extends KeycloakTestProvisioning { case STI_PROTECTION_PHYSICIANS -> "Michael"; case STI_PROTECTION_MFAS -> "Emilia"; case STI_PROTECTION_CONSULTANTS -> "Gregor"; + case OFFICIAL_MEDICAL_SERVICE_PHYSICIANS -> "Tina"; }; } @@ -103,6 +104,7 @@ public class EmployeeKeycloakTestProvisioning extends KeycloakTestProvisioning { case STI_PROTECTION_PHYSICIANS -> "Kohlhaas"; case STI_PROTECTION_MFAS -> "Galotti"; case STI_PROTECTION_CONSULTANTS -> "Samsa"; + case OFFICIAL_MEDICAL_SERVICE_PHYSICIANS -> "Hoffmann"; }; } @@ -132,6 +134,7 @@ public class EmployeeKeycloakTestProvisioning extends KeycloakTestProvisioning { lastNameMapper.apply(group), "password", Arrays.asList(employeePermissionRole), - List.of(group)); + List.of(group), + Map.of()); } } diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeUserAttribute.java b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeUserAttribute.java index 117f5b3782b4f40ed351036e980bf75ad0a92ec2..a6817fdbcd0e8881a93fbd1f6462f3a2bff97d89 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeUserAttribute.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/EmployeeUserAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,21 +10,30 @@ import java.util.Arrays; import java.util.List; public enum EmployeeUserAttribute implements KeycloakUserAttribute { + USERNAME( + DEFAULT_ATTRIBUTE_USERNAME, + KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_USERNAME), + false, + Group.DEFAULT, + DEFAULT_USERNAME_VALIDATIONS), EMAIL( DEFAULT_ATTRIBUTE_EMAIL, KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_EMAIL), true, - Group.DEFAULT), + Group.DEFAULT, + DEFAULT_EMAIL_VALIDATIONS), FIRST_NAME( DEFAULT_ATTRIBUTE_FIRST_NAME, KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_FIRST_NAME), true, - Group.DEFAULT), + Group.DEFAULT, + DEFAULT_NAME_VALIDATIONS), LAST_NAME( DEFAULT_ATTRIBUTE_LAST_NAME, KEYCLOAK_VALUE_REF_TEMPLATE.formatted(DEFAULT_ATTRIBUTE_LAST_NAME), true, - Group.DEFAULT), + Group.DEFAULT, + DEFAULT_NAME_VALIDATIONS), TITLE( "eshg.title", "Titel", @@ -98,7 +107,7 @@ public enum EmployeeUserAttribute implements KeycloakUserAttribute { } @Override - public List<ValidationRule> validationRules() { + public List<ValidationRule> getValidationRules() { return validationRules; } } diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/EventFilterConfig.java b/backend/base/src/main/java/de/eshg/base/keycloak/EventFilterConfig.java index 1b717de496d46c17604b01eccf2fd885ef144b45..e6cfe8fe86ede2d67cbecbcab18a6e66e2b77b3d 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/EventFilterConfig.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/EventFilterConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/IdpTestRealmUserAttribute.java b/backend/base/src/main/java/de/eshg/base/keycloak/IdpTestRealmUserAttribute.java new file mode 100644 index 0000000000000000000000000000000000000000..93dc90b50f842785de95973d85719b5a6bc56237 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/keycloak/IdpTestRealmUserAttribute.java @@ -0,0 +1,86 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.keycloak; + +import de.cronn.commons.lang.StreamUtil; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class IdpTestRealmUserAttribute implements KeycloakUserAttribute { + + private final String samlName; + private final IdpUserAttribute.AttributeNameFormat attributeNameFormat; + + IdpTestRealmUserAttribute( + String samlName, IdpUserAttribute.AttributeNameFormat attributeNameFormat) { + this.samlName = samlName; + this.attributeNameFormat = attributeNameFormat; + } + + @Override + public String getKey() { + return getSamlName().replace(":", "_"); + } + + @Override + public String getDisplayName() { + return getSamlName(); + } + + @Override + public Group getGroup() { + return Group.CUSTOM; + } + + @Override + public boolean isRequired() { + return false; + } + + @Override + public List<ValidationRule> getValidationRules() { + return List.of(); + } + + public String getSamlName() { + return samlName; + } + + public IdpUserAttribute.AttributeNameFormat getAttributeNameFormat() { + return attributeNameFormat; + } + + public static List<IdpTestRealmUserAttribute> fromIdpUserAttributes( + IdpUserAttribute[] idpUserAttributes) { + return Arrays.stream(idpUserAttributes) + .collect(StreamUtil.groupingBy(IdpUserAttribute::getSamlName)) + .entrySet() + .stream() + .map(IdpTestRealmUserAttribute::getIdpTestRealmUserAttribute) + .toList(); + } + + private static IdpTestRealmUserAttribute getIdpTestRealmUserAttribute( + Map.Entry<String, List<IdpUserAttribute>> attributeEntry) { + String samlName = attributeEntry.getKey(); + List<IdpUserAttribute> attributes = attributeEntry.getValue(); + return new IdpTestRealmUserAttribute(samlName, getAttributeNameFormat(samlName, attributes)); + } + + private static IdpUserAttribute.AttributeNameFormat getAttributeNameFormat( + String samlName, List<IdpUserAttribute> attributes) { + return attributes.stream() + .map(IdpUserAttribute::getAttributeNameFormat) + .distinct() + .collect( + StreamUtil.toSingleElement( + list -> + new RuntimeException( + "Nested test realm user attributes need to conform to the same name format but found %s for attribute %s" + .formatted(list, samlName)))); + } +} diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/IdpUserAttribute.java b/backend/base/src/main/java/de/eshg/base/keycloak/IdpUserAttribute.java new file mode 100644 index 0000000000000000000000000000000000000000..eb64ab9607c26f96d2530338734ea99d5405dda5 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/keycloak/IdpUserAttribute.java @@ -0,0 +1,35 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.keycloak; + +public interface IdpUserAttribute { + CitizenUserAttribute getCitizenUserAttribute(); + + String getSamlName(); + + AttributeNameFormat getAttributeNameFormat(); + + enum AttributeNameFormat { + BASIC("ATTRIBUTE_FORMAT_BASIC", "Basic"), + URI("ATTRIBUTE_FORMAT_URI", "URI Reference"); + + private final String idpMapperName; + private final String protocolMapperName; + + AttributeNameFormat(String idpMapperName, String protocolMapperName) { + this.idpMapperName = idpMapperName; + this.protocolMapperName = protocolMapperName; + } + + public String getIdpMapperName() { + return idpMapperName; + } + + public String getProtocolMapperName() { + return protocolMapperName; + } + } +} diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakEventType.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakEventType.java index f2bb0f01c51d22f5350085730b23f4f89983c5dd..f43f297bed0dafb1ed97fae22e84fca4a10d5717 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakEventType.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakEventType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakException.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakException.java index a6e16e409cdcb3b881e290eb67b868234e820d69..49269f1b3b4013e412ac86a7e9888d58554f0145 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakException.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakHealthIndicator.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakHealthIndicator.java index 4dc19f56e812e4e3eaf12c8357df4f7ab916c22d..d83e6f8a99ddff1a423fee2e1590da31982dda97 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakHealthIndicator.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakHealthIndicator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakMapper.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakMapper.java index 4f9b317c5a06b95eca9f1f45d47dfd2327731225..6555fc5303d6c4ccffe4097636f927a9de3c70f3 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakMapper.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProperties.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProperties.java index c677964d7da38f72e6dd852264066bcfd09a4bf8..1f7b4bc1dc84cdaa96893c4111031786888226f6 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProperties.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProvisioning.java index 3346e7648f136cbe700dcd0e7e0c5aec7736bb7e..2057193cdc3bf0528a2d6016c476edbbf797562a 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakSecurityHeaders.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakSecurityHeaders.java index 218ed873cb2ac214203da21fe7dcc46d49909ef9..670f52f6e5b6696e24b22019f5497aa0f7fa7221 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakSecurityHeaders.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakSecurityHeaders.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestClient.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestClient.java index a55699509a71c53fba2eab4008cc2b8b0f40bb85..e9eb47f6359d78acbe9f8811f48c720784650e13 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestClient.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestProvisioning.java index f9815b367b8c73a3e3c2b7a4a135246611062ac1..ccffc75c38be3693249a2365f82e3836a1392ac1 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -114,6 +114,7 @@ public abstract class KeycloakTestProvisioning { Map<String, List<String>> attributes = UserMapper.mapAttributesToDm( new LinkedHashMap<>(), user.phoneNumber(), user.externalChatUsername(), null, null); + user.additionalAttributes().forEach((name, value) -> attributes.put(name, List.of(value))); userRepresentation.setAttributes(!attributes.isEmpty() ? attributes : null); } } diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestUser.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestUser.java index 69ce8b721d9b1103de6e09137a89a61dd5ed36aa..a4038af17bf973a64751711519e13c3bd49323bc 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestUser.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakTestUser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ import de.eshg.lib.keycloak.KeycloakGroup; import de.eshg.lib.keycloak.KeycloakRole; import de.eshg.lib.keycloak.KeycloakUser; import java.util.List; +import java.util.Map; public record KeycloakTestUser( String username, @@ -18,29 +19,10 @@ public record KeycloakTestUser( String lastName, String password, List<KeycloakRole> roles, - List<KeycloakGroup> groups) + List<KeycloakGroup> groups, + Map<String, String> additionalAttributes) implements KeycloakUser { - public KeycloakTestUser( - String username, - String phoneNumber, - String externalChatUsername, - String firstName, - String lastName, - String password, - KeycloakRole role, - List<KeycloakGroup> group) { - this( - username, - phoneNumber, - externalChatUsername, - firstName, - lastName, - password, - List.of(role), - group); - } - public KeycloakTestUser( String username, String phoneNumber, @@ -57,7 +39,8 @@ public record KeycloakTestUser( lastName, password, List.of(role), - List.of()); + List.of(), + Map.of()); } @Override diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakUserAttribute.java b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakUserAttribute.java index 3bb1b27bf9f9cdd47369f578403769f92e15127e..e90844e60040bd94c8b811eee719029b0ff9d1b9 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakUserAttribute.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/KeycloakUserAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,10 +9,30 @@ import java.util.List; import java.util.Map; public interface KeycloakUserAttribute { + String DEFAULT_ATTRIBUTE_USERNAME = "username"; String DEFAULT_ATTRIBUTE_FIRST_NAME = "firstName"; String DEFAULT_ATTRIBUTE_LAST_NAME = "lastName"; String DEFAULT_ATTRIBUTE_EMAIL = "email"; + ValidationRule[] DEFAULT_USERNAME_VALIDATIONS = + new ValidationRule[] { + new ValidationRule.Length(3, 255), + new ValidationRule.Default("up-username-not-idn-homograph", Map.of()), + new ValidationRule.Default("username-prohibited-characters", Map.of()), + }; + + ValidationRule[] DEFAULT_EMAIL_VALIDATIONS = + new ValidationRule[] { + new ValidationRule.Default("email", Map.of()), + new ValidationRule.Default("length", Map.of("max", 255)) + }; + + ValidationRule[] DEFAULT_NAME_VALIDATIONS = + new ValidationRule[] { + new ValidationRule.Default("length", Map.of("max", 255)), + new ValidationRule.Default("person-name-prohibited-characters", Map.of()) + }; + String KEYCLOAK_VALUE_REF_TEMPLATE = "${%s}"; String getKey(); @@ -23,7 +43,7 @@ public interface KeycloakUserAttribute { boolean isRequired(); - List<ValidationRule> validationRules(); + List<ValidationRule> getValidationRules(); enum Group { DEFAULT, @@ -35,6 +55,8 @@ public interface KeycloakUserAttribute { Map<String, Object> toMap(); + record Default(String ruleId, Map<String, Object> toMap) implements ValidationRule {} + record Length(int minLength, int maxLength) implements ValidationRule { @Override public String ruleId() { @@ -43,7 +65,7 @@ public interface KeycloakUserAttribute { @Override public Map<String, Object> toMap() { - return Map.of("min", String.valueOf(minLength), "max", String.valueOf(maxLength)); + return Map.of("min", minLength, "max", maxLength); } } diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/MasterKeycloakProvisioning.java b/backend/base/src/main/java/de/eshg/base/keycloak/MasterKeycloakProvisioning.java index 2d0d3f083563aed00208f71643904878dd073aab..c33124b4e18a9bb81bee70a201dd1052b9dc0d3d 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/MasterKeycloakProvisioning.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/MasterKeycloakProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/ModuleClient.java b/backend/base/src/main/java/de/eshg/base/keycloak/ModuleClient.java index 932dd6b1a11f880f3e125d0dde77fb5184149a68..a6e11071fce76e3df4393e50c2c2c833ff21b984 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/ModuleClient.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/ModuleClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/MukUserAttribute.java b/backend/base/src/main/java/de/eshg/base/keycloak/MukUserAttribute.java new file mode 100644 index 0000000000000000000000000000000000000000..450fcb459fbab54067fc27733d6b9014c972e181 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/keycloak/MukUserAttribute.java @@ -0,0 +1,65 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.keycloak; + +public enum MukUserAttribute implements IdpUserAttribute { + FACILITY_NAME(CitizenUserAttribute.MUK_FACILITY_NAME, "Firmenname"), + DATA_TRANSMITTER_PSEUDONYM_ID( + CitizenUserAttribute.MUK_DATA_TRANSMITTER_PSEUDONYM_ID, "DatenuebermittlerPseudonymId"), + ADDRESS_STREET(CitizenUserAttribute.MUK_ADDRESS_STREET, new AddressAttribute("Strasse")), + ADDRESS_HOUSE_NUMBER( + CitizenUserAttribute.MUK_ADDRESS_HOUSE_NUMBER, new AddressAttribute("Hausnummer")), + ADDRESS_POSTAL_CODE(CitizenUserAttribute.MUK_ADDRESS_POSTAL_CODE, new AddressAttribute("PLZ")), + ADDRESS_CITY(CitizenUserAttribute.MUK_ADDRESS_CITY, new AddressAttribute("Ort")), + ADDRESS_COUNTRY(CitizenUserAttribute.MUK_ADDRESS_COUNTRY, new AddressAttribute("Land")), + ADDRESS_ADDRESS_ADDITION( + CitizenUserAttribute.MUK_ADDRESS_ADDRESS_ADDITION, new AddressAttribute("Adressergaenzung")), + ADDRESS_TYPE(CitizenUserAttribute.MUK_ADDRESS_TYPE, new AddressAttribute("Typ")); + + private final CitizenUserAttribute citizenUserAttribute; + private final String samlName; + private final String xPath; + + MukUserAttribute(CitizenUserAttribute citizenUserAttribute, String samlName) { + this(citizenUserAttribute, samlName, null); + } + + MukUserAttribute(CitizenUserAttribute citizenUserAttribute, AddressAttribute addressAttribute) { + this(citizenUserAttribute, "Unternehmensanschrift", addressAttribute.getXPath()); + } + + MukUserAttribute(CitizenUserAttribute citizenUserAttribute, String samlName, String xPath) { + this.citizenUserAttribute = citizenUserAttribute; + this.samlName = samlName; + this.xPath = xPath; + } + + @Override + public CitizenUserAttribute getCitizenUserAttribute() { + return citizenUserAttribute; + } + + @Override + public String getSamlName() { + return samlName; + } + + @Override + public AttributeNameFormat getAttributeNameFormat() { + return AttributeNameFormat.BASIC; + } + + public String getXPath() { + return xPath; + } + + private record AddressAttribute(String name) { + + public String getXPath() { + return "/*/*[local-name()='" + name + "']"; + } + } +} diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/PropertyUpdater.java b/backend/base/src/main/java/de/eshg/base/keycloak/PropertyUpdater.java index 766994917bcac892c63eb6726d3177efaaf34c5b..8675475357788c31946dfec397e56e7a6be0b570 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/PropertyUpdater.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/PropertyUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/RealmBoundKeycloakClient.java b/backend/base/src/main/java/de/eshg/base/keycloak/RealmBoundKeycloakClient.java index 16d0d0aef82853b4aace2947e9a9d64c605b76b1..24140ac515bb380e802537de9b1b89805a4bf95e 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/RealmBoundKeycloakClient.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/RealmBoundKeycloakClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -21,6 +21,7 @@ import de.eshg.base.keycloak.differ.Differ; import de.eshg.base.keycloak.differ.GroupRepresentationDiffer; import de.eshg.base.keycloak.differ.KeycloakDiffer; import de.eshg.base.keycloak.differ.ProtocolMapperDiffer; +import de.eshg.base.keycloak.differ.UserProfileAttributeDiffer; import de.eshg.lib.keycloak.KeycloakGroup; import de.eshg.lib.keycloak.KeycloakRole; import de.eshg.rest.service.error.BadRequestException; @@ -193,9 +194,7 @@ public class RealmBoundKeycloakClient implements AutoCloseable { GroupRepresentation group = getGroupsResource().groups(groupName, null, null).stream() .filter(groupCandidate -> groupCandidate.getName().equals(groupName)) - .collect( - StreamUtil.toSingleElement( - () -> new NotFoundException("Group '%s' not found.".formatted(groupName)))); + .collect(StreamUtil.toSingleElement(() -> new NotFoundException("Group not found."))); String id = group.getId(); return getGroupResource(id); } @@ -373,55 +372,85 @@ public class RealmBoundKeycloakClient implements AutoCloseable { profileConfig.addGroup(group); } - for (KeycloakUserAttribute attribute : userAttributes) { - String attributeName = attribute.getKey(); - UPAttribute attributeConfig = getUPAttribute(profileConfig, attributeName); - attributeConfig.setDisplayName(attribute.getDisplayName()); - configureAttributeRequired(attribute, attributeConfig); - attributeConfig.setGroup(getGroupName(attribute, group)); - attributeConfig.setPermissions( - new UPAttributePermissions(Set.of("user", "admin"), Set.of("user", "admin"))); - - Map<String, Map<String, Object>> validation = - Objects.requireNonNullElseGet(attributeConfig.getValidations(), LinkedHashMap::new); - for (ValidationRule rule : attribute.validationRules()) { - validation.put(rule.ruleId(), rule.toMap()); - } - attributeConfig.setValidations(validation); + List<UPAttribute> existingAttributes = profileConfig.getAttributes(); + List<UPAttribute> configuredAttributes = getConfiguredAttributes(userAttributes, group); + + UserProfileAttributeDiffer attributeDiffer = + new UserProfileAttributeDiffer(existingAttributes, configuredAttributes); - profileConfig.addOrReplaceAttribute(attributeConfig); + attributeDiffer + .getElementsToDelete() + .forEach(attribute -> deleteAttributeFromConfig(attribute, profileConfig)); + attributeDiffer + .getElementsToAdd() + .forEach(attribute -> addAttributeToConfig(attribute, profileConfig)); + attributeDiffer + .getElementsToUpdate() + .forEach(update -> updateAttributeInConfig(update, profileConfig)); + + if (!ListUtils.union( + attributeDiffer.getElementsToAdd(), + ListUtils.union( + attributeDiffer.getElementsToUpdate(), attributeDiffer.getElementsToDelete())) + .isEmpty()) { + log.info("Sending user profile update request"); + profileResource.update(profileConfig); } + } - profileResource.update(profileConfig); + private void deleteAttributeFromConfig(UPAttribute attribute, UPConfig profileConfig) { + String attributeName = attribute.getName(); + log.info("Removing attribute '{}'", attributeName); + profileConfig.removeAttribute(attributeName); } - private static String getGroupName(KeycloakUserAttribute attribute, UPGroup group) { - return switch (attribute.getGroup()) { - case DEFAULT -> null; - case CUSTOM -> group.getName(); - }; + private void addAttributeToConfig(UPAttribute newAttribute, UPConfig profileConfig) { + log.info("Adding attribute '{}'", newAttribute.getName()); + profileConfig.addOrReplaceAttribute(newAttribute); } - private void configureAttributeRequired( - KeycloakUserAttribute attribute, UPAttribute attributeConfig) { - if (attribute.isRequired()) { - UPAttributeRequired existingRequiredConfig = attributeConfig.getRequired(); - UPAttributeRequired requiredConfig = - existingRequiredConfig != null ? existingRequiredConfig : new UPAttributeRequired(); - log.info("Marking user profile attribute '{}' as always required", attribute.getKey()); - requiredConfig.setRoles(null); - attributeConfig.setRequired(requiredConfig); - } else { - log.info("Marking user profile attribute '{}' as optional", attribute.getKey()); - attributeConfig.setRequired(null); + private void updateAttributeInConfig(ToUpdate<UPAttribute> update, UPConfig profileConfig) { + UPAttribute newAttribute = update.newState(); + log.info( + "Attribute '{}' already exists, but update is required:\n{}", + newAttribute.getName(), + update.multiLineDiff()); + profileConfig.addOrReplaceAttribute(newAttribute); + } + + private List<UPAttribute> getConfiguredAttributes( + KeycloakUserAttribute[] userAttributes, UPGroup group) { + return Arrays.stream(userAttributes) + .map( + attribute -> { + String attributeName = attribute.getKey(); + UPAttribute attributeConfig = new UPAttribute(attributeName); + attributeConfig.setDisplayName(attribute.getDisplayName()); + attributeConfig.setRequired( + attribute.isRequired() ? new UPAttributeRequired() : null); + attributeConfig.setGroup(getGroupName(attribute, group)); + attributeConfig.setPermissions( + new UPAttributePermissions(Set.of("user", "admin"), Set.of("user", "admin"))); + attributeConfig.setValidations(getAttributeValidations(attribute)); + return attributeConfig; + }) + .toList(); + } + + private static Map<String, Map<String, Object>> getAttributeValidations( + KeycloakUserAttribute attribute) { + Map<String, Map<String, Object>> validations = new LinkedHashMap<>(); + for (ValidationRule rule : attribute.getValidationRules()) { + validations.put(rule.ruleId(), rule.toMap()); } + return validations; } - private static UPAttribute getUPAttribute(UPConfig profileConfig, String attributeName) { - UPAttribute existingAttributeConfig = profileConfig.getAttribute(attributeName); - return existingAttributeConfig != null - ? existingAttributeConfig - : new UPAttribute(attributeName); + private static String getGroupName(KeycloakUserAttribute attribute, UPGroup group) { + return switch (attribute.getGroup()) { + case DEFAULT -> null; + case CUSTOM -> group.getName(); + }; } public void createOrUpdateRoles( diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/ToUpdate.java b/backend/base/src/main/java/de/eshg/base/keycloak/ToUpdate.java index e9e9d3b99106d2f52c3fbd16fb4b31e59319cb67..2ebda99da009f3451b02fbd0fd58470a06929c3f 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/ToUpdate.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/ToUpdate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/AuthenticationExecutionRepresentationDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/AuthenticationExecutionRepresentationDiffer.java index 5862ad7731dfa44159ac0b744e4abfa4efaedfaa..ee8f95c45e6ee54c7c37d5f763f3ea1834fc432e 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/AuthenticationExecutionRepresentationDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/AuthenticationExecutionRepresentationDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientRepresentationDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientRepresentationDiffer.java index 57fa748b47e34297727098263eeb08808c03c9c8..b53cdb8ab7a902e140a129173925d072055d324f 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientRepresentationDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientRepresentationDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientScopeRepresentationDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientScopeRepresentationDiffer.java index aa914515e9e000e016cb168ad6e940d94cb567ed..fcaff5bfcec51b1b3866c89da24865d14cc8faab 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientScopeRepresentationDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ClientScopeRepresentationDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ComponentRepresentationDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ComponentRepresentationDiffer.java index 4a11e6f4ab30a75db928a1c8624966f1e9904bf4..40626753555205a628bbb56ba0cb35d2827eb1df 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ComponentRepresentationDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ComponentRepresentationDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/Differ.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/Differ.java index 50ca652ad6e461c99bce184948ed4028a8abc372..4438c5e35da7a708d6a28c79d3238cf5b246b705 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/Differ.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/Differ.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/GroupRepresentationDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/GroupRepresentationDiffer.java index e8ae6d50042b571ad52ac272a07853860e3078db..d684a660e9df27389e491d37f009496ca7e82c43 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/GroupRepresentationDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/GroupRepresentationDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderMapperRepresentationDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderMapperRepresentationDiffer.java index 3322c51b035edb46de8cc738c2cdebaafda1b872..0e45b1b13a1e91d17afed8ba8424b00298f78029 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderMapperRepresentationDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderMapperRepresentationDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderRepresentationDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderRepresentationDiffer.java index 6ad11bce59cc13bfec7952596997333378d4000a..7cab4287e8b996f29339f9331b420373e2913fb3 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderRepresentationDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/IdentityProviderRepresentationDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/KeycloakDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/KeycloakDiffer.java index 8aa549255925952cff2df064f3d200d60cac21a4..6de7ff1e8429dd8085d2d1195fbfcc8eeee4f73a 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/KeycloakDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/KeycloakDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ProtocolMapperDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ProtocolMapperDiffer.java index e1bfcf2d6e8c88759c797c007c3b597e7aae3645..d868956be9c885a3215d2755c721a887fa93a6ff 100644 --- a/backend/base/src/main/java/de/eshg/base/keycloak/differ/ProtocolMapperDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/ProtocolMapperDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/keycloak/differ/UserProfileAttributeDiffer.java b/backend/base/src/main/java/de/eshg/base/keycloak/differ/UserProfileAttributeDiffer.java new file mode 100644 index 0000000000000000000000000000000000000000..70aa471d79abfb37bcc6b251cab1a29f9742b318 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/keycloak/differ/UserProfileAttributeDiffer.java @@ -0,0 +1,57 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.keycloak.differ; + +import de.eshg.base.keycloak.PropertyUpdater; +import java.util.List; +import java.util.TreeSet; +import org.keycloak.representations.userprofile.config.UPAttribute; +import org.keycloak.representations.userprofile.config.UPAttributeRequired; + +public class UserProfileAttributeDiffer extends KeycloakDiffer<UPAttribute> { + + public UserProfileAttributeDiffer(List<UPAttribute> target, List<UPAttribute> source) { + super( + sortPermissions(target), + sortPermissions(source), + userProfileAttributeUpdater(), + UPAttribute::getName); + } + + private static List<UPAttribute> sortPermissions(List<UPAttribute> attributes) { + attributes.stream() + .map(UPAttribute::getPermissions) + .forEach( + permission -> { + permission.setView(new TreeSet<>(permission.getView())); + permission.setEdit(new TreeSet<>(permission.getEdit())); + }); + return attributes; + } + + private static PropertyUpdater<UPAttribute> userProfileAttributeUpdater() { + return (target, source) -> { + target.setDisplayName(source.getDisplayName()); + target.setGroup(source.getGroup()); + target.setPermissions(source.getPermissions()); + configureAttributeRequired(target, source); + target.setValidations(source.getValidations()); + }; + } + + private static void configureAttributeRequired( + UPAttribute targetAttribute, UPAttribute sourceAttribute) { + if (sourceAttribute.getRequired() != null) { + UPAttributeRequired existingRequiredConfig = targetAttribute.getRequired(); + UPAttributeRequired requiredConfig = + existingRequiredConfig != null ? existingRequiredConfig : new UPAttributeRequired(); + requiredConfig.setRoles(null); + targetAttribute.setRequired(requiredConfig); + } else { + targetAttribute.setRequired(null); + } + } +} diff --git a/backend/base/src/main/java/de/eshg/base/label/LabelController.java b/backend/base/src/main/java/de/eshg/base/label/LabelController.java index b55b8d02176662c52f1f40ea4a7efad0a38e6332..287979b3dfe386c5b728665eb53d24a5286e44b0 100644 --- a/backend/base/src/main/java/de/eshg/base/label/LabelController.java +++ b/backend/base/src/main/java/de/eshg/base/label/LabelController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/label/LabelMapper.java b/backend/base/src/main/java/de/eshg/base/label/LabelMapper.java index 35ff25a73b2941a24aaab90d07ada14d0dfc8215..20d8ed226bb49d9bb8103b505e9f43132eb53f74 100644 --- a/backend/base/src/main/java/de/eshg/base/label/LabelMapper.java +++ b/backend/base/src/main/java/de/eshg/base/label/LabelMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/label/persistence/LabelService.java b/backend/base/src/main/java/de/eshg/base/label/persistence/LabelService.java index e2ced418b6a6b21534b9ae720c27d2878d0623ec..d763e4126470e0592cc95783ad0d413268cbc21a 100644 --- a/backend/base/src/main/java/de/eshg/base/label/persistence/LabelService.java +++ b/backend/base/src/main/java/de/eshg/base/label/persistence/LabelService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/label/persistence/entity/Label.java b/backend/base/src/main/java/de/eshg/base/label/persistence/entity/Label.java index 4fd1cc3866b5ec3bf7598dc75895ae3d4b04c1d9..1c76218f75fcc884857294e86a7310fbceef7ae3 100644 --- a/backend/base/src/main/java/de/eshg/base/label/persistence/entity/Label.java +++ b/backend/base/src/main/java/de/eshg/base/label/persistence/entity/Label.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/label/persistence/repository/LabelRepository.java b/backend/base/src/main/java/de/eshg/base/label/persistence/repository/LabelRepository.java index 67a41265745978298dd3891b80b040918c9ba1a8..c87d51d398650b9d3f11eb55abb5b31929e734c9 100644 --- a/backend/base/src/main/java/de/eshg/base/label/persistence/repository/LabelRepository.java +++ b/backend/base/src/main/java/de/eshg/base/label/persistence/repository/LabelRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/mail/MailController.java b/backend/base/src/main/java/de/eshg/base/mail/MailController.java index d3a8659b58ed1e64fe70e000f09545c356fc2e4d..45daef57acd9eb012634ccd40ddab8a44e66a0a0 100644 --- a/backend/base/src/main/java/de/eshg/base/mail/MailController.java +++ b/backend/base/src/main/java/de/eshg/base/mail/MailController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/muk/MukConfig.java b/backend/base/src/main/java/de/eshg/base/muk/MukConfig.java index 61270014a298d234b4d3b301edd37ca571f37fb2..fc92c9dbe355d698eaa96fe2deacab156d3e3e7d 100644 --- a/backend/base/src/main/java/de/eshg/base/muk/MukConfig.java +++ b/backend/base/src/main/java/de/eshg/base/muk/MukConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/muk/MukFacilityLinkController.java b/backend/base/src/main/java/de/eshg/base/muk/MukFacilityLinkController.java index a779ca630bd8dbf05c3c495625dadeac2a3f2888..6fde78fa911bcc4e678b7ab4272efcb3e3482db9 100644 --- a/backend/base/src/main/java/de/eshg/base/muk/MukFacilityLinkController.java +++ b/backend/base/src/main/java/de/eshg/base/muk/MukFacilityLinkController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -47,7 +47,7 @@ public class MukFacilityLinkController implements MukFacilityLinkApi { .orElseThrow( () -> new NotFoundException(FacilityController.FACILITY_REFERENCE_NOT_FOUND)); - mukFacilityLinkService.addMukFacilityLink(request.mukId(), refFacility); + mukFacilityLinkService.addMukFacilityLink(request.dataTransmitterPseudonymId(), refFacility); } @Override @@ -55,8 +55,10 @@ public class MukFacilityLinkController implements MukFacilityLinkApi { public GetReferenceFacilityResponse getReferenceFacilityLinkedToMukSelfUser() { featureToggle.assertNewFeatureIsEnabled(BaseFeature.MUK_FACILITY_LINK); - String mukId = mukFacilityLinkService.getMukSelfUserId(); - Facility referenceFacility = mukFacilityLinkService.getReferenceFacility(mukId); + String dataTransmitterPseudonymId = + mukFacilityLinkService.getMukSelfUserDataTransmitterPseudonymId(); + Facility referenceFacility = + mukFacilityLinkService.getReferenceFacility(dataTransmitterPseudonymId); return FacilityMapper.mapReferenceFacilityToApi(referenceFacility); } diff --git a/backend/base/src/main/java/de/eshg/base/muk/persistence/MukFacilityLinkService.java b/backend/base/src/main/java/de/eshg/base/muk/persistence/MukFacilityLinkService.java index bc6f69dac423d190c7f2b9de709483d96053fa21..e17180781bb1e0f9efd4726b6b5e7519dce141f4 100644 --- a/backend/base/src/main/java/de/eshg/base/muk/persistence/MukFacilityLinkService.java +++ b/backend/base/src/main/java/de/eshg/base/muk/persistence/MukFacilityLinkService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,7 +7,7 @@ package de.eshg.base.muk.persistence; import de.eshg.base.centralfile.persistence.entity.Facility; import de.eshg.base.keycloak.CitizenKeycloakClient; -import de.eshg.base.keycloak.RealmBoundKeycloakClient; +import de.eshg.base.keycloak.CitizenUserAttribute; import de.eshg.base.muk.persistence.entity.MukFacilityLink; import de.eshg.base.muk.persistence.repository.MukFacilityLinkRepository; import de.eshg.lib.auditlog.AuditLogger; @@ -16,7 +16,6 @@ import de.eshg.rest.service.security.CurrentUserHelper; import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; -import org.keycloak.representations.idm.UserRepresentation; import org.springframework.stereotype.Service; @Service @@ -35,17 +34,13 @@ public class MukFacilityLinkService { this.auditLogger = auditLogger; } - public void addMukFacilityLink(String mukId, Facility refFacility) { - if (identicalMukFacilityLinkAlreadyExists(mukId, refFacility)) { + public void addMukFacilityLink(String dataTransmitterPseudonymId, Facility refFacility) { + if (identicalMukFacilityLinkAlreadyExists(dataTransmitterPseudonymId, refFacility)) { return; } - if (citizenKeycloakClient.getUserByName(mukId).isEmpty()) { - throw new NotFoundException("MUK user id not found"); - } - MukFacilityLink mukFacilityLink = new MukFacilityLink(); - mukFacilityLink.setMukId(mukId); + mukFacilityLink.setDataTransmitterPseudonymId(dataTransmitterPseudonymId); mukFacilityLink.setReferenceFacility(refFacility); refFacility.setMukFacilityLink(mukFacilityLink); @@ -53,8 +48,10 @@ public class MukFacilityLinkService { writeAuditLog(mapAuditLog(savedMukFacilityLink)); } - private boolean identicalMukFacilityLinkAlreadyExists(String mukId, Facility refFacility) { - Optional<MukFacilityLink> potentialMatch = mukFacilityLinkRepository.findByMukId(mukId); + private boolean identicalMukFacilityLinkAlreadyExists( + String dataTransmitterPseudonymId, Facility refFacility) { + Optional<MukFacilityLink> potentialMatch = + mukFacilityLinkRepository.findByDataTransmitterPseudonymId(dataTransmitterPseudonymId); return potentialMatch .map( mukFacilityLink -> @@ -65,20 +62,17 @@ public class MukFacilityLinkService { .orElse(false); } - // TODO (ISSUE-6556): Use 'DatenuebermittlerPseudonymId' as mukId instead of username - public String getMukSelfUserId() { - UserRepresentation selfUserRepresentation = - citizenKeycloakClient.getSelfUser().toRepresentation(); - - RealmBoundKeycloakClient.getSelfUserId(); - - return selfUserRepresentation.getUsername(); + public String getMukSelfUserDataTransmitterPseudonymId() { + return citizenKeycloakClient + .getSelfUser() + .toRepresentation() + .firstAttribute(CitizenUserAttribute.MUK_DATA_TRANSMITTER_PSEUDONYM_ID.getKey()); } - public Facility getReferenceFacility(String mukId) { + public Facility getReferenceFacility(String dataTransmitterPseudonymId) { MukFacilityLink mukFacilityLink = mukFacilityLinkRepository - .findByMukId(mukId) + .findByDataTransmitterPseudonymId(dataTransmitterPseudonymId) .orElseThrow(() -> new NotFoundException("Muk Facility Link not found")); return mukFacilityLink.getReferenceFacility(); @@ -95,8 +89,8 @@ public class MukFacilityLinkService { return Map.of( "MukFacilityLink Id", savedMukFacilityLink.getId().toString(), - "MukId", - savedMukFacilityLink.getMukId(), + "DatenübermittlerPseudonymId", + savedMukFacilityLink.getDataTransmitterPseudonymId(), "FacilityId", savedMukFacilityLink.getReferenceFacility().getExternalId().toString()); } diff --git a/backend/base/src/main/java/de/eshg/base/muk/persistence/entity/MukFacilityLink.java b/backend/base/src/main/java/de/eshg/base/muk/persistence/entity/MukFacilityLink.java index 447f5f28993bd10795338316dc1589fd8efb6151..feb178562ecf289976b39a5627900b67b2ff0743 100644 --- a/backend/base/src/main/java/de/eshg/base/muk/persistence/entity/MukFacilityLink.java +++ b/backend/base/src/main/java/de/eshg/base/muk/persistence/entity/MukFacilityLink.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -12,25 +12,27 @@ import de.eshg.lib.common.SensitivityLevel; import jakarta.persistence.*; @Entity -@Table(indexes = @Index(columnList = "reference_facility_id")) +@Table( + indexes = { + @Index(columnList = "reference_facility_id"), + @Index(columnList = "data_transmitter_pseudonym_id") + }) public class MukFacilityLink extends BaseEntity { - public MukFacilityLink() {} - @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) @Column(nullable = false) - private String mukId; + private String dataTransmitterPseudonymId; @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) @OneToOne(optional = false, fetch = FetchType.LAZY) private Facility referenceFacility; - public String getMukId() { - return mukId; + public String getDataTransmitterPseudonymId() { + return dataTransmitterPseudonymId; } - public void setMukId(String mukId) { - this.mukId = mukId; + public void setDataTransmitterPseudonymId(String dataTransmitterPseudonymId) { + this.dataTransmitterPseudonymId = dataTransmitterPseudonymId; } public Facility getReferenceFacility() { diff --git a/backend/base/src/main/java/de/eshg/base/muk/persistence/repository/MukFacilityLinkRepository.java b/backend/base/src/main/java/de/eshg/base/muk/persistence/repository/MukFacilityLinkRepository.java index 7a94efd2352e4d69da01226ddcbb7f9de08401c0..e2b51865ccba5a1f45bc4106959e369e3fdfc9e8 100644 --- a/backend/base/src/main/java/de/eshg/base/muk/persistence/repository/MukFacilityLinkRepository.java +++ b/backend/base/src/main/java/de/eshg/base/muk/persistence/repository/MukFacilityLinkRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,5 +11,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface MukFacilityLinkRepository extends JpaRepository<MukFacilityLink, Long> { - Optional<MukFacilityLink> findByMukId(String mukId); + Optional<MukFacilityLink> findByDataTransmitterPseudonymId(String dataTransmitterPseudonymId); } diff --git a/backend/base/src/main/java/de/eshg/base/notification/AbsenceNotificationService.java b/backend/base/src/main/java/de/eshg/base/notification/AbsenceNotificationService.java index 0b238bf9877c93eac2f896dce739f4bc0be07da8..22026e02fd1bed086835b2c7566140bdc614aea3 100644 --- a/backend/base/src/main/java/de/eshg/base/notification/AbsenceNotificationService.java +++ b/backend/base/src/main/java/de/eshg/base/notification/AbsenceNotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/notification/persistence/entity/AbsenceNotification.java b/backend/base/src/main/java/de/eshg/base/notification/persistence/entity/AbsenceNotification.java index 65a72bc8097d8fef3a0df9fb5949e1900e502282..9d3ad0ea22c654c47a74815872829c0abf484ead 100644 --- a/backend/base/src/main/java/de/eshg/base/notification/persistence/entity/AbsenceNotification.java +++ b/backend/base/src/main/java/de/eshg/base/notification/persistence/entity/AbsenceNotification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/notification/persistence/repository/AbsenceNotificationRepository.java b/backend/base/src/main/java/de/eshg/base/notification/persistence/repository/AbsenceNotificationRepository.java index 19dba4e0a5153c5218668b928a7aaadc2ef175e0..d286e154c521c6389efd2e4d021199fccac08ee4 100644 --- a/backend/base/src/main/java/de/eshg/base/notification/persistence/repository/AbsenceNotificationRepository.java +++ b/backend/base/src/main/java/de/eshg/base/notification/persistence/repository/AbsenceNotificationRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/pdf/data/FieldData.java b/backend/base/src/main/java/de/eshg/base/pdf/data/FieldData.java index be76b504c3891c657c2d88cae25a4680b336d2de..8c888d9f63e11ded7c43287434b21e4c2f87e1eb 100644 --- a/backend/base/src/main/java/de/eshg/base/pdf/data/FieldData.java +++ b/backend/base/src/main/java/de/eshg/base/pdf/data/FieldData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/pdf/data/FieldRow.java b/backend/base/src/main/java/de/eshg/base/pdf/data/FieldRow.java index 46de630d0a9f107a6e61aff075bcfc31350ba175..10ee2a3ad5fdee3d15ded58551bc86b4f98fc222 100644 --- a/backend/base/src/main/java/de/eshg/base/pdf/data/FieldRow.java +++ b/backend/base/src/main/java/de/eshg/base/pdf/data/FieldRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/pdf/data/FieldSet.java b/backend/base/src/main/java/de/eshg/base/pdf/data/FieldSet.java index 67e065f28e96df6a9477f1faa2eba14963987fd9..ad6e2e9f1d4b4f773949c190096b3db96ec28444 100644 --- a/backend/base/src/main/java/de/eshg/base/pdf/data/FieldSet.java +++ b/backend/base/src/main/java/de/eshg/base/pdf/data/FieldSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectData.java b/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectData.java index 766bee85ea205809ed577d754a06ee94c3109334..e7526d14d05b2472c31a1d1b4ca4925438f23d70 100644 --- a/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectData.java +++ b/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectLetterGenerator.java b/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectLetterGenerator.java index 8828c6d71dcf383f36328535d40ac10735a80834..8cec34dff3f99bad0f1344c6cfdcddf7e19604ed 100644 --- a/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectLetterGenerator.java +++ b/backend/base/src/main/java/de/eshg/base/pdf/gdpr/GdprRightToObjectLetterGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/procedure/GetProcedureConfigResponse.java b/backend/base/src/main/java/de/eshg/base/procedure/GetProcedureConfigResponse.java index 34f3290e951f99de13eb0b1f4949d7eca53ea665..7f4304a913556ecde3deef6d413119f669583c23 100644 --- a/backend/base/src/main/java/de/eshg/base/procedure/GetProcedureConfigResponse.java +++ b/backend/base/src/main/java/de/eshg/base/procedure/GetProcedureConfigResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/procedure/ProcedureConfigController.java b/backend/base/src/main/java/de/eshg/base/procedure/ProcedureConfigController.java index d1e54ad67342dd8634647ecfab88fc06c2fa2d70..f57c37d0eb40696bec5b61031a83a92c452ea6fa 100644 --- a/backend/base/src/main/java/de/eshg/base/procedure/ProcedureConfigController.java +++ b/backend/base/src/main/java/de/eshg/base/procedure/ProcedureConfigController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/resource/ResourceController.java b/backend/base/src/main/java/de/eshg/base/resource/ResourceController.java index 3da595a24e3072fabf174a656636443dc2d629b3..d9227d3e1e7f01f05a3bd30829cc04d4fd22251c 100644 --- a/backend/base/src/main/java/de/eshg/base/resource/ResourceController.java +++ b/backend/base/src/main/java/de/eshg/base/resource/ResourceController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/resource/ResourceMapper.java b/backend/base/src/main/java/de/eshg/base/resource/ResourceMapper.java index bab4c038f97c5c0b965a9a03b9ff47ea01aab8c7..093330a6036ba382d4d6763a7e0f5b40c15f103b 100644 --- a/backend/base/src/main/java/de/eshg/base/resource/ResourceMapper.java +++ b/backend/base/src/main/java/de/eshg/base/resource/ResourceMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/resource/persistence/ResourceService.java b/backend/base/src/main/java/de/eshg/base/resource/persistence/ResourceService.java index 844426c28d1769e7698d23ae2ce249081cf27797..c7106378e0842c69b1cc17a1681b170cf1765dd0 100644 --- a/backend/base/src/main/java/de/eshg/base/resource/persistence/ResourceService.java +++ b/backend/base/src/main/java/de/eshg/base/resource/persistence/ResourceService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/Resource.java b/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/Resource.java index 391a68f8eb45ad487ca10d6e12673c9affac9238..282d7f9f364d3ae108a4eff8e7b82381bf505c2d 100644 --- a/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/Resource.java +++ b/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/Resource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/ResourceType.java b/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/ResourceType.java index 32b08ca554525e4b74c658698eb3ee19243131ab..47c2733d3d06332c6c32ebc3d951652f85c6b8c8 100644 --- a/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/ResourceType.java +++ b/backend/base/src/main/java/de/eshg/base/resource/persistence/entity/ResourceType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/resource/persistence/repository/ResourceRepository.java b/backend/base/src/main/java/de/eshg/base/resource/persistence/repository/ResourceRepository.java index e44d7cd0d7cff48e0f9e623f07d0c0f700182648..4087ad2143e879a1d128b51cc9e7e2cf729ca112 100644 --- a/backend/base/src/main/java/de/eshg/base/resource/persistence/repository/ResourceRepository.java +++ b/backend/base/src/main/java/de/eshg/base/resource/persistence/repository/ResourceRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/spring/config/BaseAuditLogConfiguration.java b/backend/base/src/main/java/de/eshg/base/spring/config/BaseAuditLogConfiguration.java index ed4cef2ed1cf56b23b8d3a58a19649142c740b08..f9e6dd0092678dff163080bda52a105296001f47 100644 --- a/backend/base/src/main/java/de/eshg/base/spring/config/BaseAuditLogConfiguration.java +++ b/backend/base/src/main/java/de/eshg/base/spring/config/BaseAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/spring/config/BaseInternalSecurityConfig.java b/backend/base/src/main/java/de/eshg/base/spring/config/BaseInternalSecurityConfig.java index 8a9890ce6472d2b7e67a3c3e0d7f569dfc25b800..024345fb0dc7a1ff942d132867a1f791914fe216 100644 --- a/backend/base/src/main/java/de/eshg/base/spring/config/BaseInternalSecurityConfig.java +++ b/backend/base/src/main/java/de/eshg/base/spring/config/BaseInternalSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/statistics/AddressAttribute.java b/backend/base/src/main/java/de/eshg/base/statistics/AddressAttribute.java index 941a47e3079e1c74ff67f9def06889155ed723d4..5dc497d59e44666473cb83a3072cb226a6d81c1e 100644 --- a/backend/base/src/main/java/de/eshg/base/statistics/AddressAttribute.java +++ b/backend/base/src/main/java/de/eshg/base/statistics/AddressAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/statistics/CommonAttribute.java b/backend/base/src/main/java/de/eshg/base/statistics/CommonAttribute.java index 9df61b59cf9d14b8370ab2655ca86eb9697bd95a..7abf38929b950d937124dc08e5f0f948ebe9c7f9 100644 --- a/backend/base/src/main/java/de/eshg/base/statistics/CommonAttribute.java +++ b/backend/base/src/main/java/de/eshg/base/statistics/CommonAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/statistics/PersonAttribute.java b/backend/base/src/main/java/de/eshg/base/statistics/PersonAttribute.java index 5692f2916ba0c6568edc609d11b8aec80d660d0a..34976480a78ca15e4a9d1be7f7b9597104f141e2 100644 --- a/backend/base/src/main/java/de/eshg/base/statistics/PersonAttribute.java +++ b/backend/base/src/main/java/de/eshg/base/statistics/PersonAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/statistics/StatisticsController.java b/backend/base/src/main/java/de/eshg/base/statistics/StatisticsController.java index 38689604b9ac1f387d9dc539bd0c80d9409c6e4f..2159a2cf4260a0d247d8b9b732dea6737c20e098 100644 --- a/backend/base/src/main/java/de/eshg/base/statistics/StatisticsController.java +++ b/backend/base/src/main/java/de/eshg/base/statistics/StatisticsController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/statistics/options/GenderOptions.java b/backend/base/src/main/java/de/eshg/base/statistics/options/GenderOptions.java index 180e23c885e5e4c8d3f800ded4aaba275a4af93e..06d5d9db7861b18df54cb78ed3fa5ae7e8cb3063 100644 --- a/backend/base/src/main/java/de/eshg/base/statistics/options/GenderOptions.java +++ b/backend/base/src/main/java/de/eshg/base/statistics/options/GenderOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/AdministrativeData.java b/backend/base/src/main/java/de/eshg/base/street/AdministrativeData.java index 9902c75d8908a88e12ba68fa7b36fd7e1994342f..0cbf687973fa52c5b3ee4e63711fe3ebd4723eb7 100644 --- a/backend/base/src/main/java/de/eshg/base/street/AdministrativeData.java +++ b/backend/base/src/main/java/de/eshg/base/street/AdministrativeData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/HouseNumber.java b/backend/base/src/main/java/de/eshg/base/street/HouseNumber.java index 1710ba1f2fe24e27d60acb5a1011aca91e7788eb..5cbf10111cdba006f63d1db44c2551763c148cfe 100644 --- a/backend/base/src/main/java/de/eshg/base/street/HouseNumber.java +++ b/backend/base/src/main/java/de/eshg/base/street/HouseNumber.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/MunicipalityDirectory.java b/backend/base/src/main/java/de/eshg/base/street/MunicipalityDirectory.java index b0e03eed6cd43eab07f9adf21ecac25477db9e61..86800a899d5137a62fc8a6994ea51590a6a56083 100644 --- a/backend/base/src/main/java/de/eshg/base/street/MunicipalityDirectory.java +++ b/backend/base/src/main/java/de/eshg/base/street/MunicipalityDirectory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/StreetController.java b/backend/base/src/main/java/de/eshg/base/street/StreetController.java index d96d08a4a264e811810e5ee8c28712571d20c788..038baea5d182b1bb590d02f4bc462641197d0d2f 100644 --- a/backend/base/src/main/java/de/eshg/base/street/StreetController.java +++ b/backend/base/src/main/java/de/eshg/base/street/StreetController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/StreetDirectory.java b/backend/base/src/main/java/de/eshg/base/street/StreetDirectory.java index f7302e3bd2636ee466a867b8da2e8057dc7f4d5f..fccebd2ee4eb0b05090e46f8989b49ab1c9d36c7 100644 --- a/backend/base/src/main/java/de/eshg/base/street/StreetDirectory.java +++ b/backend/base/src/main/java/de/eshg/base/street/StreetDirectory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryConfig.java b/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryConfig.java index a67f334630992a6cd8e387d88e4e6072b8149048..2e6c3d8d705f664da12e03ef8888d75319fc7249 100644 --- a/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryConfig.java +++ b/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryService.java b/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryService.java index 8b959fb009899a7c406760a1220920578e119380..c62c454e205e88a540e1af8b825da7732878f139 100644 --- a/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryService.java +++ b/backend/base/src/main/java/de/eshg/base/street/StreetDirectoryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/StreetService.java b/backend/base/src/main/java/de/eshg/base/street/StreetService.java index 9574bb3c47ce051ec44234fdd760480df058200f..0160319b87b36546d3edb1c3974c1e0165a2e353 100644 --- a/backend/base/src/main/java/de/eshg/base/street/StreetService.java +++ b/backend/base/src/main/java/de/eshg/base/street/StreetService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/CsvMapper.java b/backend/base/src/main/java/de/eshg/base/street/csv/CsvMapper.java index 11cf423c694bbc13e8ef9edb63f5fae0612c4cf3..3db7fa107211fd5250b0db2959813a77c216390d 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/CsvMapper.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/CsvMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/MunicipalityDirectoryCsvEntry.java b/backend/base/src/main/java/de/eshg/base/street/csv/MunicipalityDirectoryCsvEntry.java index 5d2fa4ce5305955f39762a30043c50e79f84c53b..c9192a81514b9abda418a5d9dc928894bda10a5d 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/MunicipalityDirectoryCsvEntry.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/MunicipalityDirectoryCsvEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryCsvEntry.java b/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryCsvEntry.java index 360a0217cd5cc57c09daea1dfca87d7b3f46c91a..891fe4776ff8c107480237ab2aeaa4d76632d8c2 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryCsvEntry.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryCsvEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryEntriesOpenCsvMapper.java b/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryEntriesOpenCsvMapper.java index 64c5873f3c93290ebe33dcd6e2cf296b42d17a2f..2279c166dbb0cfbbd5bbf194458806248e2dcdc1 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryEntriesOpenCsvMapper.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/StreetDirectoryEntriesOpenCsvMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/StreetName.java b/backend/base/src/main/java/de/eshg/base/street/csv/StreetName.java index 1fa2eeecfcd486d569a6cc2a1b370fc84e319240..6f8152141eade720c6231f575567cec426468fa0 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/StreetName.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/StreetName.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/StreetNameConverter.java b/backend/base/src/main/java/de/eshg/base/street/csv/StreetNameConverter.java index 5ff1611a935d69a402d36936666f1f0c96f23ab1..62ef09a97f86311511478a75a01f672e3c3d4e2f 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/StreetNameConverter.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/StreetNameConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvBindByNameMappingStrategy.java b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvBindByNameMappingStrategy.java index b567955ac40dbc1dd705eeba0b8a8ec6f8130882..d65a5cf6ca554f8972dd37042b6624d7e604f905 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvBindByNameMappingStrategy.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvBindByNameMappingStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePosition.java b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePosition.java index 043c7aeacc30fc48c42021e173cd187dcb5a6429..2273084c37fe636c6bd29f2fe0316e4f986223f6 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePosition.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePosition.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePositionOrderComparator.java b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePositionOrderComparator.java index 842dddf1d78e9357fc94c78150d89cca03579693..3ba6d3b20fd4f95480426bb0053d7fd800301d35 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePositionOrderComparator.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/CsvWritePositionOrderComparator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/OpenCsvFixedOrderComparator.java b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/OpenCsvFixedOrderComparator.java index 6ccbac49f42d7f58471890c14e646c6fde403016..164950732794328173e8b4cf27cbe2ca3fa0c99c 100644 --- a/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/OpenCsvFixedOrderComparator.java +++ b/backend/base/src/main/java/de/eshg/base/street/csv/opencsv/OpenCsvFixedOrderComparator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/AbstractContactPopulator.java b/backend/base/src/main/java/de/eshg/base/testhelper/AbstractContactPopulator.java index dcc17038fa26e45d041a8cecea8a538db0a5b46c..a463a135b89922cfbe7ab3d430f4efbd3c66cc10 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/AbstractContactPopulator.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/AbstractContactPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperController.java b/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperController.java index 5453e02fa64648361c0aece56de85f1f5faf4084..5b3628fc6da1c4e77d8c51e1455dc30c0d60a9e5 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperController.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperController.java @@ -1,17 +1,20 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.base.testhelper; +import de.cronn.commons.lang.StreamUtil; import de.eshg.auditlog.SharedAuditLogTestHelperApi; import de.eshg.base.contact.api.SearchContactsResponse; import de.eshg.base.feature.BaseFeature; import de.eshg.base.feature.BaseFeatureToggle; import de.eshg.base.inventory.api.GetInventoryItemsResponse; +import de.eshg.base.keycloak.CitizenKeycloakClient; import de.eshg.base.keycloak.MasterKeycloakProvisioning; import de.eshg.base.resource.api.GetResourcesResponse; +import de.eshg.base.testhelper.api.CitizenUserDto; import de.eshg.base.testhelper.api.CreateCalendarTestEventsRequest; import de.eshg.base.testhelper.api.CreateCalendarTestEventsResponse; import de.eshg.base.testhelper.api.CreateSetupAdminRequest; @@ -22,6 +25,7 @@ import de.eshg.lib.common.BusinessModule; import de.eshg.lib.keycloak.Realm; import de.eshg.lib.keycloak.UsernamePassword; import de.eshg.rest.service.error.BadRequestException; +import de.eshg.rest.service.error.NotFoundException; import de.eshg.testhelper.AccessToken; import de.eshg.testhelper.ConditionalOnTestHelperEnabled; import de.eshg.testhelper.TestHelperController; @@ -31,7 +35,13 @@ import de.eshg.testhelper.api.TestHelperLoginAsCitizenAccessCodeUserRequest; import de.eshg.testhelper.api.TestHelperLoginRequest; import de.eshg.testhelper.environment.EnvironmentConfig; import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.apache.commons.collections4.CollectionUtils; import org.keycloak.admin.client.resource.UserResource; +import org.keycloak.representations.idm.FederatedIdentityRepresentation; +import org.keycloak.representations.idm.UserRepresentation; import org.springframework.web.bind.annotation.RestController; @RestController @@ -44,6 +54,7 @@ public class BaseTestHelperController extends TestHelperController private final MasterKeycloakProvisioning masterKeycloakProvisioning; private final AuditLogTestHelperService auditLogTestHelperService; private final BusinessModulesConfigurationProperties businessModulesConfigurationProperties; + private final CitizenKeycloakClient citizenKeycloakClient; public BaseTestHelperController( BaseTestHelperService baseTestHelperService, @@ -51,13 +62,15 @@ public class BaseTestHelperController extends TestHelperController MasterKeycloakProvisioning masterKeycloakProvisioning, AuditLogTestHelperService auditLogTestHelperService, EnvironmentConfig environmentConfig, - BusinessModulesConfigurationProperties businessModulesConfigurationProperties) { + BusinessModulesConfigurationProperties businessModulesConfigurationProperties, + CitizenKeycloakClient citizenKeycloakClient) { super(baseTestHelperService, environmentConfig); this.baseTestHelperService = baseTestHelperService; this.baseFeatureToggle = baseFeatureToggle; this.masterKeycloakProvisioning = masterKeycloakProvisioning; this.auditLogTestHelperService = auditLogTestHelperService; this.businessModulesConfigurationProperties = businessModulesConfigurationProperties; + this.citizenKeycloakClient = citizenKeycloakClient; } @Override @@ -163,6 +176,44 @@ public class BaseTestHelperController extends TestHelperController .ifPresent(UserResource::remove); } + @Override + public CitizenUserDto getIdpUser(String nameId) { + UserRepresentation userRepresentation = + citizenKeycloakClient + .getUserResourceByName(nameId) + .orElseThrow(() -> new NotFoundException("Unknown username")) + .toRepresentation(); + + // Hint: Implement in KeycloakUserApi instead if we need to make this available via UserApi + // outside of test scope + validateFederatedIdentityWithNameId(userRepresentation, nameId); + + return new CitizenUserDto( + UUID.fromString(userRepresentation.getId()), + sortedAttributes(userRepresentation.getRawAttributes())); + } + + private static Map<String, List<String>> sortedAttributes(Map<String, List<String>> attributes) { + if (attributes == null) { + return null; + } + return attributes.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(StreamUtil.toLinkedHashMap(Map.Entry::getKey, Map.Entry::getValue)); + } + + private static void validateFederatedIdentityWithNameId( + UserRepresentation userRepresentation, String nameId) { + List<FederatedIdentityRepresentation> federatedIdentities = + userRepresentation.getFederatedIdentities(); + if (CollectionUtils.isEmpty(federatedIdentities) + || federatedIdentities.stream() + .map(FederatedIdentityRepresentation::getUserId) + .noneMatch(nameId::equals)) { + throw new BadRequestException("Requested user is not an IDP user"); + } + } + @Override public void clearAuditLogStorageDirectory() throws IOException { auditLogTestHelperService.clearAuditLogStorageDirectory(); diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperService.java b/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperService.java index 36f19c5047bea567b5e7266f3ac72445f0e7a5a7..fb226b808d79fd918c72ac2ebcb7a3f8745030ac 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperService.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/BaseTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -21,6 +21,7 @@ import de.eshg.base.resource.api.GetResourcesResponse; import de.eshg.base.resource.api.ResourceDto; import de.eshg.base.testhelper.api.CreateCalendarTestEventsRequest; import de.eshg.base.testhelper.api.CreateCalendarTestEventsResponse; +import de.eshg.base.user.UserControllerRateLimiter; import de.eshg.base.user.api.UserDto; import de.eshg.base.user.mapper.UserMapper; import de.eshg.lib.common.TimeoutConstants; @@ -71,6 +72,7 @@ public class BaseTestHelperService extends DefaultTestHelperService { private final HealthDepartmentContactPopulator healthDepartmentContactPopulator; private final CalendarService calendarService; + private final UserControllerRateLimiter userControllerRateLimiter; private final CalendarEventService calendarEventService; private final AccessCodeGenerator accessCodeGenerator; @@ -99,7 +101,8 @@ public class BaseTestHelperService extends DefaultTestHelperService { ContactPopulator contactPopulator, SchoolContactPopulator schoolContactPopulator, EnvironmentConfig environmentConfig, - HealthDepartmentContactPopulator healthDepartmentContactPopulator) { + HealthDepartmentContactPopulator healthDepartmentContactPopulator, + UserControllerRateLimiter userControllerRateLimiter) { super( databaseResetHelper, testRequestInterceptor, @@ -119,6 +122,13 @@ public class BaseTestHelperService extends DefaultTestHelperService { this.accessCodeGenerator = accessCodeGenerator; this.citizenKeycloakTestProvisioning = citizenKeycloakTestProvisioning; this.healthDepartmentContactPopulator = healthDepartmentContactPopulator; + this.userControllerRateLimiter = userControllerRateLimiter; + } + + @Override + public Instant reset() throws Exception { + this.userControllerRateLimiter.reset(); + return super.reset(); } public void resetKeycloak() { diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/ContactPopulator.java b/backend/base/src/main/java/de/eshg/base/testhelper/ContactPopulator.java index 81e0e723b22916389e5703d6e0d7ecee72b64eb0..a37759bc95d461be75d937e8aad9c26df5bad279 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/ContactPopulator.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/ContactPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/HealthDepartmentContactPopulator.java b/backend/base/src/main/java/de/eshg/base/testhelper/HealthDepartmentContactPopulator.java index e3e769e5024ac1a1b3b1484b5c97215ae4c3a6bb..d740d6f7c77bf82e6a2e70c2969139cd406c90f9 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/HealthDepartmentContactPopulator.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/HealthDepartmentContactPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/InventoryPopulator.java b/backend/base/src/main/java/de/eshg/base/testhelper/InventoryPopulator.java index 96ab79083dbb81211cb5e170f2b9f2dc869e9dcc..cd27a333ccb53b7871500d9f105152295140f145 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/InventoryPopulator.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/InventoryPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/ResourcePopulator.java b/backend/base/src/main/java/de/eshg/base/testhelper/ResourcePopulator.java index 9dccfafe5d36e80d33dc7451236f5a270b462b60..ca1ecc5dc58bc941efe22bbe33fe7a3c7b334ac6 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/ResourcePopulator.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/ResourcePopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/testhelper/SchoolContactPopulator.java b/backend/base/src/main/java/de/eshg/base/testhelper/SchoolContactPopulator.java index 38c1eb6c1518ace51a2c409c4a4a6da3319fb043..3a85427cdde1f94414b3c0656bd39008decedc00 100644 --- a/backend/base/src/main/java/de/eshg/base/testhelper/SchoolContactPopulator.java +++ b/backend/base/src/main/java/de/eshg/base/testhelper/SchoolContactPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/user/AddUserRequestMailJob.java b/backend/base/src/main/java/de/eshg/base/user/AddUserRequestMailJob.java index a7ec892d4095cb9b13d41ca16c68bc93b5b6a995..33cd876cbdc97eb240ad2f827c099cb42914e73d 100644 --- a/backend/base/src/main/java/de/eshg/base/user/AddUserRequestMailJob.java +++ b/backend/base/src/main/java/de/eshg/base/user/AddUserRequestMailJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/user/ApprovalRequestMailService.java b/backend/base/src/main/java/de/eshg/base/user/ApprovalRequestMailService.java index 684dcf0969005018d32f2d16690617d940902ef1..2b7446d67cabf9deb896008b9f0e6e8639772eda 100644 --- a/backend/base/src/main/java/de/eshg/base/user/ApprovalRequestMailService.java +++ b/backend/base/src/main/java/de/eshg/base/user/ApprovalRequestMailService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/user/RateLimitProperties.java b/backend/base/src/main/java/de/eshg/base/user/RateLimitProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..3b1f75caaec89e3d42036cef6c6f334e6f67b0d3 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/user/RateLimitProperties.java @@ -0,0 +1,14 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.user; + +import java.time.Duration; +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties("eshg.rate-limit") +public record RateLimitProperties(SuggestUsers suggestUsers) { + record SuggestUsers(int capacity, Duration resetInterval) {} +} diff --git a/backend/base/src/main/java/de/eshg/base/user/UserController.java b/backend/base/src/main/java/de/eshg/base/user/UserController.java index ab107bb7a79f69792afc53a84ee36f1c776e80d9..6917d5b17b0528aa8bd6813e2a25bf9bed645df7 100644 --- a/backend/base/src/main/java/de/eshg/base/user/UserController.java +++ b/backend/base/src/main/java/de/eshg/base/user/UserController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,7 +10,6 @@ import de.eshg.base.calendar.CalendarEventService; import de.eshg.base.calendar.CalendarService; import de.eshg.base.calendar.api.GetEventsOfCalendarResponse; import de.eshg.base.calendar.api.UserCalendar; -import de.eshg.base.feature.BaseFeatureToggle; import de.eshg.base.keycloak.EmployeeKeycloakClient; import de.eshg.base.keycloak.EmployeeUserAttribute; import de.eshg.base.keycloak.KeycloakEventType; @@ -45,22 +44,22 @@ public class UserController implements UserApi { private final CalendarService calendarService; private final CalendarEventService calendarEventService; private final SimpleNotificationService notificationService; + private final UserControllerRateLimiter rateLimiter; private final Clock clock; - private final BaseFeatureToggle featureToggle; public UserController( UserService userService, CalendarService calendarService, CalendarEventService calendarEventService, SimpleNotificationService notificationService, - BaseFeatureToggle featureToggle, + UserControllerRateLimiter rateLimiter, Clock clock) { this.userService = userService; this.calendarService = calendarService; this.calendarEventService = calendarEventService; this.notificationService = notificationService; + this.rateLimiter = rateLimiter; this.clock = clock; - this.featureToggle = featureToggle; } @Override @@ -253,6 +252,8 @@ public class UserController implements UserApi { @Override public UserDto suggestUser(AddUserRequest request) { + rateLimiter.suggestUser(); + UserRepresentation user = UserMapper.mapUserToDm(request); user.setEnabled(false); diff --git a/backend/base/src/main/java/de/eshg/base/user/UserControllerRateLimiter.java b/backend/base/src/main/java/de/eshg/base/user/UserControllerRateLimiter.java new file mode 100644 index 0000000000000000000000000000000000000000..c8f757c76d5ffaa54cfff156b60d4aa9d23f5144 --- /dev/null +++ b/backend/base/src/main/java/de/eshg/base/user/UserControllerRateLimiter.java @@ -0,0 +1,80 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.base.user; + +import de.eshg.rest.service.error.RateLimitReachedException; +import de.eshg.rest.service.security.CurrentUserHelper; +import io.github.bucket4j.Bandwidth; +import io.github.bucket4j.Bucket; +import io.github.bucket4j.TimeMeter; +import java.time.Clock; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import org.springframework.stereotype.Component; + +@Component +public class UserControllerRateLimiter { + private final RateLimitProperties properties; + private final ConcurrentMap<UUID, Bucket> suggestUserBuckets = new ConcurrentHashMap<>(); + private final TimeMeter clockAwareTimeMeter; + + public UserControllerRateLimiter(RateLimitProperties properties, Clock clock) { + this.properties = properties; + this.clockAwareTimeMeter = new ClockAwareTimeMeter(clock); + } + + public void reset() { + suggestUserBuckets.clear(); + } + + public void suggestUser() { + Bucket bucket = getSuggestUserBucket(); + checkRateLimit(bucket); + } + + private Bandwidth getSuggestUserBandwidth() { + return Bandwidth.builder() + .capacity(properties.suggestUsers().capacity()) + .refillIntervally( + properties.suggestUsers().capacity(), properties.suggestUsers().resetInterval()) + .build(); + } + + private Bucket getSuggestUserBucket() { + UUID userId = CurrentUserHelper.getCurrentUserId(); + return suggestUserBuckets.computeIfAbsent( + userId, + (key) -> + Bucket.builder() + .addLimit(getSuggestUserBandwidth()) + .withCustomTimePrecision(this.clockAwareTimeMeter) + .build()); + } + + private static void checkRateLimit(Bucket bucket) { + if (isRateLimitReached(bucket)) { + throw new RateLimitReachedException("Rate limit reached"); + } + } + + private static boolean isRateLimitReached(Bucket bucket) { + return !bucket.tryConsume(1); + } + + private record ClockAwareTimeMeter(Clock clock) implements TimeMeter { + + @Override + public long currentTimeNanos() { + return clock.millis() * 1_000_000; + } + + @Override + public boolean isWallClockBased() { + return true; + } + } +} diff --git a/backend/base/src/main/java/de/eshg/base/user/UserService.java b/backend/base/src/main/java/de/eshg/base/user/UserService.java index a17f348bdfce46f702ee1a2bb9b17e1bb11a4fbd..cd34b3131a40767f5502019b14d22d5b18b1c521 100644 --- a/backend/base/src/main/java/de/eshg/base/user/UserService.java +++ b/backend/base/src/main/java/de/eshg/base/user/UserService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -73,11 +73,7 @@ public class UserService { } public UserRepresentation getUserByIdOrThrow(UUID userId) { - try { - return employeeKeycloakClient.getRealm().users().get(userId.toString()).toRepresentation(); - } catch (jakarta.ws.rs.NotFoundException e) { - throw new NotFoundException("User not found"); - } + return getUserById(userId).orElseThrow(() -> new NotFoundException("User not found")); } public Optional<UserRepresentation> getUserById(UUID userId) { diff --git a/backend/base/src/main/java/de/eshg/base/user/mapper/UserMapper.java b/backend/base/src/main/java/de/eshg/base/user/mapper/UserMapper.java index 56ec3c9f01b29f507da0e08c997015115fc0e7e4..c21a5871eb244e9473a31343eb80403148304e2f 100644 --- a/backend/base/src/main/java/de/eshg/base/user/mapper/UserMapper.java +++ b/backend/base/src/main/java/de/eshg/base/user/mapper/UserMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -134,6 +134,7 @@ public class UserMapper { case BASE_GDPR_PROCEDURE_READ -> EmployeePermissionRole.BASE_GDPR_PROCEDURE_READ; case BASE_GDPR_PROCEDURE_WRITE -> EmployeePermissionRole.BASE_GDPR_PROCEDURE_WRITE; case BASE_MUK_FACILITY_LINK_WRITE -> EmployeePermissionRole.BASE_MUK_FACILITY_LINK_WRITE; + case BASE_BUNDID_PERSON_LINK_WRITE -> EmployeePermissionRole.BASE_BUNDID_PERSON_LINK_WRITE; case BASE_GLOBAL_CALENDARS_WRITE -> EmployeePermissionRole.BASE_GLOBAL_CALENDARS_WRITE; case BASE_CALENDAR_BUSINESS_EVENTS_WRITE -> EmployeePermissionRole.BASE_CALENDAR_BUSINESS_EVENTS_WRITE; @@ -193,8 +194,6 @@ public class UserMapper { case OFFICIAL_MEDICAL_SERVICE_LEADER -> EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_LEADER; case OFFICIAL_MEDICAL_SERVICE_ADMIN -> EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_ADMIN; - case OFFICIAL_MEDICAL_SERVICE_PHYSICIAN -> - EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_PHYSICIAN; }; } @@ -225,6 +224,7 @@ public class UserMapper { case BASE_GDPR_PROCEDURE_READ -> UserRoleDto.BASE_GDPR_PROCEDURE_READ; case BASE_GDPR_PROCEDURE_WRITE -> UserRoleDto.BASE_GDPR_PROCEDURE_WRITE; case BASE_MUK_FACILITY_LINK_WRITE -> UserRoleDto.BASE_MUK_FACILITY_LINK_WRITE; + case BASE_BUNDID_PERSON_LINK_WRITE -> UserRoleDto.BASE_BUNDID_PERSON_LINK_WRITE; case BASE_MAIL_SEND -> UserRoleDto.BASE_MAIL_SEND; case BASE_GLOBAL_CALENDARS_WRITE -> UserRoleDto.BASE_GLOBAL_CALENDARS_WRITE; case BASE_CALENDAR_BUSINESS_EVENTS_WRITE -> UserRoleDto.BASE_CALENDAR_BUSINESS_EVENTS_WRITE; @@ -278,7 +278,6 @@ public class UserMapper { case MEDICAL_REGISTRY_IMPORT -> UserRoleDto.MEDICAL_REGISTRY_IMPORT; case OFFICIAL_MEDICAL_SERVICE_LEADER -> UserRoleDto.OFFICIAL_MEDICAL_SERVICE_LEADER; case OFFICIAL_MEDICAL_SERVICE_ADMIN -> UserRoleDto.OFFICIAL_MEDICAL_SERVICE_ADMIN; - case OFFICIAL_MEDICAL_SERVICE_PHYSICIAN -> UserRoleDto.OFFICIAL_MEDICAL_SERVICE_PHYSICIAN; }; } diff --git a/backend/base/src/main/java/de/eshg/base/user/model/EmployeeUserKeys.java b/backend/base/src/main/java/de/eshg/base/user/model/EmployeeUserKeys.java index ba9bcca0afb432a15e0825dc6d475688c46c15f1..b2b00a617ab149514aa2fbcfe661451f0ccfa822 100644 --- a/backend/base/src/main/java/de/eshg/base/user/model/EmployeeUserKeys.java +++ b/backend/base/src/main/java/de/eshg/base/user/model/EmployeeUserKeys.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/user/model/PrivateEmployeeUserKey.java b/backend/base/src/main/java/de/eshg/base/user/model/PrivateEmployeeUserKey.java index 9e5356589ddddd3c84dced05866e0fe1e3d64497..d71fdd42c82e251b4e78cf33e27905508e67fd8e 100644 --- a/backend/base/src/main/java/de/eshg/base/user/model/PrivateEmployeeUserKey.java +++ b/backend/base/src/main/java/de/eshg/base/user/model/PrivateEmployeeUserKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/user/model/PublicEmployeeUserKey.java b/backend/base/src/main/java/de/eshg/base/user/model/PublicEmployeeUserKey.java index 6a4f5a50bf16924a59aa58d668578e3ebaa17e51..4ffbdd9d131bd04f2adfcd2c8666fda7f83498f9 100644 --- a/backend/base/src/main/java/de/eshg/base/user/model/PublicEmployeeUserKey.java +++ b/backend/base/src/main/java/de/eshg/base/user/model/PublicEmployeeUserKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/AbstractDiffer.java b/backend/base/src/main/java/de/eshg/base/util/AbstractDiffer.java index c80747e650044ec355e5c1f49c85b1070ebd9b47..b2a78e38961e4ee0fc085479fd5ce9c79468ca09 100644 --- a/backend/base/src/main/java/de/eshg/base/util/AbstractDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/util/AbstractDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/AddressMatcher.java b/backend/base/src/main/java/de/eshg/base/util/AddressMatcher.java index 08ab6720fd1aafb85bc0ea3dcb17bff5c7d04e50..037ada5ebb0b4cbb928d5ff0f9534adf0e7daecc 100644 --- a/backend/base/src/main/java/de/eshg/base/util/AddressMatcher.java +++ b/backend/base/src/main/java/de/eshg/base/util/AddressMatcher.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/DomesticFacilityAddressPartialMatchAttributes.java b/backend/base/src/main/java/de/eshg/base/util/DomesticFacilityAddressPartialMatchAttributes.java index d1a04a6f9f9132b20232cc7d7023afdf19be67d1..6b327f0d1edb930639f2d874bc852841abf3249e 100644 --- a/backend/base/src/main/java/de/eshg/base/util/DomesticFacilityAddressPartialMatchAttributes.java +++ b/backend/base/src/main/java/de/eshg/base/util/DomesticFacilityAddressPartialMatchAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/FacilityAddressPartialMatchAttributes.java b/backend/base/src/main/java/de/eshg/base/util/FacilityAddressPartialMatchAttributes.java index f964d4e154d7568a74c0913238191c53e9edcd30..ab19bf7722b0dd570a89412318de1d1dc3ab5500 100644 --- a/backend/base/src/main/java/de/eshg/base/util/FacilityAddressPartialMatchAttributes.java +++ b/backend/base/src/main/java/de/eshg/base/util/FacilityAddressPartialMatchAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/FacilityContactPersonsDiffWrapper.java b/backend/base/src/main/java/de/eshg/base/util/FacilityContactPersonsDiffWrapper.java index e77120e8766fc229850fd5e045ccc0332d7a19b4..c380bfbb062d7f7838562f3591617db3f91fd100 100644 --- a/backend/base/src/main/java/de/eshg/base/util/FacilityContactPersonsDiffWrapper.java +++ b/backend/base/src/main/java/de/eshg/base/util/FacilityContactPersonsDiffWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/FacilityDiffer.java b/backend/base/src/main/java/de/eshg/base/util/FacilityDiffer.java index 4f94ea1bee7a6e0f6ef0df59a5de86d89ce634e8..322174a725db220ee036aac2d52f39bd6506b1e7 100644 --- a/backend/base/src/main/java/de/eshg/base/util/FacilityDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/util/FacilityDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/FacilityMatcher.java b/backend/base/src/main/java/de/eshg/base/util/FacilityMatcher.java index b5d09075844b06f6d93a00757efa255c30a285e7..37624d01782ec2bfecb3f0b48a4ab109c66b13c9 100644 --- a/backend/base/src/main/java/de/eshg/base/util/FacilityMatcher.java +++ b/backend/base/src/main/java/de/eshg/base/util/FacilityMatcher.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/FacilityPartialMatchAttributes.java b/backend/base/src/main/java/de/eshg/base/util/FacilityPartialMatchAttributes.java index 25234819b9fb47fc3672145fd2f09831ea8a4f1a..fd948f41b8043a60d25b8ce3fdc3f28da91bc7f0 100644 --- a/backend/base/src/main/java/de/eshg/base/util/FacilityPartialMatchAttributes.java +++ b/backend/base/src/main/java/de/eshg/base/util/FacilityPartialMatchAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/FuzzySearchHelper.java b/backend/base/src/main/java/de/eshg/base/util/FuzzySearchHelper.java index 2b46fea3f98e446455395a6f025585cf29ba8496..fa5c180eeab9cddc7b85d59f7fdd3d3592aa5785 100644 --- a/backend/base/src/main/java/de/eshg/base/util/FuzzySearchHelper.java +++ b/backend/base/src/main/java/de/eshg/base/util/FuzzySearchHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/Gender.java b/backend/base/src/main/java/de/eshg/base/util/Gender.java index b6fd7277b3e27ffdf86a2cd2d73d96542b4c9174..97afd3a6df1770c5b24d3307051f8c0bca23f76c 100644 --- a/backend/base/src/main/java/de/eshg/base/util/Gender.java +++ b/backend/base/src/main/java/de/eshg/base/util/Gender.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/KeycloakUtil.java b/backend/base/src/main/java/de/eshg/base/util/KeycloakUtil.java index 1f1ad2bdd0746184a26f0b245862b13eb9422248..c4230f722443dbe30ebb1f1eb8e6cead418a783a 100644 --- a/backend/base/src/main/java/de/eshg/base/util/KeycloakUtil.java +++ b/backend/base/src/main/java/de/eshg/base/util/KeycloakUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/MappingUtil.java b/backend/base/src/main/java/de/eshg/base/util/MappingUtil.java index 1453773db29bd30d1ee30dea939f57392a6474d7..852090c10e516a8b359851b4c18ac9571208f422 100644 --- a/backend/base/src/main/java/de/eshg/base/util/MappingUtil.java +++ b/backend/base/src/main/java/de/eshg/base/util/MappingUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/MatcherUtil.java b/backend/base/src/main/java/de/eshg/base/util/MatcherUtil.java index a57381453c1cccb5dcf3fdbdcbae4ea1df186cba..c8c1da3bc985851bbe870cee2432943d9e07ffb0 100644 --- a/backend/base/src/main/java/de/eshg/base/util/MatcherUtil.java +++ b/backend/base/src/main/java/de/eshg/base/util/MatcherUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/PersonDiffer.java b/backend/base/src/main/java/de/eshg/base/util/PersonDiffer.java index 6390567239b5fa1bb80f538d090e8d0f4ea2713f..599773b101928be503a317cee1d6ae6f51472052 100644 --- a/backend/base/src/main/java/de/eshg/base/util/PersonDiffer.java +++ b/backend/base/src/main/java/de/eshg/base/util/PersonDiffer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/PostboxFacilityAddressPartialMatchAttributes.java b/backend/base/src/main/java/de/eshg/base/util/PostboxFacilityAddressPartialMatchAttributes.java index 16b62de7ec2b9da2a828d919bd67aeb53e84cbdb..42db54daafdf4d4e85abf237be3714b83ba281bc 100644 --- a/backend/base/src/main/java/de/eshg/base/util/PostboxFacilityAddressPartialMatchAttributes.java +++ b/backend/base/src/main/java/de/eshg/base/util/PostboxFacilityAddressPartialMatchAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/Salutation.java b/backend/base/src/main/java/de/eshg/base/util/Salutation.java index 020c42d8a4155735c81eb6e90197cc03ca3fcd91..3151cd6650c5112ce83f0a029397d90667ae4dda 100644 --- a/backend/base/src/main/java/de/eshg/base/util/Salutation.java +++ b/backend/base/src/main/java/de/eshg/base/util/Salutation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/SearchSpecificationUtil.java b/backend/base/src/main/java/de/eshg/base/util/SearchSpecificationUtil.java index 4b93424a9d17e91a4c149a81ae144cae89cb05bc..14b2832ad23311ea9263656c7d2b132e39e9e84b 100644 --- a/backend/base/src/main/java/de/eshg/base/util/SearchSpecificationUtil.java +++ b/backend/base/src/main/java/de/eshg/base/util/SearchSpecificationUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/java/de/eshg/base/util/TimeRangeValidator.java b/backend/base/src/main/java/de/eshg/base/util/TimeRangeValidator.java index f23c4f1939c98aac9e3886c42e81c8ff8787fc79..5f9f83e78bc2af54c760ac0cb61b7e1f5dd439ab 100644 --- a/backend/base/src/main/java/de/eshg/base/util/TimeRangeValidator.java +++ b/backend/base/src/main/java/de/eshg/base/util/TimeRangeValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/base/src/main/resources/application.properties b/backend/base/src/main/resources/application.properties index 3a067983f8f7e96c1d718c065a0fa057519e7148..542b19171a9fdba9af088c310a54e44c49998a85 100644 --- a/backend/base/src/main/resources/application.properties +++ b/backend/base/src/main/resources/application.properties @@ -53,6 +53,9 @@ eshg.keycloak.admin-session-limit=1h eshg.keycloak.provision-test-users=false eshg.keycloak.allow-passwords-for-employees=false +eshg.rate-limit.suggest-users.capacity=10 +eshg.rate-limit.suggest-users.reset-interval=1h + spring.security.oauth2.client.registration.module-client.client-id=system-base spring.security.oauth2.client.registration.module-client.client-secret=password spring.security.oauth2.client.provider.eshg-keycloak.token-uri=${eshg.keycloak.internal.url}/realms/eshg/protocol/openid-connect/token diff --git a/backend/base/src/main/resources/migrations/0001_initial.xml b/backend/base/src/main/resources/migrations/0001_initial.xml index 74e4a7f27f8d3d9c5fc63522b9fa18b3f7526cce..c2c03b1a7dbdc8ff2d914f9a92fbe7a8d60009b7 100644 --- a/backend/base/src/main/resources/migrations/0001_initial.xml +++ b/backend/base/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0002_create_table_mutex.xml b/backend/base/src/main/resources/migrations/0002_create_table_mutex.xml index 0be3571307b45ad011a12df7170630600035f2ba..b5cfe3895dd9c1dde56e7e9cc9a8618f3cb6201e 100644 --- a/backend/base/src/main/resources/migrations/0002_create_table_mutex.xml +++ b/backend/base/src/main/resources/migrations/0002_create_table_mutex.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0003_create_indexes.xml b/backend/base/src/main/resources/migrations/0003_create_indexes.xml index eba2e29c1467b7f3b26948fa832bc028ed39413d..633da577bc3b501dab228efc69ba94f6692d7ec8 100644 --- a/backend/base/src/main/resources/migrations/0003_create_indexes.xml +++ b/backend/base/src/main/resources/migrations/0003_create_indexes.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0004_introduce_pgenums.xml b/backend/base/src/main/resources/migrations/0004_introduce_pgenums.xml index 6121a8ea0b6d39a2aa38f9752c60ed39d9b2c199..e1965170f1ea980b71ab94bcce97c7b730ae081d 100644 --- a/backend/base/src/main/resources/migrations/0004_introduce_pgenums.xml +++ b/backend/base/src/main/resources/migrations/0004_introduce_pgenums.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0005_trgm_indexes.xml b/backend/base/src/main/resources/migrations/0005_trgm_indexes.xml index c6d62c0dc16f33964f281b76412fc130a15e1611..3447eecc7d844883a0c43a377b79d2148448c0a6 100644 --- a/backend/base/src/main/resources/migrations/0005_trgm_indexes.xml +++ b/backend/base/src/main/resources/migrations/0005_trgm_indexes.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0006_indices_for_many_to_one_relations.xml b/backend/base/src/main/resources/migrations/0006_indices_for_many_to_one_relations.xml index 66f4ca38004fafa18ee3603e3f34ad88c7d84219..16b49a76f8f26a8131d0d48184316d44f56b73a1 100644 --- a/backend/base/src/main/resources/migrations/0006_indices_for_many_to_one_relations.xml +++ b/backend/base/src/main/resources/migrations/0006_indices_for_many_to_one_relations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0007_add_external_id_to_facility_contact.xml b/backend/base/src/main/resources/migrations/0007_add_external_id_to_facility_contact.xml index 38be5d1dcff288c5b6a7d21e2a01a18fd52c6725..c33a3360092be481a68ef52eb27d967b31db51d2 100644 --- a/backend/base/src/main/resources/migrations/0007_add_external_id_to_facility_contact.xml +++ b/backend/base/src/main/resources/migrations/0007_add_external_id_to_facility_contact.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0008_exclude_external_data_origin_in_index.xml b/backend/base/src/main/resources/migrations/0008_exclude_external_data_origin_in_index.xml index 800d91689674bc002e52f93c1041dfc7912e958e..ffbcb86ea4e6caf7437762d1319aa984770cdce4 100644 --- a/backend/base/src/main/resources/migrations/0008_exclude_external_data_origin_in_index.xml +++ b/backend/base/src/main/resources/migrations/0008_exclude_external_data_origin_in_index.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0009_add_person_index.xml b/backend/base/src/main/resources/migrations/0009_add_person_index.xml index 83603e6bff2ad63f073fb4edb58508b64e7ca2bb..8e5da208956a12ea3279f2723115a9580fe9d436 100644 --- a/backend/base/src/main/resources/migrations/0009_add_person_index.xml +++ b/backend/base/src/main/resources/migrations/0009_add_person_index.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0010_remove_and_change_event_type.xml b/backend/base/src/main/resources/migrations/0010_remove_and_change_event_type.xml index 3311e3fc024c930a31d95203ccf8738df85bdb68..34d9826ee4f0712442f6852c477bdc8617098f3d 100644 --- a/backend/base/src/main/resources/migrations/0010_remove_and_change_event_type.xml +++ b/backend/base/src/main/resources/migrations/0010_remove_and_change_event_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0011_change_enum_orders.xml b/backend/base/src/main/resources/migrations/0011_change_enum_orders.xml index 7abe9496ac34e6b5aaff9fdcecfde71486faf7f7..bfd7b31acbce34e383fc0a43749f67855e28ed94 100644 --- a/backend/base/src/main/resources/migrations/0011_change_enum_orders.xml +++ b/backend/base/src/main/resources/migrations/0011_change_enum_orders.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0012_rename_single_string_entity_columns.xml b/backend/base/src/main/resources/migrations/0012_rename_single_string_entity_columns.xml index fa26e68c4ba593cbf0a4a662fccee77eafde9a9d..820e3b87b4ee70ba04edb68881caa9c66cb3768b 100644 --- a/backend/base/src/main/resources/migrations/0012_rename_single_string_entity_columns.xml +++ b/backend/base/src/main/resources/migrations/0012_rename_single_string_entity_columns.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0013_person_sequence.xml b/backend/base/src/main/resources/migrations/0013_person_sequence.xml index 1d9e611c0d92c0208cdb78e8e7338f99b643b1bc..aaa6c95c09729b2fa946d75dfc9997d3df1fb9d7 100644 --- a/backend/base/src/main/resources/migrations/0013_person_sequence.xml +++ b/backend/base/src/main/resources/migrations/0013_person_sequence.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0014_contact_index_full_name.xml b/backend/base/src/main/resources/migrations/0014_contact_index_full_name.xml index 0fc219bf4de70f30fbb145d636e5db2484d1e4ea..364db4089286d83d9c25d8e212b21ee6fc8aff1d 100644 --- a/backend/base/src/main/resources/migrations/0014_contact_index_full_name.xml +++ b/backend/base/src/main/resources/migrations/0014_contact_index_full_name.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0015_gdpr_matter_of_concern.xml b/backend/base/src/main/resources/migrations/0015_gdpr_matter_of_concern.xml index eb9b333f17712a6334165717a3b1be89deb44362..73d0bb1b1bb996e479d3a6bcf60d9dba2f2199db 100644 --- a/backend/base/src/main/resources/migrations/0015_gdpr_matter_of_concern.xml +++ b/backend/base/src/main/resources/migrations/0015_gdpr_matter_of_concern.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0018_add_right_to_rectification_type.xml b/backend/base/src/main/resources/migrations/0018_add_right_to_rectification_type.xml index f690be369be4502b62bb880c8d25f8a72e4378fa..34638e215ad8cba2a1277cef0269fe77f4952855 100644 --- a/backend/base/src/main/resources/migrations/0018_add_right_to_rectification_type.xml +++ b/backend/base/src/main/resources/migrations/0018_add_right_to_rectification_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0019_remove-orphaned-addresses.xml b/backend/base/src/main/resources/migrations/0019_remove-orphaned-addresses.xml index 307c225a985d8008607be174328ffa4fae1810a1..badc4fd2a053012760e51fb6853e8f8f1f649f55 100644 --- a/backend/base/src/main/resources/migrations/0019_remove-orphaned-addresses.xml +++ b/backend/base/src/main/resources/migrations/0019_remove-orphaned-addresses.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0020_drop_default_revision_entity_created_by_not_null_contraint.xml b/backend/base/src/main/resources/migrations/0020_drop_default_revision_entity_created_by_not_null_contraint.xml index 494a81eda86b1104f83d401a3dc594ee293c1d0c..b1c96f6bd323e5cbb821b768ae4cf242f56eb3e8 100644 --- a/backend/base/src/main/resources/migrations/0020_drop_default_revision_entity_created_by_not_null_contraint.xml +++ b/backend/base/src/main/resources/migrations/0020_drop_default_revision_entity_created_by_not_null_contraint.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0021_facility_sequence.xml b/backend/base/src/main/resources/migrations/0021_facility_sequence.xml index c47630f1989d85659536ec1e71e67573fccbebce..f7bcfc6fe6ea4416554f08f78f9653154867a72e 100644 --- a/backend/base/src/main/resources/migrations/0021_facility_sequence.xml +++ b/backend/base/src/main/resources/migrations/0021_facility_sequence.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0022_remove_gdpr_result_enum.xml b/backend/base/src/main/resources/migrations/0022_remove_gdpr_result_enum.xml index 134f07ebc99d73e1a10bfbdb8df4eee108ed2413..8a3a9f965c64df91fe658375030ebb28156cbefd 100644 --- a/backend/base/src/main/resources/migrations/0022_remove_gdpr_result_enum.xml +++ b/backend/base/src/main/resources/migrations/0022_remove_gdpr_result_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0023_add_gdpr_internal_note.xml b/backend/base/src/main/resources/migrations/0023_add_gdpr_internal_note.xml index 72370ab04047d72716b8791e9bab1652cc2e7c32..a8b15fb63a28da8711c5473cadb89fe603be0091 100644 --- a/backend/base/src/main/resources/migrations/0023_add_gdpr_internal_note.xml +++ b/backend/base/src/main/resources/migrations/0023_add_gdpr_internal_note.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0024_add_facility_name_index.xml b/backend/base/src/main/resources/migrations/0024_add_facility_name_index.xml index 0502082b217b18a0d6149fda2e4cc29a70de79a7..235d90e7191e9227e8f325e1c3e0d1831adc3b39 100644 --- a/backend/base/src/main/resources/migrations/0024_add_facility_name_index.xml +++ b/backend/base/src/main/resources/migrations/0024_add_facility_name_index.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0025_add_daycare-category.xml b/backend/base/src/main/resources/migrations/0025_add_daycare-category.xml index 8fcb7c1fec0bf43f9d9d35eff1b5d4e50d975616..8670dde19a9e4f2c8222b6da26380b0d29de5d7a 100644 --- a/backend/base/src/main/resources/migrations/0025_add_daycare-category.xml +++ b/backend/base/src/main/resources/migrations/0025_add_daycare-category.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0026_remove_availability.xml b/backend/base/src/main/resources/migrations/0026_remove_availability.xml index 70a14600b3d1b67ef6fe18a72ad218e28b3b6723..36946277f3f2404fd7f4ac818d22034bc3202d90 100644 --- a/backend/base/src/main/resources/migrations/0026_remove_availability.xml +++ b/backend/base/src/main/resources/migrations/0026_remove_availability.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0027_create_table_muk_facility_link.xml b/backend/base/src/main/resources/migrations/0027_create_table_muk_facility_link.xml index 44a083aabb83d451bcb4683885928b1932e2e6d9..2710b3dd92ee6aee89e9109c6974476868832427 100644 --- a/backend/base/src/main/resources/migrations/0027_create_table_muk_facility_link.xml +++ b/backend/base/src/main/resources/migrations/0027_create_table_muk_facility_link.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0028_add_mail_to_simple_notification.xml b/backend/base/src/main/resources/migrations/0028_add_mail_to_simple_notification.xml index 05d37e521689ea5da4dd8d737ce9fb9e25e3148b..2a337dd206a047b5b7941db5b77ba6c8910c02e5 100644 --- a/backend/base/src/main/resources/migrations/0028_add_mail_to_simple_notification.xml +++ b/backend/base/src/main/resources/migrations/0028_add_mail_to_simple_notification.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0029_add_download_package.xml b/backend/base/src/main/resources/migrations/0029_add_download_package.xml index 16003067becbb643f53cef4887b6e415ab1290f0..da04a6eda5c29b692ce890594cf7ae8ebd8a0d12 100644 --- a/backend/base/src/main/resources/migrations/0029_add_download_package.xml +++ b/backend/base/src/main/resources/migrations/0029_add_download_package.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/0030_create_table_bundid_person_link.xml b/backend/base/src/main/resources/migrations/0030_create_table_bundid_person_link.xml new file mode 100644 index 0000000000000000000000000000000000000000..6db15b87c3b7d1bc6c2efe5fc923a33c32470139 --- /dev/null +++ b/backend/base/src/main/resources/migrations/0030_create_table_bundid_person_link.xml @@ -0,0 +1,29 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733929659632-1"> + <createTable tableName="bund_id_person_link"> + <column name="bund_id_person_link" type="BIGINT"> + <constraints nullable="false" primaryKey="true" primaryKeyName="pk_bund_id_person_link"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="bund_id" type="TEXT"> + <constraints nullable="false"/> + </column> + </createTable> + </changeSet> + <changeSet author="GA-Lotse" id="1733929659632-2"> + <createIndex indexName="idx_bund_id_person_link_bund_id" tableName="bund_id_person_link"> + <column name="bund_id"/> + </createIndex> + </changeSet> + <changeSet author="GA-Lotse" id="1733929659632-3"> + <addForeignKeyConstraint baseColumnNames="bund_id_person_link" baseTableName="bund_id_person_link" constraintName="fk_bund_id_person_link_person" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="person" validate="true"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/base/src/main/resources/migrations/0031_add_index_to_muk_facility_link.xml b/backend/base/src/main/resources/migrations/0031_add_index_to_muk_facility_link.xml new file mode 100644 index 0000000000000000000000000000000000000000..aba016feddb72d00167da9414fbf7c123ef48a25 --- /dev/null +++ b/backend/base/src/main/resources/migrations/0031_add_index_to_muk_facility_link.xml @@ -0,0 +1,13 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733422475095-1"> + <createIndex indexName="idx_muk_facility_link_muk_id" tableName="muk_facility_link"> + <column name="muk_id"/> + </createIndex> + </changeSet> +</databaseChangeLog> diff --git a/backend/base/src/main/resources/migrations/0032_rename_facility_link_muk_id.xml b/backend/base/src/main/resources/migrations/0032_rename_facility_link_muk_id.xml new file mode 100644 index 0000000000000000000000000000000000000000..22655a649b872c802d259c850cda09c97c71e808 --- /dev/null +++ b/backend/base/src/main/resources/migrations/0032_rename_facility_link_muk_id.xml @@ -0,0 +1,19 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1732993443092-1"> + <renameColumn tableName="muk_facility_link" oldColumnName="muk_id" newColumnName="data_transmitter_pseudonym_id"/> + </changeSet> + <changeSet author="GA-Lotse" id="1732993443092-2"> + <dropIndex indexName="idx_muk_facility_link_muk_id" tableName="muk_facility_link"/> + <createIndex indexName="idx_muk_facility_link_data_transmitter_pseudonym_id" tableName="muk_facility_link"> + <column name="data_transmitter_pseudonym_id"/> + </createIndex> + </changeSet> +</databaseChangeLog> diff --git a/backend/base/src/main/resources/migrations/016_add_creation_at_to_person_and_facility.xml b/backend/base/src/main/resources/migrations/016_add_creation_at_to_person_and_facility.xml index e56e51a12251550fe31df24bfb409e0edf504406..17b03a7a9fde05993371b44187ccc8603654da4b 100644 --- a/backend/base/src/main/resources/migrations/016_add_creation_at_to_person_and_facility.xml +++ b/backend/base/src/main/resources/migrations/016_add_creation_at_to_person_and_facility.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/017_add_download_ids_to_gdpr_procedure.xml b/backend/base/src/main/resources/migrations/017_add_download_ids_to_gdpr_procedure.xml index 2d47528a983a0592345a3bb960454f55e3248ab4..0537e717aa5906501811a9a969e21e2cfd135abd 100644 --- a/backend/base/src/main/resources/migrations/017_add_download_ids_to_gdpr_procedure.xml +++ b/backend/base/src/main/resources/migrations/017_add_download_ids_to_gdpr_procedure.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/base/src/main/resources/migrations/changelog.xml b/backend/base/src/main/resources/migrations/changelog.xml index 5b627eeebd4f563de71151a0aac17aa3fd132422..1a438b4446fbb53ce3a3d052d4f25c8433ab31a0 100644 --- a/backend/base/src/main/resources/migrations/changelog.xml +++ b/backend/base/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> @@ -27,8 +27,7 @@ <include file="migrations/017_add_download_ids_to_gdpr_procedure.xml"/> <include file="migrations/0018_add_right_to_rectification_type.xml"/> <include file="migrations/0019_remove-orphaned-addresses.xml"/> - <include - file="migrations/0020_drop_default_revision_entity_created_by_not_null_contraint.xml"/> + <include file="migrations/0020_drop_default_revision_entity_created_by_not_null_contraint.xml"/> <include file="migrations/0021_facility_sequence.xml"/> <include file="migrations/0022_remove_gdpr_result_enum.xml"/> <include file="migrations/0023_add_gdpr_internal_note.xml"/> @@ -38,4 +37,7 @@ <include file="migrations/0027_create_table_muk_facility_link.xml"/> <include file="migrations/0028_add_mail_to_simple_notification.xml"/> <include file="migrations/0029_add_download_package.xml"/> + <include file="migrations/0030_create_table_bundid_person_link.xml"/> + <include file="migrations/0031_add_index_to_muk_facility_link.xml"/> + <include file="migrations/0032_rename_facility_link_muk_id.xml"/> </databaseChangeLog> diff --git a/backend/base/src/main/resources/templates/user-notification-mail.html b/backend/base/src/main/resources/templates/user-notification-mail.html index 344be1aa852f31ff3b8321f9634b4dd540dacd04..7858dfe2388593ce3a0c4097bdc76b79bfaa7e05 100644 --- a/backend/base/src/main/resources/templates/user-notification-mail.html +++ b/backend/base/src/main/resources/templates/user-notification-mail.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/buildSrc/src/main/groovy/de/eshg/FindUnusedValidationFiles.groovy b/backend/buildSrc/src/main/groovy/de/eshg/FindUnusedValidationFiles.groovy index 601a08308a6a692ccd42af319b2a623236f14419..f608e59342d9b68c3a2b5f1de8e2b845a43a31d2 100644 --- a/backend/buildSrc/src/main/groovy/de/eshg/FindUnusedValidationFiles.groovy +++ b/backend/buildSrc/src/main/groovy/de/eshg/FindUnusedValidationFiles.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg diff --git a/backend/buildSrc/src/main/groovy/de/eshg/TaskExecutionLimitService.groovy b/backend/buildSrc/src/main/groovy/de/eshg/TaskExecutionLimitService.groovy index d7bd6ca5ca07de1f900148653c1d5dea7d59a71f..d1dd2c47a8c3057ed95a0938f080c19408cfcb28 100644 --- a/backend/buildSrc/src/main/groovy/de/eshg/TaskExecutionLimitService.groovy +++ b/backend/buildSrc/src/main/groovy/de/eshg/TaskExecutionLimitService.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg diff --git a/backend/buildSrc/src/main/groovy/eshg.service.gradle b/backend/buildSrc/src/main/groovy/eshg.service.gradle index ee63f88ab2e207fba035fd7e70b56cdcaa09ea04..e872a90e03b43a5b9f886680c67ac86ac620931e 100644 --- a/backend/buildSrc/src/main/groovy/eshg.service.gradle +++ b/backend/buildSrc/src/main/groovy/eshg.service.gradle @@ -112,7 +112,6 @@ tasks.register('createDockerfile', Dockerfile) { } environmentVariable('TZ', 'Europe/Berlin') - environmentVariable('JAVA_TOOL_OPTIONS', '-Xmx512m') copyFile(new Dockerfile.CopyFile("application/spring-boot-loader/", "./").withChown("${userName}:${groupName}").withStage("build")) copyFile(new Dockerfile.CopyFile("application/common-deps/", "./").withChown("${userName}:${groupName}").withStage("build")) @@ -125,6 +124,8 @@ tasks.register('createDockerfile', Dockerfile) { "-Dserver.port=${listenPort}", '-Djava.security.egd=file:/dev/urandom', "-XX:+ExitOnOutOfMemoryError", + "-XshowSettings:system", + "-XX:MaxRAMPercentage=50", 'org.springframework.boot.loader.launch.JarLauncher') } diff --git a/backend/business-module-commons/src/main/java/de/eshg/management/config/ManagementEndpointAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/management/config/ManagementEndpointAutoConfiguration.java index 30c227e26e9e512178e2fd5cc6fafc8ed07d82e8..28d129d29fbc8d9fc86d49a435307620bc6cd575 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/management/config/ManagementEndpointAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/management/config/ManagementEndpointAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/EshgSpringMvcAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/EshgSpringMvcAutoConfiguration.java index 55bf061d6de18417b0b2350a85f1944ef1eada81..6621326a2d5bddc1592fd9c0d65f508884dbd13b 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/EshgSpringMvcAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/EshgSpringMvcAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/ExceptionHandlingAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/ExceptionHandlingAutoConfiguration.java index 5cd64dcd4ff9fa57e54eace45a9dbca8d25d6e81..86e741eb147fedd2564b50b686ff38bb3e82e799 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/ExceptionHandlingAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/ExceptionHandlingAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/JacksonAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/JacksonAutoConfiguration.java index a3f2edb601ecf8b216c99927a6f9e8d35cffedaf..26f0714d5704fe6b365ba21cb2f332895d821779 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/JacksonAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/JacksonAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/ResponseValidationAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/ResponseValidationAutoConfiguration.java index b8ebcbc973c30940e05a5ade7245abbe0e5c65f8..43341419d3f616b60107d99463eec0a63fc20f26 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/ResponseValidationAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/ResponseValidationAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/ServerAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/ServerAutoConfiguration.java index 06e55084b97aaeb5303d7ba7e2744bd24cdc058c..2c66245fcaed54f9b5c2b63c98aeb02da54c1a51 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/ServerAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/ServerAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/UnknowQueryParameterValidationAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/UnknowQueryParameterValidationAutoConfiguration.java index d9cd505ffbd67a6592a71a8f28790f53d5b572cc..c658b6f02ad698f2f757401592661dbd19301caa 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/UnknowQueryParameterValidationAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/UnknowQueryParameterValidationAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/error/GlobalExceptionHandler.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/error/GlobalExceptionHandler.java index 2a0f328b8df3efb60494d35032f6912780fba353..4b03fc06370dc7bfb73c898e114af82c763b4f82 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/error/GlobalExceptionHandler.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/error/GlobalExceptionHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/AuthorizationCustomizer.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/AuthorizationCustomizer.java index 191be2d5ec61e267c6a21803d45e1397e0df94af..ae5d171e7b7d301e5f59b8c40f34de50cd34f719 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/AuthorizationCustomizer.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/AuthorizationCustomizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/CurrentUserHelper.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/CurrentUserHelper.java index e83a71e0b83248aebd8de4feaff652192eef21d6..5771bde4268c3f178f2fe816e5f214b43988def8 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/CurrentUserHelper.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/CurrentUserHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/DefaultEshgSecurityConfig.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/DefaultEshgSecurityConfig.java index 66337ecb409e8d42dbb709a9c3b61cc96fb057b4..139e5c0535759dbb0cc54bac908f2bb2da9cae78 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/DefaultEshgSecurityConfig.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/DefaultEshgSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/EshgOAuth2ResourceServerProperties.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/EshgOAuth2ResourceServerProperties.java index b03c1a89a35775442ea656bfa51639a6b190ec5a..7054bfe45ce081a6218e6e2972aabeceabbeac2d 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/EshgOAuth2ResourceServerProperties.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/EshgOAuth2ResourceServerProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/KeycloakAuthAutoConfiguration.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/KeycloakAuthAutoConfiguration.java index e464c954c9e62386fdb0ad5c86b19c18559a6cbf..68a65db628f6fd97691e19d17624b6bbe37922ca 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/KeycloakAuthAutoConfiguration.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/KeycloakAuthAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/UserSessionIdLoggingFilter.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/UserSessionIdLoggingFilter.java index df5cb35f88b03166e8379d4d35b09b5b4866c473..659e321a9a78cf724d75b7ef5ded79421c855e95 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/UserSessionIdLoggingFilter.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/security/UserSessionIdLoggingFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/RequestParameterUtil.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/RequestParameterUtil.java index 3b2822717c2b0f01fdb532905ca022305585bf4a..8e2dc00c199e7d287cbbb3cea4c0965564464111 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/RequestParameterUtil.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/RequestParameterUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/ResponseBodyValidationAdvice.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/ResponseBodyValidationAdvice.java index 5ab50d0c5623218237945f8219605d961151edf0..4a9465271f1002aad902acaaa055f9f9ec8153df 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/ResponseBodyValidationAdvice.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/ResponseBodyValidationAdvice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/UnknownQueryParameterValidator.java b/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/UnknownQueryParameterValidator.java index b22cd3fdc936dd8cb202961f18e171033c68db19..4107327367c98e38621fe62e496410332c26e3a0 100644 --- a/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/UnknownQueryParameterValidator.java +++ b/backend/business-module-commons/src/main/java/de/eshg/rest/service/validation/UnknownQueryParameterValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntity.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntity.java index 2d7bd0901917fe64c0c6cd004ce7aef2c175e0cf..f3dd0716bed6c7d735e17533d518990b9731d872 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntity.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntityWithExternalId.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntityWithExternalId.java index a06ec15810cb11fc0dda8eb0182ce5901d6d0d20..907f8f75ea8e4e67e72be30a656a16277df1df99 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntityWithExternalId.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseEntityWithExternalId.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseRevisionEntity.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseRevisionEntity.java index 3772e27327f9a6ae6dd219b6c0e47eb22a5b4375..5b137c0b1fcb7d1f6b147cc72a5efe36efc2338a 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseRevisionEntity.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/BaseRevisionEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/EntityWithExternalId.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/EntityWithExternalId.java index 05dd48d10669a8e311859788a81844f1cd18fc7f..9f6a1f5aacf134cc4d2d49c4c8d9ac5a1cf82179 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/EntityWithExternalId.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/EntityWithExternalId.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GenericEntity.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GenericEntity.java index 6d02873128ca14f797c1a33a9f9e7ba3a0a14d11..c00a2c65c2efeb53acc527507e22127c6e4f311a 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GenericEntity.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GenericEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GloballyUniqueEntityBase.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GloballyUniqueEntityBase.java index ac1cad579d02461160375ae553ab4dfc2c6505e6..643da0e71077134ae1f485e74c48a34e47b51fb6 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GloballyUniqueEntityBase.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/GloballyUniqueEntityBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/HasFileContent.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/HasFileContent.java index 33656be5e73624d95c60c00638038afb07903ad3..1f51d79ea04af24ef18ce644a1d3767dccd84bd8 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/HasFileContent.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/HasFileContent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntity.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntity.java index 0aa9224040eb4f947be3b4fdb99c3615b16fa51c..5a739acf92750bab70e70bf1d4a064c5c91d048a 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntity.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntityWithExternalId.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntityWithExternalId.java index 80e2c31be5c1015626741e2fdd6c69101a2b6a04..59fc0fbff75c7e721875d4875d81f7eb9ffca00a 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntityWithExternalId.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/SequencedBaseEntityWithExternalId.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/audit/DefaultRevisionEntity.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/audit/DefaultRevisionEntity.java index 73e3f63d1f9f16063aef5cfd8e37eb468b688ea2..c2f98b86a3ff44b176031390a33be4b4f96e78b1 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/audit/DefaultRevisionEntity.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/audit/DefaultRevisionEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/FileContentSerializer.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/FileContentSerializer.java index 8447a2fba47aacb5792d7b4ef7cad85c36e344d3..3df01baef042000c5005e26c578f4fddc30c2f0b 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/FileContentSerializer.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/FileContentSerializer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationObjectMapperConfigurer.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationObjectMapperConfigurer.java index 54a49e0bf1586a8e2deaf79327f79f25a5727e9e..8f9667807ebfbf046ddabc5551cf23e564ed368d 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationObjectMapperConfigurer.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationObjectMapperConfigurer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationService.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationService.java index 3a66162695b35f1b6f1dc45c23bf3aaafe2ab96e..4cd517fcae0a8c44ccff081fae6e6c4aac6326b2 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationService.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/SerializationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -73,6 +73,10 @@ public class SerializationService { } public byte[] toZip(String dataFileBaseName, EntityWithExternalId entity) { + return toZip(dataFileBaseName, entity, (n, z) -> {}); + } + + public byte[] toZip(String dataFileBaseName, EntityWithExternalId entity, ZipFilter zipFilter) { ZipFileWrapper zipFileWrapper = new ZipFileWrapper(); FileContentSerializer fileContentSerializer = @@ -86,8 +90,10 @@ public class SerializationService { objectMapper, zipFileWrapper::addEntry, zipFileWrapper::getCollisionFreeFileName)); JsonNode jsonNode = toJsonNode(entity, objectMapper); + zipFilter.filter(jsonNode, zipFileWrapper); String jsonNodeAsCsv = jsonNodeToCsv(entity.getClass().getSimpleName(), jsonNode); zipFileWrapper.addEntry(dataFileBaseName + ".csv", jsonNodeAsCsv.getBytes()); + zipFilter.filter(jsonNode, zipFileWrapper); return zipFileWrapper.asByteArray(); } diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/ZipFileWrapper.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/ZipFileWrapper.java index cdbb7615007da964169143bac952062b2a994cf0..edd97ab8f0541fe54e67fec151b8a4ca4ef04ba9 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/ZipFileWrapper.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/ZipFileWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,6 +11,7 @@ import java.io.UncheckedIOException; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import org.apache.commons.io.FilenameUtils; @@ -33,6 +34,17 @@ public class ZipFileWrapper { } } + public void removeEntry(String fileName) { + if (!entries.containsKey(fileName)) { + throw new IllegalArgumentException("FileName " + fileName + " not found"); + } + entries.remove(fileName); + } + + public Set<String> getFileNames() { + return entries.keySet(); + } + public byte[] asByteArray() { try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { try (ZipOutputStream zipOutputStream = new ZipOutputStream(byteArrayOutputStream)) { diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/ZipFilter.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/ZipFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..cbc9f1035b0a27397a5f6bd599ac51630070abbf --- /dev/null +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/domain/model/serialization/ZipFilter.java @@ -0,0 +1,23 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.domain.model.serialization; + +import com.fasterxml.jackson.databind.JsonNode; +import java.util.function.BiConsumer; + +public interface ZipFilter extends BiConsumer<JsonNode, ZipFileWrapper> { + + default void filter(JsonNode jsonNode, ZipFileWrapper zipFileWrapper) { + accept(jsonNode, zipFileWrapper); + } + + default ZipFilter andThen(ZipFilter after) { + return (l, r) -> { + accept(l, r); + after.accept(l, r); + }; + } +} diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/ClockAsDateTimeProvider.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/ClockAsDateTimeProvider.java index 395d3e3e7c00521ea2a3cb172e0a0767efb56ea0..f8d1219c30a4205eedcb0af1d29ba9db4f7d74ae 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/ClockAsDateTimeProvider.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/ClockAsDateTimeProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/CurrentUserAsAuditor.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/CurrentUserAsAuditor.java index a9e4ea95eb3d5e91fcd8132cb38ec52f224af9a1..bf42cdad729f35df0281c8b45ac7ed46d5c0243f 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/CurrentUserAsAuditor.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/CurrentUserAsAuditor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/JpaAuditingAutoConfiguration.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/JpaAuditingAutoConfiguration.java index 829aec3db61633e215002fccf9e7d74a15116061..f3d9420bd318b531a78b5307b4640a59a61716cf 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/JpaAuditingAutoConfiguration.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/jpaauditing/JpaAuditingAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/liquibase/EshgMigrateAutoIncrementToSequenceChange.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/liquibase/EshgMigrateAutoIncrementToSequenceChange.java index a374de15d6fc152cfdf64b692cd6f74e45fb1f24..0cb9b74317d0790f2ccfe6b67497ba22f4715a6c 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/liquibase/EshgMigrateAutoIncrementToSequenceChange.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/liquibase/EshgMigrateAutoIncrementToSequenceChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/AuditMapper.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/AuditMapper.java index 3e84204210165dbc3f51eec83b9cde04aa96941b..0ed5101737762cbea6ae512a1a4d8f47ce44ccc9 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/AuditMapper.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/AuditMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RestMappingUtil.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RestMappingUtil.java index 21b53a0a7718a289723a8fdddc04128c2d9a9acc..2f9c3ee481e47419a05f37de97371f3846986007 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RestMappingUtil.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RestMappingUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntry.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntry.java index dc6ed0e4206525f44ed72d85bd5c4138a760bab1..053b07464510a7fbdd1bf7072256a76b6bd8afef 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntry.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntryWithChange.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntryWithChange.java index 1ec410d59306e441fa6354d9b98e922a8a0407e1..d5d5be6f4ef509f26ad1530c422d6ff90333f2ee 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntryWithChange.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/mapper/RevisionEntryWithChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/ControlCharacterValidationEventListener.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/ControlCharacterValidationEventListener.java index 0600582ceb8f748dbde2b1045bbf4c8ed3a7eb6b..ab0bb1c924d1a9669336424964ff3bde4589f157 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/ControlCharacterValidationEventListener.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/ControlCharacterValidationEventListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgDefaultRevisionEntityAuditingConfiguration.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgDefaultRevisionEntityAuditingConfiguration.java index 781046d94cb59e9fced4fb3bca363793b18976ca..624f5caa66aaaad4054b6cceb101fd10e92c520c 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgDefaultRevisionEntityAuditingConfiguration.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgDefaultRevisionEntityAuditingConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgHibernateEventListenerConfiguration.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgHibernateEventListenerConfiguration.java index 32ef6002b3e832527dd361bd24af4d2a845d361f..366ba2dc4ca4b04ce3787cc8d0cac127599c121f 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgHibernateEventListenerConfiguration.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgHibernateEventListenerConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgJpaAutoConfiguration.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgJpaAutoConfiguration.java index 4d2de33a70114cf81f1429fbd541af93318c7359..437bbdac95c4a1d722095fc3e1efe428e7e7307c 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgJpaAutoConfiguration.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgJpaAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgPostgreSQLDialect.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgPostgreSQLDialect.java index 645ada52a4841b7bce75a7195e1d44f610443ff0..528343016f8996a00f2d2b27c8406cea7ca007cf 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgPostgreSQLDialect.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/EshgPostgreSQLDialect.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/TransactionHelper.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/TransactionHelper.java index cd17d3e0fcdd16baa5da5a5f27fb6e3e02b32492..5dca4c678dccfa2497ff2f2c9c9716545010fb49 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/TransactionHelper.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/persistence/TransactionHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/business-module-persistence-commons/src/main/java/de/eshg/validation/ValidationUtil.java b/backend/business-module-persistence-commons/src/main/java/de/eshg/validation/ValidationUtil.java index 4ae00fc7cc70d2979508978ab85ad57a4e88327f..9bb842c4ebdf37a3208c0e4d2913c3b1fba3846e 100644 --- a/backend/business-module-persistence-commons/src/main/java/de/eshg/validation/ValidationUtil.java +++ b/backend/business-module-persistence-commons/src/main/java/de/eshg/validation/ValidationUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/central-repository/openApi.yaml b/backend/central-repository/openApi.yaml index 1f92c8a0cf0721575312c017089ba78c605510e3..9821fb39a3bd19b22c51f532493caf3a6eaa14df 100644 --- a/backend/central-repository/openApi.yaml +++ b/backend/central-repository/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/CentralRepositoryApplication.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/CentralRepositoryApplication.java index 5d2dce517c8baceb806b3281d250bb4a3d56745a..fa737f4cf91ab9600eb3e6424cf9691af0a29178 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/CentralRepositoryApplication.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/CentralRepositoryApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/InitializationMetadataUpdateService.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/InitializationMetadataUpdateService.java index 6cfa446fede0146df59aac235f6b532485a3e1c6..0358b0983be3c53d0c8a838ad92c9c95d3688afe 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/InitializationMetadataUpdateService.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/InitializationMetadataUpdateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/advice/CentralRepositoryAdvice.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/advice/CentralRepositoryAdvice.java index a8149d833fb0d084ae8cd89864a6f9675d900216..aeb52ed623fb241f376889b440afb07bd316fd9b 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/advice/CentralRepositoryAdvice.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/advice/CentralRepositoryAdvice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/config/CentralRepositorySecurityConfig.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/config/CentralRepositorySecurityConfig.java index 450b1032dcae6fa49993af5dc8fdfad3f42f7f18..06b19a27db90bbf3ef39483d6d3ad88a2eef4295 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/config/CentralRepositorySecurityConfig.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/config/CentralRepositorySecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/controller/CentralRepositoryController.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/controller/CentralRepositoryController.java index a83a38465f8a1455ae1e3fc68a7d5573e22d2450..6bf0ced640cf6c41fd048a0af56c9a9f7333bbd3 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/controller/CentralRepositoryController.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/controller/CentralRepositoryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/CentralRepositoryIOException.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/CentralRepositoryIOException.java index f96269cfa21aa82bd6b4dc6803bec7cb2ce3bd2a..9c160a9925c83adb688a93022ba78108b4a0a7bb 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/CentralRepositoryIOException.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/CentralRepositoryIOException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/ManualValidationException.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/ManualValidationException.java index d5421710c51193d3e00b2f52634ac717dd1e96d4..2ed4eaee0a320359baa73b993590ca5db14a4ea2 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/ManualValidationException.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/exception/ManualValidationException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/mapper/VersionedEntryMapper.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/mapper/VersionedEntryMapper.java index 958493c1f4d282c8af8c43614a5a94bddef6772a..acb72a3c9734b159ec2e6981151664b660c60160 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/mapper/VersionedEntryMapper.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/mapper/VersionedEntryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/IdVersionPK.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/IdVersionPK.java index 722748ca4891d167a00590b33024538c3842ab5e..ffeae3880339eb726ea5403f71ce74d8c3efa81d 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/IdVersionPK.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/IdVersionPK.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryContent.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryContent.java index c7cd928465ffef964b7fbea24031a3effdbef993..94b2b445f3491a27c7131abfc8f888a250cb0d8a 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryContent.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryContent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryMetadata.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryMetadata.java index 6d98a0c477225c293c4bb632ac071d58475c2f83..05d709bde321a2da98db4874c38ec1b5c63534a9 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryMetadata.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/entity/VersionedEntryMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryContentRepository.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryContentRepository.java index 8476b55d156a6941cf7eb75349602d250eba2a9c..9eccaceba864e5177b2dd59056efb5e0e69f5ca8 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryContentRepository.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryContentRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryMetadataRepository.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryMetadataRepository.java index 7329d0936f2931df2389c0a5ab63d7d6b8c4911c..1f087b2712ba6da95d35381e3c6ffe9dfc8a5d18 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryMetadataRepository.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/persistence/repository/VersionedEntryMetadataRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/java/de/eshg/centralrepository/service/VersionedEntryService.java b/backend/central-repository/src/main/java/de/eshg/centralrepository/service/VersionedEntryService.java index 349525191a3ebbb83df0fe6026f5f56f859400ae..6896a198e54706e708e3641d39fdf2be583ba74e 100644 --- a/backend/central-repository/src/main/java/de/eshg/centralrepository/service/VersionedEntryService.java +++ b/backend/central-repository/src/main/java/de/eshg/centralrepository/service/VersionedEntryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/central-repository/src/main/resources/migrations/0001_initial.xml b/backend/central-repository/src/main/resources/migrations/0001_initial.xml index f07e22abe6fa8b7b1b77badac4bf90273ab3d8e3..ee2d41e601494b863412b4caa190e42a7258b36f 100644 --- a/backend/central-repository/src/main/resources/migrations/0001_initial.xml +++ b/backend/central-repository/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/central-repository/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml b/backend/central-repository/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml index 4b59c5e64a579d55a0ffb4a726cf6d78b4ad5e00..d02aeaaa6e52b06b67a6ce11528b4d8fd07fa714 100644 --- a/backend/central-repository/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml +++ b/backend/central-repository/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/central-repository/src/main/resources/migrations/changelog.xml b/backend/central-repository/src/main/resources/migrations/changelog.xml index c635ca4b6542ffcb3f273a583406c41b31d42881..74b17a104e222dec24acce00a1f6dbc64090094a 100644 --- a/backend/central-repository/src/main/resources/migrations/changelog.xml +++ b/backend/central-repository/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/chat-management/openApi.yaml b/backend/chat-management/openApi.yaml index 7cd56749d3eb1bd0fa93009a91481f72059322ca..88a7d282dc7f09dbda961997535ee4c64dc3fa63 100644 --- a/backend/chat-management/openApi.yaml +++ b/backend/chat-management/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 diff --git a/backend/chat-management/src/main/java/de/eshg/chat/ChatManagementApplication.java b/backend/chat-management/src/main/java/de/eshg/chat/ChatManagementApplication.java index e8aba47fbb68dabd3d2ccdbfbe310df0cc769464..889de687d3f97f718eb5d2653eaaf50a943b08eb 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/ChatManagementApplication.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/ChatManagementApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/controller/ChatFeatureTogglesController.java b/backend/chat-management/src/main/java/de/eshg/chat/controller/ChatFeatureTogglesController.java index ec576b0e5b2338b53edff86597adc7b24f888cf7..746dddfffe9957fc7e4472c82e3b87bd5607b463 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/controller/ChatFeatureTogglesController.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/controller/ChatFeatureTogglesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/controller/UserSettingsController.java b/backend/chat-management/src/main/java/de/eshg/chat/controller/UserSettingsController.java index 47c4c876d889da2dbd72b600037dcf0e6d588492..2bac44b3528517bf43eb94a8415ef9464cb9d36e 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/controller/UserSettingsController.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/controller/UserSettingsController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/domain/UserSettingsRepository.java b/backend/chat-management/src/main/java/de/eshg/chat/domain/UserSettingsRepository.java index 1adb464f67fc849128e3fd17b3df79965a8e1db0..c4db308284cabf08d729de1ee7abba3ea989c0af 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/domain/UserSettingsRepository.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/domain/UserSettingsRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/domain/model/UserSettings.java b/backend/chat-management/src/main/java/de/eshg/chat/domain/model/UserSettings.java index a08882ff4a492a16961537203e458c639b0ea851..7071331db2c20d3119775541fd9d067fb305b1bf 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/domain/model/UserSettings.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/domain/model/UserSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeature.java b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeature.java index 3c3742b46da8b83bd2432d7c8784c8e64b711cbd..06388ec1191bd7ab9bb6d07d9e63c5329bf3544a 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeature.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureToggle.java b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureToggle.java index de6ed2fa165c737b679e7faef74cc806bf233f4c..9fad9b2947c81d74cb7b59e4a79d5c59372997b1 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureToggle.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureTogglesApi.java b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureTogglesApi.java index d2539a367a1dbf08a115b696e8e5ff0bc4ac72aa..45896196cce3a1a96ab3b05a123d9a19bd46a710 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureTogglesApi.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/ChatFeatureTogglesApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/GetFeatureTogglesResponse.java b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/GetFeatureTogglesResponse.java index e319d6eb08034f28a565f4dd728130bb904fdbfa..dbef4b3459c51d4a9ebe747a974bd4db13cf631c 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/GetFeatureTogglesResponse.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/featuretoggle/GetFeatureTogglesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsRequest.java b/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsRequest.java index 769b66124da2beb66992261761e5e2581e41bce3..a9edd1135ad6603fe07398b89fe06c973f0dc45e 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsRequest.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsResponse.java b/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsResponse.java index 8c351d44791a222cfbee48f9560d2a263bc95f0e..e779a3dd8791ed79b1c7d0e56f6d9152db85a982 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsResponse.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/model/dto/UserSettingsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/service/RestUtils.java b/backend/chat-management/src/main/java/de/eshg/chat/service/RestUtils.java index 31d6fc0ed413d66d8eb27a88ef23f2d532a696a2..458aa1bbeb05ec07d77f62bdb6919cbdc65085f2 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/service/RestUtils.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/service/RestUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/service/UserSettingsService.java b/backend/chat-management/src/main/java/de/eshg/chat/service/UserSettingsService.java index 3c2730da51357276c933ee9a0de2f045b7b6cb99..683a2d902e2fbbe54f78f4328b0d817e82fa7006 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/service/UserSettingsService.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/service/UserSettingsService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/java/de/eshg/chat/testhelper/ChatTestHelperController.java b/backend/chat-management/src/main/java/de/eshg/chat/testhelper/ChatTestHelperController.java index 8a04b0a0f2a1422502e04c14c456b8196a33c5f4..6490fbf04797f14020b96b0777b18c1e3ec38ffc 100644 --- a/backend/chat-management/src/main/java/de/eshg/chat/testhelper/ChatTestHelperController.java +++ b/backend/chat-management/src/main/java/de/eshg/chat/testhelper/ChatTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/chat-management/src/main/resources/migrations/0001_initial.xml b/backend/chat-management/src/main/resources/migrations/0001_initial.xml index bf6fe745bf3b52d5d89576646f80742daff4a97a..e4108e4e0c4af64f36aa7b508c5fd0b0ef20550f 100644 --- a/backend/chat-management/src/main/resources/migrations/0001_initial.xml +++ b/backend/chat-management/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/chat-management/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml b/backend/chat-management/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml index e8aea69ff64f4ff75cc6341e75b344fda49d0556..41a85378db34dd7b959cf3b96f690b4ed0450d27 100644 --- a/backend/chat-management/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml +++ b/backend/chat-management/src/main/resources/migrations/0002_drop_default_revision_entity_created_by_not_null_contraint.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/chat-management/src/main/resources/migrations/0003_user_settings_add_account_deactivated.xml b/backend/chat-management/src/main/resources/migrations/0003_user_settings_add_account_deactivated.xml index 21d5bd19372ad436ec20159c974541b0ffbd2f4e..0b82bd71bd21dc155325a72ea1911b8f0c8de921 100644 --- a/backend/chat-management/src/main/resources/migrations/0003_user_settings_add_account_deactivated.xml +++ b/backend/chat-management/src/main/resources/migrations/0003_user_settings_add_account_deactivated.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/chat-management/src/main/resources/migrations/changelog.xml b/backend/chat-management/src/main/resources/migrations/changelog.xml index 2ef853991a0054809a0b46d0a337beb419b7072e..7ddafc91e9dfd062e89de3fa308e938e16d605ab 100644 --- a/backend/chat-management/src/main/resources/migrations/changelog.xml +++ b/backend/chat-management/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/compliance-test/src/main/java/de/eshg/EshgBasePackageMarker.java b/backend/compliance-test/src/main/java/de/eshg/EshgBasePackageMarker.java index a9b952139706424b66887bc1d995a5d5063506d6..44d4d31c93d11477d9a4647009b8fefd775db6dc 100644 --- a/backend/compliance-test/src/main/java/de/eshg/EshgBasePackageMarker.java +++ b/backend/compliance-test/src/main/java/de/eshg/EshgBasePackageMarker.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/build.gradle b/backend/dental/build.gradle index 8a1d5436b121dd79f9010d86b6c5c8b1c444c306..79c014cc1cac405df3f77e79459eb3d862b0178d 100644 --- a/backend/dental/build.gradle +++ b/backend/dental/build.gradle @@ -10,8 +10,10 @@ dependencies { implementation project(':business-module-persistence-commons') implementation project(':lib-xlsx-import') + implementation 'de.cronn:reflection-util:latest.release' implementation 'org.springdoc:springdoc-openapi-starter-common:latest.release' implementation 'com.google.guava:guava:latest.release' + implementation 'org.apache.commons:commons-text:latest.release' annotationProcessor 'org.hibernate.orm:hibernate-jpamodelgen' runtimeOnly 'org.postgresql:postgresql' diff --git a/backend/dental/gradle.lockfile b/backend/dental/gradle.lockfile index c191cde067fbaca144fb7cdb06ebf17ea523a054..0c3101429daae0f3745bee21bedf12b372b254d9 100644 --- a/backend/dental/gradle.lockfile +++ b/backend/dental/gradle.lockfile @@ -54,7 +54,7 @@ de.cronn:liquibase-changelog-generator-postgresql:1.0=testCompileClasspath,testR de.cronn:liquibase-changelog-generator:1.0=testCompileClasspath,testRuntimeClasspath de.cronn:liquibase-postgres-enum-extension:1.1=productionRuntimeClasspath,runtimeClasspath,testRuntimeClasspath de.cronn:postgres-snapshot-util:1.3.3=testRuntimeClasspath -de.cronn:reflection-util:2.17.0=productionRuntimeClasspath,runtimeClasspath,testRuntimeClasspath +de.cronn:reflection-util:2.17.0=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath de.cronn:test-utils:1.1.1=testCompileClasspath,testRuntimeClasspath de.cronn:validation-file-assertions:0.8.0=testCompileClasspath,testRuntimeClasspath info.picocli:picocli:4.7.6=productionRuntimeClasspath,runtimeClasspath,testRuntimeClasspath @@ -97,7 +97,7 @@ org.apache.commons:commons-collections4:4.4=compileClasspath,productionRuntimeCl org.apache.commons:commons-compress:1.26.2=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.commons:commons-lang3:3.17.0=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.commons:commons-math3:3.6.1=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.apache.commons:commons-text:1.12.0=productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.commons:commons-text:1.12.0=compileClasspath,productionRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents.client5:httpclient5:5.4.1=productionRuntimeClasspath,runtimeClasspath,testRuntimeClasspath org.apache.httpcomponents.core5:httpcore5-h2:5.3.1=productionRuntimeClasspath,runtimeClasspath,testRuntimeClasspath org.apache.httpcomponents.core5:httpcore5:5.3.1=productionRuntimeClasspath,runtimeClasspath,testRuntimeClasspath diff --git a/backend/dental/openApi.yaml b/backend/dental/openApi.yaml index 215b77179bf299a8e76fbb5c5235a31545251a1a..ddb29f290b5d30ee7f7829589642e976a77333de 100644 --- a/backend/dental/openApi.yaml +++ b/backend/dental/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 @@ -324,7 +324,44 @@ paths: description: OK tags: - Child + /children/by-person-id: + get: + operationId: getChildrenByPerson + parameters: + - in: query + name: personId + required: true + schema: + type: string + format: uuid + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/GetChildrenWithDetailsResponse" + description: OK + tags: + - Child /children/examination/{examinationId}: + get: + operationId: getExamination + parameters: + - in: path + name: examinationId + required: true + schema: + type: string + format: uuid + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/Examination" + description: OK + tags: + - Child put: operationId: updateExamination parameters: @@ -430,6 +467,14 @@ paths: description: OK tags: - Child + /children/school-year: + post: + operationId: closeSchoolYear + responses: + "200": + description: OK + tags: + - Child /children/{childId}: get: operationId: getChild @@ -1109,6 +1154,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -1631,6 +1695,55 @@ paths: description: OK tags: - ProphylaxisSession + put: + operationId: updateProphylaxisSession + parameters: + - in: path + name: prophylaxisSessionId + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateProphylaxisSessionRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/ProphylaxisSessionDetails" + description: OK + tags: + - ProphylaxisSession + /prophylaxis-sessions/{prophylaxisSessionId}/participants: + put: + operationId: updateProphylaxisSessionParticipants + parameters: + - in: path + name: prophylaxisSessionId + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateProphylaxisSessionParticipantsRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/ProphylaxisSessionDetails" + description: OK + tags: + - ProphylaxisSession /task-metrics: get: operationId: getTaskMetrics @@ -1997,9 +2110,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -2018,10 +2130,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -2245,6 +2354,28 @@ components: required: - businessProcedure - inclusionStatus + CheckFileStateUsageRequest: + type: object + properties: + fileStatesIds: + type: array + items: + type: string + format: uuid + maxItems: 2147483647 + minItems: 1 + required: + - fileStatesIds + CheckFileStateUsageResponse: + type: object + properties: + inUse: + type: array + items: + type: string + format: uuid + required: + - inUse Child: type: object properties: @@ -2412,75 +2543,6 @@ components: required: - children - count - ConcreteFileDto: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: - type: object - discriminator: - propertyName: '@type' - properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid - required: - - '@type' ContactDetails: type: object properties: @@ -3325,32 +3387,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -3435,6 +3475,15 @@ components: required: - elements - totalNumberOfElements + GetChildrenWithDetailsResponse: + type: object + properties: + children: + type: array + items: + $ref: "#/components/schemas/ChildDetails" + required: + - children GetDetailedProcedureResponse: type: object properties: @@ -3903,7 +3952,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -4068,12 +4117,17 @@ components: Institution: type: object properties: + hexColor: + type: string + description: Background color of the box surrounding the institution + pattern: "^#[0-9a-zA-Z]{6}$" id: type: string format: uuid name: type: string required: + - hexColor - id - name InterceptionType: @@ -4101,18 +4155,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -4256,7 +4303,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -4543,7 +4590,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid @@ -4602,6 +4652,9 @@ components: $ref: "#/components/schemas/ChildResult" type: $ref: "#/components/schemas/ProphylaxisType" + version: + type: integer + format: int64 required: - dateAndTime - groupName @@ -4609,6 +4662,7 @@ components: - institution - participants - type + - version ProphylaxisSessionPopulationResult: type: object properties: @@ -4910,6 +4964,38 @@ components: format: int64 required: - version + UpdateProphylaxisSessionParticipantsRequest: + type: object + properties: + participants: + type: array + items: + type: string + format: uuid + version: + type: integer + format: int64 + required: + - participants + - version + UpdateProphylaxisSessionRequest: + type: object + properties: + dateAndTime: + type: string + format: date-time + groupName: + type: string + type: + $ref: "#/components/schemas/ProphylaxisType" + version: + type: integer + format: int64 + required: + - dateAndTime + - groupName + - type + - version User: type: object properties: diff --git a/backend/dental/src/main/java/de/eshg/dental/ChildController.java b/backend/dental/src/main/java/de/eshg/dental/ChildController.java index 7f2913a6f27587c36e443896239a07826515868e..52ee658f1c8b3ff47db428ebbda30eba2259b142 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ChildController.java +++ b/backend/dental/src/main/java/de/eshg/dental/ChildController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -15,11 +15,13 @@ import de.eshg.dental.api.CreateChildRequest; import de.eshg.dental.api.CreateChildResponse; import de.eshg.dental.api.ExaminationDto; import de.eshg.dental.api.GetChildrenResponse; +import de.eshg.dental.api.GetChildrenWithDetailsResponse; import de.eshg.dental.api.GetInstitutionGroupsResponse; import de.eshg.dental.api.SearchChildrenResponse; import de.eshg.dental.api.UpdateChildRequest; import de.eshg.dental.api.UpdateExaminationRequest; import de.eshg.dental.business.model.ChildWithAugmentedData; +import de.eshg.dental.business.model.PagedChildren; import de.eshg.dental.domain.model.Child; import de.eshg.dental.domain.model.Examination; import de.eshg.dental.mapper.ChildMapper; @@ -42,7 +44,6 @@ import java.time.Year; import java.util.List; import java.util.UUID; import org.springdoc.core.annotations.ParameterObject; -import org.springframework.data.domain.Page; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; @@ -90,11 +91,23 @@ public class ChildController { @InlineParameterObject @ParameterObject @Valid ChildFilterParameters filterParameters, @InlineParameterObject @ParameterObject @Valid ChildPaginationAndSortParameters paginationAndSortParameters) { - Page<ChildWithAugmentedData> pagedChildren = + PagedChildren pagedChildren = childService.getChildren(filterParameters, paginationAndSortParameters); return new GetChildrenResponse( pagedChildren.stream().map(ChildMapper::mapChildToDto).toList(), - pagedChildren.getTotalElements()); + pagedChildren.totalNumberOfChildren()); + } + + @GetMapping("/by-person-id") + @Transactional(readOnly = true) + public GetChildrenWithDetailsResponse getChildrenByPerson( + @RequestParam(name = "personId") UUID personId) { + List<ChildDetailsDto> children = + childService + .findByPersonId(personId) + .map(child -> ChildMapper.mapToChildDetailsDto(child, null)) + .toList(); + return new GetChildrenWithDetailsResponse(children); } @GetMapping("/{childId}") @@ -118,6 +131,13 @@ public class ChildController { return ChildMapper.mapToChildDetailsDto(augmentedChildData, examinations); } + @GetMapping("/examination/{examinationId}") + @Transactional(readOnly = true) + public ExaminationDto getExamination(@PathVariable("examinationId") UUID examinationId) { + Examination examination = examinationService.findExamination(examinationId); + return ExaminationMapper.mapToDto(examination); + } + @PutMapping("/examination/{examinationId}") @Transactional public ExaminationDto updateExamination( @@ -163,4 +183,10 @@ public class ChildController { validator.validateInstitution(institutionId); return new SearchChildrenResponse(childService.searchChildren(institutionId, searchString)); } + + @PostMapping("/school-year") + @Transactional + public void closeSchoolYear() { + childService.closeSchoolYear(); + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/ChildDeletionService.java b/backend/dental/src/main/java/de/eshg/dental/ChildDeletionService.java index fe30b3d039b6c905bbc2664bccec76ff8b1ea3f6..300b70b436bcaa2c5e8e5a0cbddd62a770f7c356 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ChildDeletionService.java +++ b/backend/dental/src/main/java/de/eshg/dental/ChildDeletionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/ChildService.java b/backend/dental/src/main/java/de/eshg/dental/ChildService.java index 2a10e6e35f439ebfc500b924173a08e090ffa481..4ae404cab0ef574fadb02897ae8a213f22470854 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ChildService.java +++ b/backend/dental/src/main/java/de/eshg/dental/ChildService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -12,7 +12,6 @@ import static de.eshg.lib.xlsximport.ImportValidator.validateSheet; import com.google.common.collect.Iterables; import de.cronn.commons.lang.StreamUtil; -import de.eshg.base.SortDirection; import de.eshg.base.centralfile.PersonApi; import de.eshg.base.centralfile.api.DataOriginDto; import de.eshg.base.centralfile.api.GetFileStateIdsResponse; @@ -31,6 +30,7 @@ import de.eshg.dental.api.ChildSortKey; import de.eshg.dental.api.CreateChildRequest; import de.eshg.dental.api.UpdateChildRequest; import de.eshg.dental.business.model.ChildWithAugmentedData; +import de.eshg.dental.business.model.PagedChildren; import de.eshg.dental.client.PersonClient; import de.eshg.dental.config.DentalProperties; import de.eshg.dental.domain.model.Child; @@ -49,6 +49,7 @@ import de.eshg.lib.auditlog.AuditLogger; import de.eshg.lib.contact.ContactClient; import de.eshg.lib.procedure.domain.model.ProcedureStatus; import de.eshg.lib.procedure.domain.model.ProcedureType; +import de.eshg.lib.procedure.procedures.ProcedureQuery; import de.eshg.lib.procedure.procedures.ProcedureSearchService; import de.eshg.lib.xlsximport.FeedbackColumnAccessor; import de.eshg.lib.xlsximport.ImportValidator; @@ -64,22 +65,24 @@ import java.util.Collection; import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.function.Function; +import java.util.stream.Stream; +import org.apache.commons.text.similarity.FuzzyScore; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; -import org.springframework.data.util.Streamable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.web.multipart.MultipartFile; @@ -88,6 +91,7 @@ import org.springframework.web.multipart.MultipartFile; public class ChildService { private static final Logger log = LoggerFactory.getLogger(ChildService.class); + private static final int FUZZY_SEARCH_SCORE_THRESHOLD = 5; private final Clock clock; private final AuditLogger auditLogger; @@ -98,6 +102,7 @@ public class ChildService { private final PersonClient personClient; private final ProgressEntryUtil progressEntryUtil; private final ProcedureSearchService<Child> procedureSearchService; + private final ProcedureQuery procedureQuery; public ChildService( Clock clock, @@ -108,7 +113,8 @@ public class ChildService { DentalProperties dentalProperties, PersonClient personClient, ProgressEntryUtil progressEntryUtil, - ProcedureSearchService<Child> procedureSearchService) { + ProcedureSearchService<Child> procedureSearchService, + ProcedureQuery procedureQuery) { this.clock = clock; this.auditLogger = auditLogger; this.childRepository = childRepository; @@ -118,6 +124,7 @@ public class ChildService { this.personClient = personClient; this.progressEntryUtil = progressEntryUtil; this.procedureSearchService = procedureSearchService; + this.procedureQuery = procedureQuery; } public Child createChild(CreateChildRequest request) { @@ -171,10 +178,14 @@ public class ChildService { () -> "Unexpected year of existing child: %s" .formatted(existingOpenChild.getYear())); - existingOpenChild.updateProcedureStatus(ProcedureStatus.CLOSED, clock, auditLogger); + closeChild(existingOpenChild); }); } + private void closeChild(Child child) { + child.updateProcedureStatus(ProcedureStatus.CLOSED, clock, auditLogger); + } + private Optional<Child> findOpenChildWithSamePersonKeyAttributes(CreateChildRequest request) { PersonKeyAttributes personKeyAttributes = new PersonKeyAttributes(request.firstName(), request.lastName(), request.dateOfBirth()); @@ -265,43 +276,49 @@ public class ChildService { return new ChildWithAugmentedData(child, person, contact); } - public Page<ChildWithAugmentedData> getChildren( + public PagedChildren getChildren( ChildFilterParameters filterParameters, ChildPaginationAndSortParameters paginationAndSortParameters) { ChildSpecification childSpecification = new ChildSpecification(filterParameters, paginationAndSortParameters); ChildPageSpec pageSpec = ChildSpecification.toPageSpec(paginationAndSortParameters); - Page<Child> page; boolean sortKeyIsPersonAttribute = Optional.ofNullable(paginationAndSortParameters.sortKey()) .map(ChildSortKey::isPersonAttribute) .orElse(false); if (sortKeyIsPersonAttribute) { - page = getChildrenWithPersonAttributeSortKey(paginationAndSortParameters, childSpecification); + return getChildrenWithPersonAttributeSortKey(pageSpec, childSpecification); } else { - page = - childRepository.findAll( - childSpecification, PageRequest.of(pageSpec.pageNumber(), pageSpec.pageSize())); + Pageable pageable = PageRequest.of(pageSpec.pageNumber(), pageSpec.pageSize()); + Page<Child> page = childRepository.findAll(childSpecification, pageable); + List<ChildWithAugmentedData> augmentedChildren = + augmentWithChildAndContactData(page.getContent()); + return new PagedChildren(augmentedChildren, page.getTotalElements()); } + } + private List<ChildWithAugmentedData> augmentWithChildAndContactData(List<Child> children) { Map<UUID, GetPersonFileStateResponse> persons = - personClient.fetchPersonDataInBulk(page.toList()).stream() + personClient.fetchPersonDataInBulk(children).stream() .collect(StreamUtil.toLinkedHashMap(GetPersonFileStateResponse::id)); - Map<UUID, ContactDto> contacts = fetchContactsInBulk(page); - - return page.map( - child -> { - GetPersonFileStateResponse person = persons.get(child.getChildIdFromCentralFile()); - Assert.notNull( - person, () -> "Failed to resolve child " + child.getChildIdFromCentralFile()); - ContactDto contact = contacts.get(child.getInstitutionId()); - Assert.notNull(contact, () -> "Failed to resolve contact " + child.getInstitutionId()); - return new ChildWithAugmentedData(child, person, contact); - }); + Map<UUID, ContactDto> contacts = fetchContactsInBulk(children); + + return children.stream() + .map( + child -> { + GetPersonFileStateResponse person = persons.get(child.getChildIdFromCentralFile()); + Assert.notNull( + person, () -> "Failed to resolve child " + child.getChildIdFromCentralFile()); + ContactDto contact = contacts.get(child.getInstitutionId()); + Assert.notNull( + contact, () -> "Failed to resolve contact " + child.getInstitutionId()); + return new ChildWithAugmentedData(child, person, contact); + }) + .toList(); } - private Map<UUID, ContactDto> fetchContactsInBulk(Streamable<Child> children) { - List<UUID> institutionIds = children.map(Child::getInstitutionId).stream().distinct().toList(); + private Map<UUID, ContactDto> fetchContactsInBulk(List<Child> children) { + List<UUID> institutionIds = children.stream().map(Child::getInstitutionId).distinct().toList(); return contactClient.getBulkContacts(institutionIds, Function.identity()); } @@ -337,22 +354,23 @@ public class ChildService { } } - private Page<Child> getChildrenWithPersonAttributeSortKey( - ChildPaginationAndSortParameters paginationAndSortParameters, - ChildSpecification childSpecification) { - List<Child> allChildren = childRepository.findAll(childSpecification); + private PagedChildren getChildrenWithPersonAttributeSortKey( + ChildPageSpec pageSpec, ChildSpecification childSpecification) { + List<UUID> allChildIds = findAllChildIds(childSpecification); + List<UUID> pagedAndSortedFileStateIds = personClient .fetchPersonDataInBulk( - allChildren, + allChildIds, new GetPersonFileStatesSortParameters( - paginationAndSortParameters.sortKey().asPersonsSortKey(), - paginationAndSortParameters.sortDirectionOrFallback(SortDirection.ASC), - paginationAndSortParameters.pageNumberOrFallback(0), - paginationAndSortParameters.pageSizeOrFallback(10))) + pageSpec.sortKey().asPersonsSortKey(), + pageSpec.direction(), + pageSpec.pageNumber(), + pageSpec.pageSize())) .stream() .map(GetPersonFileStateResponse::id) .toList(); + List<Child> result = childRepository .findByRelatedPersonsCentralFileStateIds( @@ -368,7 +386,13 @@ public class ChildService { })) .toList(); - return new PageImpl<>(result, Pageable.ofSize(result.size()), allChildren.size()); + List<ChildWithAugmentedData> augmentedChildren = augmentWithChildAndContactData(result); + return new PagedChildren(augmentedChildren, allChildIds.size()); + } + + private List<UUID> findAllChildIds(Specification<Child> childSpecification) { + return procedureQuery.findAllRelatedPersonFileStateIds( + childSpecification, Child.class, Person.PERSON_TYPE_USED_FOR_CHILDREN); } public List<String> getInstitutionGroups(UUID institutionId) { @@ -422,25 +446,72 @@ public class ChildService { .collect(StreamUtil.toLinkedHashMap(Child::getChildIdFromCentralFile)); return personClient.fetchPersonDataInBulk(childrenAtInstitution).stream() - .filter( - fs -> String.join(" ", fs.firstName(), fs.lastName()).equalsIgnoreCase(searchString)) - .map( - fs -> { - Child child = childrenByFileStateIds.get(fs.id()); - return new ChildResult( - child.getExternalId(), - fs.firstName(), - fs.lastName(), - fs.dateOfBirth(), - child.getGroupName()); - }) + .map(fs -> ChildService.computeFuzzyScore(fs, searchString, childrenByFileStateIds)) + .filter(c -> c.score() > FUZZY_SEARCH_SCORE_THRESHOLD) + .sorted( + Comparator.comparing(ChildWithScore::score) + .reversed() + .thenComparing(c -> getFullPersonName(c.fileState())) + .thenComparing(c -> c.child().getId())) + .map(ChildWithScore::mapToChildResult) .toList(); } + public void closeSchoolYear() { + List<Child> childrenToClose = + childRepository.findByProcedureStatusOrderById(ProcedureStatus.OPEN); + log.info( + "Closing {} {}", + childrenToClose.size(), + childrenToClose.size() == 1 ? "child" : "children"); + for (Child child : childrenToClose) { + closeChild(child); + } + } + + record ChildWithScore(GetPersonFileStateResponse fileState, Child child, int score) { + + private ChildResult mapToChildResult() { + return new ChildResult( + child().getExternalId(), + fileState().firstName(), + fileState().lastName(), + fileState().dateOfBirth(), + child().getGroupName()); + } + } + + private static ChildWithScore computeFuzzyScore( + GetPersonFileStateResponse fs, String searchString, Map<UUID, Child> childrenByFileStateIds) { + String personName = getFullPersonName(fs); + int fuzzyScore = computeFuzzyScore(searchString, personName); + return new ChildWithScore(fs, childrenByFileStateIds.get(fs.id()), fuzzyScore); + } + + private static String getFullPersonName(GetPersonFileStateResponse fs) { + return String.join(" ", fs.firstName(), fs.lastName()); + } + + static int computeFuzzyScore(String searchString, String personName) { + return new FuzzyScore(Locale.GERMAN).fuzzyScore(personName, searchString); + } + public List<UUID> collectExistingChildIds(List<UUID> childIds) { if (childIds.isEmpty()) { return List.of(); } return childRepository.collectExistingProceduresByExternalIds(childIds); } + + public Stream<ChildWithAugmentedData> findByPersonId(UUID personId) { + List<UUID> personFileStateIds = + personApi.getPersonFileStateIdsAssociatedWithReferencePerson(personId).fileStateIds(); + + return childRepository + .findByRelatedPersonsCentralFileStateIds( + personFileStateIds, Person.PERSON_TYPE_USED_FOR_CHILDREN) + .stream() + .filter(child -> child.getChild().getProcedure().getProcedureStatus().isOpen()) + .map(this::augmentWithDetails); + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/ChildSpecification.java b/backend/dental/src/main/java/de/eshg/dental/ChildSpecification.java index 43caf2c88fa20d37d237bcd19dbbc097801b9bd0..5714d7e1afcfd54a46475bd34180b277f3d65ed9 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ChildSpecification.java +++ b/backend/dental/src/main/java/de/eshg/dental/ChildSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/DentalApplication.java b/backend/dental/src/main/java/de/eshg/dental/DentalApplication.java index c9cad9e51cdcea8073fb733615d500c8e80b2244..34f81ed670fee6fa688e1fe50e0c3d54a18eb465 100644 --- a/backend/dental/src/main/java/de/eshg/dental/DentalApplication.java +++ b/backend/dental/src/main/java/de/eshg/dental/DentalApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/ExaminationService.java b/backend/dental/src/main/java/de/eshg/dental/ExaminationService.java index 36086d2eaa3e4096472204eff582bda9b43b40ad..a51b61f0b23e0a1febca9a2931d02a02e9b548ce 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ExaminationService.java +++ b/backend/dental/src/main/java/de/eshg/dental/ExaminationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -27,6 +27,12 @@ public class ExaminationService { this.progressEntryUtil = progressEntryUtil; } + Examination findExamination(UUID examinationId) { + return examinationRepository + .findByExternalId(examinationId) + .orElseThrow(ExceptionUtil.notFoundException(Examination.class, examinationId)); + } + Examination findExaminationForUpdate(UUID examinationId) { return examinationRepository .findOneByExternalIdForUpdate(examinationId) diff --git a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionController.java b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionController.java index 6323f4c901ec5a9b51aba20365f3fb805d2ddeb3..f85b2dc377214bde0e5ebd72d00252965a7a4c17 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionController.java +++ b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,6 +11,8 @@ import de.eshg.dental.api.CreateProphylaxisSessionResponse; import de.eshg.dental.api.GetProphylaxisSessionResponse; import de.eshg.dental.api.ProphylaxisSessionDetailsDto; import de.eshg.dental.api.ProphylaxisSessionPaginationAndSortParameters; +import de.eshg.dental.api.UpdateProphylaxisSessionParticipantsRequest; +import de.eshg.dental.api.UpdateProphylaxisSessionRequest; import de.eshg.dental.business.model.ProphylaxisSessionWithAugmentedInstitution; import de.eshg.dental.domain.model.ProphylaxisSession; import de.eshg.dental.mapper.ProphylaxisSessionMapper; @@ -24,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -78,4 +81,23 @@ public class ProphylaxisSessionController { return ProphylaxisSessionMapper.mapProphylaxisSessionToDetailsDto( prophylaxisSessionService.getProphylaxisSessionWithDetails(prophylaxisSessionId)); } + + @PutMapping("/{prophylaxisSessionId}") + @Transactional + public ProphylaxisSessionDetailsDto updateProphylaxisSession( + @PathVariable("prophylaxisSessionId") UUID prophylaxisSessionId, + @Valid @RequestBody UpdateProphylaxisSessionRequest request) { + return ProphylaxisSessionMapper.mapProphylaxisSessionToDetailsDto( + prophylaxisSessionService.updateProphylaxisSession(prophylaxisSessionId, request)); + } + + @PutMapping("/{prophylaxisSessionId}/participants") + @Transactional + public ProphylaxisSessionDetailsDto updateProphylaxisSessionParticipants( + @PathVariable("prophylaxisSessionId") UUID prophylaxisSessionId, + @Valid @RequestBody UpdateProphylaxisSessionParticipantsRequest request) { + return ProphylaxisSessionMapper.mapProphylaxisSessionToDetailsDto( + prophylaxisSessionService.updateProphylaxisSessionParticipants( + prophylaxisSessionId, request)); + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionFilterParameters.java b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionFilterParameters.java index d160f8b93ce59706519ca14cee647e4b9e3b16fb..e30075fcc2b3f924809c9f89f25de13945884eea 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionFilterParameters.java +++ b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionService.java b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionService.java index 4d75197afe0229094df9bfb06c9d6500744f2a9e..5efd4cc90509ab0b13dbf1b6f143e450eff34373 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionService.java +++ b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionService.java @@ -1,15 +1,18 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.dental; +import com.google.common.collect.Sets; import de.cronn.commons.lang.StreamUtil; import de.eshg.base.centralfile.api.person.GetPersonFileStateResponse; import de.eshg.base.contact.api.ContactDto; import de.eshg.dental.api.CreateProphylaxisSessionRequest; import de.eshg.dental.api.ProphylaxisSessionPaginationAndSortParameters; +import de.eshg.dental.api.UpdateProphylaxisSessionParticipantsRequest; +import de.eshg.dental.api.UpdateProphylaxisSessionRequest; import de.eshg.dental.business.model.ProphylaxisSessionWithAugmentedData; import de.eshg.dental.business.model.ProphylaxisSessionWithAugmentedInstitution; import de.eshg.dental.client.PersonClient; @@ -22,10 +25,17 @@ import de.eshg.dental.mapper.ProphylaxisSessionMapper; import de.eshg.lib.contact.ContactClient; import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.error.NotFoundException; +import de.eshg.validation.ValidationUtil; +import java.time.Clock; +import java.time.Instant; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.UUID; import java.util.function.Function; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; import org.springframework.data.util.Streamable; import org.springframework.stereotype.Component; @@ -34,20 +44,28 @@ import org.springframework.util.Assert; @Component public class ProphylaxisSessionService { + private static final Logger log = LoggerFactory.getLogger(ProphylaxisSessionService.class); + private final ProphylaxisSessionRepository prophylaxisSessionRepository; private final ContactClient contactClient; private final ChildRepository childRepository; private final PersonClient personClient; + private final Clock clock; + private final Validator validator; public ProphylaxisSessionService( ProphylaxisSessionRepository prophylaxisSessionRepository, ContactClient contactClient, ChildRepository childRepository, - PersonClient personClient) { + PersonClient personClient, + Clock clock, + Validator validator) { this.prophylaxisSessionRepository = prophylaxisSessionRepository; this.contactClient = contactClient; this.childRepository = childRepository; this.personClient = personClient; + this.clock = clock; + this.validator = validator; } public ProphylaxisSession createProphylaxisSession(CreateProphylaxisSessionRequest request) { @@ -93,26 +111,26 @@ public class ProphylaxisSessionService { return page.map( session -> { ContactDto contact = contacts.get(session.getInstitutionId()); - Assert.notNull(contact, () -> "Failed to resolve contact " + session.getInstitutionId()); + Assert.notNull(contact, () -> "Failed to resolve given contact"); return new ProphylaxisSessionWithAugmentedInstitution(session, contact); }); } - public ProphylaxisSessionWithAugmentedInstitution getProphylaxisSession( - UUID prophylaxisSessionId) { - ProphylaxisSession prophylaxisSession = findProphylaxisSession(prophylaxisSessionId); - - return new ProphylaxisSessionWithAugmentedInstitution( - prophylaxisSession, contactClient.getContact(prophylaxisSession.getInstitutionId())); - } - private ProphylaxisSession findProphylaxisSession(UUID prophylaxisSessionId) { return prophylaxisSessionRepository .findByExternalId(prophylaxisSessionId) - .orElseThrow( - () -> - new NotFoundException( - "Prophylaxis session with UUID %s not found".formatted(prophylaxisSessionId))); + .orElseThrow(() -> new NotFoundException("Prophylaxis session not found.")); + } + + private ProphylaxisSession findProphylaxisSessionForUpdate( + UUID prophylaxisSessionId, long version) { + ProphylaxisSession prophylaxisSession = + prophylaxisSessionRepository + .findByExternalIdForUpdate(prophylaxisSessionId) + .orElseThrow( + () -> new NotFoundException("Prophylaxis session with given UUID not found")); + ValidationUtil.validateVersion(version, prophylaxisSession); + return prophylaxisSession; } public ProphylaxisSessionWithAugmentedData getProphylaxisSessionWithDetails( @@ -129,10 +147,8 @@ public class ProphylaxisSessionService { Function.identity(), child -> fileStatesById.get(child.getChildIdFromCentralFile()))); - return new ProphylaxisSessionWithAugmentedData( - prophylaxisSession, - contactClient.getContact(prophylaxisSession.getInstitutionId()), - participantMap); + ContactDto contact = contactClient.getContact(prophylaxisSession.getInstitutionId()); + return new ProphylaxisSessionWithAugmentedData(prophylaxisSession, contact, participantMap); } private Map<UUID, ContactDto> fetchContactsInBulk(Streamable<ProphylaxisSession> sessions) { @@ -140,4 +156,89 @@ public class ProphylaxisSessionService { sessions.map(ProphylaxisSession::getInstitutionId).stream().distinct().toList(); return contactClient.getBulkContacts(institutionIds, Function.identity()); } + + public ProphylaxisSessionWithAugmentedData updateProphylaxisSessionParticipants( + UUID prophylaxisSessionId, UpdateProphylaxisSessionParticipantsRequest updateRequest) { + ProphylaxisSession persistedProphylaxisSession = + findProphylaxisSessionForUpdate(prophylaxisSessionId, updateRequest.version()); + + Set<UUID> desiredParticipantsIds = + updateRequest.participants().stream().collect(StreamUtil.toLinkedHashSet()); + + Set<UUID> actualParticipantsIds = + persistedProphylaxisSession.getExaminations().stream() + .map(Examination::getChild) + .map(Child::getExternalId) + .collect(StreamUtil.toLinkedHashSet()); + + Set<UUID> idsToAdd = Sets.difference(desiredParticipantsIds, actualParticipantsIds); + Set<UUID> idsToRemove = Sets.difference(actualParticipantsIds, desiredParticipantsIds); + + if (!idsToAdd.isEmpty() || !idsToRemove.isEmpty()) { + for (UUID id : idsToAdd) { + addChildToProphylaxisSession(id, persistedProphylaxisSession); + } + for (UUID id : idsToRemove) { + removeChildFromProphylaxisSession(id, persistedProphylaxisSession); + } + if (persistedProphylaxisSession.getExaminations().isEmpty()) { + throw new BadRequestException("Prophylaxis session may not remain without participants."); + } + persistedProphylaxisSession.setModifiedAt(Instant.now(clock)); + prophylaxisSessionRepository.flush(); + } + + return getProphylaxisSessionWithDetails(persistedProphylaxisSession.getExternalId()); + } + + private void addChildToProphylaxisSession(UUID childId, ProphylaxisSession prophylaxisSession) { + Child child = + childRepository + .findByExternalId(childId) + .orElseThrow(() -> new BadRequestException("Requested child id not found")); + if (!Objects.equals(child.getInstitutionId(), prophylaxisSession.getInstitutionId())) { + throw new BadRequestException( + "Requested child is not in the same institution as the prophylaxis session."); + } + if (!child.getProcedureStatus().isOpen()) { + throw new BadRequestException("Requested child is not open."); + } + Examination examination = new Examination(); + child.addExamination(examination); + prophylaxisSession.addExamination(examination); + log.info("Added participant {}", childId); + } + + private void removeChildFromProphylaxisSession( + UUID childId, ProphylaxisSession prophylaxisSession) { + Examination examinationToRemove = + prophylaxisSession.getExaminations().stream() + .filter(examination -> examination.getChild().getExternalId().equals(childId)) + .collect( + StreamUtil.toSingleElement( + () -> new BadRequestException("Expected to find exactly one examination"))); + if (examinationToRemove.hasEdits()) { + throw new BadRequestException( + "Child cannot be removed because the examination has already been edited."); + } + examinationToRemove.getChild().removeExamination(examinationToRemove); + prophylaxisSession.removeExamination(examinationToRemove); + log.info("Removed participant {}", childId); + } + + public ProphylaxisSessionWithAugmentedData updateProphylaxisSession( + UUID prophylaxisSessionId, UpdateProphylaxisSessionRequest updateRequest) { + ProphylaxisSession persistedProphylaxisSession = + findProphylaxisSessionForUpdate(prophylaxisSessionId, updateRequest.version()); + validator.validateGroupAtInstitutionExists( + persistedProphylaxisSession.getInstitutionId(), updateRequest.groupName()); + + persistedProphylaxisSession.setDateAndTime(updateRequest.dateAndTime()); + persistedProphylaxisSession.setGroupName(updateRequest.groupName()); + persistedProphylaxisSession.setType(ProphylaxisSessionMapper.mapToDomain(updateRequest.type())); + + prophylaxisSessionRepository.flush(); + + return getProphylaxisSessionWithDetails(persistedProphylaxisSession.getExternalId()); + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionSpecification.java b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionSpecification.java index 7ff513761b9dcb878bcbf368bb189c98ba28d86e..64bd00ffab8019129da35e262b3ed5e64595bf00 100644 --- a/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionSpecification.java +++ b/backend/dental/src/main/java/de/eshg/dental/ProphylaxisSessionSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/Validator.java b/backend/dental/src/main/java/de/eshg/dental/Validator.java index 3b83540adc80ee68b8509232835376f3d8474b90..09d58c5b0157a3bd11c335281532147b118b22f1 100644 --- a/backend/dental/src/main/java/de/eshg/dental/Validator.java +++ b/backend/dental/src/main/java/de/eshg/dental/Validator.java @@ -1,12 +1,14 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.dental; import de.eshg.base.contact.api.InstitutionContactCategoryDto; +import de.eshg.dental.domain.repository.ChildRepository; import de.eshg.lib.contact.ContactClient; +import de.eshg.lib.procedure.domain.model.ProcedureStatus; import de.eshg.rest.service.error.BadRequestException; import java.time.Clock; import java.time.Year; @@ -19,10 +21,12 @@ public class Validator { private final Clock clock; private final ContactClient contactClient; + private final ChildRepository childRepository; - public Validator(Clock clock, ContactClient contactClient) { + public Validator(Clock clock, ContactClient contactClient, ChildRepository childRepository) { this.clock = clock; this.contactClient = contactClient; + this.childRepository = childRepository; } public void validateSchoolYear(int schoolYear) { @@ -38,4 +42,11 @@ public class Validator { institutionId, EnumSet.of(InstitutionContactCategoryDto.SCHOOL, InstitutionContactCategoryDto.DAYCARE)); } + + public void validateGroupAtInstitutionExists(UUID institutionId, String groupName) { + if (!childRepository.existsByInstitutionIdAndGroupNameAndProcedureStatus( + institutionId, groupName, ProcedureStatus.OPEN)) { + throw new BadRequestException("Group does not exist: " + groupName); + } + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ChildDetailsDto.java b/backend/dental/src/main/java/de/eshg/dental/api/ChildDetailsDto.java index e3606a8af9dda2526511c01db34bca328160da9e..18aa592a424ce6589a270e0c2faf607b4c29ed44 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ChildDetailsDto.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ChildDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ChildDto.java b/backend/dental/src/main/java/de/eshg/dental/api/ChildDto.java index 6dfd9c4c28f5f6e725c75a756352df4f66bcc862..ca40d6cffdb327c385c73ff8924652a4cf791f76 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ChildDto.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ChildDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ChildFilterParameters.java b/backend/dental/src/main/java/de/eshg/dental/api/ChildFilterParameters.java index 76ab9fda7e0e7eebf091d376bf7903dbe570a608..29821dde394ba1e5af4f3e5a8bda33f8337c9d0b 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ChildFilterParameters.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ChildFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ChildPaginationAndSortParameters.java b/backend/dental/src/main/java/de/eshg/dental/api/ChildPaginationAndSortParameters.java index e6f83b69cf46ae088895a86d7c84c332c85812ef..2f01a96ce616963d7942521384ecfef3c7596285 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ChildPaginationAndSortParameters.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ChildPaginationAndSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ChildResult.java b/backend/dental/src/main/java/de/eshg/dental/api/ChildResult.java index 147a62ada22ac43dab46e5e0d0227b61cdaaf9b7..90468e05472e7a32fd86adc8ff754ae0eeb8479e 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ChildResult.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ChildResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ChildSortKey.java b/backend/dental/src/main/java/de/eshg/dental/api/ChildSortKey.java index 9ff3a71d94dfe438163801c03283e5aa9515f91e..fad382d4b70b42cbb8beb387df2a819919cb9322 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ChildSortKey.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ChildSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ChildrenPopulationResult.java b/backend/dental/src/main/java/de/eshg/dental/api/ChildrenPopulationResult.java index 2ae020005d7603f1fccf9d426dabec49e315c2f3..34feef02e420df53c9bdfc378398a28e31015524 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ChildrenPopulationResult.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ChildrenPopulationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/CreateChildRequest.java b/backend/dental/src/main/java/de/eshg/dental/api/CreateChildRequest.java index 52e9fb0641a00ef602490e0a6adc6d08ca39989b..1546a3570851096a2d17c10c38fa5963813fdce0 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/CreateChildRequest.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/CreateChildRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/CreateChildResponse.java b/backend/dental/src/main/java/de/eshg/dental/api/CreateChildResponse.java index 432a6e85737bd1767b9a091f0ac09b6f54082e56..53279a1a325f6762dd27eef618e7ee526f91f953 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/CreateChildResponse.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/CreateChildResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionRequest.java b/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionRequest.java index bad14de5d83f199bc97564a95064bf0e01db8ad9..b6b50651e3ea3d3b48669cc877ebf4ea2a993522 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionRequest.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionResponse.java b/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionResponse.java index 4da378959f891d79f74ae299049f533ba11dd781..9fd5a57315d4c68c91b7b0d3c2f48f2e97f88f5e 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionResponse.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/CreateProphylaxisSessionResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ExaminationDto.java b/backend/dental/src/main/java/de/eshg/dental/api/ExaminationDto.java index bb5227c2f0d16c60cda16ed2e10599a6eeb66d91..bf14dd2e759c39a436b653d48c6747c466183903 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ExaminationDto.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/GetChildrenResponse.java b/backend/dental/src/main/java/de/eshg/dental/api/GetChildrenResponse.java index f4342e9ef408bc51f20b2ef8cce02d220cf2da53..963a5ff9af09c3b7a74cb72d529fc322c5f15160 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/GetChildrenResponse.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/GetChildrenResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/GetChildrenWithDetailsResponse.java b/backend/dental/src/main/java/de/eshg/dental/api/GetChildrenWithDetailsResponse.java new file mode 100644 index 0000000000000000000000000000000000000000..4723e567ae17176f153a6b4acbf14125d6f2182b --- /dev/null +++ b/backend/dental/src/main/java/de/eshg/dental/api/GetChildrenWithDetailsResponse.java @@ -0,0 +1,12 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.dental.api; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; + +public record GetChildrenWithDetailsResponse(@NotNull @Valid List<ChildDetailsDto> children) {} diff --git a/backend/dental/src/main/java/de/eshg/dental/api/GetInstitutionGroupsResponse.java b/backend/dental/src/main/java/de/eshg/dental/api/GetInstitutionGroupsResponse.java index 563eb9456675c749060848967791d3ce9eac53ce..e05d4317cfedc5fa71991d015907647014904aec 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/GetInstitutionGroupsResponse.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/GetInstitutionGroupsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/GetProphylaxisSessionResponse.java b/backend/dental/src/main/java/de/eshg/dental/api/GetProphylaxisSessionResponse.java index fd45cc1a307a04b70110e0c23d42ed28f6453d65..351560c91aa4ac73c4215bfcd177bd1bf20437b0 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/GetProphylaxisSessionResponse.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/GetProphylaxisSessionResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/InstitutionDto.java b/backend/dental/src/main/java/de/eshg/dental/api/InstitutionDto.java index 55ed01ed2c716bd2dffdc578eb6c3b18222166f0..8991519cfa4732082561500db8e668975a95975c 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/InstitutionDto.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/InstitutionDto.java @@ -1,13 +1,21 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.dental.api; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import java.util.UUID; @Schema(name = "Institution") -public record InstitutionDto(@NotNull UUID id, @NotNull String name) {} +public record InstitutionDto( + @NotNull UUID id, + @NotNull String name, + @Schema(description = "Background color of the box surrounding the institution") + @NotEmpty + @Pattern(regexp = "^#[0-9a-zA-Z]{6}$") + String hexColor) {} diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDetailsDto.java b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDetailsDto.java index a36bafe83712b1818afaf5248263a769534a7971..78223e25cf12f3e26bcbaa5db220afdd8546b1e1 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDetailsDto.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -15,6 +15,7 @@ import java.util.UUID; @Schema(name = "ProphylaxisSessionDetails") public record ProphylaxisSessionDetailsDto( + @NotNull Long version, @NotNull UUID id, @NotNull Instant dateAndTime, @NotNull @Valid InstitutionDto institution, diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDto.java b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDto.java index 72adbfe86cb760f59454677b69f9c7e3de35ec1b..485e933ac9422690600ac70a9c66bd1470214459 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDto.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPaginationAndSortParameters.java b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPaginationAndSortParameters.java index b52ba0782ecf212181af24c6f9747798cfc88963..ae147572fdb3d1e4e1abd104aebd7f957e8a2089 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPaginationAndSortParameters.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPaginationAndSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPopulationResult.java b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPopulationResult.java index 7b3b8b8953818025c65b2ea7d69050148ada144a..346e722717410d44b7f68b791e55a8f647dd95c0 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPopulationResult.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionPopulationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionSortKey.java b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionSortKey.java index bc996f6cffc85398d214ac6f6d4258f315bc18f8..cd1e230ffa107c4e31cd9557f03396097abd201f 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionSortKey.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisSessionSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisTypeDto.java b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisTypeDto.java index c00276712afd35090b472ee5277a860b99e79e7c..f07e31847039edaf5fdf4cf800b7627f9a5bc5bf 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisTypeDto.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/ProphylaxisTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/SearchChildrenResponse.java b/backend/dental/src/main/java/de/eshg/dental/api/SearchChildrenResponse.java index c6919c0fba27d02ef60d30128ce8934228429552..06138f3b0066352fba4abee1a8e26a0edc4a04ff 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/SearchChildrenResponse.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/SearchChildrenResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/UpdateChildRequest.java b/backend/dental/src/main/java/de/eshg/dental/api/UpdateChildRequest.java index 5724bb2fec88284e514090fb8d974dbe15d7e9e7..f9295e7e8476b7b0a265d2e0d7102006aebb414e 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/UpdateChildRequest.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/UpdateChildRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/UpdateExaminationRequest.java b/backend/dental/src/main/java/de/eshg/dental/api/UpdateExaminationRequest.java index f7ca56cf96bb16b868a79068a58a4ea940950bb3..e62d57063d8519d30e37d6bda81d7f44818df59b 100644 --- a/backend/dental/src/main/java/de/eshg/dental/api/UpdateExaminationRequest.java +++ b/backend/dental/src/main/java/de/eshg/dental/api/UpdateExaminationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/api/UpdateProphylaxisSessionParticipantsRequest.java b/backend/dental/src/main/java/de/eshg/dental/api/UpdateProphylaxisSessionParticipantsRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..686039fab78ca9ccf066ef81e60c726adc9f9058 --- /dev/null +++ b/backend/dental/src/main/java/de/eshg/dental/api/UpdateProphylaxisSessionParticipantsRequest.java @@ -0,0 +1,13 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.dental.api; + +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.UUID; + +public record UpdateProphylaxisSessionParticipantsRequest( + @NotNull Long version, @NotNull List<UUID> participants) {} diff --git a/backend/dental/src/main/java/de/eshg/dental/api/UpdateProphylaxisSessionRequest.java b/backend/dental/src/main/java/de/eshg/dental/api/UpdateProphylaxisSessionRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..6e0752d375214ddf5ff3af20d21cee43af8ee17d --- /dev/null +++ b/backend/dental/src/main/java/de/eshg/dental/api/UpdateProphylaxisSessionRequest.java @@ -0,0 +1,16 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.dental.api; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import java.time.Instant; + +public record UpdateProphylaxisSessionRequest( + @NotNull Long version, + @NotNull Instant dateAndTime, + @NotBlank String groupName, + @NotNull ProphylaxisTypeDto type) {} diff --git a/backend/dental/src/main/java/de/eshg/dental/business/model/ChildWithAugmentedData.java b/backend/dental/src/main/java/de/eshg/dental/business/model/ChildWithAugmentedData.java index dd29f97eabb7101b169a9a2d6fad33d1409422c2..f99b58cba87d33cd06070356d8da8bca30f7535c 100644 --- a/backend/dental/src/main/java/de/eshg/dental/business/model/ChildWithAugmentedData.java +++ b/backend/dental/src/main/java/de/eshg/dental/business/model/ChildWithAugmentedData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/business/model/ImportChildData.java b/backend/dental/src/main/java/de/eshg/dental/business/model/ImportChildData.java index 9f65f5da07b92bed0c62c420f9643e90fbd34722..aed61de6e96e15105d885394355ccd9db3f6eba7 100644 --- a/backend/dental/src/main/java/de/eshg/dental/business/model/ImportChildData.java +++ b/backend/dental/src/main/java/de/eshg/dental/business/model/ImportChildData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/business/model/PagedChildren.java b/backend/dental/src/main/java/de/eshg/dental/business/model/PagedChildren.java new file mode 100644 index 0000000000000000000000000000000000000000..c5d92a3abaa3a07a8ef428d6efcdef1d5329b602 --- /dev/null +++ b/backend/dental/src/main/java/de/eshg/dental/business/model/PagedChildren.java @@ -0,0 +1,16 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.dental.business.model; + +import java.util.List; +import java.util.stream.Stream; + +public record PagedChildren( + List<ChildWithAugmentedData> pagedChildren, long totalNumberOfChildren) { + public Stream<ChildWithAugmentedData> stream() { + return pagedChildren.stream(); + } +} diff --git a/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedData.java b/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedData.java index cd337919e8a1c7cfce4f77ed191ca87566f0f177..c58c9fb7a45f419adc30dceaea2806b99db5d4f9 100644 --- a/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedData.java +++ b/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedInstitution.java b/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedInstitution.java index d2b99664f5a0fd084a2b45c92f5c903ef5cd64b1..1bcffb80983e5ae74744c212e767fcad39976671 100644 --- a/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedInstitution.java +++ b/backend/dental/src/main/java/de/eshg/dental/business/model/ProphylaxisSessionWithAugmentedInstitution.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/client/PersonClient.java b/backend/dental/src/main/java/de/eshg/dental/client/PersonClient.java index 56d8870a5d7ed2a78b61794394393d688305d093..1fae6d7fd8dd778f3912336f3616f4104277de9e 100644 --- a/backend/dental/src/main/java/de/eshg/dental/client/PersonClient.java +++ b/backend/dental/src/main/java/de/eshg/dental/client/PersonClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -25,20 +25,19 @@ public class PersonClient { } public List<GetPersonFileStateResponse> fetchPersonDataInBulk( - List<Child> children, GetPersonFileStatesSortParameters sortParameters) { - if (children.isEmpty()) { + List<UUID> fileStateIds, GetPersonFileStatesSortParameters sortParameters) { + if (fileStateIds.isEmpty()) { return List.of(); } - List<UUID> fileStateIds = children.stream().map(Child::getChildIdFromCentralFile).toList(); GetPersonFileStatesResponse response = personApi.getPersonFileStates(new GetPersonFileStatesRequest(fileStateIds, sortParameters)); int expectedResponseSize = sortParameters == null - ? children.size() + ? fileStateIds.size() : Math.min( sortParameters.pageSize(), - children.size() - (sortParameters.pageNumber() * sortParameters.pageSize())); + fileStateIds.size() - (sortParameters.pageNumber() * sortParameters.pageSize())); if (response.personFileStates().size() < expectedResponseSize) { throw new IllegalStateException("Some persons were not found in the central file."); } @@ -47,6 +46,7 @@ public class PersonClient { } public List<GetPersonFileStateResponse> fetchPersonDataInBulk(List<Child> children) { - return fetchPersonDataInBulk(children, null); + List<UUID> fileStateIds = children.stream().map(Child::getChildIdFromCentralFile).toList(); + return fetchPersonDataInBulk(fileStateIds, null); } } diff --git a/backend/dental/src/main/java/de/eshg/dental/config/DentalAuditLogConfiguration.java b/backend/dental/src/main/java/de/eshg/dental/config/DentalAuditLogConfiguration.java index cb1764a8090e91ab8c761a05f4b6e6858113a831..189deda0075a2cf943988a39cf36bea935cb72d1 100644 --- a/backend/dental/src/main/java/de/eshg/dental/config/DentalAuditLogConfiguration.java +++ b/backend/dental/src/main/java/de/eshg/dental/config/DentalAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/config/DentalProcedureConfiguration.java b/backend/dental/src/main/java/de/eshg/dental/config/DentalProcedureConfiguration.java index c402b512af8461cab4cd25be053e5f40b10f27af..a7a1e1e761619cb0e6908af67dbcb47ecd73c785 100644 --- a/backend/dental/src/main/java/de/eshg/dental/config/DentalProcedureConfiguration.java +++ b/backend/dental/src/main/java/de/eshg/dental/config/DentalProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/config/DentalProperties.java b/backend/dental/src/main/java/de/eshg/dental/config/DentalProperties.java index a426ae5e44765e311ec9af35e9c84f173aa42cca..9348cafb753f0d8052b297144f64535e9295c82b 100644 --- a/backend/dental/src/main/java/de/eshg/dental/config/DentalProperties.java +++ b/backend/dental/src/main/java/de/eshg/dental/config/DentalProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/contact/ChildContactsMergedHandler.java b/backend/dental/src/main/java/de/eshg/dental/contact/ChildContactsMergedHandler.java index abdaf938a8386b9ccf6386b56718ffefc433de4b..8392cf4b435f6db45cbe230d1b45e4d311afc173 100644 --- a/backend/dental/src/main/java/de/eshg/dental/contact/ChildContactsMergedHandler.java +++ b/backend/dental/src/main/java/de/eshg/dental/contact/ChildContactsMergedHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/contact/ProphylaxisSessionContactsMergedHandler.java b/backend/dental/src/main/java/de/eshg/dental/contact/ProphylaxisSessionContactsMergedHandler.java index 482cf4e3e1101066e36e6d6320008ba2417c6a1e..b627860320ef8469d8b1d7002a551855c6d4df5f 100644 --- a/backend/dental/src/main/java/de/eshg/dental/contact/ProphylaxisSessionContactsMergedHandler.java +++ b/backend/dental/src/main/java/de/eshg/dental/contact/ProphylaxisSessionContactsMergedHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/model/Child.java b/backend/dental/src/main/java/de/eshg/dental/domain/model/Child.java index 02fd33039af64751087c61bb61711ca58c996699..b79e8b95a57eba7b1a50bd3dbb4a3d691c3651ca 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/model/Child.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/model/Child.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -88,4 +88,9 @@ public class Child extends Procedure<Child, ChildTask, Person, Facility> { this.examinations.add(examination); examination.setChild(this); } + + public void removeExamination(Examination examination) { + this.examinations.remove(examination); + examination.setChild(null); + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/model/ChildTask.java b/backend/dental/src/main/java/de/eshg/dental/domain/model/ChildTask.java index f1be3e21978b9225aaeb4de15e42c1823248bb35..81d785c02fb51381e895bc4a650f09dfb426be21 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/model/ChildTask.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/model/ChildTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/model/Examination.java b/backend/dental/src/main/java/de/eshg/dental/domain/model/Examination.java index b7a2c9ab46e6f1cdf6d9d4f8328128d2eac80d83..43d1ebcf731615356f79e63c682789bd71b83df6 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/model/Examination.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/model/Examination.java @@ -1,10 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.dental.domain.model; +import de.cronn.reflection.util.PropertyUtils; import de.eshg.domain.model.BaseEntityWithExternalId; import de.eshg.lib.common.DataSensitivity; import de.eshg.lib.common.SensitivityLevel; @@ -14,7 +15,11 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.UniqueConstraint; +import java.beans.PropertyDescriptor; import java.time.Instant; +import java.util.List; +import java.util.Objects; +import java.util.stream.Stream; @Entity @DataSensitivity(SensitivityLevel.SENSITIVE) @@ -60,4 +65,23 @@ public class Examination extends BaseEntityWithExternalId { public Instant getDateAndTime() { return getProphylaxisSession().getDateAndTime(); } + + public boolean hasEdits() { + return getPropertiesToValidate() + .map(prop -> PropertyUtils.read(this, prop)) + .anyMatch(Objects::nonNull); + } + + public Stream<PropertyDescriptor> getPropertiesToValidate() { + List<PropertyDescriptor> propertiesToIgnore = + List.of( + PropertyUtils.getPropertyDescriptor(Examination.class, Examination::getId), + PropertyUtils.getPropertyDescriptor(Examination.class, Examination::getChild), + PropertyUtils.getPropertyDescriptor( + Examination.class, Examination::getProphylaxisSession)); + + return PropertyUtils.getPropertyDescriptors(Examination.class).stream() + .filter(prop -> !propertiesToIgnore.contains(prop)) + .filter(PropertyUtils::isFullyAccessible); + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/model/Facility.java b/backend/dental/src/main/java/de/eshg/dental/domain/model/Facility.java index b5c0e5e2d6975b1bf2d2b44d0cc34f1cd842d390..08bb1f5422e6440c7bf18327df0c67a4e1af56a3 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/model/Facility.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/model/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/model/Person.java b/backend/dental/src/main/java/de/eshg/dental/domain/model/Person.java index ecf6b2ca875456770c6eae65bd10c50a22406dca..709d66cac36927e542a998bad4d1239673f57726 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/model/Person.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/model/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisSession.java b/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisSession.java index c62c392e7a116cb839a79358df65a39909abb47c..bca12f4213e54990ee8a1acea877ecf5117bbd86 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisSession.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisSession.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,9 +10,11 @@ import static de.eshg.lib.common.SensitivityLevel.PSEUDONYMIZED; import de.eshg.domain.model.BaseEntityWithExternalId; import de.eshg.lib.common.DataSensitivity; +import de.eshg.lib.common.SensitivityLevel; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; +import jakarta.persistence.EntityListeners; import jakarta.persistence.OneToMany; import jakarta.persistence.OrderBy; import java.time.Instant; @@ -22,8 +24,12 @@ import java.util.UUID; import org.hibernate.annotations.BatchSize; import org.hibernate.annotations.JdbcType; import org.hibernate.dialect.PostgreSQLEnumJdbcType; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; @Entity +@EntityListeners(AuditingEntityListener.class) public class ProphylaxisSession extends BaseEntityWithExternalId { @DataSensitivity(PSEUDONYMIZED) @@ -52,6 +58,16 @@ public class ProphylaxisSession extends BaseEntityWithExternalId { @BatchSize(size = 100) private final List<Examination> examinations = new ArrayList<>(); + @Column(nullable = false) + @CreatedDate + @DataSensitivity(SensitivityLevel.PROTECTED) + private Instant createdAt; + + @Column(nullable = false) + @LastModifiedDate + @DataSensitivity(SensitivityLevel.PROTECTED) + private Instant modifiedAt; + public Instant getDateAndTime() { return dateAndTime; } @@ -93,7 +109,24 @@ public class ProphylaxisSession extends BaseEntityWithExternalId { examination.setProphylaxisSession(this); } + public void removeExamination(Examination examination) { + this.examinations.remove(examination); + examination.setProphylaxisSession(null); + } + public List<Child> getParticipants() { return getExaminations().stream().map(Examination::getChild).toList(); } + + public Instant getCreatedAt() { + return createdAt; + } + + public Instant getModifiedAt() { + return modifiedAt; + } + + public void setModifiedAt(Instant modifiedAt) { + this.modifiedAt = modifiedAt; + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisType.java b/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisType.java index a946be640146ba6dd572480acef0f9260378b293..c1f75d1a4342a5ba2064197fb33554cbf02de3fc 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisType.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/model/ProphylaxisType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildRepository.java b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildRepository.java index 3ba7676fc80277f146b2cdb1ce43e5fbd97f36b7..f4576edfddef41ac39c2d6c2e56348f3d0e99733 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildRepository.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -31,4 +31,9 @@ public interface ChildRepository extends ProcedureRepository<Child> { List<Child> findByInstitutionIdAndProcedureStatusOrderById( UUID institutionId, ProcedureStatus status); + + List<Child> findByProcedureStatusOrderById(ProcedureStatus status); + + boolean existsByInstitutionIdAndGroupNameAndProcedureStatus( + UUID institutionId, String groupName, ProcedureStatus status); } diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildTaskRepository.java b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildTaskRepository.java index 67b86d948124dce086070d67d9f6953c5a45cf0d..c813edbfcf141b2d5a06f3edca681126dda94d00 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildTaskRepository.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ChildTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ExaminationRepository.java b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ExaminationRepository.java index ab2178ebd93507b4056534bdfa5df7715c939a35..5e2a006ff14799b0115a485acafb69c183f32956 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ExaminationRepository.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ExaminationRepository.java @@ -1,11 +1,12 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.dental.domain.repository; import de.eshg.dental.domain.model.Examination; +import de.eshg.lib.procedure.domain.model.ProcedureStatus; import jakarta.persistence.LockModeType; import java.util.List; import java.util.Optional; @@ -23,5 +24,12 @@ public interface ExaminationRepository @Query("select e from Examination e where e.externalId = :examinationId") Optional<Examination> findOneByExternalIdForUpdate(@Param("examinationId") UUID examinationId); - List<Examination> findAllByOrderById(); + @Query( + """ + select e from Examination e + where e.child.procedureStatus = :status + order by e.id""") + List<Examination> findAllByChildStatus(@Param("status") ProcedureStatus status); + + Optional<Examination> findByExternalId(UUID examinationId); } diff --git a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ProphylaxisSessionRepository.java b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ProphylaxisSessionRepository.java index e884ff32b960c119c28fa73972f2d03c8aeedee4..74df6d2bb0f1ef4474d37bd2307777deb1ac73f4 100644 --- a/backend/dental/src/main/java/de/eshg/dental/domain/repository/ProphylaxisSessionRepository.java +++ b/backend/dental/src/main/java/de/eshg/dental/domain/repository/ProphylaxisSessionRepository.java @@ -1,15 +1,17 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.dental.domain.repository; import de.eshg.dental.domain.model.ProphylaxisSession; +import jakarta.persistence.LockModeType; import java.util.Optional; import java.util.UUID; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Lock; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -25,4 +27,8 @@ public interface ProphylaxisSessionRepository @Param("newInstitutionId") UUID newInstitutionId); Optional<ProphylaxisSession> findByExternalId(UUID externalId); + + @Lock(LockModeType.PESSIMISTIC_WRITE) + @Query("from ProphylaxisSession ps where ps.externalId = :externalId") + Optional<ProphylaxisSession> findByExternalIdForUpdate(UUID externalId); } diff --git a/backend/dental/src/main/java/de/eshg/dental/importer/ChildColumn.java b/backend/dental/src/main/java/de/eshg/dental/importer/ChildColumn.java index 6d0d54541804c3ea1998555ce0ba184e8c62adc4..79a5481524c51961ebffc63a57dbd95ba74a1142 100644 --- a/backend/dental/src/main/java/de/eshg/dental/importer/ChildColumn.java +++ b/backend/dental/src/main/java/de/eshg/dental/importer/ChildColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/importer/ChildImporter.java b/backend/dental/src/main/java/de/eshg/dental/importer/ChildImporter.java index d5a5d3156f7fcbfda764b66a7341ac7b2364bb1f..85b110e512f1eac49c08956fdf8bb7fd189df3a5 100644 --- a/backend/dental/src/main/java/de/eshg/dental/importer/ChildImporter.java +++ b/backend/dental/src/main/java/de/eshg/dental/importer/ChildImporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/importer/ChildRow.java b/backend/dental/src/main/java/de/eshg/dental/importer/ChildRow.java index faba60875fc4530dd90dbfabe5d8b567dd89c03d..622452440636fc3a527a9d8b070269cd09ec375f 100644 --- a/backend/dental/src/main/java/de/eshg/dental/importer/ChildRow.java +++ b/backend/dental/src/main/java/de/eshg/dental/importer/ChildRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/importer/ChildRowReader.java b/backend/dental/src/main/java/de/eshg/dental/importer/ChildRowReader.java index e45180b837e55d32a9e46ef0669e7f35b1ec5c35..d89eb2a9f6b6e6d42eb5fc44c15db3f0f83d6eba 100644 --- a/backend/dental/src/main/java/de/eshg/dental/importer/ChildRowReader.java +++ b/backend/dental/src/main/java/de/eshg/dental/importer/ChildRowReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/mapper/ChildMapper.java b/backend/dental/src/main/java/de/eshg/dental/mapper/ChildMapper.java index 41bdf0d92538b708377d892fedabcf163c87f794..b2b1955c7f30ee183a47e1b4b6a31d673b4c28ca 100644 --- a/backend/dental/src/main/java/de/eshg/dental/mapper/ChildMapper.java +++ b/backend/dental/src/main/java/de/eshg/dental/mapper/ChildMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -52,7 +52,10 @@ public final class ChildMapper { child.personData().differentBillingAddress(), child.child().getYear().getValue(), child.child().getGroupName(), - new InstitutionDto(child.contact().id(), child.contact().name()), + new InstitutionDto( + child.contact().id(), + child.contact().name(), + InstitutionHexColorMapper.mapInstitutionContactToHexColor(child.contact())), mapToDto(examinations)); } @@ -65,7 +68,10 @@ public final class ChildMapper { child.personData().dateOfBirth(), child.child().getYear().getValue(), child.child().getGroupName(), - new InstitutionDto(child.contact().id(), child.contact().name())); + new InstitutionDto( + child.contact().id(), + child.contact().name(), + InstitutionHexColorMapper.mapInstitutionContactToHexColor(child.contact()))); } private static List<ExaminationDto> mapToDto(List<Examination> examinations) { diff --git a/backend/dental/src/main/java/de/eshg/dental/mapper/ExaminationMapper.java b/backend/dental/src/main/java/de/eshg/dental/mapper/ExaminationMapper.java index ec7161ed8ddcf82fb20db56637b0ed8fd893dcda..bb0a96e8c6295e56cb96f3b6c880b7ad4a85abf4 100644 --- a/backend/dental/src/main/java/de/eshg/dental/mapper/ExaminationMapper.java +++ b/backend/dental/src/main/java/de/eshg/dental/mapper/ExaminationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/mapper/InstitutionHexColorMapper.java b/backend/dental/src/main/java/de/eshg/dental/mapper/InstitutionHexColorMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..ddfe0296292ad5f0377ad6d7dacd122eb89c6dca --- /dev/null +++ b/backend/dental/src/main/java/de/eshg/dental/mapper/InstitutionHexColorMapper.java @@ -0,0 +1,31 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.dental.mapper; + +import de.eshg.base.contact.api.ContactDto; +import de.eshg.base.contact.api.InstitutionContactCategoryDto; +import de.eshg.base.contact.api.InstitutionContactDto; + +public class InstitutionHexColorMapper { + private static final String HEX_COLOR_SCHOOL = "#3c7eca"; + private static final String HEX_COLOR_DAYCARE = "#d43f49"; + + private InstitutionHexColorMapper() {} + + public static String mapInstitutionContactToHexColor(ContactDto contact) { + if (!(contact instanceof InstitutionContactDto institutionContactDto)) { + throw new IllegalArgumentException("Contact must be an instance of InstitutionContactDto"); + } + + return switch (institutionContactDto.category()) { + case InstitutionContactCategoryDto.SCHOOL -> HEX_COLOR_SCHOOL; + case InstitutionContactCategoryDto.DAYCARE -> HEX_COLOR_DAYCARE; + default -> + throw new IllegalStateException( + "Unexpected value for institution category: " + institutionContactDto.category()); + }; + } +} diff --git a/backend/dental/src/main/java/de/eshg/dental/mapper/ProphylaxisSessionMapper.java b/backend/dental/src/main/java/de/eshg/dental/mapper/ProphylaxisSessionMapper.java index a6043ae8c220eb92c75900fe6b87752225a0bd9f..380690416ffdb0b47dd8de0fb437d27755e620e2 100644 --- a/backend/dental/src/main/java/de/eshg/dental/mapper/ProphylaxisSessionMapper.java +++ b/backend/dental/src/main/java/de/eshg/dental/mapper/ProphylaxisSessionMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -31,7 +31,10 @@ public final class ProphylaxisSessionMapper { return new ProphylaxisSessionDto( session.getExternalId(), session.getDateAndTime(), - new InstitutionDto(institution.id(), institution.name()), + new InstitutionDto( + institution.id(), + institution.name(), + InstitutionHexColorMapper.mapInstitutionContactToHexColor(institution)), session.getGroupName(), mapToDto(session.getType())); } @@ -67,9 +70,13 @@ public final class ProphylaxisSessionMapper { ProphylaxisSession session = prophylaxisSession.prophylaxisSession(); ContactDto institution = prophylaxisSession.institution(); return new ProphylaxisSessionDetailsDto( + session.getVersion(), session.getExternalId(), session.getDateAndTime(), - new InstitutionDto(institution.id(), institution.name()), + new InstitutionDto( + institution.id(), + institution.name(), + InstitutionHexColorMapper.mapInstitutionContactToHexColor(institution)), session.getGroupName(), mapToDto(session.getType()), mapToChildResults(prophylaxisSession.participants())); diff --git a/backend/dental/src/main/java/de/eshg/dental/testhelper/ChildrenPopulator.java b/backend/dental/src/main/java/de/eshg/dental/testhelper/ChildrenPopulator.java index 609ac95d0d5b785ff1a85f66980c7c73ce575b51..0a957cf25b0a4f1494d248a78221f17ae26280a3 100644 --- a/backend/dental/src/main/java/de/eshg/dental/testhelper/ChildrenPopulator.java +++ b/backend/dental/src/main/java/de/eshg/dental/testhelper/ChildrenPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -68,6 +68,13 @@ public class ChildrenPopulator extends DentalPopulator<CreateChildResponse> { protected CreateChildResponse populate( int index, Faker faker, ChildrenPopulator.UniqueValueProvider uniqueValueProvider) { CreateChildRequest request = randomChild(faker); + int numberOfPastYears = faker.number().numberBetween(0, 3); + for (int i = numberOfPastYears; i > 0; i--) { + Year yearInPast = Year.of(request.year() - i); + CreateChildRequest requestForPast = withNewYear(request, yearInPast); + childController.createChild(requestForPast); + } + return childController.createChild(request); } @@ -107,4 +114,25 @@ public class ChildrenPopulator extends DentalPopulator<CreateChildResponse> { protected long countExistingEntities() { return this.childRepository.count(); } + + private static CreateChildRequest withNewYear(CreateChildRequest original, Year newYear) { + return new CreateChildRequest( + original.referenceId(), + original.title(), + original.salutation(), + original.firstName(), + original.lastName(), + original.gender(), + original.dateOfBirth(), + original.nameAtBirth(), + original.placeOfBirth(), + original.countryOfBirth(), + original.emailAddresses(), + original.phoneNumbers(), + original.contactAddress(), + original.differentBillingAddress(), + newYear.getValue(), + original.groupName(), + original.institutionId()); + } } diff --git a/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalPopulator.java b/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalPopulator.java index 87ea6b4ad55b8d30b168ed1a19b38f76e9d618cc..ff7bfb413156b6f5c1c32070ad05f6dfe18baacb 100644 --- a/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalPopulator.java +++ b/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalTestHelperController.java b/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalTestHelperController.java index f0290757f82d2145586c154dc12736a801b4a70a..a71a5daec5c9c6d6fa5d7a21f84ceea2cba8795d 100644 --- a/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalTestHelperController.java +++ b/backend/dental/src/main/java/de/eshg/dental/testhelper/DentalTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/testhelper/ProphylaxisSessionsPopulator.java b/backend/dental/src/main/java/de/eshg/dental/testhelper/ProphylaxisSessionsPopulator.java index 04e8eb2141f680ba198703465ce2a74eff7c2f48..797cac3139d9fabceebe008473f176b5619f5e2b 100644 --- a/backend/dental/src/main/java/de/eshg/dental/testhelper/ProphylaxisSessionsPopulator.java +++ b/backend/dental/src/main/java/de/eshg/dental/testhelper/ProphylaxisSessionsPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -19,6 +19,7 @@ import de.eshg.dental.domain.model.Child; import de.eshg.dental.domain.model.Examination; import de.eshg.dental.domain.repository.ExaminationRepository; import de.eshg.dental.domain.repository.ProphylaxisSessionRepository; +import de.eshg.lib.procedure.domain.model.ProcedureStatus; import de.eshg.testhelper.environment.EnvironmentConfig; import de.eshg.testhelper.population.ListWithTotalNumber; import de.eshg.testhelper.population.PopulateWithAccessTokenHelper; @@ -123,7 +124,7 @@ public class ProphylaxisSessionsPopulator private void randomExaminations(Faker faker) { List<Examination> someExaminations = - randomElements(faker, examinationRepository.findAllByOrderById()); + randomElements(faker, examinationRepository.findAllByChildStatus(ProcedureStatus.OPEN)); for (Examination examination : someExaminations) { UpdateExaminationRequest request = diff --git a/backend/dental/src/main/java/de/eshg/dental/util/ChildPageSpec.java b/backend/dental/src/main/java/de/eshg/dental/util/ChildPageSpec.java index 40fcc409636f5fb8d59b69094a87313805b29025..cdc068b5ecb1627fe99332d7c612bedf7050ab8e 100644 --- a/backend/dental/src/main/java/de/eshg/dental/util/ChildPageSpec.java +++ b/backend/dental/src/main/java/de/eshg/dental/util/ChildPageSpec.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/util/ChildSystemProgressEntryType.java b/backend/dental/src/main/java/de/eshg/dental/util/ChildSystemProgressEntryType.java index 5fe816456f0a186d5a7d4fec84120e2092de4751..d6bfde89bade2e46c607424136fcfa737f8da693 100644 --- a/backend/dental/src/main/java/de/eshg/dental/util/ChildSystemProgressEntryType.java +++ b/backend/dental/src/main/java/de/eshg/dental/util/ChildSystemProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/util/ExceptionUtil.java b/backend/dental/src/main/java/de/eshg/dental/util/ExceptionUtil.java index 79ff5827318eed6dac8ad1cd5e65acb32341ce94..9021daa35db05356456c8f0d530a55b6b91883dc 100644 --- a/backend/dental/src/main/java/de/eshg/dental/util/ExceptionUtil.java +++ b/backend/dental/src/main/java/de/eshg/dental/util/ExceptionUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/java/de/eshg/dental/util/ProgressEntryUtil.java b/backend/dental/src/main/java/de/eshg/dental/util/ProgressEntryUtil.java index 69f3db25827c0b8048ae10ad61c90799e68956b2..c75bebe0d16018cb4ef7f2bd55f7d5c7d8527669 100644 --- a/backend/dental/src/main/java/de/eshg/dental/util/ProgressEntryUtil.java +++ b/backend/dental/src/main/java/de/eshg/dental/util/ProgressEntryUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/dental/src/main/resources/migrations/0001_initial.xml b/backend/dental/src/main/resources/migrations/0001_initial.xml index 96b68ab6cbcce1c8b96ddb1cc576a00c5f24d3d9..4606ef986e23406c43047e9551a009dd5ddf787b 100644 --- a/backend/dental/src/main/resources/migrations/0001_initial.xml +++ b/backend/dental/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0002_child.xml b/backend/dental/src/main/resources/migrations/0002_child.xml index 13a6c759f4feeebbf1f6de787010c5cbf8491b4e..b431c2ec0f82a392cedc5d0c2554929a56818066 100644 --- a/backend/dental/src/main/resources/migrations/0002_child.xml +++ b/backend/dental/src/main/resources/migrations/0002_child.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0003_prophylaxis_session.xml b/backend/dental/src/main/resources/migrations/0003_prophylaxis_session.xml index 4e7415629f88a2610a7a768821221953e89e960c..41cd092c0d303138399111214edee68d20373a44 100644 --- a/backend/dental/src/main/resources/migrations/0003_prophylaxis_session.xml +++ b/backend/dental/src/main/resources/migrations/0003_prophylaxis_session.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0004_examinations.xml b/backend/dental/src/main/resources/migrations/0004_examinations.xml index c684e1a22a4fd533005afbc52b8450b2b0af9318..a52a356dd33e0f96c8b4b2725352f4e5cf746402 100644 --- a/backend/dental/src/main/resources/migrations/0004_examinations.xml +++ b/backend/dental/src/main/resources/migrations/0004_examinations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0005_prophylaxis_type.xml b/backend/dental/src/main/resources/migrations/0005_prophylaxis_type.xml index 82c62dac25dce33fbc25388c89bf6255a26c0502..a44851b0faf735692ae166676c4c75c3ff61b818 100644 --- a/backend/dental/src/main/resources/migrations/0005_prophylaxis_type.xml +++ b/backend/dental/src/main/resources/migrations/0005_prophylaxis_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0006_procedures.xml b/backend/dental/src/main/resources/migrations/0006_procedures.xml index 3c4299a3718b1506c9ccc7437775ae0575df9991..1bda70c5416390abc487389b9706abebf44968c6 100644 --- a/backend/dental/src/main/resources/migrations/0006_procedures.xml +++ b/backend/dental/src/main/resources/migrations/0006_procedures.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0007_child_procedure.xml b/backend/dental/src/main/resources/migrations/0007_child_procedure.xml index 700983e7273c2412523f363c9895d071b193ce64..b720068682bf1452b70007f2aa15b960ca730d7b 100644 --- a/backend/dental/src/main/resources/migrations/0007_child_procedure.xml +++ b/backend/dental/src/main/resources/migrations/0007_child_procedure.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0008_add_official_medical_service_procedure_type.xml b/backend/dental/src/main/resources/migrations/0008_add_official_medical_service_procedure_type.xml index 8daa09bda726f0b74b23d977b65b3f4451284ed2..9835a7c5f1e01762a14cb01b7ce4d6bb60c619c9 100644 --- a/backend/dental/src/main/resources/migrations/0008_add_official_medical_service_procedure_type.xml +++ b/backend/dental/src/main/resources/migrations/0008_add_official_medical_service_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0009_prophylaxis_with_children.xml b/backend/dental/src/main/resources/migrations/0009_prophylaxis_with_children.xml index e039fd3842be2a704ac749d921ef69b8a4858efb..10ed705a60869be00a6c95e495ad2a058693698a 100644 --- a/backend/dental/src/main/resources/migrations/0009_prophylaxis_with_children.xml +++ b/backend/dental/src/main/resources/migrations/0009_prophylaxis_with_children.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0010_add_mail_to_simple_notification.xml b/backend/dental/src/main/resources/migrations/0010_add_mail_to_simple_notification.xml index e891360028d7bdcf5da8e424d89c58f74548969d..5f7522a504a4888ce01bc5f2a525c0f69c9f8610 100644 --- a/backend/dental/src/main/resources/migrations/0010_add_mail_to_simple_notification.xml +++ b/backend/dental/src/main/resources/migrations/0010_add_mail_to_simple_notification.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/dental/src/main/resources/migrations/0011_add_created_and_modified_at_to_prophylaxis_session.xml b/backend/dental/src/main/resources/migrations/0011_add_created_and_modified_at_to_prophylaxis_session.xml new file mode 100644 index 0000000000000000000000000000000000000000..e94789af4a8075b78c04c8b6b0eec02ee370f7b7 --- /dev/null +++ b/backend/dental/src/main/resources/migrations/0011_add_created_and_modified_at_to_prophylaxis_session.xml @@ -0,0 +1,18 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733996825364-1"> + <addColumn tableName="prophylaxis_session"> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE" valueComputed="now()"> + <constraints nullable="false"/> + </column> + <column name="modified_at" type="TIMESTAMP WITH TIME ZONE" valueComputed="now()"> + <constraints nullable="false"/> + </column> + </addColumn> + </changeSet> +</databaseChangeLog> diff --git a/backend/dental/src/main/resources/migrations/0012_invert_inbox_procedure_relationships.xml b/backend/dental/src/main/resources/migrations/0012_invert_inbox_procedure_relationships.xml new file mode 100644 index 0000000000000000000000000000000000000000..ad74408291a1e84a3b7b11b1c5fe95b149a89016 --- /dev/null +++ b/backend/dental/src/main/resources/migrations/0012_invert_inbox_procedure_relationships.xml @@ -0,0 +1,72 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733835693519-1"> + <addColumn tableName="inbox_procedure"> + <column name="contact_details_id" type="BIGINT"/> + </addColumn> + <sql> + UPDATE inbox_procedure + SET contact_details_id=contact_details.id FROM contact_details + WHERE contact_details.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="contact_details_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="contact_details_id" + constraintName="inbox_procedure_contact_details_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_contact_details" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" referencedTableName="contact_details" + validate="true"/> + + <dropForeignKeyConstraint baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure"/> + <dropUniqueConstraint + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + <dropColumn columnName="inbox_procedure_id" tableName="contact_details"/> + </changeSet> + <changeSet author="GA-Lotse" id="1733835693519-2"> + <addColumn tableName="inbox_procedure"> + <column name="inbox_progress_entry_id" type="BIGINT"/> + </addColumn> + + <sql> + UPDATE inbox_procedure + SET inbox_progress_entry_id=inbox_progress_entry.id FROM inbox_progress_entry + WHERE inbox_progress_entry.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="inbox_progress_entry_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="inbox_progress_entry_id" + constraintName="inbox_procedure_inbox_progress_entry_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="inbox_progress_entry_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_inbox_progress_entry" + deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="inbox_progress_entry" validate="true"/> + + <dropForeignKeyConstraint baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure"/> + <dropUniqueConstraint + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + <dropColumn columnName="inbox_procedure_id" + tableName="inbox_progress_entry"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/dental/src/main/resources/migrations/changelog.xml b/backend/dental/src/main/resources/migrations/changelog.xml index 5baf05d6d388934601cd0a2b82c4f2fc080f63c7..29d7a27ce1b2130ad7df3eab8691b094790dcfed 100644 --- a/backend/dental/src/main/resources/migrations/changelog.xml +++ b/backend/dental/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> @@ -19,5 +19,7 @@ file="migrations/0008_add_official_medical_service_procedure_type.xml"/> <include file="migrations/0009_prophylaxis_with_children.xml"/> <include file="migrations/0010_add_mail_to_simple_notification.xml"/> + <include file="migrations/0011_add_created_and_modified_at_to_prophylaxis_session.xml"/> + <include file="migrations/0012_invert_inbox_procedure_relationships.xml"/> </databaseChangeLog> diff --git a/backend/docker-compose-common.yaml b/backend/docker-compose-common.yaml index 0c7760184a10e5e9823fa2b07b181cfed1878173..6a58af353ab741fe9fe0ffe9698d4a513b968831 100644 --- a/backend/docker-compose-common.yaml +++ b/backend/docker-compose-common.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 services: @@ -9,6 +9,10 @@ services: - eshg.keycloak.internal.url=http://keycloak:8080 - eshg.population.enabled=${POPULATION_ENABLED:-true} restart: unless-stopped + deploy: + resources: + limits: + memory: 1G eshg-postgres-base: image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:-docker.io}/postgres:16.3@sha256:d0f363f8366fbc3f52d172c6e76bc27151c3d643b870e1062b4e8bfe65baf609 diff --git a/backend/docker-compose.yaml b/backend/docker-compose.yaml index 4cf885cf0addea8f727c08676d6393ebf6ae8995..a7635e2ed1f7bcb2ab3531d18c130ac63cad0b84 100644 --- a/backend/docker-compose.yaml +++ b/backend/docker-compose.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 services: diff --git a/backend/file-commons/src/main/java/de/eshg/file/common/CustomMediaTypes.java b/backend/file-commons/src/main/java/de/eshg/file/common/CustomMediaTypes.java index b3a9ff65eff77cb36f61b8465229260afdafe87c..d48a41375b9498d30f8d34f9829b43295631fcae 100644 --- a/backend/file-commons/src/main/java/de/eshg/file/common/CustomMediaTypes.java +++ b/backend/file-commons/src/main/java/de/eshg/file/common/CustomMediaTypes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/file-commons/src/main/java/de/eshg/file/common/FileExtension.java b/backend/file-commons/src/main/java/de/eshg/file/common/FileExtension.java index 707d6041f4e129113215a7f456c6671c1e50cfeb..20d5bb726130dfbe1ca497b6cba62847a66243e4 100644 --- a/backend/file-commons/src/main/java/de/eshg/file/common/FileExtension.java +++ b/backend/file-commons/src/main/java/de/eshg/file/common/FileExtension.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/file-commons/src/main/java/de/eshg/file/common/FileType.java b/backend/file-commons/src/main/java/de/eshg/file/common/FileType.java index 9ba308f34afb1100949de9be2fd208893dc6adfa..9ce91083aa7821b8fa174acb5b0dd2760d40e4ec 100644 --- a/backend/file-commons/src/main/java/de/eshg/file/common/FileType.java +++ b/backend/file-commons/src/main/java/de/eshg/file/common/FileType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/file-commons/src/main/java/de/eshg/file/common/FileTypeDetector.java b/backend/file-commons/src/main/java/de/eshg/file/common/FileTypeDetector.java index e716717a34aedd0c6dc656ca89b561582fd4b110..17feca8cb7532e000b637969b757acf2012f1e1f 100644 --- a/backend/file-commons/src/main/java/de/eshg/file/common/FileTypeDetector.java +++ b/backend/file-commons/src/main/java/de/eshg/file/common/FileTypeDetector.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/file-commons/src/main/java/de/eshg/file/common/PdfAConformanceValidator.java b/backend/file-commons/src/main/java/de/eshg/file/common/PdfAConformanceValidator.java index f44964a943afb4d2f754253e2df0f7916eaf6098..11da7c435e7abb84966d505d571d0c96c8b75de5 100644 --- a/backend/file-commons/src/main/java/de/eshg/file/common/PdfAConformanceValidator.java +++ b/backend/file-commons/src/main/java/de/eshg/file/common/PdfAConformanceValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/inspection/build.gradle b/backend/inspection/build.gradle index 9d3f55a4d374c91071a13dfbba49b0be2b7678d3..03297f433b01d35bf693f48fae1cea2da65ab2c5 100644 --- a/backend/inspection/build.gradle +++ b/backend/inspection/build.gradle @@ -32,6 +32,7 @@ dependencies { testImplementation testFixtures(project(':lib-service-directory-admin-api')) testImplementation testFixtures(project(':business-module-persistence-commons')) + testImplementation testFixtures(project(':lib-procedures')) testImplementation testFixtures(project(':lib-document-generator')) testImplementation testFixtures(project(':lib-xlsx-import')) } diff --git a/backend/inspection/openApi.yaml b/backend/inspection/openApi.yaml index 2959c34b2a8d265912f29222f503922ac3c73700..200400f6343734b8aa2cee0daad9f93b934ea10f 100644 --- a/backend/inspection/openApi.yaml +++ b/backend/inspection/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 @@ -2720,6 +2720,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -3703,9 +3722,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -3724,10 +3742,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -4446,6 +4461,28 @@ components: required: - context - id + CheckFileStateUsageRequest: + type: object + properties: + fileStatesIds: + type: array + items: + type: string + format: uuid + maxItems: 2147483647 + minItems: 1 + required: + - fileStatesIds + CheckFileStateUsageResponse: + type: object + properties: + inUse: + type: array + items: + type: string + format: uuid + required: + - inUse Checklist: type: object properties: @@ -4651,75 +4688,6 @@ components: $ref: "#/components/schemas/ChecklistDefinition" required: - definitions - ConcreteFileDto: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: - type: object - discriminator: - propertyName: '@type' - properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid - required: - - '@type' ContactDetails: type: object properties: @@ -5882,32 +5850,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -6661,7 +6607,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -7208,8 +7154,6 @@ components: type: string enum: - OFFLINE - - IMPORT - - STATISTICS InspectionFollowupInfo: type: object properties: @@ -7420,18 +7364,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -7760,7 +7697,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -8039,7 +7976,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid diff --git a/backend/inspection/src/main/java/de/eshg/inspection/InspectionApplication.java b/backend/inspection/src/main/java/de/eshg/inspection/InspectionApplication.java index 0c43de828ec350f6df35a5cde166410d3842b82b..bcb25dd27325bd25434ba979b70e5101f690781f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/InspectionApplication.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/InspectionApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/InspectionDeletionService.java b/backend/inspection/src/main/java/de/eshg/inspection/InspectionDeletionService.java index 626a3d04e53e22672aaf48abbb613c79a3988166..0f3f3a01e3e838e0d1a8a48c114e1d7f5ccddc4c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/InspectionDeletionService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/InspectionDeletionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/calendar/InspectionEventMetadataService.java b/backend/inspection/src/main/java/de/eshg/inspection/calendar/InspectionEventMetadataService.java index 78482898e6fd710527c6da35f41c285598710373..08b996c4a22d730a2922e8ba4f99da8524181f27 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/calendar/InspectionEventMetadataService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/calendar/InspectionEventMetadataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistController.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistController.java index 617be00e9a9e912dc29419d68f65f0b0fb087157..1694696b93a7cbcc8eaccea1f70fcd0e96bfa0b6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistService.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistService.java index 87b4ca7823358286459d6d95cd436509c17e0ccd..75c1ee6d20a01e7571d8779eef79668d712644f0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/ChecklistService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/MediaFileService.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/MediaFileService.java index 4104f2557bfc56cc84985e832dedaafdb46ac407..d1b202bfce335d0e8dbc05af661c4c81898dcf21 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/MediaFileService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/MediaFileService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -102,10 +102,7 @@ public class MediaFileService { Optional<MediaFile> mediaFile = mediaFileRepository.findByFileExternalId(externalId); return mediaFile .filter(MediaFile::isNotDeleted) - .orElseThrow( - () -> - new NotFoundException( - String.format("Media file with id %s was not found", externalId))); + .orElseThrow(() -> new NotFoundException("Media file with given id was not found")); } InputStreamResource loadContent(MediaFile mediaFile) { diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistDto.java index fec37b7b894fa6f692c441b75c963a6226991681..d7c5555ba75ef28cad6a9489563486dee4278d6f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistSectionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistSectionDto.java index 8428cbe58f1a07a5115c108c3ed787d77f51e1a4..fbc2606e1ef4b18b62b53acfe04b7567f2de58b4 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistSectionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/ChecklistSectionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/GetChecklistsResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/GetChecklistsResponse.java index c521096a6305e2db956dc2acbf38f86894ab5d6c..454256435a15b32f8cc3508d20bb1c4e22ddc8ad 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/GetChecklistsResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/GetChecklistsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/UploadMediaFileRequestDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/UploadMediaFileRequestDto.java index e8c7bb7b806b5effd447d317839de5938d766185..8fb02c1cb3e352d3ed815fad5b5ed3deecc0286b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/UploadMediaFileRequestDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/UploadMediaFileRequestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistContextDto.java index e3725859f42fe55da026cb701654395db3701ed9..cd4b0c243ea8978df1c875be8a8f9324ff162120 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistSectionContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistSectionContextDto.java index 5a75a0ecb4b42c9accd42b45df95f0a0c718d68f..fb6d59ec314b91596d9842af86260113d40aecc5 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistSectionContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/ChecklistSectionContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistElementContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistElementContextDto.java index d9d9b7dee87769e4320f93c2ca4cf86b0f3d54d9..9f22cbbe79967268befce427f7104de129633979 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistElementContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistElementContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistSeparatorContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistSeparatorContextDto.java index c5b8ade0c965faa3579d62d477237865706f140d..cafcf86da0e8cb4c82fbffb5d318a97632204243 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistSeparatorContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/ChecklistSeparatorContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistAudioContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistAudioContextDto.java index 19cf4a6640c3226ed96599db92ff1987fa5f07d3..44cdc99a02e060a3c3830a5c31d3ffeb0b0c766f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistAudioContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistAudioContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistCheckboxContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistCheckboxContextDto.java index af9f7b51f49590e5df242610e9c85e9c99f0e658..566a604a6759245366a1bdf6991af5578de1ab3e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistCheckboxContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistCheckboxContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldContextDto.java index 75e60a978b8dbd0c22f07a8ce1b6dc1fd4919297..7b6ead0c31945d4616d71f45a6738a3f6aec0413 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldOptionContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldOptionContextDto.java index da8137b2f85d315dc542d41ec6c011aa593252f1..471449434a6efbfa5114934dca51b8be4b98a159 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldOptionContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistFieldOptionContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistImageContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistImageContextDto.java index da1263fc3ed93a8e3ff9b9c7574f68c12fd998d4..71d6b5d97f3c09b0ba4ee2076bc53a8aeb52cd87 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistImageContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistImageContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistMultiSelectContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistMultiSelectContextDto.java index 8ea07672f19ffef37937501e4fa85f6959349dcf..fa9bf73ea5671c326cebb51940c1e76cc8088782 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistMultiSelectContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistMultiSelectContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistOptionSelectContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistOptionSelectContextDto.java index 5b0dc2832238003f6878ebe8167712244272449b..922e53b2c6630b6ae666a06fb558a6a499ce2f8e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistOptionSelectContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistOptionSelectContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistSingleSelectContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistSingleSelectContextDto.java index 0d1cb81fcdcee13a262fa7ae7d3aba9574b06d8a..d8c3f31c18bd5fc9913d1775de232dbfcf9af368 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistSingleSelectContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistSingleSelectContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistTextElementContextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistTextElementContextDto.java index 5f741087a69fbce2446c3aed8b68ecb6bb460c9d..1fb2813c98e22e73a1f697e113751f23e48798eb 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistTextElementContextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/context/element/field/ChecklistTextElementContextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistElementDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistElementDto.java index 7b6d0255d3ce1584c24f4408a783fc769762f4fa..6baec3f096327b42c3b915d245ad53bcac93f9f3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistElementDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistSeparatorElementDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistSeparatorElementDto.java index a95fe9fc80b7fd9ad71465b420078321c0c6cdc1..2300af688ac91216edc91cead2e79e1e3fc7a287 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistSeparatorElementDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/ChecklistSeparatorElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioFieldDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioFieldDto.java index c31a090635fb3a119a672f2cf7485054b410d07f..8d767a350310c4a371f1f14afa6d70ffb65f2f9c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioFieldDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioFieldDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioMetaDataDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioMetaDataDto.java index 87d34d32d1f233c60ccccdfc9bf4800fed68b3c2..92978a97f1558a70836bace136b927205dc97be3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioMetaDataDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistAudioMetaDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistCheckboxFieldDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistCheckboxFieldDto.java index 6b5b49a88d517ae9b4bbd5be9f444a956aa27f63..9b10bc7a1a209ef4852b49afc40444a50751d703 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistCheckboxFieldDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistCheckboxFieldDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistFieldDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistFieldDto.java index add1773880dcc82bc8a4c237e362f04587a26bc2..e375a58bcc7c0de4051ad53dbcebf3d721691254 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistFieldDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistFieldDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageFieldDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageFieldDto.java index 33477085a0d7480a95efed2ee8f3971eecc89a49..0015710ea9811d5e25c90cfe48884ad9ab3db8ed 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageFieldDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageFieldDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageMetaDataDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageMetaDataDto.java index 3361e541ea86fb217cb72b79fa6f66865b26a41d..2b91d468dfe871a67b7cefc6da239d80ab5df76e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageMetaDataDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistImageMetaDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistMultiSelectFieldDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistMultiSelectFieldDto.java index ac148ec4708e0d361184dc27a22643343d802d88..2aa920b0557a3fb89aceb7b29c5cd301d3a51892 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistMultiSelectFieldDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistMultiSelectFieldDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistSingleSelectFieldDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistSingleSelectFieldDto.java index 0a019040b3679720d117de7096d1741a0c39be09..d109f53b1870dc89aaefe25dac5469a9e366b173 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistSingleSelectFieldDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistSingleSelectFieldDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistTextFieldDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistTextFieldDto.java index 46c1c0e84aaa4eb267a19d3fc1f9b97cf68a56d3..0b2807b070aed6174e750db61cbeda57b76b8a47 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistTextFieldDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/element/field/ChecklistTextFieldDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistDto.java index 71b4b02918b2eb81a6c1679699940bd2192c5bcc..e4215ce274ed613322bcaaf2cdab617d5a016e56 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistRequest.java index 7c69951eaaba2a8f09ba09dd8d3f2424e8606bec..26a6a076bfe4f466bce5c62a2e2f9d9cb024d0de 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistResponse.java index 783ee25b9b49ecd76cc8d9e6c3491b9788be02b2..5052bb79c64038fdefab5f031f0266d52b314f50 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/UpdateChecklistResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistAudioDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistAudioDto.java index 4d7dcfcf6504f6b6a1cc2ccdf8d6db96c204a05b..7a2f07528e3d79a0a5478111daab117f506f210b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistAudioDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistAudioDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistCheckboxDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistCheckboxDto.java index 32ee0303180ab1800f01b9877360e22701a54652..fcc4791192e64f653470ae6e338d29b20ae82a13 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistCheckboxDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistCheckboxDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistElementDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistElementDto.java index 6b24fea01408479e699a27ac4bb512c748fd8dfa..b2bcbcee23363294e5c225c20b953afe2f3c0b42 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistElementDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistImageDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistImageDto.java index a4edbd3b701370dc722e7dcf154f874c94657ea3..11976ec297ff062fa8c3bb860c6f5682e0e87547 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistImageDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistImageDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistMultiSelectDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistMultiSelectDto.java index a4d25498556a9e090acdc11f455574edc8f7e610..1dbb2a9fd2661dbc6cf4145540684ccdba4e15be 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistMultiSelectDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistMultiSelectDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistSingleSelectDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistSingleSelectDto.java index b11d7fab9b36455247a3682b6887ccb310820203..40b6a9d9f5c0db1b1505dd81d57e6ccac9112171 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistSingleSelectDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistSingleSelectDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistTextDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistTextDto.java index b4acbf79f5306d25f8c3f2cfcfa3b7a1667e5d29..591d2f019d57be397efe49d5e6f766e83104e5c2 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistTextDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/api/update/element/UpdateChecklistTextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistContextMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistContextMapper.java index fc0ac916dbe177eacb9ce63a48c9ffeeea210f5b..686ea6d479209176722a7c829e252668684cd21e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistContextMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistContextMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistDtoMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistDtoMapper.java index 22a6f9acfbf4a75ac047d49f87317089b8ef119c..456beb5a33c222e3a9abcbcb526749112707bf62 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistDtoMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistDtoMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistEntityMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistEntityMapper.java index 4e1218963c7aab0a3fa360b708511caf11c2c3e1..2c58519e9b4a5a86892cd4b1c3d56577243d46a1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistEntityMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/mapper/ChecklistEntityMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -122,7 +122,7 @@ public class ChecklistEntityMapper { if (matchedElement.isPresent()) break; } return matchedElement.orElseThrow( - () -> new NotFoundException("No matching element with ID " + updateId)); + () -> new NotFoundException("No matching element with given ID")); } private static void mapTextElement( @@ -295,10 +295,7 @@ public class ChecklistEntityMapper { MediaFile imageFile = mediaFileRepository .findByFileExternalId(updateImageElement.getImageExternalId()) - .orElseThrow( - () -> - new NotFoundException( - "Could not find image with ID " + updateImageElement.getImageExternalId())); + .orElseThrow(() -> new NotFoundException("Could not find image with given ID")); imageElement.addImage(imageFile); } @@ -314,10 +311,7 @@ public class ChecklistEntityMapper { MediaFile audioFile = mediaFileRepository .findByFileExternalId(updateAudioElement.getAudioExternalId()) - .orElseThrow( - () -> - new NotFoundException( - "Could not find audio with ID " + updateAudioElement.getAudioExternalId())); + .orElseThrow(() -> new NotFoundException("Could not find audio with given ID")); audioElement.addAudio(audioFile); } diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/Checklist.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/Checklist.java index eff1a1e36d9ee8c6541848661f9246c7ae99c9c4..bee5911f55deeff08ed56b3f793f647b2ed59394 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/Checklist.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/Checklist.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistRepository.java index b633ccf42657e34a7d9269c54b7601e0dfca144d..dc08a496207d2f2344cb64673561701f8767dce8 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistSection.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistSection.java index 57bce4b7c215ba2710df05fd739eeddfce3dd6f7..a1ab5b84e93aeb04bd6a9729383fa629e04137ac 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistSection.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/ChecklistSection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudio.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudio.java index ae729a72d105068eded91735ff1448eca36cb785..c01f816a457a69a3fd68b66baf641b00a58e87e6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudio.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudio.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudioElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudioElement.java index a9aeac8917a5a7e90b2209ba3472ce693b1f9fb5..adec05f0e19e7d10705f527fee76c4ca21c213de 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudioElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistAudioElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistCheckboxElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistCheckboxElement.java index 99949db56f90f581bdb4503ea409e9303effdd67..c9efcdb25d28df16114c79d9c9f36cc57182ebfe 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistCheckboxElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistCheckboxElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistElement.java index 790367fa4cb5d4b122a75f74c89a3940592c8227..cb8d61f6671ddeb2887fc61db3055ae4e7cc4f82 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImage.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImage.java index 1eb22e469af63e974822c6a3a962a166f36010f8..6e8a8fdc051b593bdba449f08c828197f3881607 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImage.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImageElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImageElement.java index e2f54c663124bfded0c7a16ef5b716771622b15d..915f1e69925f1076f860df7ac2f2da5e5bf2fb97 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImageElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistImageElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistMultiSelectElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistMultiSelectElement.java index 84b489f22fd5948052c3d321644861585d671467..0e612b895baf768882449f89fce10b7f114f2844 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistMultiSelectElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistMultiSelectElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistSingleSelectElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistSingleSelectElement.java index 7e76d59ab4e41d6ed5a59392c933d9abe828e6f3..e8952e11d5c1bfca0023fd522ee58f0f4ca2bdb2 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistSingleSelectElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistSingleSelectElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistTextElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistTextElement.java index 53d0125903ef323092d0b652dc02b50028822403..801de072f149c0ad16724c21e8ab535fa8dc48ca 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistTextElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklist/persistence/element/ChecklistTextElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoController.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoController.java index 365e5ea77138e7fb862f70bbeedbbcd80643928a..d882e65983fbc13d434aba58fbed41a2f0f3d22f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoService.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoService.java index c16606b7670473da47b553e3f525651e48747f65..87490fe7492adca1ea9f69cdfc2d062df36e7e60 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionCentralRepoService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -341,6 +341,7 @@ public class ChecklistDefinitionCentralRepoService { new NotFoundException( "Couldn't locally find an object type with name '%s'" .formatted(centralRepoCld.objectType().name()))); + return CentralRepositoryMapper.mapLocalObjectTypeToCentralRepoCld(centralRepoCld, objectType); } catch (IOException e) { logger.error("Unable to read CLD central repo content", e); @@ -388,9 +389,7 @@ public class ChecklistDefinitionCentralRepoService { return checklistDefinitionRepository .findById(cldId) .orElseThrow( - () -> - new NotFoundException( - String.format("Could not find checklist definition with id %s", cldId))); + () -> new NotFoundException("Could not find checklist definition with given id")); } private Map<Long, ChecklistDefinition> getMatchedLocalChecklistDefinitions( diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionController.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionController.java index d13ebf147823630fe6fa033f0fee443920222ed0..14a47f6319675752bf64a4ae255c00e334378140 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionService.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionService.java index b3f7750aebdecb8f54bf2fe9056e573ef443fa8b..7e743fd6a197423461a2f67e3216b23ced94e6a6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/ChecklistDefinitionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoMetadata.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoMetadata.java index 23c608b9e948a9a96f8073514f9abd6ebcab3c5c..846186cec4d2c7de5401f307de66b077fa5567c8 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoMetadata.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoRequest.java index 69985d2d7f4f60e0d0b66ad27747c35cf8fffce1..95968982dc209e2f1d52001328bbb976f21ba956 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoResponse.java index f914b49e93b02196e650c4e5db6bb0309663473e..fdfd07470cd18622aabaa077df0d4dde4d20221e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoUpdateRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoUpdateRequest.java index 6ff8f29031cf55eda17a489346c6a6ce42fe251c..956c25b03206d1c4e3a9532027b41951f5b05010 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoUpdateRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionCentralRepoUpdateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionDto.java index 82d4fc5eb0c16962c1cc98dac0f7083b5274e693..c89db25e1e523c95f7c090e602f2e9318116ecf1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionFromCentralRepoUpdateRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionFromCentralRepoUpdateRequest.java index 9fb5a9db4399967ad0e637b949255dc36051e942..db76b29ee661665a8585e45608512cccd123a3be 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionFromCentralRepoUpdateRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionFromCentralRepoUpdateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionDto.java index 05e5716422e2c0f6f4b37956a0330f3cff648c02..180cb2aaf2ee124aa456e95f11f7f61d8f0d025e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionRequest.java index e80c68f686460c60b37399048b472421650053b0..7c3c7143a8a9797df3dd39a8de86cb6f2ff74bec 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionVersionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionsResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionsResponse.java index 3287cb8ad5878359db53e79dac5269e2d9bfa125..43fb6843d0185a4ba419e1bcbc0f12f9af115f75 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionsResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistDefinitionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistElementType.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistElementType.java index bb4913d8c07dde206f509044fae415e04383b8f2..64230ab52a2e413f608745bc9c2c2b5b38536b76 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistElementType.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/ChecklistElementType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/CreateNewChecklistDefinitionRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/CreateNewChecklistDefinitionRequest.java index 2e4e788c9af35d298d601b2d177c7ba6854ad467..59f382f90baf40c08fb2c00587879c6ef94aba92 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/CreateNewChecklistDefinitionRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/CreateNewChecklistDefinitionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/DeleteChecklistDefinitionCentralRepoRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/DeleteChecklistDefinitionCentralRepoRequest.java index 8bdb67009fadeafb965b10540ef1e5ac214078df..8ff0b8758018e96e8f872b4770299fd8c0a2d951 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/DeleteChecklistDefinitionCentralRepoRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/DeleteChecklistDefinitionCentralRepoRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoRequest.java index 99715f1a7873657673587b43c96127c1c8a4900f..6bac8749981c6cb2d93d7ad0cc582de0c07b4142 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoResponse.java index fe11c0257b61563d275d7f8cc741af6ad9c63f8d..13832478d44ab0a2a0431eeb1a3fbfb7d5f4d0f6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetChecklistDefinitionCentralRepoResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetNewestChecklistDefinitionsCentralRepoResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetNewestChecklistDefinitionsCentralRepoResponse.java index ebeb87d68199ac32a3ea341d1d7e03a75c86c9c5..1cf716c034f6770f41b56e1296b40b0865c3e4af 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetNewestChecklistDefinitionsCentralRepoResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/api/GetNewestChecklistDefinitionsCentralRepoResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/CentralRepositoryMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/CentralRepositoryMapper.java index a8d725d6a2b48c075c11485d744d87d5bc90b1a3..2aadcff389882060849417675931c94ad1ea4932 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/CentralRepositoryMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/CentralRepositoryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -43,8 +43,8 @@ public final class CentralRepositoryMapper { () -> new NotFoundException( String.format( - "Could not find version %d for checklist definition with id %s", - cldVersionNr, cld.getExternalId()))); + "Could not find version %d for checklist definition with given id ", + cldVersionNr))); if (checklistDefinitionVersionDto.context().getRepositoryVersion() != null) { throw new BadRequestException(ErrorCode.CONFLICT, "Repository version already exists"); diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionDtoMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionDtoMapper.java index 0e817aee6ae7d9dce1565e2ed74b295c73b605fc..8602bc50ee02f66cc1a6eb86828f4ba9a2e0642f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionDtoMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionDtoMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionEntityMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionEntityMapper.java index 9f8f8373e2fb2c8c2d1ecfe3ca9ed640fc6b4f2e..2f8616f4348a2adf695df52a76a8f4a35638d379 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionEntityMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/mapper/ChecklistDefinitionEntityMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinition.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinition.java index 8a73f23c86e93c9ea9c27fb7383aacbb61fd0460..8ee7af80cf3c18cd9cd0cf7c3499ba0a4b848532 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinition.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionRepository.java index 8af7910d38d6444ad681e234f91c121aff35d46d..1194fa48c3da4fb539e49d05259bc02cab02c84b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersion.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersion.java index 9b77b1202dfa88a0b5014bf4ce99cbb275800e6f..402753e418d7d4c412ff916bc401d886d12b8083 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersion.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersion.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersionRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersionRepository.java index 1602c85306d3053369abdb520444784d29e7ef7a..9ba620a3212b796494040d9f67071e668258cd88 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersionRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/ChecklistDefinitionVersionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/ChecklistDefinitionSection.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/ChecklistDefinitionSection.java index 6fce1f89e6cd3e36bda5df3bf2b650078a7dac24..bdb51a0584095c509b2e44e9d142343e7061d82b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/ChecklistDefinitionSection.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/ChecklistDefinitionSection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionElement.java index 1ecb0554ccd49f8455771ec53cf88d1f662c5879..69edf5963a55822a345333f1574405eb30595fd5 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionSeparator.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionSeparator.java index 7f103a3af25c037b09e74fb0c24df2a15bdb8795..604147265967c69a39ef3a081819de036580ac34 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionSeparator.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionSeparator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionTextElement.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionTextElement.java index bfc6f11e656e4f7937527b67eca39a0a61a96321..6c27928465023583f5c53bbeaad9a672008994ce 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionTextElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/ChecklistDefinitionTextElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionAudio.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionAudio.java index 4e7c11346470ac23b470f764224fee4affa38c78..e46ea5c8cd6344390de275ae15ef51cf63fca64a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionAudio.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionAudio.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionCheckbox.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionCheckbox.java index b1d8af0d7846c6e020052ee08486a4cc62bf74a4..ac8a196e9d6fbdd062c39074b7ac32738fa2efcb 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionCheckbox.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionCheckbox.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionField.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionField.java index bc1cca294faa667446994568b48ddc44d13b13c5..e2abf7aaba6da663bc92b7e9e718c9b499bb68c7 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionField.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionField.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionFieldOption.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionFieldOption.java index f9e79e500937fefb7e6d048590c39f3cbbb7ad40..43195a5e55ccda0eaa6340d42360798715ff41e2 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionFieldOption.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionFieldOption.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionImage.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionImage.java index 3c6800403e1da95b03de6f6c533846795dda4a95..323b4ea9702071d95cb446fa996ef87b28a2488e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionImage.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionImage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionMultiSelect.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionMultiSelect.java index 68f76317fdb8ff89d39cbc1f436de03ebce060eb..10d7953424a98bcc3ce02e577777ffd6dbed7c8f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionMultiSelect.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionMultiSelect.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionOptionSelect.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionOptionSelect.java index f040940122155eb82c795a123646a2be1786a017..22e16402500fd2784ec681a0fca4ba5770729496 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionOptionSelect.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionOptionSelect.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionSingleSelect.java b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionSingleSelect.java index 96c543b1176ad38d8752b7b6feca14aff74410c9..73c0e0ac4c75818c84c4c99405f46fef7db81be5 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionSingleSelect.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/checklistdefinition/persistence/section/element/field/ChecklistDefinitionSingleSelect.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/client/CalendarClient.java b/backend/inspection/src/main/java/de/eshg/inspection/client/CalendarClient.java index 819bf6939691288003367af8f7ff9c3d638a6b96..1465086bdcee87dc61e59c9144a99a2fd029ab01 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/client/CalendarClient.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/client/CalendarClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/client/UserClient.java b/backend/inspection/src/main/java/de/eshg/inspection/client/UserClient.java index e38059551361e62f1591e43aa60de6f91931a19c..dd2eb1faed47773d03d63b3de9933138a6c0df75 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/client/UserClient.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/client/UserClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/HashAlgorithm.java b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/HashAlgorithm.java index b57d0ec577dc2c3851de8da4cd9173b1f1aef865..f95a56dd05623c308f2555b9e42c1dba1fc29729 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/HashAlgorithm.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/HashAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFile.java b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFile.java index 47141439876d624e7afa0667acb01411c9db608d..2c4f341e2a387ff3efe27e6606caa5a6c7d29050 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFile.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFile.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContent.java b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContent.java index ad1cb381c1ffbbd5b5ef22018c4e5ede8e2e30b5..4c3bb50b6eed6fcecdd408a85dd692d712f87e87 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContent.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContentSerializer.java b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContentSerializer.java index 869a64c32fd483afdd002f27ca75d771081a4363..3b239422e4cdf8742ee37d8e3d349f81edcd3828 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContentSerializer.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileContentSerializer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileRepository.java index fe66db4356681ecd6ed20ed7189a6a2e07c52f0a..7531b1d4afe080aa18fb8e146f43b77d1fc1639f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/common/persistence/MediaFileRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionAuditLogConfiguration.java b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionAuditLogConfiguration.java index b95e05e42ff61a8800a6566882ee160dd7247e00..2f5e1e419e8d7b341c76fe73bb7a4c9ed2c8ad13 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionAuditLogConfiguration.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionEditorConfiguration.java b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionEditorConfiguration.java index f95f77ab35d8bcf904ec65379fbb42334abd542a..83eef0bcf4128f4fbadc1935802c0973f22a322a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionEditorConfiguration.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionEditorConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionInternalSecurityConfig.java b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionInternalSecurityConfig.java index fb0f3c30ff8f90dbbed16bf3375795effa40704a..67b5390f70bdb0f58715408457b3e778410b95d6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionInternalSecurityConfig.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionInternalSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNominatimConfiguration.java b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNominatimConfiguration.java index c0d35a1360329c5ebdb63ae3a067c2fa9c0bce9d..e1633b65dd68ed9a6dcfddcca5f2f3fab2851b9b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNominatimConfiguration.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNominatimConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNotificationConfiguration.java b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNotificationConfiguration.java index e164f945e35834da72afb956b8882fc2cd8f291e..d803d5481ecce6005f69e7042b76630553f5860b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNotificationConfiguration.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionNotificationConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionProcedureConfiguration.java b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionProcedureConfiguration.java index f6991f5b0914482d6f84bc0076a94ecb88da0979..d24adc907d26690ad258a0ceb15f83dfb9a494e6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionProcedureConfiguration.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionSummaryProvider.java b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionSummaryProvider.java index d2ca66866fa23d5f9f663756afce73725c68e8e4..fa046367cf8f09d0b44795c7604ac41ef7e6aae0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionSummaryProvider.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/config/InspectionSummaryProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/editor/InspectionEditorService.java b/backend/inspection/src/main/java/de/eshg/inspection/editor/InspectionEditorService.java index caf2a30a1e1a1682f04c08259cba0e0a56b71a6f..6d4e46a5942eb757b310efcf7833fbc782d112ef 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/editor/InspectionEditorService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/editor/InspectionEditorService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityClient.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityClient.java index 6f62bf61eb1fbc5d2b29ddfb5d17879da89f517f..78eab6ac95627ead481043c492bfdb2bfd8ac812 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityClient.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityController.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityController.java index 137edd4afb569e7caf94d814ee87b8663fbc3249..dd5ac802257f4b7ae26163fd3b9c8f16e7f001cf 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityMapper.java index 462ddfa93b6f40abd9816963ef04fcfbb848c4ee..0fac306de9a2badbc1d72641a879ea92d0d89e0e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -198,9 +198,7 @@ public class FacilityMapper { view.facility().hasPossibleDuplicates(), executedFrom); } - default -> - throw new NotFoundException( - "invalid address of unknown type: " + facilityDto.contactAddress()); + default -> throw new NotFoundException("invalid address of unknown type"); } } @@ -268,9 +266,7 @@ public class FacilityMapper { baseFacility.emailAddresses(), baseFacility.phoneNumbers()); } - default -> - throw new NotFoundException( - "invalid address of unknown type: " + baseFacility.contactAddress()); + default -> throw new NotFoundException("invalid address of unknown type"); } } @@ -303,9 +299,7 @@ public class FacilityMapper { baseFacility.emailAddresses(), baseFacility.phoneNumbers()); } - default -> - throw new NotFoundException( - "invalid address of unknown type: " + baseFacility.contactAddress()); + default -> throw new NotFoundException("invalid address of unknown type"); } } } diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityService.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityService.java index 1055b0cfadab22880268843cd9e936c88eedb1f4..2427335014cf34d5c34b5878f18ba4bf9ca61ea3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/FacilityService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -34,7 +34,6 @@ import de.eshg.inspection.facility.persistence.PendingFacilityView; import de.eshg.inspection.facility.websearch.WebSearchService; import de.eshg.inspection.facility.websearch.persistence.WebSearchEntry; import de.eshg.inspection.facility.websearch.persistence.WebSearchEntryStatus; -import de.eshg.inspection.feature.InspectionFeature; import de.eshg.inspection.feature.InspectionFeatureToggle; import de.eshg.inspection.inspection.InspectionFinalizer; import de.eshg.inspection.inspection.InspectionService; @@ -254,10 +253,6 @@ public class FacilityService { public InspPendingFacilitiesOverviewResponse getPendingFacilities( GetPendingFacilitiesFilterOptionsDto params, GetPendingFacilitiesPaginationOptionsDto pagination) { - if (params.hasDuplicates() != null) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.IMPORT); - } - // early validate page request params PageRequest pageRequest = pagination.getPageRequest(); diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesFilterOptionsDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesFilterOptionsDto.java index 736d4bfc2e47efafc742882d476890f9ddce2b33..9dd9058492c5d54138a5110f3db9120262e088d3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesFilterOptionsDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesFilterOptionsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesPaginationOptionsDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesPaginationOptionsDto.java index 88a6a0f1dbb50cc3a54d0b185e89d791c934bb21..84a97384441d138aa79e40877540ba502e9293ca 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesPaginationOptionsDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/GetPendingFacilitiesPaginationOptionsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InsPendingFacilityInspectionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InsPendingFacilityInspectionDto.java index ecec448dab6fba867021281cafd32b63045eb246..1465dce33e1d3956223882a4e1f5b2e959904652 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InsPendingFacilityInspectionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InsPendingFacilityInspectionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityRequest.java index 766f4680ae3ec9e7cb6af39c89f0f73a64b45e83..e5ce799e50760beb7774dfbccd9f6dd04fa01863 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityResponse.java index e79db9a79dfa811a5f07c04c8717e0324a82e221..95ddffd718b39032b51fc9cc568297f458a24cbd 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspAddFacilityResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityAddInspectionResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityAddInspectionResponse.java index aacfd9ce1dababd37ac8f13962aebf784d3439e3..bb62a44f0a1dfa061ac57cdca1844680d5275220 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityAddInspectionResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityAddInspectionResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityDto.java index e0a15d08dd469d384b4b2a1f011e3b9a6acdabd3..0882c3df6b0375735b4912b240f527d97ce5086f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspFacilityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityRequest.java index 8876445717041819dd262508b9f7d914c86e0547..089ea013962db50634e9066194324b9ec4538d43 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityResponse.java index 3c694d91866881e190bd1349c4512ea265470bff..5e2083c0d5830957c5a8de941f2328e65d0a72a6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspLinkBaseFacilityResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilitiesOverviewResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilitiesOverviewResponse.java index 6d29015e990e077fe1211e7462044e80a2f997cc..d35f5c4ca2898edf5fa36b2f37eea03ea6127a01 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilitiesOverviewResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilitiesOverviewResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityDto.java index ff3c7b551ce40d9c69014045530ee9d4e176ab12..fedc30502024b579e02ef75268db59ba96f6c835 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityKind.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityKind.java index 251cfe14c94ea901a8571d3d98a4c7d515ea7d1a..54dd5c1c82afd171e0fa90f3dd5b660b8615fd88 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityKind.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspPendingFacilityKind.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspUpdateFacilityRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspUpdateFacilityRequest.java index 21e56ebb989797ee85cd79540b5ffa861050b669..ba1f14dbdf6ac50ba30a608cc7f65f84e49cc005 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspUpdateFacilityRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/api/InspUpdateFacilityRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/export/ExportedBannedFacility.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/export/ExportedBannedFacility.java index 55041a1d12d71c97803acf52b348333925d6ce2a..9030fa98667a77810d727f3164370ceb877eb6b0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/export/ExportedBannedFacility.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/export/ExportedBannedFacility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityExportService.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityExportService.java index 95f139f79c3058f3081b8e9b6da2ebf9f4133da0..1692209e036040ded89bdcdf43851413b2bac32b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityExportService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityExportService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityListColumn.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityListColumn.java index f90409eb65c1f39b59de66fbe69611f704a5635d..4c643e2a6373d74c2e5da96d9b7472ee677a5e2b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityListColumn.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/export/FacilityListColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/Facility.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/Facility.java index 55fbb7bd79abe3556c5975bffd1b180409a86833..6358f91eed71e8dd9dac7e3ce09ade682352d561 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/Facility.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/FacilityRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/FacilityRepository.java index 71cc461c1d5fedfe7809a4d48ddeff78762fb625..8b41fa7a27fdc6e729e3b344623c5cf5edea16c6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/FacilityRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/FacilityRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/PendingFacilityView.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/PendingFacilityView.java index 11820d533b7f33a4c1b4a6d759b98248d17e1ce5..7cdd7bb00888c3dcfd992e59e95369a56d4b9151 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/PendingFacilityView.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/persistence/PendingFacilityView.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SearchParameters.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SearchParameters.java index ab878e933f7eb8e4d9c5c7fa2a469d3aaaec8d87..fb0f9243855aae498a780b6a2ad103401afcb73b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SearchParameters.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SearchParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SecurityHelper.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SecurityHelper.java index 6fc0b345b5601e311fa250f931d208901a6395c1..d696dd583c74ed889572b1c59ff482656c6b67f0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SecurityHelper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/SecurityHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchController.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchController.java index 76fded90ea7273eecc511f76d423f84e831ece31..ed8f65d122bbc1df63bd7544dadaf2ce5dd0c568 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchExpressions.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchExpressions.java index 54f34f8d7267e74d4508dcabdb765964e055daed..69e67ba6a2f7aaab6611793fa18eebf2f0c0ca86 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchExpressions.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchExpressions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchJob.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchJob.java index aad9e6afa26a54eddf96aae02d8ea1c1a8e8998b..59f82de4762d46a70c01bcaadd8121e7112ff07f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchJob.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchMapper.java index b3a91c607e41dab030f66fbff8e11c0934cda9cf..23968b7e43b1e0ca7cfd7c1e99aa4a55a927f3c0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchService.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchService.java index d6ba615dc85fbc32f63a20d6224b985aa6aacd69..ba3c122ef6c8a1759e22d4f73bffe572b5808529 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/WebSearchService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/UpdateWebSearchEntryRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/UpdateWebSearchEntryRequest.java index a2ef1bbf4eb28795b819ddcd7aaec4067aae2874..badc7ed6f578053cd798f4efe2d67017217264e7 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/UpdateWebSearchEntryRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/UpdateWebSearchEntryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchDto.java index df3a98673c1371e15b05fe3bdabb2676658f6ce0..258624a55af4af18b19ee87731bb94298d709f30 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntriesResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntriesResponse.java index 35ba7676b747b5f809123ff1f810c8cfa6570248..f3ef345d66f5bdc5e653aafad760cc7682cd7fcc 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntriesResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntriesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryDto.java index c5366b388bf0fae2d0373fe55cc70d87c2087d24..14b0c9b2e6760be823d045bf55afa21ee2d00278 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryStatusDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryStatusDto.java index d1d44063e41b9560b0a313be8377fc367d5a66ec..200d5d7523e5f07e9747348441166218d5d1d8db 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryStatusDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchEntryStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewEntryDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewEntryDto.java index 9e967bcc13e62633632cf33750e7fce34813e24c..628b8d9a7585d36ac95cd682d1431b41b21d44e3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewEntryDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewResponse.java index d5e54bbda98014a07f584a0bbd97c8645716e14e..2eea088aca14b2b2006f4324366eba9c0d749807 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchOverviewResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchQueryDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchQueryDto.java index e943e605bde98c62c58bc25b22cf0aa1a91bb271..552964983b1ccbc94a17a981165d78bb91488e87 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchQueryDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchQueryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchRequest.java index 8639dfdf80d0d6652720c832942cfd688b433e38..ddbf935aa37296e801d078a1fdd116540850eb81 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchSaveQueryRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchSaveQueryRequest.java index 8211f1368d29e83c7e612c682d4e90251a5dac44..20918319da08b0739fa480d55131dccd43ed090f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchSaveQueryRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchSaveQueryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchStatusDto.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchStatusDto.java index 195841863bf92faf6bd32b6f4980fbe176099b44..3aef22c137cddf0befedeb8906eb42de3fa07186 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchStatusDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/api/WebSearchStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearch.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearch.java index 56edf46a8ae246dbd2bb4cda9d6795e61825f574..73893fbef737ff602aca3e9d16b21cf6b562ab65 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearch.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearch.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntry.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntry.java index d8449a70b7eaf06039ced043f5a35704fdd945bc..0dfdd260e50c75281f1e85e544b16cffa6a20831 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntry.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryRepository.java index 64b38317451fa5a21108140700303366fa8fa1b5..23d7d8051070320f677df7b8f4f2163c980284f4 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryStatus.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryStatus.java index b3a5c5baf9a8a0644f97280b84624acef915c220..2c36f5a60fe8c7eecbb8f3df18f8fdab15d230d5 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryStatus.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchEntryStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchQuery.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchQuery.java index 966467fd193cbaa2f1a1158bfde2e45b556bff3a..7228db77fb4f6760b82a1d06452b28c4eb70d428 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchQuery.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchRepository.java index 0e22226d63220c64d270cb6f9bbe1c4cfc909765..052e5430a5327fc2f64c00ce82f87a3523d203f8 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchStatus.java b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchStatus.java index 7e6f40de7ee0145ca011604d73944235f1b216ab..b0685a6a055818962193888092360c2782f49ba0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchStatus.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/facility/websearch/persistence/WebSearchStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeature.java b/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeature.java index 09d967373100ddea00f5f98af3c2d560ca76c2ff..0bba287f8a5d3aa949552f7962839af80edb1550 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeature.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,4 @@ package de.eshg.inspection.feature; public enum InspectionFeature { OFFLINE, - IMPORT, - STATISTICS, } diff --git a/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureToggle.java b/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureToggle.java index 72eada1be9a9b0beefd18ad036d5bea83359529d..737ac7788a270bfc34acbb07a07a9c589571eec2 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureToggle.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureTogglesController.java b/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureTogglesController.java index 18222c4e684f3d659320288b625543cb165af370..2607cad1d062aeb44eb7a2eeec367fa8a1024dda 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureTogglesController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/feature/InspectionFeatureTogglesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/feature/api/GetInspectionFeatureTogglesResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/feature/api/GetInspectionFeatureTogglesResponse.java index 0232de710d6e859c16519c54ca3123c3a20f5874..553d4c23df2d5dc75f2aff3c3c913bda6486ea9a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/feature/api/GetInspectionFeatureTogglesResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/feature/api/GetInspectionFeatureTogglesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/gdpr/InspectionGdprAdditionalZipFilter.java b/backend/inspection/src/main/java/de/eshg/inspection/gdpr/InspectionGdprAdditionalZipFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..6e8d19cee2e4f436bfa4c88295fca5427b27f322 --- /dev/null +++ b/backend/inspection/src/main/java/de/eshg/inspection/gdpr/InspectionGdprAdditionalZipFilter.java @@ -0,0 +1,38 @@ +/* + * Copyright 2025 SCOOP Software GmbH, cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package de.eshg.inspection.gdpr; + +import de.eshg.domain.model.serialization.ZipFileWrapper; +import de.eshg.domain.model.serialization.ZipFilter; +import de.eshg.lib.procedure.gdpr.GdprZipFilterProvider; +import java.util.Set; +import java.util.function.Predicate; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; + +@Primary +@Component +public class InspectionGdprAdditionalZipFilter extends GdprZipFilterProvider { + + @Override + public ZipFilter createSpecificFilter() { + return (jsonNode, zipFile) -> + filterFiles(zipFile, InspectionGdprAdditionalZipFilter::isNotReportPdf); + } + + private static void filterFiles(ZipFileWrapper zipFile, Predicate<String> predicate) { + Set<String> fileNames = Set.copyOf(zipFile.getFileNames()); + for (String fileName : fileNames) { + if (predicate.test(fileName)) { + zipFile.removeEntry(fileName); + } + } + } + + private static boolean isNotReportPdf(String fileName) { + return !fileName.startsWith("Begehungsprotokoll-") || !fileName.endsWith(".pdf"); + } +} diff --git a/backend/inspection/src/main/java/de/eshg/inspection/geo/InspectionGeoController.java b/backend/inspection/src/main/java/de/eshg/inspection/geo/InspectionGeoController.java index a555d893317377193408482506c077e7d837bc63..bb81f57a2a6173771d7366521c9b12aa72e0fe6a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/geo/InspectionGeoController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/geo/InspectionGeoController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApi.java b/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApi.java index fde9bd13fcf69db72e2d749286df16b7a53c2880..9784ffaddb06649666563249a1a0c9c7591d20cc 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApi.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApiImpl.java b/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApiImpl.java index 1f94e2c6184ed617ff61230bfe81b36fefe35a08..1588a5dbf4f458d187e853b739dc82e40eb1f2b3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApiImpl.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/geo/NominatimApiImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponse.java index 497dd0d71c621e59f6949ef2205ba09c41cf7454..79196e29e1e6569d0d40f001d1705a979bfb574c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponseLocation.java b/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponseLocation.java index a05ab5753b9004c9698c9d7ae52d7ed5b5e9f9c7..75c8665302f35166622de48d6ef5058045211f8c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponseLocation.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/geo/api/GetReverseGeoCodeResponseLocation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/geo/api/NominatimResponseItem.java b/backend/inspection/src/main/java/de/eshg/inspection/geo/api/NominatimResponseItem.java index 25da1c22f3d9cd2118cf85de78eb8fd3355ec8ab..a96a380e66a7251f84b1630ac0da3a7b289e9caf 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/geo/api/NominatimResponseItem.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/geo/api/NominatimResponseItem.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/FacilityDtoMatcher.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/FacilityDtoMatcher.java index 91a966d592f5d83ea697b8baf432af178c416732..fb29ce2c6a9c3e0cae6c7d121a00ccd7eef003af 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/FacilityDtoMatcher.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/FacilityDtoMatcher.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspection.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspection.java index fb9476a28483146b8087aa24884895fb235bb14c..b7cf3f16e1ca45d36c54e6605bd50994633cd9bb 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspection.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspectionFacility.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspectionFacility.java index a9deb3668ecd627f051ab77047e2e9c9954c2f05..7495264e5f8a7d88e36f0f753357b8ff645279fe 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspectionFacility.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportInspectionFacility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportPersister.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportPersister.java index 3cf5f32cb22200e9997a22c09ba21a9e96829e6e..91a7ae80c25a21719350b88a0b99b8cd09f1c90a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportPersister.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportPersister.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportProperties.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportProperties.java index c7f57ef4158f975d15c6a63672a11b7b5603de51..f2582fe32b04b6bbaa37de51d6d15981f0096353 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportProperties.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImportProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterController.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterController.java index 11de94cb8a798f074c48e4aa23032c5f156b8bfd..c8e0255f55c5dd8bba42f9edce791db0b7da428d 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,7 +8,6 @@ package de.eshg.inspection.importer; import static de.eshg.lib.xlsximport.util.FileResponseUtil.filename; import de.eshg.file.common.CustomMediaTypes; -import de.eshg.inspection.feature.InspectionFeature; import de.eshg.inspection.feature.InspectionFeatureToggle; import de.eshg.lib.xlsximport.model.ImportResult; import de.eshg.lib.xlsximport.util.FileResponseUtil; @@ -63,7 +62,6 @@ public class ImporterController { @Transactional public ResponseEntity<MultiValueMap<String, Object>> importProcesses( @RequestPart("file") MultipartFile file) throws IOException { - featureToggle.assertNewFeatureIsEnabled(InspectionFeature.IMPORT); ImportResult result = importerService.importProcesses(file); return FileResponseUtil.mapImportResultToMultipartResponse(result, filename(clock)); } @@ -73,7 +71,6 @@ public class ImporterController { produces = CustomMediaTypes.APPLICATION_XLSX_VALUE) @Operation(summary = "Get the XLSX inspection import template") public ResponseEntity<Resource> getInspectionImportTemplate() { - featureToggle.assertNewFeatureIsEnabled(InspectionFeature.IMPORT); return FileResponseUtil.getTemplateFileResponse(importTemplate); } } diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterService.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterService.java index aaed2a87863e430d9f32380bd3548f3f0d892e0e..1475aa261ffdd528ec9375f1ac0823c64bbfb145 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/ImporterService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporter.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporter.java index 7835d0ad00347a8b77478c6d61ab977965d7e103..0dd1ad95e85b79f79ac69cf1e178877ab1085f29 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporter.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporterRow.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporterRow.java index 9b78a2afaadcfda63e6f00f2b42a6f174e07f8f4..7ad275348cebf0f3785413bcbff47049144a72a1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporterRow.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionImporterRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionListColumn.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionListColumn.java index 1be4162566be6f7866fe0f6c5beb5a7c2ed2127d..a798c66b6906b2b0b0328473297319a42724ece5 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionListColumn.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionListColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionProcedureRowReader.java b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionProcedureRowReader.java index d736f739c4a017daf5138dc8f04707a0bdc21edc..a41f1311c50a0a2aa73a015fbce673acb1b151f8 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionProcedureRowReader.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/importer/InspectionProcedureRowReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inbox/InspectionInboxProcedureController.java b/backend/inspection/src/main/java/de/eshg/inspection/inbox/InspectionInboxProcedureController.java index 927fdb3ad624b9c308d741f976b24e4f4ffc9cfa..8ec74bc7839f1591a7258bb2c48eb7605ea15169 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inbox/InspectionInboxProcedureController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inbox/InspectionInboxProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentController.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentController.java index a7e501d79980b0156a0eadd02e534dbda1e47766..3d9e03ad66b6e19a0c3b7399cd43d7d1f0d843a8 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentMapper.java index e140546fc9088fe17b56226488ce8800b22674f8..ae5069fb5e8f609bfee0e560728bb42f09f20ad3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentService.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentService.java index ebcb2ea42c62602794152b8ed415dea112b28c21..c7c95ff9b2ab244532e07fb97b8bc21ee728e74f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/InspectionIncidentService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -121,8 +121,7 @@ public class InspectionIncidentService { return inspection.getIncidents().stream() .filter(inspectionIncident -> inspectionIncident.getIncidentExternalId().equals(incidentId)) .findAny() - .orElseThrow( - () -> new NotFoundException("Incident not found for id: %s".formatted(incidentId))); + .orElseThrow(() -> new NotFoundException("Incident not found for given id")); } private static void adjustPosition(List<InspectionIncident> incidents, int deletedPosition) { diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/CreateInspectionIncidentRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/CreateInspectionIncidentRequest.java index b6f2542b078a1412104405cc547977ab0ee71cc6..5b879266e937d523e0a304e16fc3895616313798 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/CreateInspectionIncidentRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/CreateInspectionIncidentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/GetInspectionIncidentsResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/GetInspectionIncidentsResponse.java index f32d4cf79a8cf1b26a74a2c4c456e3683a197d9d..c85ea05ffb77568befb39e4fb76221e07a83caf4 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/GetInspectionIncidentsResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/GetInspectionIncidentsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/InspectionIncidentDto.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/InspectionIncidentDto.java index b0a29936867a23834615fe4652a3716e6da48a32..254a5506406b87a1eab0ee1e2cafcc2203d55245 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/InspectionIncidentDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/InspectionIncidentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/UpdateInspectionIncidentRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/UpdateInspectionIncidentRequest.java index d9eedce94cab0bee2f66a82808adc7ae92ea555d..ad418c1c40d041dff549426ef05124abb0650198 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/api/UpdateInspectionIncidentRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/api/UpdateInspectionIncidentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncident.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncident.java index 2798cdd78159da9e01f5d0c525c04c95e392ca18..331e64993f7f266b43ee15a918d19ff81eaa057c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncident.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncident.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncidentRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncidentRepository.java index 69b122859e5cc144a28c922d4e079a3fcaf57f2e..f1673d1ca4c52547732ffb38e7fb9399d5d454da 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncidentRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/incident/persistence/InspectionIncidentRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionController.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionController.java index 1d694bb131af4f19cfcfd95cbd5133581fcb8faa..b24b5256dfc4142f55a96bc54eaa3e929cd1839a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,7 +8,6 @@ package de.eshg.inspection.inspection; import static de.eshg.rest.service.error.ErrorCode.INSUFFICIENT_USER_RIGHTS; import de.eshg.base.centralfile.api.facility.PutFacilityRequest; -import de.eshg.inspection.feature.InspectionFeature; import de.eshg.inspection.feature.InspectionFeatureToggle; import de.eshg.inspection.inspection.api.*; import de.eshg.lib.auditlog.AuditLogger; @@ -198,7 +197,6 @@ associated reference facility public void resolveInspectionDuplicate( @Parameter(description = "The id of the inspection") @PathVariable("id") UUID id, @RequestBody @Valid ResolveInspectionDuplicateRequest request) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.IMPORT); reviewService.resolveInspectionDuplicate(id, request.keepInspection()); } @@ -207,7 +205,6 @@ associated reference facility public void resolveFacilityDuplicate( @Parameter(description = "The id of the inspection") @PathVariable("id") UUID id, @RequestBody @Valid ResolveFacilityDuplicateRequest request) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.IMPORT); reviewService.resolveFacilityDuplicate(id, request.chosenReferenceId()); } @@ -215,7 +212,6 @@ associated reference facility @Operation(summary = "Get inspection duplicates of an inspection") @Transactional(readOnly = true) public InspectionDuplicateReviewDto getInspectionDuplicates(@PathVariable("id") UUID externalId) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.IMPORT); return reviewService.reviewInspectionDuplicates(externalId); } @@ -223,7 +219,6 @@ associated reference facility @Operation(summary = "Get facility duplicates of an inspection") @Transactional(readOnly = true) public FacilityDuplicateReviewDto getFacilityDuplicates(@PathVariable("id") UUID externalId) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.IMPORT); return reviewService.reviewFacilityDuplicates(externalId); } diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionFinalizer.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionFinalizer.java index fdb014ab4f884361731232fda5e9c6a6118667cf..8e8452541d758095bf85761b44be103122dbdfcf 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionFinalizer.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionFinalizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -348,8 +348,7 @@ public class InspectionFinalizer { Inspection inspection = inspectionRepository .findByReportId(reportId) - .orElseThrow( - () -> new NotFoundException("inspection not found for reportId: " + reportId)); + .orElseThrow(() -> new NotFoundException("inspection not found for given reportId")); if (inspection.getPhase().ordinal() < InspectionPhase.CREATING_REPORT_AND_INVOICE.ordinal()) { throw new BadRequestException( "wrong phase; expected: " diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionMapper.java index 136ac9e42fe03dad08d4821867993ab88ff5bee7..54aaadbf1792ea1d350acb0c270d7a5867fbc5b2 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionService.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionService.java index ee90a5ea11d7766f6777b8362e184fabd2d2cb0a..bff1cde16d4bf78c3281bbac13beb4e56ffa3700 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUpdater.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUpdater.java index c20c617af495b61c1316ada5e363126ffc506661..3510dad9eb51dfa139a1d6edd63d83d7d959c8b4 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUpdater.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUtils.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUtils.java index 633c77588de59bdd06c25979ce22b26bcfac1c2e..f83664af71a142425861435245fd17e651f4454b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUtils.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionValidator.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionValidator.java index 4875544610cae67d8337126c55a33bee6efd4151..ce5d353baa635e385c8b3342f729f9710549c62e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionValidator.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/InspectionValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/ReviewService.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/ReviewService.java index 71a15acec05750953357ca46f781cc78f8fe6751..20f390a9768a5747c99635661dff44c3e3f84f2b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/ReviewService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/ReviewService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityDuplicateReviewDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityDuplicateReviewDto.java index 5843fc061792f60a0c4458db5f86689c86b92fbc..4a588848d931b8ae07d227535e4443e0d065ef32 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityDuplicateReviewDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityDuplicateReviewDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityForDuplicateReviewDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityForDuplicateReviewDto.java index c0cf01245af25181bed6a34f40d66edd9985c9ae..f16ca1ffea44ea7e6daeb67d03d897d6b1e0080e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityForDuplicateReviewDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FacilityForDuplicateReviewDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FinalizeInspectionRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FinalizeInspectionRequest.java index 4c2468df93f61bf4433e467e38e34fc868081f10..645fda1e94fb7ffd9333d0178aad4d2994cc3ddc 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FinalizeInspectionRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FinalizeInspectionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FollowupType.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FollowupType.java index 19aa3bc37e878d770a9cfc7d7a8cf89f39a44455..87e7069f49c8caedf3706f89f5adecce210d21c0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FollowupType.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/FollowupType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementDto.java index 31031310c0e3eb919635e364cb718ec4b16f7265..8724205949a2cc950fd1b1cdb856588115f09d8c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementType.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementType.java index f239a1ae0121154b6e6676c3c57a05d21801b248..e54a1ca2993750156d98d18b599ac8bc5cfafea1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementType.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAnnouncementType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAppointmentDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAppointmentDto.java index a20ab596375e04d9c639cb376920f572b959302b..cd714c89493bf23a98f26ad65b6d0207853ae85f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAppointmentDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAppointmentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailableCLDVersionsResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailableCLDVersionsResponse.java index 5446c2f34c47c6c11b01f2e87e87497e0af8c3f0..95c3b87b73c0dfcb73e3a79cbadbb5c22f6dbf72 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailableCLDVersionsResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailableCLDVersionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailablePLDRevisionsResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailablePLDRevisionsResponse.java index 1146912521605badb8f3d5fc8d61539f0bb62b4d..fb37729fb1a49ab0039df560aa9d377bcb0c05de 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailablePLDRevisionsResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionAvailablePLDRevisionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionCLDVersionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionCLDVersionDto.java index 336e690a754970e8f557fd1eb87e0897899277d7..66d8fca836f20876d7564beaf729db8606fff3e7 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionCLDVersionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionCLDVersionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDto.java index 34a2ae752b80fbcc23a8f6c9270c84ec9b36affc..fb37955f97d6c79e7a379090a260b04e4bd31cce 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDuplicateReviewDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDuplicateReviewDto.java index 166cb8b7d6b5ea868f9885b7cd04f51f86aac273..a56e14c080f2148be02399d0dda68061686e8cba 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDuplicateReviewDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionDuplicateReviewDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionFollowupInfoDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionFollowupInfoDto.java index 1db5131587c77bf9a2d852febed343cb00db5322..1a3f504ba76a419954b9cdb30748b129878f2c48 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionFollowupInfoDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionFollowupInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionForDuplicateReviewDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionForDuplicateReviewDto.java index aa8e3c660629881855b616e9b0b45ffcd06453c3..8ef1fb8dbb191d7678be592be4127a11dd5bd60f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionForDuplicateReviewDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionForDuplicateReviewDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionInventoryDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionInventoryDto.java index d0805dd730f71016605f6bccf25ec426a6b6f977..a31837d1d2549e7fd24f087b2e385b4ee114e539 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionInventoryDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionInventoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPLDRevisionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPLDRevisionDto.java index affaad0392ca8dacab3ad3141ed45d1d0777b93c..68cf4c4b72d59d1c8f331023c220fc30275a9d8a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPLDRevisionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPLDRevisionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPhase.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPhase.java index 62fa9e9dae77261cc1cf2b43630dbf6f0c84bb50..e921a458094d6406bbb980efb97e01bed6e0ed36 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPhase.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionPhase.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResourceDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResourceDto.java index 5c9b2a828b8ae9bb9a25cd1c28a5e22fbab7cffb..9dca7af0f7a700b7156e9ebbce951e3542e8968b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResourceDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResourceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResult.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResult.java index 17e15311d823dcf55451e1a46f6e852a3e93b86f..8042b3332b4c7a07a7125826873e12578d456b35 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResult.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionSyncFileStateRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionSyncFileStateRequest.java index b61798cce171657f8dbe55029c61d1fc9410e6d6..25c0cf7086a209e3a4e82f25bc34f01eadd77b5e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionSyncFileStateRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionSyncFileStateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionTravelTimeDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionTravelTimeDto.java index 7dd1d74696602716bceca7a5b8b40ada34fb58ae..19eb0b3998e01f13c13124cc7b37a9576772eab5 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionTravelTimeDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionTravelTimeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionType.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionType.java index 909fc52141c310a074ba88e4c7690308c2293a44..5fd156c76721088fec46be87179f38d0c89d938f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionType.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/InspectionType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveFacilityDuplicateRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveFacilityDuplicateRequest.java index c75a7f1889f02e4d7b486c8180a4bc7753664dd9..b1db8797410a73679c3d15b366792918c812cd30 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveFacilityDuplicateRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveFacilityDuplicateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveInspectionDuplicateRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveInspectionDuplicateRequest.java index 2f5b72c91296057f62cd5d6c9d64725856938c08..1d2eb53355195335933bedd5369dc90323e8d771 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveInspectionDuplicateRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/ResolveInspectionDuplicateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/StartInspectionRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/StartInspectionRequest.java index 750104299444088c40f6ecc74a6dab7c0dbc9987..c361ee57f0838069ea9182cdcb419c982ee0c105 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/StartInspectionRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/StartInspectionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAddResourceRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAddResourceRequest.java index 8ccbee80edb19574a123ae384e1e2aa574eedd97..8a414eb40744845fb7707283205fffa0087c3026 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAddResourceRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAddResourceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAppointmentDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAppointmentDto.java index e2abdc4f03859a100123db7645aa8901cfed5a8c..7c4776811f0e3cf9c1bd9a9e21d8e5f29fcfd577 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAppointmentDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionAppointmentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionModifyInventoryRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionModifyInventoryRequest.java index 4d78e8f621a146fb2f88028af98be7cb29246955..1455da6153b773166300b6bcfe9effd0f4e20bbe 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionModifyInventoryRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionModifyInventoryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionRequest.java index d56a42df0d70551b735d7f7a9282bfc35cf8c233..c9aa3435e2f1f33d37a3c2a0a54e60f1b92d897a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionTravelTimeDto.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionTravelTimeDto.java index ebd6dbf582cd81021328f242ea99bb9401a203fd..fb3d7de6823b1c93362c15698eebdec112dcd065 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionTravelTimeDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/api/UpdateInspectionTravelTimeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/Inspection.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/Inspection.java index 24dfc79c9ee82fc7d78d3cb2161161c0b2de6b03..91b102049f548e0395900083bf63c8f1d36acf0d 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/Inspection.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/Inspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAnnouncement.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAnnouncement.java index 85b0d1c82800099a6a65addd3384e4a3c0143803..72a05805c63aad15763804e8421a6a1c04a96c23 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAnnouncement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAnnouncement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAppointment.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAppointment.java index e12bd656973e42c7d14db2b19caa61cd45f57d3c..f291057942c026867793f78061cf6206a6e13ec3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAppointment.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionAppointment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionInventory.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionInventory.java index af514b00a7eeaa26c8cf8651d9e12379e6991a02..d4239dd32c5c7e87ddf98cab8bdd54cc7b50c13b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionInventory.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionInventory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionPerson.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionPerson.java index 583600c6cb3e59d87e18cac04612da7aed3e9c41..f737cde8c36d1baacfbf49fb36b76dc3d560ba09 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionPerson.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionPerson.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacility.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacility.java index 0d1da79822f7f2a62c19c46c18edd439d8e9a9f3..03a6751e0e356a4b9d818dfe1068e330b5b6c058 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacility.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacilityRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacilityRepository.java index 23aa6ace1faf2268df94e265324326a23697a9ad..863986a7c81ac2d9a8d498d1eec99c9b47e6721d 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacilityRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRelatedFacilityRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRepository.java index 4040dd3fb0ab9ff9e9e464dcf2ae80cbcb9a6aa0..a0a44ab166a6dd1aa5548716b3fff38d36a03eda 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResource.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResource.java index 01c202d4e209877f86ae14bed2ea6b1e77d55654..9ce59753505491c937c8412b29dd1e21af22529a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResource.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResourceRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResourceRepository.java index 5c1f123da1974c157eb5eda9bbe41f605633ff88..c124fc06a1b8087f1b63dcda6488c89a7e345b98 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResourceRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionResourceRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTask.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTask.java index c448da1546408a2ff00b0b466af7068df745a8c5..1a9543af2325517260f05e869bfe69a05266c6d6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTask.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTaskRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTaskRepository.java index 2410e6afc69ce52cc88778b81ba60e858cbfe1c7..41fbc6513ddef53725acd55a0e8e282311e2530c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTaskRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTravelTime.java b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTravelTime.java index 0b53b82a09cd9dba35c8e10049e2beb1103ec63a..8193bcf80f6861d8ac5f57e087bc7a6f144dfe6a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTravelTime.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/inspection/persistence/InspectionTravelTime.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeController.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeController.java index cd2c218edd4d12cbc866c6305f1eac8fff8e83f1..d10ab3b84870d500442a0be1749af6c0fa009551 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeMapper.java index f875e1b467bde99db9a77128382d13bb33509596..f6be50e0fcbc889cba2c5cf0ffc3acf66dff28dc 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeProperties.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeProperties.java index 98331f30f252507a3cd70f5b3f1861b50f0e6d55..1c902d91844b21a0fcc79da302a5f9f8e9060024 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeProperties.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/ObjectTypeProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/GetObjectTypesResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/GetObjectTypesResponse.java index 5c4f8c120828e4be2cbcc6537e7e5d0a27957a6c..3963d8abaf4e08a3740524b249fb4ce748ead83a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/GetObjectTypesResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/GetObjectTypesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeDto.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeDto.java index 461dde031065b360486ede5ed47951ed7692e8a7..016ac14fcc682b0d75e8a050be42e454145ca46f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeRefDto.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeRefDto.java index 95f5edccd2f693ef7f735d3d6c5dcd44112eed00..61a4410ac4264d06657c5b5824f707675ae8b609 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeRefDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/ObjectTypeRefDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/SingleObjectTypeResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/SingleObjectTypeResponse.java index ec45324d4cf85d07e38da0af01c814242aeb3751..3c7f2149986a86fcd2ff11b4f57d2ef96ec1935b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/SingleObjectTypeResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/SingleObjectTypeResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/UpdateObjectTypeRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/UpdateObjectTypeRequest.java index 6f8b236b75c537581cff213851eb38899d66fa26..68aa5edd80153a31b21c550c286a28f69ffb0b79 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/UpdateObjectTypeRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/api/UpdateObjectTypeRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/CreateObjectTypeTask.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/CreateObjectTypeTask.java index b800ea2e8afd313d8f07e187961a116561427c88..fa3602c73f1db395cfe7829d835d75c81e28f3a6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/CreateObjectTypeTask.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/CreateObjectTypeTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectType.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectType.java index a4691939eacaaf09c583043a45842efa548d1136..260121e5da8b4cad9e503ee65740cdf6858c8771 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectType.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectTypeRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectTypeRepository.java index 81b6bfe30b3abced015e7e3aa5dbbd845c401a52..30590cf28e255df160f2eeb734635977bcf57b38 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectTypeRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/objecttype/persistence/ObjectTypeRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistController.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistController.java index 509f496b2d9482c4cc48d1314f30d530bce19ab7..50ac407cc05d8408a7aeee931f03ff8f800348c9 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistService.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistService.java index 83c367bfaec198149eb5cc62f321d533df232e12..6435ae3762ec3fc8462bab27b0868359db2f07f0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/PacklistService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/GetPacklistsResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/GetPacklistsResponse.java index fc7564525ed251d5dab3f2b38d79ce252879233c..1a2880d7ef2580d7b09f279cc7d48b36782197b1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/GetPacklistsResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/GetPacklistsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistDto.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistDto.java index f5390ef796bd254feb92f85e9e811a08dcf418df..06a1f5f040f47b0bb97392bebb7d6a1a98ccfdf1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistElementDto.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistElementDto.java index 1bdd14defc4f18c58e73b28e471ff2de230d1d9f..8f3d1550a0ccb30e0833a2a226703b307e798306 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistElementDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/PacklistElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/UpdatePacklistElementRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/UpdatePacklistElementRequest.java index c75eec2954d0ad358ebef83c49435d1bcd7604b8..e5d5e41aee9392b2c7c56f75935ea0dd365a8505 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/UpdatePacklistElementRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/api/UpdatePacklistElementRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistDtoMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistDtoMapper.java index a2ebc12663dd8cd4adb591dc7eae93bc805083cd..251ea6512da1c363f33b76d60a37e1b90d210216 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistDtoMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistDtoMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistEntityMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistEntityMapper.java index 0c1c53989da0d3b10a2e6527ca294636a66f7cc9..fe59b259f14ce5c4c84e02c3a770f2c7f78453aa 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistEntityMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/mapper/PacklistEntityMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/Packlist.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/Packlist.java index 36677575408cf4f379a4e95f0f82b0e2e836fd9c..05be211f87580628ecdaaca14fca6454353b9b3a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/Packlist.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/Packlist.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/PacklistElement.java b/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/PacklistElement.java index ee20559012deda6cf08e5c2671430ee9c354e655..ac9e6a509633a55efbdd012adb961e014866bf5f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/PacklistElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlist/persistence/PacklistElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionController.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionController.java index 968ff127d88383ce1d42d56277c420cc26ab410e..61003ad995e914b4467177e54bcb93fa3c5b3f91 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionService.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionService.java index a184c2cdfabc60e6ab8f27ea46c6bd09998dea6e..cfbcc3b2e4a145f9b7c7b6c29a862ce78a21bbe4 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/PacklistDefinitionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/AddPacklistDefinitionRevisionRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/AddPacklistDefinitionRevisionRequest.java index dee8c1b5a56aaa305f054449cdc6315d89723f0e..5ff2f004ee618dee15491e73a94975ac14efbc77 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/AddPacklistDefinitionRevisionRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/AddPacklistDefinitionRevisionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/CreateNewPacklistDefinitionRequest.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/CreateNewPacklistDefinitionRequest.java index 526a5786fbd7446ccfe4035dd47ab3a5b9d3235b..07e46b93d960629c668ff5a9f9a4a7fe37227290 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/CreateNewPacklistDefinitionRequest.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/CreateNewPacklistDefinitionRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionDto.java index 69258e2a3ecb65108fce11074025fed3babdd2f4..9207f20591a069568740ebc1bf88bba02b3c4355 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionElementDto.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionElementDto.java index 05cfacf68ab98efeb8713cca37486b9bbb3b6f8f..d10642af955cf28318fb779b739b6a7cc9f4b0c1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionElementDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionRevisionDto.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionRevisionDto.java index 7e89fb927a1f5e7624a9d3d29622928b976e9499..f37aaa4240f009ff58301434e7cc5b6b27cae861 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionRevisionDto.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionRevisionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionsResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionsResponse.java index 1e02cda6984123f26e33e22407354f5f05594422..1d62c8c9e0b8e0ccf8e876adbe8e9d6f05acf08b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionsResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/api/PacklistDefinitionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionDtoMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionDtoMapper.java index 1eae2ec30840640f1f4406509d658afeef7a2d3c..51fbc9e89677beb38e05a3b094410679c08cf232 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionDtoMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionDtoMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionEntityMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionEntityMapper.java index 69c2cc7d4a84660417b211bdac1870e25d12f750..51984b3ec78f550aa8bffcb700ee5b73dd19873b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionEntityMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/mapper/PacklistDefinitionEntityMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinition.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinition.java index abb80153167129debfa203f64db9b7278a1e0de6..e02164afd2a0de0af1265c5290a38cb1a875002d 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinition.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionElement.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionElement.java index 1ff568838188d2821da53eb97ece4d8b5476954d..2bf573a7a82d0418f97018243f7142c31f9a7593 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRepository.java index 6d409b6f57ca534b0a8320e84b01d6f4a3ffc5e0..c7d7ff3766b629c810f9c83b9aaa3fe6cd8822a7 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevision.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevision.java index 84ed612bd92cae3ec69e7f0dcc983ce712678a1c..4bdb87a73686a2cf692c543449b24dd660500d6a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevision.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevision.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevisionRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevisionRepository.java index fcde1ec6aaff926806698f2675eb5fa6353afe2b..e742b54307398c24c1ec63095b71f9df1d21dde9 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevisionRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/packlistdefinition/persistence/PacklistDefinitionRevisionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/InspectionReportService.java b/backend/inspection/src/main/java/de/eshg/inspection/report/InspectionReportService.java index 0fe8e797bbd821d131ff668a8294be284dc5f061..73164f8c0ef09f42d75742608729eb0a071b9e46 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/InspectionReportService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/InspectionReportService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ChecklistReportMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ChecklistReportMapper.java index 1c0ac7a8fab11758651f947ec0cde433b6a8057e..9476f8db39e821e953416668d80d814babaf833b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ChecklistReportMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ChecklistReportMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/IncidentReportMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/IncidentReportMapper.java index 82daf1f186e57994eb6c02fffc09e18a33a81603..f8147d4046108761d40a8f2b45fa6680e1e14e47 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/IncidentReportMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/IncidentReportMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ReportEditorMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ReportEditorMapper.java index 9f10b273cc5f75c99df49759cdc098cba1c6a76e..ffd542592ca1ae8b467ef0f0a657aac267565642 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ReportEditorMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/mapper/ReportEditorMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/InspectionReportBuilder.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/InspectionReportBuilder.java index e1e89478d1f27b62cf12dafe4be002926d602503..e3870ecc33c63f76edc859bb8e660f2fa5a8377b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/InspectionReportBuilder.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/InspectionReportBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepAddress.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepAddress.java index de9b158196a0c8d373127b01c90e9167cdcef682..99ae7eab0eda1aa792a67e78f0ba285f51022d3f 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepAddress.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepChecklistElement.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepChecklistElement.java index 3b670fce4e231450d00662b7b0d118858fc11209..efcafa1465f6f33d7b0ce975d959165f93585ecd 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepChecklistElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepChecklistElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepContent.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepContent.java index 9184c2cc461770522d49b98ba8e96595e8649a4c..6064390a96365f0e5a8e0e104bb46327d070a5bb 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepContent.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepContent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepData.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepData.java index ae4fe656032596319bc811671d653985b4e7b403..0d6fd2773a55a5d38956604fc8f4c52fc051a191 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepData.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepFacility.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepFacility.java index 9405f5c59a2e82ef40ad102f258d9e041b8df254..3852043f792e6bce7ba43c0123182a7f63dfe8ed 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepFacility.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepFacility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInfo.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInfo.java index 7cfd7bc7d11524bc57fab1a68eed79cc26e4c765..fecd52cfb989c5f4a577c1b05c290e42bcb89b4d 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInfo.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInspection.java b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInspection.java index 7cb1ba8952f94056fe84b54d5c22b3cb3671e579..31c66364be80bbe2ca9739053960a42bc1892d30 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInspection.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/pdf/RepInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportElementRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportElementRepository.java index 790570863248ed3c8774ace3d7972dc4f2a51a89..fffe42e3ec275cd0cc966581a1dc45d529ac0911 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportElementRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportElementRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportRepository.java index 72ef414480d237a7f2e6a6ead772ca1aced4a4e8..ed02ada893626477850690cf29b7af4a80ea2f7e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionReportRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionSignature.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionSignature.java index abaeb71a763a81018d586d8d855456e3d6ee9feb..596fff79aa18273381efee0e2c4d9668e1bfce2e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionSignature.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/InspectionSignature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/Report.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/Report.java index 0344d90ff1ad773a06cc2fee01342c3297ecb0d9..66f6c181213124310ae2fb736fbc4243161e914a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/Report.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/Report.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElement.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElement.java index 363c7e70043d5c05bb89937a02d65eb449ab6549..60e2145547d5cfd5fb84a19c39e616a503fca101 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElement.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAnswer.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAnswer.java index 3ea9e21ff615e5a6c1fb4d1724ff613dbcf846df..a785bcaac49b27111a243ea9042ead19a4e48267 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAnswer.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAnswer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAudios.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAudios.java index 9d94d1a0bd037d77a79de18285a13556f9317290..faff2d6156070e1b0a2d695bdc1771ef62488e43 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAudios.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementAudios.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementChapter.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementChapter.java index b5366bd65023bed252d0481bf24e09caff6dba6c..20faee97184a344d1f3af3685deb9a9c5c0f24b8 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementChapter.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementChapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementFullTextBlock.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementFullTextBlock.java index d8c040c8bdbfb5e8472e73b4583a08c00965e636..5da67ecbe3100b8ec0b27b7f0f3b51e6730dde5c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementFullTextBlock.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementFullTextBlock.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementImages.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementImages.java index 9cbf35dc617e8aa336389dc6cce3c25a8fc5a04a..a3074dd24d211f2f1bb49a7d8c3c3f4cc7144317 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementImages.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementImages.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementQA.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementQA.java index 058a211f6cf691f38180dd88f63530454433f16d..7621a93e03e621f03f52161110602875f2ed6905 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementQA.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementQA.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSection.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSection.java index 379febab19f1388195904c2a2f19e4a390c912e4..c820339d0992dbf9244f5fc28e2098ec8ba6824d 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSection.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSeparator.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSeparator.java index 49f0ce4b32cd184eca76f6e6db8747d5fc53f22f..e6c0823d9c784d306c883877c54cf079b4fa7436 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSeparator.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementSeparator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementText.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementText.java index e1aabe7c7bd2864aa7903a6ca5a155be5653ae08..fa6b18c612859b09223510512d878a7414c9f6b1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementText.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementText.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTextBlock.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTextBlock.java index 9fac483ab40b9ed05a8874e3e2433b43e7e8c079..508fb5d16aa9991045cc8e6153193fa08d112b8c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTextBlock.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTextBlock.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTopLevelTitle.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTopLevelTitle.java index 7d295af6bf7e411370bd37a9f2ec6a1fc2fd6e34..8fa99d9b8fcb756542ab5f861526f001d33120e3 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTopLevelTitle.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementTopLevelTitle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementType.java b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementType.java index 5796964ee42772e154ae95b73f79529e269911a1..de0246061c4d52eaa6450abd04fc8f9281740db1 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementType.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/report/persistence/element/ReportElementType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/statistics/AttributeUtil.java b/backend/inspection/src/main/java/de/eshg/inspection/statistics/AttributeUtil.java index 136eac61c09e4a879b4a940589d8303f0c3e925e..80a46f503acfea2c604bb349fd8293cf8e0fc535 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/statistics/AttributeUtil.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/statistics/AttributeUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/statistics/ConfigurationInitializer.java b/backend/inspection/src/main/java/de/eshg/inspection/statistics/ConfigurationInitializer.java index f1d76449ea04d718b6e868b946ae83fe163879c5..4d4b92492b501851d1eb7c0df6badf2b95d856f0 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/statistics/ConfigurationInitializer.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/statistics/ConfigurationInitializer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/statistics/FacilityAttributes.java b/backend/inspection/src/main/java/de/eshg/inspection/statistics/FacilityAttributes.java index 7968e3ee731311d8de587cac45eb75f41251da54..cbc127a91696e8633aca4d9ec66b942d18c6fc5d 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/statistics/FacilityAttributes.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/statistics/FacilityAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionAttributes.java b/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionAttributes.java index 2ead24657f35d0bd3bf62983ce9b5332ef6a2b7b..62f812828067d59296deb51d2447f0b95f0630af 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionAttributes.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionStatisticsService.java b/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionStatisticsService.java index 0fa06d9bd38f4511d5cbe1f15b444fb984b2c125..91a447a30c6e08d4dc9f6cd817f05a79548841ab 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionStatisticsService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/statistics/InspectionStatisticsService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,7 +7,6 @@ package de.eshg.inspection.statistics; import de.eshg.inspection.facility.persistence.Facility; import de.eshg.inspection.facility.persistence.FacilityRepository; -import de.eshg.inspection.feature.InspectionFeature; import de.eshg.inspection.feature.InspectionFeatureToggle; import de.eshg.inspection.inspection.api.InspectionResult; import de.eshg.inspection.inspection.persistence.Inspection; @@ -32,11 +31,11 @@ import jakarta.persistence.criteria.Expression; import jakarta.persistence.criteria.Path; import jakarta.persistence.criteria.Predicate; import java.time.Clock; +import java.time.Duration; import java.time.Instant; import java.time.LocalDate; import java.time.temporal.Temporal; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.UUID; @@ -73,16 +72,11 @@ public class InspectionStatisticsService extends AbstractStatisticsService<Inspe @Override protected boolean isProcedureBasedDataSource(UUID dataSourceId) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.STATISTICS); return INSPECTION_DATA_SOURCE_ID.equals(dataSourceId); } @Override public List<DataSourceInfo> getDataSourceMetaInfos() { - if (inspectionFeatureToggle.isNewFeatureDisabled(InspectionFeature.STATISTICS)) { - return Collections.emptyList(); - } - return List.of( new DataSourceInfo( INSPECTION_DATA_SOURCE_ID, @@ -98,10 +92,6 @@ public class InspectionStatisticsService extends AbstractStatisticsService<Inspe @Override protected Map<UUID, List<AttributeInfo>> getDataSourceIdToAttributeInfos() { - if (inspectionFeatureToggle.isNewFeatureDisabled(InspectionFeature.STATISTICS)) { - return Collections.emptyMap(); - } - return Map.of( INSPECTION_DATA_SOURCE_ID, Arrays.asList(InspectionAttributes.values()), @@ -111,14 +101,12 @@ public class InspectionStatisticsService extends AbstractStatisticsService<Inspe @Override protected SubjectType getSubjectType(AttributeInfo attributeInfo) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.STATISTICS); return SubjectType.FACILITY; } @Override protected Object getSpecificValue( Inspection procedure, AttributeInfo attributeInfo, UUID dataSourceId, boolean anonymized) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.STATISTICS); if (!dataSourceId.equals(INSPECTION_DATA_SOURCE_ID)) { throw new IllegalArgumentException("Only inspection allowed here"); } @@ -129,7 +117,7 @@ public class InspectionStatisticsService extends AbstractStatisticsService<Inspe case YEAR_OF_INSPECTION -> getYearOfInspection(procedure); case OBJECT_TYPE -> getObjectTypeName(procedure.getFacility().getObjectType()); case RESULT -> procedure.getResult(); - case DURATION -> getDuration(procedure); + case DURATION -> getDurationInMinutes(procedure); case NUMBER_OF_INCIDENTS -> procedure.getIncidents().size(); }; } @@ -140,7 +128,6 @@ public class InspectionStatisticsService extends AbstractStatisticsService<Inspe GetSpecificDataRequest getSpecificDataRequest, List<AttributeInfo> requestedAttributeInfos, DataTableHeader dataTableHeader) { - inspectionFeatureToggle.assertNewFeatureIsEnabled(InspectionFeature.STATISTICS); if (!dataSourceName.equals(FACILITY_DATA_SOURCE_NAME)) { throw new IllegalArgumentException("Only facility allowed here"); } @@ -208,14 +195,13 @@ public class InspectionStatisticsService extends AbstractStatisticsService<Inspe return LocalDate.ofInstant(appointment.getAppointmentStart(), clock.getZone()).getYear(); } - private Long getDuration(Inspection inspection) { + private Long getDurationInMinutes(Inspection inspection) { InspectionAppointment appointment = inspection.getExecutionAppointment(); if (appointment == null) { return null; } - return (appointment.getAppointmentEnd().getEpochSecond() - - appointment.getAppointmentStart().getEpochSecond()) - / 60L; + return Duration.between(appointment.getAppointmentStart(), appointment.getAppointmentEnd()) + .toMinutes(); } private DataRow facilityToDataRow( diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataController.java b/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataController.java index d5f694ee1ae93b4f42ee298e834d421a608a9306..995a0ded9db3a19c528b1c654502196f91e32d81 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataService.java b/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataService.java index 69026257f88a998d410bac138ae231f2d05ee4f4..8e8db36ee21f3faa2ca5efd4e3951ef5a33709b9 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testdata/InspectionTestDataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -23,7 +23,7 @@ public class InspectionTestDataService { public ResponseEntity<Resource> downloadOsmTestData(String filename) throws IOException { String ressource = "/de/eshg/inspection/facility/websearch/" + filename; try (InputStream inputStream = getClass().getResourceAsStream(ressource)) { - if (inputStream == null) throw new NotFoundException("not found: " + ressource); + if (inputStream == null) throw new NotFoundException("ressource not found"); ContentDisposition contentDisposition = ContentDisposition.attachment().filename(filename, UTF_8).build(); ByteArrayResource resource = new ByteArrayResource(inputStream.readAllBytes()); diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionPopulator.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionPopulator.java index c22f6d5252a77ea75970e380db1c353d616a980d..5d85b28b4d965bdb0f9f1d0d90410f131ad25dae 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionPopulator.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionTestDataProvider.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionTestDataProvider.java index aa73510ba4681cf72ae140299f8b3ef6d26263e6..49013362bb3c6e5083b239c76b766f1dde2daf8c 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionTestDataProvider.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/ChecklistDefinitionTestDataProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/FacilityTestDataProvider.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/FacilityTestDataProvider.java index bfeda6096d442f754c24c20b020a6da5e7b78757..1e6fa78cb95dc97fa888df693ac93a827aa49d05 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/FacilityTestDataProvider.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/FacilityTestDataProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionPopulator.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionPopulator.java index dfe4f72ac2f2ab69a9a61c5f06ca31c22fd2901c..5827ea7c86862ed21c71d8f4f8df3912b434df80 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionPopulator.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestDataProvider.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestDataProvider.java index 6ea5e1ca70eb94d3d843eec05a341051d6a3aeab..c7c6f931af86238ffb7209a8bdc0b4b1674e7b59 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestDataProvider.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestDataProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperController.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperController.java index 0e46045bc8a78de9f0ee13bb05fb3ee15c4abe55..0fe6f8ba0f5d7fc24dcc23c09bc324f1a70095bd 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperController.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperService.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperService.java index b1de6ac9735cdbef30a3f5bf3800ce9454849ded..318cc8527a5a4d9313543eff16502a7ea269d756 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperService.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/InspectionTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/TextBlockPopulator.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/TextBlockPopulator.java index 222436500c734edd002f4fffef5dec396a56d6c6..5d91cba054689a8f6d7e95a55cd14f0d202f9b2a 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/TextBlockPopulator.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/TextBlockPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/api/CreateTestCLDResponse.java b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/api/CreateTestCLDResponse.java index 3c96905a0bc0635c7d0a28158bce335f417364ad..80ed6669ba104a2a5cd0f482dce69c07dd643737 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/testhelper/api/CreateTestCLDResponse.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/testhelper/api/CreateTestCLDResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/textblock/TextBlockServiceImpl.java b/backend/inspection/src/main/java/de/eshg/inspection/textblock/TextBlockServiceImpl.java index bdee2755bcdf5ae4a5be14dd28ac5eba961cbde8..b24d9323a16480170dd8dc802465ae87e17a3f2e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/textblock/TextBlockServiceImpl.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/textblock/TextBlockServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/textblock/mapper/TextBlockMapper.java b/backend/inspection/src/main/java/de/eshg/inspection/textblock/mapper/TextBlockMapper.java index 5137376025f77146cbc4bcc392c2f3f0ca194986..3c837bce3e4da348176a22cbdfe864729819affe 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/textblock/mapper/TextBlockMapper.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/textblock/mapper/TextBlockMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlock.java b/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlock.java index 22076b475bb819e72ab48bc5d702588f801d81ff..b8a3f646f6e741d8b95752c37077ad27b26b2de6 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlock.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlock.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlockRepository.java b/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlockRepository.java index 0938967389e6d38a9e86a8c685d1bf33f468527d..fa6505be3a836d1d9b71d17a7fe3e648a5c10888 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlockRepository.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/textblock/persistence/TextBlockRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/util/Executors.java b/backend/inspection/src/main/java/de/eshg/inspection/util/Executors.java index c105aacc7e45c6c6fb894a68000535bda78d7d61..52f6e0cf1fa2d40b140b71b279a52aa07945d402 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/util/Executors.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/util/Executors.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/util/FileUtil.java b/backend/inspection/src/main/java/de/eshg/inspection/util/FileUtil.java index 309533496dd2017c94cb1739acb3c8a211f05258..4f96a8667f6f7b04e64576d86201ac8807df002e 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/util/FileUtil.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/util/FileUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/util/HashUtil.java b/backend/inspection/src/main/java/de/eshg/inspection/util/HashUtil.java index 8cfeaec1272018ef8095bdf4f2a541a6249827a7..5e77d281056343e9fe89edf4ace04819783e7a32 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/util/HashUtil.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/util/HashUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/util/Holder.java b/backend/inspection/src/main/java/de/eshg/inspection/util/Holder.java index 18918705ada442bbb649cec73d0b71499cd4e3ae..0f7b9f8e8614c794cd7d33e2db799ce79dea5406 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/util/Holder.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/util/Holder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/util/ImageRewriter.java b/backend/inspection/src/main/java/de/eshg/inspection/util/ImageRewriter.java index ef7a2e2a13d0207385718fdfb8d6ba6bb25bab0a..07e6676663152b9bceda6c57d85c03f9ab4be64b 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/util/ImageRewriter.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/util/ImageRewriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/util/NamedThreadFactory.java b/backend/inspection/src/main/java/de/eshg/inspection/util/NamedThreadFactory.java index 1f7abdcec541a72b1be1ac4402666c4984b3229e..51aa395b82053f6935efcd6889b318052f334c88 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/util/NamedThreadFactory.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/util/NamedThreadFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/java/de/eshg/inspection/util/PageRequestUtil.java b/backend/inspection/src/main/java/de/eshg/inspection/util/PageRequestUtil.java index 2ad7c8324e841b5c3669196906fa63babe576dc6..616e76cc0bad69066c2a32adbcfffbde87d506bf 100644 --- a/backend/inspection/src/main/java/de/eshg/inspection/util/PageRequestUtil.java +++ b/backend/inspection/src/main/java/de/eshg/inspection/util/PageRequestUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/resources/application-preview-features.properties b/backend/inspection/src/main/resources/application-preview-features.properties index 64d3c3a984273e40bb0fb6e815beb4d9c56b75fe..16a70ef9f7ace8a0187f8070f2183f58e3571569 100644 --- a/backend/inspection/src/main/resources/application-preview-features.properties +++ b/backend/inspection/src/main/resources/application-preview-features.properties @@ -1 +1 @@ -de.eshg.inspection.feature-toggle.enabled-new-features=OFFLINE,IMPORT,STATISTICS +de.eshg.inspection.feature-toggle.enabled-new-features=OFFLINE diff --git a/backend/inspection/src/main/resources/de/eshg/inspection/report/inspection-report.css b/backend/inspection/src/main/resources/de/eshg/inspection/report/inspection-report.css index 44dd8867f39fa3df85aeb46d158f91aa48a0af06..2dde3b65dece9c983bc9b51691ccf88439336725 100644 --- a/backend/inspection/src/main/resources/de/eshg/inspection/report/inspection-report.css +++ b/backend/inspection/src/main/resources/de/eshg/inspection/report/inspection-report.css @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/inspection/src/main/resources/migrations/0001_initial.xml b/backend/inspection/src/main/resources/migrations/0001_initial.xml index fdbf42535ed49b678224cc2cefd04eddc2ef66b2..bfbc1155c07b2a98f1975278c7e1dcc5920829d8 100644 --- a/backend/inspection/src/main/resources/migrations/0001_initial.xml +++ b/backend/inspection/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0002_add_due_at_notification_reminder.xml b/backend/inspection/src/main/resources/migrations/0002_add_due_at_notification_reminder.xml index cd74a7cb4ad3795f1f610a6bdc9685207bd058d4..55da3b288d1c8ca94910679b77140d9a8a82bd66 100644 --- a/backend/inspection/src/main/resources/migrations/0002_add_due_at_notification_reminder.xml +++ b/backend/inspection/src/main/resources/migrations/0002_add_due_at_notification_reminder.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0003_rename_pdf_tables.xml b/backend/inspection/src/main/resources/migrations/0003_rename_pdf_tables.xml index f00fe630098acdb8ec043d8452983308be23bd78..47bc50d15e6423276765c6c54b6e01903dc95a73 100644 --- a/backend/inspection/src/main/resources/migrations/0003_rename_pdf_tables.xml +++ b/backend/inspection/src/main/resources/migrations/0003_rename_pdf_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0004_add_last_inspection_add_report_task_table.xml b/backend/inspection/src/main/resources/migrations/0004_add_last_inspection_add_report_task_table.xml index db5005f7e354ce20baa16590a539033f0949c599..b362ecd8e24b62ecf7600b65d07eb06b8f1c5893 100644 --- a/backend/inspection/src/main/resources/migrations/0004_add_last_inspection_add_report_task_table.xml +++ b/backend/inspection/src/main/resources/migrations/0004_add_last_inspection_add_report_task_table.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0005_inspection_incidents.xml b/backend/inspection/src/main/resources/migrations/0005_inspection_incidents.xml index d56a7a07aac09c5045761b72640bfb31fb9da0bc..13c38bd1978cac35bc96ea92346c75c089d6f828 100644 --- a/backend/inspection/src/main/resources/migrations/0005_inspection_incidents.xml +++ b/backend/inspection/src/main/resources/migrations/0005_inspection_incidents.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0006_change_phase_enum_values.xml b/backend/inspection/src/main/resources/migrations/0006_change_phase_enum_values.xml index bf33c4ddb25b8ef3842ab9612e63f8a162075f3a..7821e0d2571d83f0b015a96263a1325f52f22a76 100644 --- a/backend/inspection/src/main/resources/migrations/0006_change_phase_enum_values.xml +++ b/backend/inspection/src/main/resources/migrations/0006_change_phase_enum_values.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0007_refactor_task_tables.xml b/backend/inspection/src/main/resources/migrations/0007_refactor_task_tables.xml index 126c4a8d058e218ab259c873b16b6219e8170ab0..77779ddc08748fb0e0f42cf8fce0e38fe5f0858d 100644 --- a/backend/inspection/src/main/resources/migrations/0007_refactor_task_tables.xml +++ b/backend/inspection/src/main/resources/migrations/0007_refactor_task_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0008_introduce_pgenums.xml b/backend/inspection/src/main/resources/migrations/0008_introduce_pgenums.xml index 098c68000d9eeaea9d3d707051a550af559d699b..41ac076210b83c1a4ca01d56630d879e972ff8d8 100644 --- a/backend/inspection/src/main/resources/migrations/0008_introduce_pgenums.xml +++ b/backend/inspection/src/main/resources/migrations/0008_introduce_pgenums.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0009_add_mailSent_fields.xml b/backend/inspection/src/main/resources/migrations/0009_add_mailSent_fields.xml index b1ae7c5fcb72f250cbcbd4e6c3fdea8402dfb2d3..785d1fec4402b0dae93dd29e6f169a98f7aee380 100644 --- a/backend/inspection/src/main/resources/migrations/0009_add_mailSent_fields.xml +++ b/backend/inspection/src/main/resources/migrations/0009_add_mailSent_fields.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0010_rename_tables.xml b/backend/inspection/src/main/resources/migrations/0010_rename_tables.xml index 13dbab789d443adeee8156cf434d8628da7440e4..3eb5b6411c9b2275ec4a2378bed2e9cac5cc6914 100644 --- a/backend/inspection/src/main/resources/migrations/0010_rename_tables.xml +++ b/backend/inspection/src/main/resources/migrations/0010_rename_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0011_indices_for_many_to_one_relations.xml b/backend/inspection/src/main/resources/migrations/0011_indices_for_many_to_one_relations.xml index a85258495f73c48b93f022b396daf7c20dc5c699..5854ed7ba69abb2452c685137af07223a74f6e9f 100644 --- a/backend/inspection/src/main/resources/migrations/0011_indices_for_many_to_one_relations.xml +++ b/backend/inspection/src/main/resources/migrations/0011_indices_for_many_to_one_relations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0012_update_followup_inspection_enum.xml b/backend/inspection/src/main/resources/migrations/0012_update_followup_inspection_enum.xml index 1c77654a90bc9d1fd24957c246790c76731c620c..21634c6e96a60b8277b5d012eae4130543f5bad9 100644 --- a/backend/inspection/src/main/resources/migrations/0012_update_followup_inspection_enum.xml +++ b/backend/inspection/src/main/resources/migrations/0012_update_followup_inspection_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0013_inbox_procedure_add_closed_at.xml b/backend/inspection/src/main/resources/migrations/0013_inbox_procedure_add_closed_at.xml index 5dfcc264d8bcf13cc95820a477e72d61eb5caa91..b3122e2b2293295986813594161a9b7d7cb4dffd 100644 --- a/backend/inspection/src/main/resources/migrations/0013_inbox_procedure_add_closed_at.xml +++ b/backend/inspection/src/main/resources/migrations/0013_inbox_procedure_add_closed_at.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0014_drop_redundant_checklist_numbers_in_incidents.xml b/backend/inspection/src/main/resources/migrations/0014_drop_redundant_checklist_numbers_in_incidents.xml index e24d6c564875c0c16ea25e6b68024d7daccabc31..389512b7a7080222848ac025e0063fcef6962505 100644 --- a/backend/inspection/src/main/resources/migrations/0014_drop_redundant_checklist_numbers_in_incidents.xml +++ b/backend/inspection/src/main/resources/migrations/0014_drop_redundant_checklist_numbers_in_incidents.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0015_checklist_and_signature_hashes.xml b/backend/inspection/src/main/resources/migrations/0015_checklist_and_signature_hashes.xml index 3725a185e8290999e74ecd404782b9ad351456dd..f4a305bc1d625a51f4413cce78a16856759c83c3 100644 --- a/backend/inspection/src/main/resources/migrations/0015_checklist_and_signature_hashes.xml +++ b/backend/inspection/src/main/resources/migrations/0015_checklist_and_signature_hashes.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0016_inspection_travel_time.xml b/backend/inspection/src/main/resources/migrations/0016_inspection_travel_time.xml index 3857a6944a48c4d793e9b9514c601688a404a436..edbe2afa13ced5a43024d5d965ed9f079f3b308d 100644 --- a/backend/inspection/src/main/resources/migrations/0016_inspection_travel_time.xml +++ b/backend/inspection/src/main/resources/migrations/0016_inspection_travel_time.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0017_move_media_file_external_id.xml b/backend/inspection/src/main/resources/migrations/0017_move_media_file_external_id.xml index a9a20a12aaece11ebd801a1eb92dfb697c7cb98d..62aa160f57b9d60c48e8a8077bb756e2f2fbddab 100644 --- a/backend/inspection/src/main/resources/migrations/0017_move_media_file_external_id.xml +++ b/backend/inspection/src/main/resources/migrations/0017_move_media_file_external_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0018_add_deletable_boolean_to_files.xml b/backend/inspection/src/main/resources/migrations/0018_add_deletable_boolean_to_files.xml index acd74fdc2923fac0e47c322e87a0bb6230169f65..65510a446c87c6d491e116448dfdffbda6c785c7 100644 --- a/backend/inspection/src/main/resources/migrations/0018_add_deletable_boolean_to_files.xml +++ b/backend/inspection/src/main/resources/migrations/0018_add_deletable_boolean_to_files.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0019_remove_procedure_result.xml b/backend/inspection/src/main/resources/migrations/0019_remove_procedure_result.xml index 5074544e0a2dfdb8967c305befae59b74b8bd9fc..8a7ae2d8943651d0e14f8701c4015a7bcde50f45 100644 --- a/backend/inspection/src/main/resources/migrations/0019_remove_procedure_result.xml +++ b/backend/inspection/src/main/resources/migrations/0019_remove_procedure_result.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0020_remove_procedure_type_2.xml b/backend/inspection/src/main/resources/migrations/0020_remove_procedure_type_2.xml index c7a8ff58c0323339df638e34fd542c2bad683095..8faf4695541f7da87aae9ddd9f8dfc979464d2de 100644 --- a/backend/inspection/src/main/resources/migrations/0020_remove_procedure_type_2.xml +++ b/backend/inspection/src/main/resources/migrations/0020_remove_procedure_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0021_remove_task_type_2.xml b/backend/inspection/src/main/resources/migrations/0021_remove_task_type_2.xml index d086027cb9728b366c1dc03fcc055e6d00c730c9..7aed085d7e3f8fc2ec089bed6413a08b74cf4270 100644 --- a/backend/inspection/src/main/resources/migrations/0021_remove_task_type_2.xml +++ b/backend/inspection/src/main/resources/migrations/0021_remove_task_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0022_update_trigger_type.xml b/backend/inspection/src/main/resources/migrations/0022_update_trigger_type.xml index f1c989072e836275de6ae0b8b868138538ac4f57..0474822eb8298bf3190720a66279429851d99d0a 100644 --- a/backend/inspection/src/main/resources/migrations/0022_update_trigger_type.xml +++ b/backend/inspection/src/main/resources/migrations/0022_update_trigger_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0023_add_sti_protection_procedure_lib_enum_values.xml b/backend/inspection/src/main/resources/migrations/0023_add_sti_protection_procedure_lib_enum_values.xml index 57856e0684c7ad18e24e44e89ba1f578e4035820..b07c26398f16b0a1f01d95dca545bf80cd64fd23 100644 --- a/backend/inspection/src/main/resources/migrations/0023_add_sti_protection_procedure_lib_enum_values.xml +++ b/backend/inspection/src/main/resources/migrations/0023_add_sti_protection_procedure_lib_enum_values.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0024_delete_facilities_without_procedures.xml b/backend/inspection/src/main/resources/migrations/0024_delete_facilities_without_procedures.xml index 690131576b74041498537da6171be26894644114..3b895fea18777a9f79ed725b58f1ac52745f0c5b 100644 --- a/backend/inspection/src/main/resources/migrations/0024_delete_facilities_without_procedures.xml +++ b/backend/inspection/src/main/resources/migrations/0024_delete_facilities_without_procedures.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0025_central_file_state_id_unique_index.xml b/backend/inspection/src/main/resources/migrations/0025_central_file_state_id_unique_index.xml index 42c9ee2b042ee12817eaf628a4f6cbb5d7befcfd..9a238db4fbfea203b978aead2021fc6d4469130f 100644 --- a/backend/inspection/src/main/resources/migrations/0025_central_file_state_id_unique_index.xml +++ b/backend/inspection/src/main/resources/migrations/0025_central_file_state_id_unique_index.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0026_add_cemetery.xml b/backend/inspection/src/main/resources/migrations/0026_add_cemetery.xml index c285156ce2a426c9e95408c90618d1e5291d2937..80ae931bfa0eeaaf842ce7e4998fe71d14bae5b4 100644 --- a/backend/inspection/src/main/resources/migrations/0026_add_cemetery.xml +++ b/backend/inspection/src/main/resources/migrations/0026_add_cemetery.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0027_remove_progress_entry_deleted.xml b/backend/inspection/src/main/resources/migrations/0027_remove_progress_entry_deleted.xml index bba8a10bcdecb7a339ae1b2cffeaa7df7eee2d77..7f169c0699c68da4510797893d780438e5a76d42 100644 --- a/backend/inspection/src/main/resources/migrations/0027_remove_progress_entry_deleted.xml +++ b/backend/inspection/src/main/resources/migrations/0027_remove_progress_entry_deleted.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0028_packlists.xml b/backend/inspection/src/main/resources/migrations/0028_packlists.xml index c79b63027c29bd968fad6748e8bc4455091ab8f9..42b0fdade2c7aea0404421e2b3b55783d1020749 100644 --- a/backend/inspection/src/main/resources/migrations/0028_packlists.xml +++ b/backend/inspection/src/main/resources/migrations/0028_packlists.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0029_cld_deleted.xml b/backend/inspection/src/main/resources/migrations/0029_cld_deleted.xml index 97d053bd9a2f1e92e4d3e96efd94f05c3b89a252..2f69d5418fb0eae8d8bc4b87b0446232e12c6eb9 100644 --- a/backend/inspection/src/main/resources/migrations/0029_cld_deleted.xml +++ b/backend/inspection/src/main/resources/migrations/0029_cld_deleted.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0030_add_procedure_exported_at.xml b/backend/inspection/src/main/resources/migrations/0030_add_procedure_exported_at.xml index 1e247103de2a260c9d120a381545e1bdc3446bc9..9d47139a849774524df8e73aa4480783ce6ad3dd 100644 --- a/backend/inspection/src/main/resources/migrations/0030_add_procedure_exported_at.xml +++ b/backend/inspection/src/main/resources/migrations/0030_add_procedure_exported_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0031_packlists_inspections.xml b/backend/inspection/src/main/resources/migrations/0031_packlists_inspections.xml index 39814074df6de8c1249d93b0cb4289f184ca654b..4d8d1038d1c790f0ef674c6705c1d11ab89f9137 100644 --- a/backend/inspection/src/main/resources/migrations/0031_packlists_inspections.xml +++ b/backend/inspection/src/main/resources/migrations/0031_packlists_inspections.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0032_add_audio_tables.xml b/backend/inspection/src/main/resources/migrations/0032_add_audio_tables.xml index 4e0dd8c69d9996ea9652ea8d82c8628619b82b6d..cabc070f41785f87e70303dc859df901afe0b1bb 100644 --- a/backend/inspection/src/main/resources/migrations/0032_add_audio_tables.xml +++ b/backend/inspection/src/main/resources/migrations/0032_add_audio_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0033_inspection_offline_lock.xml b/backend/inspection/src/main/resources/migrations/0033_inspection_offline_lock.xml index 2cf2b823cb09769bda61e684dd9cda77ae2a5d07..6d5ebf644b96e8ef5448b2ede4aa55f032ee33cb 100644 --- a/backend/inspection/src/main/resources/migrations/0033_inspection_offline_lock.xml +++ b/backend/inspection/src/main/resources/migrations/0033_inspection_offline_lock.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0034_procedure_sequences.xml b/backend/inspection/src/main/resources/migrations/0034_procedure_sequences.xml index 1a49098088dac2bd47f574faa5b57e4a853a668c..0f89fc4a3c189f97401c18e94952090cc1a31637 100644 --- a/backend/inspection/src/main/resources/migrations/0034_procedure_sequences.xml +++ b/backend/inspection/src/main/resources/migrations/0034_procedure_sequences.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0035_refactor_web_search_entry_tags.xml b/backend/inspection/src/main/resources/migrations/0035_refactor_web_search_entry_tags.xml index 884037274d87934afbbcb28b776fdd0a3ad41c9f..39b75c5677366556fa8acee7b7519262e40e9569 100644 --- a/backend/inspection/src/main/resources/migrations/0035_refactor_web_search_entry_tags.xml +++ b/backend/inspection/src/main/resources/migrations/0035_refactor_web_search_entry_tags.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0036_inspection_notes.xml b/backend/inspection/src/main/resources/migrations/0036_inspection_notes.xml index 5cdfd0299022d3af8b39420356f25a2722f6f1be..03b68aea8f7861193b0bd4d0a5948213463eb1cc 100644 --- a/backend/inspection/src/main/resources/migrations/0036_inspection_notes.xml +++ b/backend/inspection/src/main/resources/migrations/0036_inspection_notes.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0037_cld_drafts.xml b/backend/inspection/src/main/resources/migrations/0037_cld_drafts.xml index 475a5dfa622d4eca02a3c869b31f218716cfb4ae..8a85d82a81832992578d305349ad08548b1e932c 100644 --- a/backend/inspection/src/main/resources/migrations/0037_cld_drafts.xml +++ b/backend/inspection/src/main/resources/migrations/0037_cld_drafts.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0038_remove_report_fk.xml b/backend/inspection/src/main/resources/migrations/0038_remove_report_fk.xml index 8e33b29a86de17adbced2d8792d74f37c6e185bc..e1332499f80473eeb38ac1da8af450adae6d9357 100644 --- a/backend/inspection/src/main/resources/migrations/0038_remove_report_fk.xml +++ b/backend/inspection/src/main/resources/migrations/0038_remove_report_fk.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0039_remove_fk_checklistelement_incident.xml b/backend/inspection/src/main/resources/migrations/0039_remove_fk_checklistelement_incident.xml index 81e3d31b119250d54b94359feb2b4e55e150780c..8c3661cac65768ffef4ed12519a962188a3756b6 100644 --- a/backend/inspection/src/main/resources/migrations/0039_remove_fk_checklistelement_incident.xml +++ b/backend/inspection/src/main/resources/migrations/0039_remove_fk_checklistelement_incident.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0040_introduce_procedure_file_type.xml b/backend/inspection/src/main/resources/migrations/0040_introduce_procedure_file_type.xml index 1ee443742022cab1b3e38135b6c079d9640c427d..6e7ae5b0a05a900e9f7b2aee6a4b690edc815bdb 100644 --- a/backend/inspection/src/main/resources/migrations/0040_introduce_procedure_file_type.xml +++ b/backend/inspection/src/main/resources/migrations/0040_introduce_procedure_file_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0041_add_medical_registry_procedure_types.xml b/backend/inspection/src/main/resources/migrations/0041_add_medical_registry_procedure_types.xml index fc2ba4314c54561ba6c242e86543c3d374f3ef52..4cbe678bb195a7120848f6b731ee6d1a355d6962 100644 --- a/backend/inspection/src/main/resources/migrations/0041_add_medical_registry_procedure_types.xml +++ b/backend/inspection/src/main/resources/migrations/0041_add_medical_registry_procedure_types.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0042_remove_key_document_type_enum.xml b/backend/inspection/src/main/resources/migrations/0042_remove_key_document_type_enum.xml index d34ae35a11cd835c8844cb4ef782d44cfa6a528e..95ca32291319aade823ad61561362e0adbe9d3bd 100644 --- a/backend/inspection/src/main/resources/migrations/0042_remove_key_document_type_enum.xml +++ b/backend/inspection/src/main/resources/migrations/0042_remove_key_document_type_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0043_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml b/backend/inspection/src/main/resources/migrations/0043_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml index 978c19bd6d35556b29575363f715654833eca9c0..85ad26748733f5fc99f9b032cbeecc737406ab43 100644 --- a/backend/inspection/src/main/resources/migrations/0043_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml +++ b/backend/inspection/src/main/resources/migrations/0043_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0044_shedlock.xml b/backend/inspection/src/main/resources/migrations/0044_shedlock.xml index 9ce279f2f54e64022175ad2f2c509ac1dfb8a6db..a1ce629125bc70cd29549db4c99be1d6d8d6d8f7 100644 --- a/backend/inspection/src/main/resources/migrations/0044_shedlock.xml +++ b/backend/inspection/src/main/resources/migrations/0044_shedlock.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0045_add_system_progress_entry_keydocument.xml b/backend/inspection/src/main/resources/migrations/0045_add_system_progress_entry_keydocument.xml index eb3ee2ff16658f4999e1b3860400b086744e5438..aaffffba9665b8ed5dfa4c35258e8772d4e41c2c 100644 --- a/backend/inspection/src/main/resources/migrations/0045_add_system_progress_entry_keydocument.xml +++ b/backend/inspection/src/main/resources/migrations/0045_add_system_progress_entry_keydocument.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0046_cemetery_sequence.xml b/backend/inspection/src/main/resources/migrations/0046_cemetery_sequence.xml index 01650cd8bd384560bc94aed495930c2705ed6bc5..ba43e4463b438b74d8dec2e84e15023d8f6a298e 100644 --- a/backend/inspection/src/main/resources/migrations/0046_cemetery_sequence.xml +++ b/backend/inspection/src/main/resources/migrations/0046_cemetery_sequence.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0047_inspection_import_merge.xml b/backend/inspection/src/main/resources/migrations/0047_inspection_import_merge.xml index 4496a2858a5aa228fcc981605ecf7452a9a72539..a139f4e0ead14a64c267d0e5580320c70f5f17cd 100644 --- a/backend/inspection/src/main/resources/migrations/0047_inspection_import_merge.xml +++ b/backend/inspection/src/main/resources/migrations/0047_inspection_import_merge.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0048_move_subject_and_message_text_to_mail_metadata.xml b/backend/inspection/src/main/resources/migrations/0048_move_subject_and_message_text_to_mail_metadata.xml index 23264627157b19b5e49589bcd3f2b568e3e7c739..2ce3a8d0edc3b1a426dc692a0bd5bca0099fdac6 100644 --- a/backend/inspection/src/main/resources/migrations/0048_move_subject_and_message_text_to_mail_metadata.xml +++ b/backend/inspection/src/main/resources/migrations/0048_move_subject_and_message_text_to_mail_metadata.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0049_add_gdpr_validation_task.xml b/backend/inspection/src/main/resources/migrations/0049_add_gdpr_validation_task.xml index 4cf74a39ccd237a79046388760c85a9b17628e04..7de2b348acba87c5912a82ffca7018e28cad8453 100644 --- a/backend/inspection/src/main/resources/migrations/0049_add_gdpr_validation_task.xml +++ b/backend/inspection/src/main/resources/migrations/0049_add_gdpr_validation_task.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0050_add_started_at.xml b/backend/inspection/src/main/resources/migrations/0050_add_started_at.xml index 11e111c3ca0890ecc9fe44036a8f429cae9a1e56..f0ea5584716f257b9e33407dcb2503051c52d45a 100644 --- a/backend/inspection/src/main/resources/migrations/0050_add_started_at.xml +++ b/backend/inspection/src/main/resources/migrations/0050_add_started_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0051_drop_not_null_constraints.xml b/backend/inspection/src/main/resources/migrations/0051_drop_not_null_constraints.xml index cfc48f437ed678adbb70489b64f758a6264baae7..1dad5e91aefac48e499309ae1cd780f9ec3cd211 100644 --- a/backend/inspection/src/main/resources/migrations/0051_drop_not_null_constraints.xml +++ b/backend/inspection/src/main/resources/migrations/0051_drop_not_null_constraints.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0052_remove_facility_values.xml b/backend/inspection/src/main/resources/migrations/0052_remove_facility_values.xml index 10d8e1ac863a4c6c15692d5152a4bc696a713d6c..d3be03f47a58b2ea4c3fb922a332e5240a3238ef 100644 --- a/backend/inspection/src/main/resources/migrations/0052_remove_facility_values.xml +++ b/backend/inspection/src/main/resources/migrations/0052_remove_facility_values.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0053_rename_gdpr_validation_task_procedure_id.xml b/backend/inspection/src/main/resources/migrations/0053_rename_gdpr_validation_task_procedure_id.xml index 90a6c736938cf799bdaaa91088cb5fe3307d2427..ef4f90e4d9ec59e03f51626d72e76ec66b250653 100644 --- a/backend/inspection/src/main/resources/migrations/0053_rename_gdpr_validation_task_procedure_id.xml +++ b/backend/inspection/src/main/resources/migrations/0053_rename_gdpr_validation_task_procedure_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0054_add_download_package_table.xml b/backend/inspection/src/main/resources/migrations/0054_add_download_package_table.xml index 75a64a5c66efe4bc23ac72b44b9fd5b0bfcdd7c1..b72aaecb333c294ecedeaba3618ba903941402c5 100644 --- a/backend/inspection/src/main/resources/migrations/0054_add_download_package_table.xml +++ b/backend/inspection/src/main/resources/migrations/0054_add_download_package_table.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0055_add_dental_as_procedure_type.xml b/backend/inspection/src/main/resources/migrations/0055_add_dental_as_procedure_type.xml index 503fe799e583e0a6a550d8d5d0e562a362cf6cef..4bc204c74204a2fded98dafebdbefd09710a517c 100644 --- a/backend/inspection/src/main/resources/migrations/0055_add_dental_as_procedure_type.xml +++ b/backend/inspection/src/main/resources/migrations/0055_add_dental_as_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0056_add_official_medical_service_procedure_type.xml b/backend/inspection/src/main/resources/migrations/0056_add_official_medical_service_procedure_type.xml index 550620a174e50b8f231006ea4d421ed88b49a554..da644effa64a87a865cfb148bcf988b79f4f701b 100644 --- a/backend/inspection/src/main/resources/migrations/0056_add_official_medical_service_procedure_type.xml +++ b/backend/inspection/src/main/resources/migrations/0056_add_official_medical_service_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0057_add_mail_to_simple_notification.xml b/backend/inspection/src/main/resources/migrations/0057_add_mail_to_simple_notification.xml index f557fe345babffc937e7d99417ca936714cd1573..03be9e053b15cd5eb5781715835e78234a3d0acc 100644 --- a/backend/inspection/src/main/resources/migrations/0057_add_mail_to_simple_notification.xml +++ b/backend/inspection/src/main/resources/migrations/0057_add_mail_to_simple_notification.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/inspection/src/main/resources/migrations/0058_invert_inbox_procedure_relationships.xml b/backend/inspection/src/main/resources/migrations/0058_invert_inbox_procedure_relationships.xml new file mode 100644 index 0000000000000000000000000000000000000000..ecefebd991d62c86eebd250af1033808aa77d02a --- /dev/null +++ b/backend/inspection/src/main/resources/migrations/0058_invert_inbox_procedure_relationships.xml @@ -0,0 +1,72 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 SCOOP Software GmbH, cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733835693519-1"> + <addColumn tableName="inbox_procedure"> + <column name="contact_details_id" type="BIGINT"/> + </addColumn> + <sql> + UPDATE inbox_procedure + SET contact_details_id=contact_details.id FROM contact_details + WHERE contact_details.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="contact_details_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="contact_details_id" + constraintName="inbox_procedure_contact_details_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_contact_details" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" referencedTableName="contact_details" + validate="true"/> + + <dropForeignKeyConstraint baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure"/> + <dropUniqueConstraint + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + <dropColumn columnName="inbox_procedure_id" tableName="contact_details"/> + </changeSet> + <changeSet author="GA-Lotse" id="1733835693519-2"> + <addColumn tableName="inbox_procedure"> + <column name="inbox_progress_entry_id" type="BIGINT"/> + </addColumn> + + <sql> + UPDATE inbox_procedure + SET inbox_progress_entry_id=inbox_progress_entry.id FROM inbox_progress_entry + WHERE inbox_progress_entry.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="inbox_progress_entry_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="inbox_progress_entry_id" + constraintName="inbox_procedure_inbox_progress_entry_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="inbox_progress_entry_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_inbox_progress_entry" + deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="inbox_progress_entry" validate="true"/> + + <dropForeignKeyConstraint baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure"/> + <dropUniqueConstraint + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + <dropColumn columnName="inbox_procedure_id" + tableName="inbox_progress_entry"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/inspection/src/main/resources/migrations/changelog.xml b/backend/inspection/src/main/resources/migrations/changelog.xml index 5d3015abfdccc02742bdbf642a177c50e7a0787a..e1be844c0d513208626c27c2a0d2252d83ffcc82 100644 --- a/backend/inspection/src/main/resources/migrations/changelog.xml +++ b/backend/inspection/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> @@ -71,5 +71,6 @@ <include file="migrations/0056_add_official_medical_service_procedure_type.xml"/> <include file="migrations/0057_add_mail_to_simple_notification.xml"/> + <include file="migrations/0058_invert_inbox_procedure_relationships.xml"/> </databaseChangeLog> diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakAttributes.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakAttributes.java index d57cfa8aa3528efd9490878d6f57890d919361a0..9a0cd55e4ee4f544ed1e9d739e11aee580c316df 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakAttributes.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakUserApi.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakUserApi.java index 69a10562ed3f8cb95a8607de92a72ec200820632..29f6cee26b98d497e14486d2bb00c0c6d3ce2bda 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakUserApi.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/KeycloakUserApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/BulkGetUsersRequest.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/BulkGetUsersRequest.java index 249c0a1d03461ce06dd614de2e3250d8d34ab1f4..8331ced8195d9983b334158118a6457e12206e35 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/BulkGetUsersRequest.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/BulkGetUsersRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialRequest.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialRequest.java index d686b2094a7b53f29631824a3f3d0f38278757e4..2446b0a5cca1d744a2b7f99216e14f54daf87cb4 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialRequest.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialType.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialType.java index 5fb422a2e4f6b7cbdf2377d9a2d1aa5485b6b32d..84d930f8aafd784c4e5da7f4a11b042cc6af086a 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialType.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/CredentialType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetActiveSessionResponse.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetActiveSessionResponse.java index f70ce3ca105950dc13def01560fb3817e37d1f1b..6f9c45bf765ad1e8459c0b5ff4439b9b2d7c8e86 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetActiveSessionResponse.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetActiveSessionResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersRequest.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersRequest.java index a2bb866d58f345d0a57fee6a559332e2b0ba3eb5..d606264cda7b984df89caee7c65e852608370b3b 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersRequest.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersResponse.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersResponse.java index 6a8eb99f1a2867a00fb19a58539086694c58fca0..d969567b30e9bb3e547d06bd06bd6020d8f54234 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersResponse.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetGroupMembersResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersRequest.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersRequest.java index 2bedb286da224777a516e28d3b54eae283ab5dea..248c3489189409ee684f82f9f5795d4e70303787 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersRequest.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersResponse.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersResponse.java index 4a9a5bb16942368e58b11206069d28d166ca189f..0829a15297fe1e509f8af30308cace5068587b47 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersResponse.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetRoleMembersResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetUsersResponse.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetUsersResponse.java index 1f71b284c968c9dd430cc605ba3287ac59a69d1b..2fceada8eaf1e074cc45d5cce0e5dd78ebebe548 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetUsersResponse.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/GetUsersResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiActiveUserSession.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiActiveUserSession.java index 33a278464e76844e00d7d02dee28a43fcac3a7b7..eb84833c83cea7f8ba528a555d6106064a314643 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiActiveUserSession.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiActiveUserSession.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiGroupMemberDto.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiGroupMemberDto.java index 3d2329f914b2c38df32339f57340483799db02a2..439c153b30bef4aeb9fa7bc9a50e15e8ab1607ce 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiGroupMemberDto.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiGroupMemberDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiUserDto.java b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiUserDto.java index 39706db62cd97b60137abe90b908cf729141c4e7..9da1195b2d1c5687682fc6d6fa45ebeef0e73e64 100644 --- a/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiUserDto.java +++ b/backend/keycloak-api/src/main/java/de/eshg/keycloak/api/user/model/KeycloakApiUserDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak/Dockerfile b/backend/keycloak/Dockerfile index 02d429c767472fc7fe3726b25c118439ea09cf41..8dbe6b8d857593c36a71ed6c49772a9470efa844 100644 --- a/backend/keycloak/Dockerfile +++ b/backend/keycloak/Dockerfile @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 # This Dockerfile is necessary to workaround missing curl in Keycloak 21+ 🤯🤦 diff --git a/backend/keycloak/resources/themes/custom-keycloak/login/resources/css/custom-login.css b/backend/keycloak/resources/themes/custom-keycloak/login/resources/css/custom-login.css index 95e046c3c3e9cf415e600ea49e58eed9d0f3a5f9..4e6e15793b433d708b3b990ad1285897472df10f 100644 --- a/backend/keycloak/resources/themes/custom-keycloak/login/resources/css/custom-login.css +++ b/backend/keycloak/resources/themes/custom-keycloak/login/resources/css/custom-login.css @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -186,6 +186,8 @@ a { font-size: 48px; line-height: 60px; font-weight: bold; + hyphens: auto; + text-wrap: balance; @media(max-width: 1000px) { font-size: 32px; diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeForm.java b/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeForm.java index 241c1fe981f3ceddfc5517efad63599b15af1d6a..88bda592efc36a9c92c1dd31020ffda84791df70 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeForm.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeForm.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeFormFactory.java b/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeFormFactory.java index 1818c8edf149f3b568f459391582be7a1607e383..c10afd316a8ebf0c2ed9df1c7660959a3082c23d 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeFormFactory.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/authenticator/AccessCodeFormFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialModel.java b/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialModel.java index a52c1ba8fa7b4a730e7858eaea2ffbe2bc15d6c3..35c22bd52f898794538d1bacb7303f2037cd514a 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialModel.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProvider.java b/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProvider.java index ca8c6b318fdeb215b015df46bbc60357a3b20388..66058486d079f38befe5d8e052c12e73b984f844 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProvider.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProviderFactory.java b/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProviderFactory.java index 38bcde688ea016ea68adaf689829dad0c9bb14f8..c089210212b5737ae4dfa8db078d1d586dd882d5 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProviderFactory.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/credentialprovider/PinCredentialProviderFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/mappers/KeycloakMapper.java b/backend/keycloak/src/main/java/de/eshg/keycloak/mappers/KeycloakMapper.java index 8b28dacd8d5b2aea71aae20ecfcf55f6afb75f3d..3cb50891848e88da31ac60657edcebc5df832406 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/mappers/KeycloakMapper.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/mappers/KeycloakMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResource.java b/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResource.java index 4b370c14e75284e6344252a3cf933ecca6b55eaa..f990840307d9d8a8d651bd80b2e03c2081985f60 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResource.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResource.java @@ -1,10 +1,12 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.keycloak.providers; +import static org.keycloak.models.UserModel.COMPARE_BY_USERNAME; + import de.eshg.keycloak.api.user.model.BulkGetUsersRequest; import de.eshg.keycloak.api.user.model.CredentialRequest; import de.eshg.keycloak.api.user.model.CredentialType; @@ -38,8 +40,6 @@ import org.keycloak.services.resources.admin.permissions.AdminPermissionEvaluato @Extension(name = KeycloakOpenAPI.Profiles.ADMIN, value = "") public class ExtendedUserResource { - public static final Comparator<UserModel> SORT_BY_USERNAME = - Comparator.comparing(UserModel::getUsername); private final KeycloakSession session; private final RealmModel realm; private final AdminPermissionEvaluator auth; @@ -90,7 +90,7 @@ public class ExtendedUserResource { || user.getGroupsStream() .map(GroupModel::getName) .anyMatch(groups::contains)) - .sorted(SORT_BY_USERNAME) + .sorted(COMPARE_BY_USERNAME) .map( user -> { List<String> groupNames = @@ -121,7 +121,7 @@ public class ExtendedUserResource { List<KeycloakApiUserDto> roleMembers = getAllUserStream(userProvider, request.searchTerm()) .filter(user -> role == null || user.hasRole(role)) - .sorted(SORT_BY_USERNAME) + .sorted(COMPARE_BY_USERNAME) .map(this::getRepresentation) .map(KeycloakMapper::mapUserToApi) .toList(); @@ -227,8 +227,11 @@ public class ExtendedUserResource { private UserModel getUserByIdOrThrow( UserProvider userProvider, String id, boolean ignoreUnknownId) { UserModel user = userProvider.getUserById(realm, id); + if (user != null && user.getServiceAccountClientLink() != null) { + user = null; + } if (user == null && !ignoreUnknownId) { - throw new NotFoundException("User with id '%s' not found".formatted(id)); + throw new NotFoundException("User with given id not found"); } return user; } diff --git a/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResourceProvider.java b/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResourceProvider.java index 1b78c9d1953fb156be2fad00fec749edf09b34bf..541aeaf45564fc7ce9f96e94a8550f2997b71aa1 100644 --- a/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResourceProvider.java +++ b/backend/keycloak/src/main/java/de/eshg/keycloak/providers/ExtendedUserResourceProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/AggregationHelper.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/AggregationHelper.java index cc7fb869eaee15eb7e750e6a8785ad6088422130..1614e58ccf98213d0eca801df3dcef422470881d 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/AggregationHelper.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/AggregationHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleAggregationHelper.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleAggregationHelper.java index c0e6232207f214b4e206d7b1a83f0918da262256..482abea6d8f018add1ce706b1547d4ca21e08911 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleAggregationHelper.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleAggregationHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClient.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClient.java index 0e6c4d71bfc9daa9cb1e74123fb4f2394f7760e8..36a19f1d5c8fb1fcd8d5828ea8f9ea26a34a194f 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClient.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,8 @@ import de.eshg.lib.notification.NotificationApi; import de.eshg.lib.notification.api.GetNotificationsResponse; import de.eshg.lib.notification.api.MarkNotificationsAsReadRequest; import de.eshg.lib.procedure.api.*; +import de.eshg.lib.procedure.model.CheckFileStateUsageRequest; +import de.eshg.lib.procedure.model.CheckFileStateUsageResponse; import de.eshg.lib.procedure.model.GetProcedureMetricsResponse; import de.eshg.lib.procedure.model.GetRecentProceduresResponse; import de.eshg.lib.procedure.model.GetTaskMetricsResponse; @@ -58,7 +60,7 @@ public class BusinessModuleClient EventMetadataApi, NotificationApi, StatisticsApi, - RecentProcedureApi, + BusinessModuleProcedureApi, ProcedureMetricsApi, GdprValidationTaskApi { @@ -158,6 +160,11 @@ public class BusinessModuleClient return procedureApiDelegate.getRecentProcedures(userId, procedureTypes, procedureStatus, limit); } + @Override + public CheckFileStateUsageResponse checkFileStateUsage(CheckFileStateUsageRequest request) { + return procedureApiDelegate.checkFileStateUsage(request); + } + @Override public TaskResponse getTasksForDashboard() { return taskListApiDelegate.getTasksForDashboard(); diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClientRegistry.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClientRegistry.java index 6d741c5d796854050cbe665e301601eff8a850c3..5043604a641db4c9f72b31296ce8396c3d4de7fb 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClientRegistry.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/BusinessModuleClientRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ClientResponse.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ClientResponse.java index c419a195fd9b97afad2d9c10c31f6563e5b54d8c..065a4c166f6ceec9719858c87be04dc81f0382e6 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ClientResponse.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ClientResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/CorrelationIdAwareExecutor.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/CorrelationIdAwareExecutor.java index 36381de296b5e30b4d2316a99807cc4d147374f2..c0c75f750c7dba7a1262f39ef36eb535cdf723ab 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/CorrelationIdAwareExecutor.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/CorrelationIdAwareExecutor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ModuleClientAuthenticationAwareExecutor.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ModuleClientAuthenticationAwareExecutor.java index 3d63da62c45d48310ee9add21efa2c96ebfbe4e5..9736f84c1149c87cb9314f22bf4bb6bc2165cbec 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ModuleClientAuthenticationAwareExecutor.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/ModuleClientAuthenticationAwareExecutor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/AggregationLibraryAutoConfiguration.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/AggregationLibraryAutoConfiguration.java index a013b9b270ae966d5b8d72e5e9d6fb21b916d37e..86baee98162bd1b916f91db52cb44490e7ff6012 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/AggregationLibraryAutoConfiguration.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/AggregationLibraryAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/BusinessModulesConfigurationProperties.java b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/BusinessModulesConfigurationProperties.java index 9a81b1bf7fea84851f654e7e376cc0b20b16d74f..9e943d7a4cb1bb8553ca82e8ae69dfc3dad73064 100644 --- a/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/BusinessModulesConfigurationProperties.java +++ b/backend/lib-aggregation/src/main/java/de/eshg/lib/aggregation/spring/BusinessModulesConfigurationProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/openApi.yaml b/backend/lib-appointmentblock/openApi.yaml index 2171bd8d5a58bbbc86f006a88c0240f3d9833a2a..4b6469029de9dd07bc696815ef9907b26f7d71e3 100644 --- a/backend/lib-appointmentblock/openApi.yaml +++ b/backend/lib-appointmentblock/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 @@ -343,6 +343,7 @@ components: - HIV_STI_CONSULTATION - SEX_WORK - RESULTS_REVIEW + - OFFICIAL_MEDICAL_SERVICE AppointmentTypeConfig: type: object properties: diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockController.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockController.java index 4037a4edc83e1ac0f293df4b8a4078f42aca773c..e6b1e01ff16d163914905b7b7277ff82272fb348 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockController.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockGroupPageSpec.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockGroupPageSpec.java index 5057d6d1f2730ae500542fdd4e2ac52d9bcb0837..eed46a753a0965c4631f4f7f2b019a45b818775b 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockGroupPageSpec.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockGroupPageSpec.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockService.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockService.java index 6f95ed5718118564ec84321d095e3affc309dd89..5c842738cfc20855bbebbad9cbcdc7623dfe82ae 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockService.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockSlotUtil.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockSlotUtil.java index 01ac08f542f9a2199b94ceb2e0b7f2ab3be7eb37..80153a92a197df44f326091a6e0ad45b2f24ded6 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockSlotUtil.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockSlotUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockValidator.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockValidator.java index ed375fd780467df3052dcec894b108603cfddc2b..23709742d071a400b45118d651409d69b0b997b9 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockValidator.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentBlockValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentMapper.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentMapper.java index 78dd8ac6ac59960e4ee70ed3f3a5d3afe67f3af5..dfb0f2a4555af64a5e373cc3ca47dbcea6854f9b 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentMapper.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeController.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeController.java index c11d5948a75628a89516841820806d2650548ecc..a3437aaa6cdce3ef6ecaa254b685474f164b589f 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeController.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeMapper.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeMapper.java index 7f84738327ffc0fb3f8d294692e9d6e13dd27413..f4ae7bd4ccebb7986dcb30cddda08872a56bc827 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeMapper.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeService.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeService.java index a35bc172ffa60e274996a2faf887bfa284f8fcfa..fca653fe3c2be9c5c4dcf20db5ae2e35efaaf363 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeService.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/AppointmentTypeService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -53,7 +53,7 @@ public class AppointmentTypeService { AppointmentTypeConfig appointmentTypeConfig = appointmentTypeRepository .findById(id) - .orElseThrow(() -> new NotFoundException("Appointment type not found: " + id)); + .orElseThrow(() -> new NotFoundException("Appointment type not found")); appointmentTypeConfig.setStandardDurationInMinutes(request.standardDurationInMinutes()); appointmentTypeRepository.save(appointmentTypeConfig); diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DayOfWeekDtoMapper.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DayOfWeekDtoMapper.java index 871d12778e9ebf3b3271ce554e3b03e356ab89fe..67439b916646f20bfc89b572d6e93a11c34227e1 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DayOfWeekDtoMapper.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DayOfWeekDtoMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DurationUtil.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DurationUtil.java index e0858ec08dfe34c922ef0d6b5e66596c71ed8d3f..b4dcc30d19f2b46e1c745409ec6ff0b02256c8b6 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DurationUtil.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/DurationUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/EntityWithAppointment.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/EntityWithAppointment.java index 9cb4e2177c81a73fd2d98bed28532020477566ab..5e3f5f0e8552ce8909eed113e5bf345243cc60e7 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/EntityWithAppointment.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/EntityWithAppointment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/LocationSelectionMode.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/LocationSelectionMode.java index ae5d280109305747d2f4ea489e53775f91604337..ec3a68d90dc1220b7f7c65ebaab0239d9ef500be 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/LocationSelectionMode.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/LocationSelectionMode.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/MappingUtil.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/MappingUtil.java index 6d62b8072c293b75d5f9945f85644ef85b60057e..5ba81db7f354423a055ffc4a6fa3e001bf2c8e6e 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/MappingUtil.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/MappingUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/PagedAppointmentBlockGroups.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/PagedAppointmentBlockGroups.java index 08ed7a5415f49240b64397ac57db7a457c11f2a8..b94a8f2c679e401d466615e5474178d6ab093417 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/PagedAppointmentBlockGroups.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/PagedAppointmentBlockGroups.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockPaginationAndSortParameters.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockPaginationAndSortParameters.java index 5699be00cc99aa9df9f14b6718c687e031707b3a..03cfc6b1ff92314a7e34a994e03992148e85b7e2 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockPaginationAndSortParameters.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockPaginationAndSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockSortKey.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockSortKey.java index 383709a44c61d2232f85413ba5aa4f32b13c7f80..4dbe0199fb0b5d64475a717bb9ff9cd7bc6422ed 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockSortKey.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentBlockSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentDto.java index 84e037d122b11d60e89332af03f018c1654787aa..485a1d73e3b3244c3e6bcaeba2dc9427ecb1eb3a 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeConfigDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeConfigDto.java index a42181b7e554d1d3a6b0a2c91ca629e8b48df950..b9c049e7d0b2c8642fb8361416eb38c4a26568b0 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeConfigDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeConfigDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeDto.java index 370e68a606efd70248362b829d4f4ab6750e75c2..3502bc2fc29b8f644ea04ab92dca1b8ac31ccaea 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/AppointmentTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -18,5 +18,6 @@ public enum AppointmentTypeDto { PROOF_SUBMISSION, HIV_STI_CONSULTATION, SEX_WORK, - RESULTS_REVIEW + RESULTS_REVIEW, + OFFICIAL_MEDICAL_SERVICE } diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateAppointmentBlockGroupResponse.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateAppointmentBlockGroupResponse.java index 526d91d0edea9c4f29b281000f1a0805244ea6b5..f26a9592d700da8a3d4b8825ab5da4a212c3d254 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateAppointmentBlockGroupResponse.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateAppointmentBlockGroupResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockDto.java index d9aeb1a4d064f8b379e3cbfa9b0d24f0fcf374a2..1a97356b8550eb7fe066ddd9ce0115d13cddc68d 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockGroupRequest.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockGroupRequest.java index 0b0a963db21a75240200c070a1077ec7ffab5dda..b047c61efa9775c46731d8609c6eedbd9f29c4cc 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockGroupRequest.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/CreateDailyAppointmentBlockGroupRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/DayOfWeekDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/DayOfWeekDto.java index eb5cc7a1aeaedb0d85d6ef9a40ae9eca3d0d3912..cc2d0a5296621f3456354741a59cca536e7ccaa9 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/DayOfWeekDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/DayOfWeekDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockDto.java index 04d79bcd05619785197be70663d4b87422e97c8f..5811944fd9cb65ed054d177fc1660224dbe116b8 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupDto.java index 76ee0cfe43840daf927b4be1cd1044f3f3bc4c70..f8b3ce250e74ee0a1862a1136d5b4bf1b6031979 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupsResponse.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupsResponse.java index 91538f91bead99e92dadc348a69503e77be6b70b..2854faee04bf98709fd95ee019856ae7c4dbba78 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupsResponse.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentBlockGroupsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentTypesResponse.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentTypesResponse.java index f6b5a67b9f9a8af26d2a96c1d25e22de835a8293..65bae761c61408270017db9a2ecba88d79abbae0 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentTypesResponse.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetAppointmentTypesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetFreeAppointmentsResponse.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetFreeAppointmentsResponse.java index b9290111f7013391c80828ecd55fa1f9244075f0..c10d2ea43dae9292e26561c2635b7d60bdc1a9dc 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetFreeAppointmentsResponse.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/GetFreeAppointmentsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/LocationDto.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/LocationDto.java index b3d28c04b1485356f4fe88d1761a68714c145575..d9b03e7de2d1953235201ed0ee7d16df1f3c1b2a 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/LocationDto.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/LocationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/UpdateAppointmentTypeRequest.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/UpdateAppointmentTypeRequest.java index 17bb61abbfb0b82e2dafc401ac989037a58bd81d..6856ec61efe47fab24887e87e9842598e658a72b 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/UpdateAppointmentTypeRequest.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/UpdateAppointmentTypeRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/ValidateAppointmentBlockGroupResponse.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/ValidateAppointmentBlockGroupResponse.java index 779b1340ee1fc9e7ad2b20022aa9f7f268404631..020313da881f15d79d0794ee97cc9ca89b44dde8 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/ValidateAppointmentBlockGroupResponse.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/api/ValidateAppointmentBlockGroupResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/client/CalendarClient.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/client/CalendarClient.java index 50d36cde599d3a038ffab1ac9ba5d8266e4c0dba..e62701a8a6408b31d09ce70f5035846e96fd936c 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/client/CalendarClient.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/client/CalendarClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/contact/AppointmentBlockLibraryContactsMergedHandler.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/contact/AppointmentBlockLibraryContactsMergedHandler.java index 863f9a1b0c010f4d444d7f76875feb35cdb0928a..113bfda6001d02e8f8409644131afbf17e056b19 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/contact/AppointmentBlockLibraryContactsMergedHandler.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/contact/AppointmentBlockLibraryContactsMergedHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockData.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockData.java index 7fb435633ffb9ed53e0cbf3bd31e32fe586e5c6b..a72fc64706106c2506a1f046940deb1c4e851761 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockData.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockGroupData.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockGroupData.java index 50a3451fc37327f788a6906fcf7b8a1a76531bb8..c54aa79012fd0c6cc1b9c37c42719af09b857d64 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockGroupData.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockGroupData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockSlot.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockSlot.java index 4ac1ba0a5a5ed9d42d19f23cc5e037e125d02f55..e5922386caff65c903581d212c6bcf0b3252c37f 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockSlot.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/AppointmentBlockSlot.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/CreateAppointmentBlockData.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/CreateAppointmentBlockData.java index 80e27c3154e961ae45f4cf8e7b883687f041e822..a67e2336c2cf3dab486c5c565c486294e058104b 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/CreateAppointmentBlockData.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/model/CreateAppointmentBlockData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupRepository.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupRepository.java index db46ac774f395b59b1e97cdebe3d24e9a1fa81ac..c808e73110c30a16e3250fb92402191bb3e6376f 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupRepository.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupSpecification.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupSpecification.java index f2995394dc4e833ecfb54e4fcba24f2235a9af8c..b41bd276e88f0c8e7fec9ec62c7c6287677886b3 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupSpecification.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockGroupSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockRepository.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockRepository.java index c5048a9d45041b550ec203058fd8d858c4743769..23f61ff5ee281a49f09269295da63cc680898b37 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockRepository.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentBlockRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentRepository.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentRepository.java index c1c761e0ef707810ba0453f2dbea6d6c6fd5d97a..82fe349735cb9951c49cdfd8176732ae9f088723 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentRepository.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentType.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentType.java index 2dc8c202cc9163d5fd9d4faee3bbb0f39168feb9..6c62cc29aab14ad1cb2813222b60f5a22bf3c35d 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentType.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -15,5 +15,6 @@ public enum AppointmentType { PROOF_SUBMISSION, HIV_STI_CONSULTATION, SEX_WORK, - RESULTS_REVIEW + RESULTS_REVIEW, + OFFICIAL_MEDICAL_SERVICE } diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentTypeRepository.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentTypeRepository.java index 7a7fefa1edb668909b2b2eb251d65c5beff45bdc..a7474e8fc9e9d9f64532911dc4027e3c1fa6aea8 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentTypeRepository.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/AppointmentTypeRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/CreateAppointmentTypeTask.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/CreateAppointmentTypeTask.java index d74558bd8bb621226403f46f332dd3cf58c6bc01..5b1464af874e1b6347bde0a8975ad18212ac21fb 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/CreateAppointmentTypeTask.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/CreateAppointmentTypeTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/Appointment.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/Appointment.java index d7fca9a3b2b9bee3560bbc405399d5721a2ca840..c97241ba324be655e00adce48d8ca881c69bf934 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/Appointment.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/Appointment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlock.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlock.java index 1f27183a35c78688bfc3d423ff26c8d7d3406ef4..3fe923ca6ff3361ed9201585060d4b9927879374 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlock.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlock.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlockGroup.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlockGroup.java index 9c285ab68a521e0732b0ceeba139689e26ddc225..6c8c5570a70913789c7f19d63bdc4e711e774688 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlockGroup.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentBlockGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentTypeConfig.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentTypeConfig.java index 2316a1fcc2af736aefd2a3bae563385a86589e3e..3136501bd0be865657b630ce8e8814dcdec4a4b7 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentTypeConfig.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/persistence/entity/AppointmentTypeConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockDomainModelAutoConfiguration.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockDomainModelAutoConfiguration.java index 33aeab671fd3db73f1c544c00aeec36986b17aa2..e719e1d060adf2189d1e231dd0c6d8da876d0cad 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockDomainModelAutoConfiguration.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockDomainModelAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockLibraryAutoConfiguration.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockLibraryAutoConfiguration.java index e68aea9869943e81d3f57f76285db9a645f4653b..50fdd601dc9acebdbaa0144649c942a370c5ad38 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockLibraryAutoConfiguration.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockLibraryAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockProperties.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockProperties.java index 1b9c49fdb515e2a8c6a01afa69b0a0a61401afdf..47e38b241ebd8bbf137b83fb40764c147a8d979c 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockProperties.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/spring/AppointmentBlockProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockGroupsPopulator.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockGroupsPopulator.java index df2ef8526870e30f2feb4fd4fdcdc067224e3662..de18ae90a4e8af967ea00ece405f5e5d6eb956cb 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockGroupsPopulator.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockGroupsPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockTestHelperService.java b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockTestHelperService.java index 0810d3da4ac223744dd832052eebd0c17e303c96..c06e2f090d5193510c100a85f615ae464e97083a 100644 --- a/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockTestHelperService.java +++ b/backend/lib-appointmentblock/src/main/java/de/eshg/lib/appointmentblock/testhelper/AppointmentBlockTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AtomicUuidProvider.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AtomicUuidProvider.java index dfc37bea5cf2290328c4f5b6dafa2d96f46851b0..7d5a8ca7a1a64b6e724347330ca7b9cf082b33e2 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AtomicUuidProvider.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AtomicUuidProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogArchiving.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogArchiving.java index 95e4c52f8cb631877e0005ce5e9e11cd684ffa6a..8ac7613a30c1b9207fce3af4e3472b0b75b0bd93 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogArchiving.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogArchiving.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogFile.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogFile.java index 60227ab72433269312a5aa71970e648e179e9f3c..1705dbc8e6ef488cf97d0292b8a014f85efc90c5 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogFile.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogFile.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogHelper.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogHelper.java index 6da5469c2ab4743b0bc94f309c5a3019a947b8bc..0ee5d75f3f67c55c21c9a51c06b5344bbfa109c0 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogHelper.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogTestHelperService.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogTestHelperService.java index 73aa965c1b286e961a1d7c5d5b925111a6e2bcf7..49c66ff1d14e65bb793b86ad06952f46fc00ac60 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogTestHelperService.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogger.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogger.java index 5e23ea0294de3342e47dacb1b8d5c74ee4f57799..99663e4e22c3d4d02e059b683248a4cce0a21a70 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogger.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLogger.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLoggerException.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLoggerException.java index 66c704f464aa4f5846e99938649889017c8e0ef7..813b0c318fc722d1cdc313e931c5e20877fd91ab 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLoggerException.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/AuditLoggerException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/DefaultUuidProvider.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/DefaultUuidProvider.java index 7f15c08a76fa7bd55adff03d993d96ee6a36f43a..36ba03625b51bd8d13f167822ccb20be72f34abc 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/DefaultUuidProvider.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/DefaultUuidProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/UuidProvider.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/UuidProvider.java index ec5b23b03494690f0497707ba710e53f4deb9e4a..d92ae48a4061efc1c06db53e975bf1f783c1ae5a 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/UuidProvider.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/UuidProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/config/AuditLogConfig.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/config/AuditLogConfig.java index 0cfce4efd92b6950b4c07b06486a6e2ab263cf31..abdcf6d92daa69f6e55367a25e8079b0a9bdde92 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/config/AuditLogConfig.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/config/AuditLogConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogArchivingException.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogArchivingException.java index c32ea0e6726dd3ee299cf4f7623f1ceb4571d812..df6360c4e78d35c5eca93a4eec2f7d626ba77bc9 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogArchivingException.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogArchivingException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogAutoConfiguration.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogAutoConfiguration.java index ba8de161ec031e15b04f73a0c45282a416a618e1..0d581269a0f0315c03cb20ecb1d839afed73eb2f 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogAutoConfiguration.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogScheduledArchivingConfiguration.java b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogScheduledArchivingConfiguration.java index 385b75372dbae7146bb63130f47765a797c57063..106830f522c5a1ed6cd9719079412e2a7df268f0 100644 --- a/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogScheduledArchivingConfiguration.java +++ b/backend/lib-auditlog/src/main/java/de/eshg/lib/auditlog/spring/AuditLogScheduledArchivingConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientAutoConfiguration.java b/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientAutoConfiguration.java index 1cdaf4ea5d2f5dc8d0c26d37c4eab981517fe3fa..dade166f2f3722a457a22bceac67397d2899eccf 100644 --- a/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientAutoConfiguration.java +++ b/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientProperties.java b/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientProperties.java index fd056e3532e2b46fd5facb0b98589752582aec4e..43ee56ce982a74fae5c1be5e79f02f295e5d0b1c 100644 --- a/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientProperties.java +++ b/backend/lib-base-client/src/main/java/de/eshg/base/client/BaseClientProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/EventMetadataApi.java b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/EventMetadataApi.java index 60854d410ea44a0c3a06e31be33624be3fa4f079..c364d956ec1ff58ecbf2370c362b98257da5bdf9 100644 --- a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/EventMetadataApi.java +++ b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/EventMetadataApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/EventWithMetaData.java b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/EventWithMetaData.java index 64db8b746156e5b6e8517b81daeb39328f84551a..365203e2dd3ece9dcc3071bc6221461b13e7dd52 100644 --- a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/EventWithMetaData.java +++ b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/EventWithMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsRequest.java b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsRequest.java index 8d1c81462df8b4ab6a095f65e4e2e887f8ba6b40..dfc7cbd457fb8b3d27fd57da9a5fb8890a5c2184 100644 --- a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsRequest.java +++ b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsResponse.java b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsResponse.java index d88d383f9ec671dc564ff3decb6417d10522b49f..a575b82bdd3bfd53a06b03cd217c4f21842ba984 100644 --- a/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsResponse.java +++ b/backend/lib-calendar-api/src/main/java/de/eshg/calendar/lib/api/GetMetadataOfEventsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataController.java b/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataController.java index 260abb96991b3e99f1411d4f3641eb9638118e71..76e4055690a49b48279b68561978edba69539702 100644 --- a/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataController.java +++ b/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataService.java b/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataService.java index ba5f4115a41f1de8c3acab64fc74cfe892eafc08..71b4c1104a207562fecf5916e17c6a47ab2c1cc9 100644 --- a/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataService.java +++ b/backend/lib-calendar/src/main/java/de/eshg/calendar/lib/EventMetadataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/VersionedEntryApi.java b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/VersionedEntryApi.java index 0a3b29f0cab500711f5103ff3883cf80834e8a3d..69bbf5b8c7fbfc52774a5b813da76e0f96eb92ec 100644 --- a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/VersionedEntryApi.java +++ b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/VersionedEntryApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/ContentRequestDto.java b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/ContentRequestDto.java index f6e6573af6a31d353b8b4a29b2b98a91e9288614..c8ee5a79d48d186d6921d180a506abb1d41ffecb 100644 --- a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/ContentRequestDto.java +++ b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/ContentRequestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataListResponseDto.java b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataListResponseDto.java index c62180739bd6e83e9e3d26405ab6478464c4574b..c62891671aa5a9849b055c91c93967820cd609c3 100644 --- a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataListResponseDto.java +++ b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataListResponseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataRequestDto.java b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataRequestDto.java index e48850e2597dcf6e76d716a50d67f6f258aebf68..6cf248b60c6243708b6b90947c38ceba254596f7 100644 --- a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataRequestDto.java +++ b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataRequestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataResponseDto.java b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataResponseDto.java index e6b6fbb7867a02a53e5fd2faa5a69ada4ef53b4c..efb7b477ca5e1b3102edb7650dc4550d42e404d5 100644 --- a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataResponseDto.java +++ b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/MetadataResponseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/VersionFilterType.java b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/VersionFilterType.java index befc5ea551264b98e47790703304aa50a23451cb..74307cd198617f84c9fa4f8589ffcc7d7f4cdf51 100644 --- a/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/VersionFilterType.java +++ b/backend/lib-central-repository-api/src/main/java/de/eshg/lib/centralrepository/api/VersionFilterType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientAutoConfiguration.java b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientAutoConfiguration.java index d97b44631629f1f6c18462f201db1f733a2c220b..faca690b3ca974e02c7466c8df7bbb715799696f 100644 --- a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientAutoConfiguration.java +++ b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientProperties.java b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientProperties.java index f684fda45b1e01cebfcfbe0b9c11f74d91802b79..6e03c40cfd9cf7dc486071edb266eb216703ad61 100644 --- a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientProperties.java +++ b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryClientProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryRestClient.java b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryRestClient.java index be3b2b5ee562f3a780e553f1058e8e68c21c7a4e..0cd26c3c4c0833f88bca3f7cf9427f9ac58515dd 100644 --- a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryRestClient.java +++ b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CentralRepositoryRestClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CertSubjectForwardingInterceptor.java b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CertSubjectForwardingInterceptor.java index 9d3bf5457802439038e7df6aa16709c18bf71b29..174f494ae229be47475a1a56365aaced5c626679 100644 --- a/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CertSubjectForwardingInterceptor.java +++ b/backend/lib-central-repository-client/src/main/java/de/eshg/centralrepository/client/CertSubjectForwardingInterceptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModule.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModule.java index 8e369564bbc3039c39a9cb5e3891213071cbc519..751159cd99b9de0b86c8994728df7666c2b1ebaf 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModule.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModule.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModuleCapability.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModuleCapability.java index 49e19d69c649876e5878570af2796a11d06cddaa..56320101e99b70c9eb10a6d6a771fcf896346f79 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModuleCapability.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/BusinessModuleCapability.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/CountryCode.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/CountryCode.java index 3006b9c0b76918d5ad815f7a7936e663bd9a22b0..7f0c0a0c8e10764b781ff3a02217c06e54d5e28b 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/CountryCode.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/CountryCode.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/DataSensitivity.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/DataSensitivity.java index f72d2ee80f5d5906a4487d3da42fcafa51c145d7..75e746f9a6f7fbfc8326afb30ba5dafeacfa5f1a 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/DataSensitivity.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/DataSensitivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/EshgHttpHeaders.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/EshgHttpHeaders.java index a1de97c12b0bdef87a89be4b4d5cdbf5bcf40677..b52fb6904e4f93e5801479df318e3d972ea2df54 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/EshgHttpHeaders.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/EshgHttpHeaders.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/FederalState.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/FederalState.java index 53a089a9d810e48f8225438a38fb85cb9416d409..134771ca6897b2f196a4b76c0ca3022b17287a6d 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/FederalState.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/FederalState.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/SensitivityLevel.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/SensitivityLevel.java index c619272c5e3b32e2170a7fd1ec2a545fa6b4793b..60f6c822e7919b2932c2d9c7fcdbcd7e3360299d 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/SensitivityLevel.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/SensitivityLevel.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-commons/src/main/java/de/eshg/lib/common/TimeoutConstants.java b/backend/lib-commons/src/main/java/de/eshg/lib/common/TimeoutConstants.java index 646dcc19438cd778445a4511e40067d428e05222..b298e37e347bbd3be8a8bbea1c2b00fc324b39ee 100644 --- a/backend/lib-commons/src/main/java/de/eshg/lib/common/TimeoutConstants.java +++ b/backend/lib-commons/src/main/java/de/eshg/lib/common/TimeoutConstants.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/api/ContactEventCallbackApi.java b/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/api/ContactEventCallbackApi.java index 53b1426965313e116bf81822d974f10438a5e108..24f396c56e321ee87e88d088f4955aff4b218e11 100644 --- a/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/api/ContactEventCallbackApi.java +++ b/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/api/ContactEventCallbackApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/model/ContactsMergedEvent.java b/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/model/ContactsMergedEvent.java index 233485f45341ce0c9001e2b2a657f7bba6ba3459..73d5de16bae43d4974c6be076830e902413fb5e6 100644 --- a/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/model/ContactsMergedEvent.java +++ b/backend/lib-contact-api/src/main/java/de/eshg/lib/contact/model/ContactsMergedEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactClient.java b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactClient.java index 05bab72e32143a30eb84140f85831d0f139de906..ac1477dba1c20cf6450798924f8b057a5fff833a 100644 --- a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactClient.java +++ b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactEventCallbackController.java b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactEventCallbackController.java index b7b9b2d9383cfc2448052a71e61436bfad759596..04a581c5fd52b07d1022ef6007590fca1eb18ee7 100644 --- a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactEventCallbackController.java +++ b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactEventCallbackController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryAutoConfiguration.java b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryAutoConfiguration.java index 620d59d626a2a5828b6900928094507a54e647b2..3ac1d42a1e92bdf1d65fd8bf0ce77a7e68047b7f 100644 --- a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryAutoConfiguration.java +++ b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryInternalSecurityConfig.java b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryInternalSecurityConfig.java index a45c1c2621c594bd694ceb6faaba43a8635b5bbd..a39a0c66a057d42e697308224cd2711ae6b25e88 100644 --- a/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryInternalSecurityConfig.java +++ b/backend/lib-contact/src/main/java/de/eshg/lib/contact/ContactLibraryInternalSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/DocumentGenerator.java b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/DocumentGenerator.java index f8e8d3337d3e611c9b55fc215948835041f58db7..5e56ccdb1418a463e744b167ccdddc656d18a548 100644 --- a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/DocumentGenerator.java +++ b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/DocumentGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/PdfCreator.java b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/PdfCreator.java index 36ad7a505798d7513de994cc47f1e9e73c177287..ebd29f0a8c353f1d12af5dd8fa1d65d9389eb54c 100644 --- a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/PdfCreator.java +++ b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/PdfCreator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/XhtmlTemplateProcessor.java b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/XhtmlTemplateProcessor.java index 813566fefb83b8d93811fb2d46e41a0231a90b03..8824862999f8a669cd8a7a80915406ccf6fd15ba 100644 --- a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/XhtmlTemplateProcessor.java +++ b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/XhtmlTemplateProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentClient.java b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentClient.java index e9ea736a9cf6da2265a2c858e20d79b392a6a6cf..e694e3026be9d2aaeb4be0dd0d74d2db651e994d 100644 --- a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentClient.java +++ b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentLogo.java b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentLogo.java index 80b4e5e561bd28e79fd74c61d5b3f50748556841..69151101681fc2eb808c0d116b3618d03d0a9f01 100644 --- a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentLogo.java +++ b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/department/DepartmentLogo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/spring/DocumentGeneratorAutoConfiguration.java b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/spring/DocumentGeneratorAutoConfiguration.java index 9072ba844c22c2b7ba68db47aba5ada94f8d56f4..40c96b48b0b24167462f1ce3355ff6557bf43f20 100644 --- a/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/spring/DocumentGeneratorAutoConfiguration.java +++ b/backend/lib-document-generator/src/main/java/de/eshg/lib/document/generator/spring/DocumentGeneratorAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/EditorApi.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/EditorApi.java index e46571eb43f420419d4f770c5c03395b0324ff3f..6b61ffb2322cc0c9937bb2e47057130eb79b701f 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/EditorApi.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/EditorApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/TextBlockApi.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/TextBlockApi.java index 6045290394889ab0bd75a7e515b299b010cbdb51..2f989cb71ffbd040366d6d5b73a4b3b86b5df78e 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/TextBlockApi.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/TextBlockApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorBodyDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorBodyDto.java index c09535f58baecea4deab1dc70924f5c6eb91569d..15f20194ed7c88be99f2003a597d7e9bc9c2c58d 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorBodyDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorBodyDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorDto.java index 3c8847039f9ff4e99c5f8ddb02a8e1e574f5ccad..fd1fc1bac7fdb91b35e586da8a8fa3a96c6f3415 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/EditorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/GetTextBlocksResponse.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/GetTextBlocksResponse.java index d4262fc433642ae38d7ee001d06847d223ee3fda..7ef6a1c87659b1d878c24115a404d05a9e4d2973 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/GetTextBlocksResponse.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/GetTextBlocksResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/InsertEditorRequest.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/InsertEditorRequest.java index 806f12b865f0fb82202af21786b466746b8740d0..46e51e4e1f01b25a125857fe455c48cbd57654e2 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/InsertEditorRequest.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/InsertEditorRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/ModifyEditorElementResponse.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/ModifyEditorElementResponse.java index e11b08846f13316799ff073daa35a2f27f7c93dc..dd5eeb26f001ccfa883848ae417d50498d974304 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/ModifyEditorElementResponse.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/ModifyEditorElementResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/MoveOperation.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/MoveOperation.java index e66804297f8388a963aee76c0d22e8dfba29106b..b6e99951beb7c887b472d9fc5507970c66667cb1 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/MoveOperation.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/MoveOperation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockDto.java index f32fc27da5afb49694e129b09a4bb18eb240274a..672c13b86565df6eb8ec5a9854a14fc5dbc290b8 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockFilterParameters.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockFilterParameters.java index d8e4a873fe90bc575e66c4e894eee5b734200051..273796a5b952af2e2347db797a00d9dee2edc2b6 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockFilterParameters.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockRequest.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockRequest.java index a10dfe313dff4fbabf36a3d3ffe7e8f608276610..ccba34d4aa51483f8f2e61ae13a1226be85415ab 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockRequest.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockSortKey.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockSortKey.java index 70235ea10795dcea72af8497dcac8fd35482f1ae..01e83d3fecb5c4d7936e745537c0ce9afddebb61 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockSortKey.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/TextBlockSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/UpdateEditorRequest.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/UpdateEditorRequest.java index e734e19e55e042b654e1be7200debefdec6fc4bc..9e578f89a44c2f4a2825ddfcd960703db714a438 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/UpdateEditorRequest.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/UpdateEditorRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAnswerDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAnswerDto.java index 0722744c9e2a494631f8bd5d9fc77d54caf5fb96..8367e85e95434b3e5af0c9d698b248cc79c96b17 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAnswerDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAnswerDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudioDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudioDto.java index 6c436969725126e230bce5e68f252a1d281e757e..81b2262a4246ca9ef0b59a0c50fee219999146b1 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudioDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudioDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudiosDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudiosDto.java index 11a62e23aaa344c2a4d20b1dfc5ad3ba3f6c0c7a..b81c2104b115daf4187d9fac4e57a81a55359172 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudiosDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementAudiosDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementChapterDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementChapterDto.java index dd680aee8e6088df4a77e9c1b6d4699f80c99b91..42a785d72c4c28f05766867d275d59fd7382adf8 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementChapterDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementChapterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementDto.java index 45a5c72e311a1c0c5eb12d094a1768475ce0ff8e..d410d7acf042578c13c2e6bb656aefe63983098d 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementFullTextBlockDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementFullTextBlockDto.java index c4dfbf10383b9afa5c46b3c8204f4003990d3bf5..95bfe444456bd61bb580c26ccfa8417250f1995f 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementFullTextBlockDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementFullTextBlockDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImageDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImageDto.java index d093c0b51aa51129aec4ea1db2f5ab48493761a7..84999687bab7e1c279d0d157773891ab81d025c9 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImageDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImageDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImagesDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImagesDto.java index cd2836b7bd3bce78ed2dc33f2bde2eba93626591..f16fec700197e3c34b13cac6f27b255c0519706e 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImagesDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementImagesDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementQADto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementQADto.java index 92c62242a167d37f15cfbe5d1da3423980c040aa..a9486bfcad948b6aa7110e7625fea6a143fa82e0 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementQADto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementQADto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSectionDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSectionDto.java index c1b5074313073b81568b1067bbcc7cd18d8f5205..2503685fd8fde62e6aef244060710dc7de1cd698 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSectionDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSectionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSeparatorDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSeparatorDto.java index 708bdd091be6b8c92923231c55a891025e0e3f9f..5e13411ab105ce434320d3c8ff5ae80cd9eb233d 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSeparatorDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementSeparatorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextBlockDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextBlockDto.java index 3c91faf10057f17cb3a97f7ac74c300c3e8702b0..4dbb3dc280c135817b6bc7f4a83e1c47fa51ed5d 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextBlockDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextBlockDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextDto.java index 549fe961b557cbe8987c3a21e0ff1d371650d168..544be7e8116ee7dec99686f83c134207d18d9bb0 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTopLevelTitleDto.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTopLevelTitleDto.java index 9508708f1f43a543b69b45adb10949d8e264a116..355099cf56dc6fc7442457a2744ddd3e5dfd59df 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTopLevelTitleDto.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementTopLevelTitleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementType.java b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementType.java index 54ff937c094f863905299eba47f1c9a34ab5732b..e1f3c788b3ce428342fd097f97d960b48ded5675 100644 --- a/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementType.java +++ b/backend/lib-editor-api/src/main/java/de/eshg/lib/editor/api/model/element/EditorElementType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor/openApi.yaml b/backend/lib-editor/openApi.yaml index 86d69b73666c4c57ed4acc916fcdcc37c491e2e3..4cdf88c4600c7ac5c706cc5a75adb36a4a5f803d 100644 --- a/backend/lib-editor/openApi.yaml +++ b/backend/lib-editor/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 diff --git a/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorController.java b/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorController.java index 9e32ed1c8fff4a8a9185f3a985570be0c56e004f..2953c6b710f9cb98eb47a398ad12210f9d41f3bb 100644 --- a/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorController.java +++ b/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorService.java b/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorService.java index 8ba92b5ee8986eba1c09b470913f3f03d5a81dae..580e20d064f7a37efbbb351e20e778968a0cc7b5 100644 --- a/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorService.java +++ b/backend/lib-editor/src/main/java/de/eshg/lib/editor/EditorService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockController.java b/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockController.java index 6cccc0f38c1bd7b06a5a1cada7bb2ed236ad7b6a..ce4d03233d1d04ecb5f7a1b242cf80c51ff6bb6f 100644 --- a/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockController.java +++ b/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockService.java b/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockService.java index d25c0599771f46ba0e1eec3ee434978a5ef846fb..ea4cc1cbdf1f4eff6aab8118fc49069d55718406 100644 --- a/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockService.java +++ b/backend/lib-editor/src/main/java/de/eshg/lib/editor/TextBlockService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryAutoConfiguration.java b/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryAutoConfiguration.java index 6449480df078307037751f6e7d332fc7ea5741e0..92f6d9dddf9ddb878ac0b1c91746ac7d3c04313e 100644 --- a/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryAutoConfiguration.java +++ b/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryPrivateSecurityConfig.java b/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryPrivateSecurityConfig.java index 09c2c5df4cafe58f1b414bb30335458be706d7d2..e9c251a03e6d1fe6522a12f1c3a26ee14317ec10 100644 --- a/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryPrivateSecurityConfig.java +++ b/backend/lib-editor/src/main/java/de/eshg/lib/editor/spring/EditorLibraryPrivateSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/api/ApprovalRequestApi.java b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/api/ApprovalRequestApi.java index 561a1e599e796aa15ea2e76fb93c14805739170a..54628257f17e0eddb4c6b1bc1b5831ea45008bc2 100644 --- a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/api/ApprovalRequestApi.java +++ b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/api/ApprovalRequestApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestDto.java b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestDto.java index 7fbbf799c17766ac92bd68452de52442b85b31d4..b583be1c1f231f6192b08c8b2da50f7aaf637fd7 100644 --- a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestDto.java +++ b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestEntityDto.java b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestEntityDto.java index 06e5e5777b54f7c65b37683a9d0b94e34b91470e..8cee9101eabfe16cf7acf5c35dd7b73e6609c58a 100644 --- a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestEntityDto.java +++ b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestEntityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestStatusDto.java b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestStatusDto.java index 87b812609936cf6d0a80452a18e3093cfeb8a726..0ff3a0792e47d3709f91ced1971aa5936c1c5ae4 100644 --- a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestStatusDto.java +++ b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/ApprovalRequestStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/CreateApprovalRequestRequest.java b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/CreateApprovalRequestRequest.java index 97144bce5326c1f3df068ff91744d73b4731a603..72d16048d748e821ca6be2caa564973d3ed82023 100644 --- a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/CreateApprovalRequestRequest.java +++ b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/CreateApprovalRequestRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/DecisionDto.java b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/DecisionDto.java index 4a9222122a3c35599b2c3523483a36b655825117..ee1af78c635a24019eaf9b4fe3f9aa7c8f8e88f7 100644 --- a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/DecisionDto.java +++ b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/DecisionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/OperationDto.java b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/OperationDto.java index 76cb7f6230a15f79b9d39261d140fe91a2e800cb..6bb614b9bfac22be9a7fae101e81fdddc69973bb 100644 --- a/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/OperationDto.java +++ b/backend/lib-four-eyes-principle-api/src/main/java/de/eshg/lib/foureyes/model/OperationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/openApi.yaml b/backend/lib-four-eyes-principle/openApi.yaml index ed2de3d256b2283f267e74339fee58847f1f41bb..542b048e7caf9a55d2201220e445ab855c327ba0 100644 --- a/backend/lib-four-eyes-principle/openApi.yaml +++ b/backend/lib-four-eyes-principle/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractApprovalRequestDecisionHandler.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractApprovalRequestDecisionHandler.java index 0f0bddd74b77e3ec07f5977c201b75300ca80b43..77c08b518a5a6dfa4016ee7a4a0a6205b5b35979 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractApprovalRequestDecisionHandler.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractApprovalRequestDecisionHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractDeletionApprovalRequestDecisionHandler.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractDeletionApprovalRequestDecisionHandler.java index c3a9951663637c9afec077d5a1d77f957e71ff10..8aedcc1e91c6bf6a93117194f20134e19424866c 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractDeletionApprovalRequestDecisionHandler.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/AbstractDeletionApprovalRequestDecisionHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestController.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestController.java index bffdc3a7745931bb199f1e04493b74c22871b5ea..beaeb06811431d9a4f1d4aabf203e86f27319dd3 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestController.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestDecisionHandlerRegistry.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestDecisionHandlerRegistry.java index 243152728ed7e4021d04dc7119eb6282796431fa..22ed643d8222212ae18f35fd244ced164f9fbc2d 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestDecisionHandlerRegistry.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/approval/ApprovalRequestDecisionHandlerRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequest.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequest.java index b4525a3d2bc2fc8c152dfe1cbd5c821fd3d0fbfc..075380ad554ffda69dabb6127d9d60bab59a78c5 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequest.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequestStatus.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequestStatus.java index 8ee306784255f3c156ac51e6a08ac9c0208e46de..2020c105ea99b2d28c2c83df3e1c46ae461abac2 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequestStatus.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/ApprovalRequestStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Decision.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Decision.java index 49e69c6ab69f560c7d99a4104ad5bfd19f96ba8d..023ee99b8eb72b06efb3a2335f8abc5613015ae9 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Decision.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Decision.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/DeletionApprovalRequest.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/DeletionApprovalRequest.java index 7746bdae0f1b96fea5fd4c3a3d3019889d0aa491..943512b92b3cf2843a1388e3eda0a84c97819ba4 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/DeletionApprovalRequest.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/DeletionApprovalRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/LockableEntity.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/LockableEntity.java index f4ec988fd3470228768ad7feb350ea165c501a9f..d23dadd77222f6a52b8ad655d2f01d62e0b60b92 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/LockableEntity.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/LockableEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Operation.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Operation.java index b2380d50576798fcb8c4a0989e5f26828953a3d6..fd9a7d340e6832adf3a3a08f026b51f51b958db0 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Operation.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/model/Operation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/ApprovalRequestRepository.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/ApprovalRequestRepository.java index 533684cd47abd15600136fe7bfe391cd123089ad..354b49114e6716fffe24170ae15160c7355aef2a 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/ApprovalRequestRepository.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/ApprovalRequestRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/GenericApprovalRequestRepository.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/GenericApprovalRequestRepository.java index ea31098d0ba0eeafc08a20f7bc8a307d04727c04..bd26ffa75c5bc601b909c2021c998bddd5fdf9f5 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/GenericApprovalRequestRepository.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/repository/GenericApprovalRequestRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/specification/ApprovalRequestSpecifications.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/specification/ApprovalRequestSpecifications.java index 03a99da86656f9a96759bb5d1b54b189b1d29126..cbdf2afeffdfa21e4b366c4b604547887b59e416 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/specification/ApprovalRequestSpecifications.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/domain/specification/ApprovalRequestSpecifications.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/mapping/ApprovalRequestMapper.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/mapping/ApprovalRequestMapper.java index 969f2232297ccaa7f660d4c33dc118fd15da9dad..fd1f202e3be160152e2992a209f34b38a59748c2 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/mapping/ApprovalRequestMapper.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/mapping/ApprovalRequestMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/spring/FourEyesPrincipleAutoConfiguration.java b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/spring/FourEyesPrincipleAutoConfiguration.java index ccf957b185559a9bcbea425e97a2f2ff6f346e93..34808dc2a6d33593f13d82dbbb4b52b34a3b8841 100644 --- a/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/spring/FourEyesPrincipleAutoConfiguration.java +++ b/backend/lib-four-eyes-principle/src/main/java/de/eshg/lib/foureyes/spring/FourEyesPrincipleAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/AdministrativeGroup.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/AdministrativeGroup.java index 3d01a56bec8e3f01f34f122a447fe8f17aec8f65..813e478b2b4074ba245e09ca57319d689e51d9c9 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/AdministrativeGroup.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/AdministrativeGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenPermissionRole.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenPermissionRole.java index 7fe3293a7fe54c5bc603753772c9eb0630f070b0..0f7387515bd1c2ca3d5934d77b80ea3326bc25e5 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenPermissionRole.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenPermissionRole.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -20,7 +20,6 @@ public enum CitizenPermissionRole implements PermissionRole { "Mein Unternehmenskonto Benutzer", "Über 'Mein Unternehmenskonto' (externer IDP) authentifizierte Benutzer", Module.BASE), - BUND_ID_USER( "BundID Benutzer", "Über 'BundID' (externer IDP) authentifizierte Benutzer", Module.BASE), ; diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenTestUser.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenTestUser.java index ae85cfa409c75f3b8698a5b04327a303cbd2ab0a..7a3dbed19029d71879b3a791db91c886251ea12a 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenTestUser.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/CitizenTestUser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,39 +7,47 @@ package de.eshg.lib.keycloak; import java.util.ArrayList; import java.util.List; +import java.util.Map; public enum CitizenTestUser implements KeycloakUser { - CITIZEN("citizen", "+49 555 123 100", "password", "Max", "Mustermann", List.of()), - MUK_USER( - "du-986b2b54ab89cf4ed674ad8c3126b966b54d4872", - "+49 777 987 649", + CITIZEN("citizen", "password", "Max", "Mustermann", List.of(), Map.of()), + MUK_DUMMY_USER( + "muk-dummy-user", "password", "MUK", "USER", - List.of(CitizenPermissionRole.MUK_USER)); + List.of(CitizenPermissionRole.MUK_USER), + Map.of("muk.dataTransmitterPseudonymId", "du-986b2b54ab89cf4ed674ad8c3126b966b54d4872")), + BUND_ID_USER( + "de93489238", + "password", + "BundId", + "User", + List.of(CitizenPermissionRole.BUND_ID_USER), + Map.of()); private final String username; private final String email; - private final String phoneNumber; private final String password; private final String firstName; private final String lastName; private final List<KeycloakRole> roles; + private final Map<String, String> additionalAttributes; CitizenTestUser( String username, - String phoneNumber, String password, String firstName, String lastName, - List<CitizenPermissionRole> roles) { + List<CitizenPermissionRole> roles, + Map<String, String> additionalAttributes) { this.username = username; this.email = username + TEST_USER_EMAIL_POSTFIX; - this.phoneNumber = phoneNumber; this.password = password; this.firstName = firstName; this.lastName = lastName; this.roles = new ArrayList<>(roles); + this.additionalAttributes = additionalAttributes; } @Override @@ -54,12 +62,12 @@ public enum CitizenTestUser implements KeycloakUser { @Override public String phoneNumber() { - return phoneNumber; + return null; } @Override public String externalChatUsername() { - return username; + return null; } @Override @@ -90,4 +98,9 @@ public enum CitizenTestUser implements KeycloakUser { public List<KeycloakGroup> groups() { return List.of(); } + + @Override + public Map<String, String> additionalAttributes() { + return additionalAttributes; + } } diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeePermissionRole.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeePermissionRole.java index f908040bb18050dc57ac4cbb65108cd09b6bdbbb..7a3f4ab455537cb55c0e1fd603e3d3063d4cbbb9 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeePermissionRole.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeePermissionRole.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -139,6 +139,10 @@ public enum EmployeePermissionRole implements PermissionRole { WRITE_PERMISSION_TEMPLATE.formatted("Muk Facility Links"), "Kann Verknüpfungen zwischen MUK Usern und Facilities (Stammdaten-Konverter) anlegen", Module.BASE), + BASE_BUNDID_PERSON_LINK_WRITE( + WRITE_PERMISSION_TEMPLATE.formatted("BundId Person Links"), + "Kann Verknüpfungen zwischen BundId Usern und Personen (Stammdaten-Konverter) anlegen", + Module.BASE), BASE_PROCEDURES_READ( READ_PERMISSION_TEMPLATE.formatted("Vorgänge"), @@ -320,12 +324,10 @@ public enum EmployeePermissionRole implements PermissionRole { "Amtsärztlicher Dienst Admin", Module.OFFICIAL_MEDICAL_SERVICE, BASE_PERSONS_READ, - BASE_PERSONS_WRITE), - OFFICIAL_MEDICAL_SERVICE_PHYSICIAN( - "Amtsärztlicher Dienst Arzt", - Module.OFFICIAL_MEDICAL_SERVICE, - BASE_PERSONS_READ, - BASE_PERSONS_WRITE); + BASE_PERSONS_WRITE, + BASE_FACILITIES_READ, + BASE_FACILITIES_WRITE, + BASE_CALENDAR_BUSINESS_EVENTS_WRITE); private final String keycloakNameWithoutPrefix; private final String description; diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeeTestUser.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeeTestUser.java index 71cd884324b0db7039b3f1057b36fbb146b64135..131f8228e4476b0d045334fb8d8dce34fa5198e3 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeeTestUser.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/EmployeeTestUser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -13,6 +13,7 @@ import static de.eshg.lib.keycloak.EmployeePermissionRole.CHAT_MANAGEMENT_WRITE; import de.eshg.base.util.CollectionUtils; import java.util.ArrayList; import java.util.List; +import java.util.Map; public enum EmployeeTestUser implements KeycloakUser { DUMMY( @@ -203,8 +204,8 @@ public enum EmployeeTestUser implements KeycloakUser { "oms_leader", "+49 555 456 654", "password", - "Hans", - "Hansen", + "Paula", + "Paulsen", List.of( ModuleLeaderGroup.OFFICIAL_MEDICAL_SERVICE, ModuleMemberGroup.OFFICIAL_MEDICAL_SERVICE)), OMS_CLERK( @@ -301,4 +302,9 @@ public enum EmployeeTestUser implements KeycloakUser { public List<KeycloakGroup> groups() { return groups; } + + @Override + public Map<String, String> additionalAttributes() { + return Map.of(); + } } diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/IdpTestUser.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/IdpTestUser.java index c0dfba125e16264503fd70e833cf5f1c1cd3cb2c..8c09b16dbce807036cac3620f4e23da2697f858e 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/IdpTestUser.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/IdpTestUser.java @@ -1,23 +1,65 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.lib.keycloak; import java.util.List; +import java.util.Map; public enum IdpTestUser implements KeycloakUser { - MUK_DUMMY("muk-dummy", "password"), - BUND_ID_DUMMY("bund-id-dummy", "password"), + MUK_DUMMY( + "muk-dummy", + "password", + Map.of( + "DatenuebermittlerPseudonymId", + "du-1a23402e9bc4a3852f8ef1a23402e9bc4a3852f8ef", + "Firmenname", + "cronn GmbH", + "Unternehmensanschrift", + // hack to get complex MUK saml extension type (address) into SAMLResponse + String.join( + "\n", + getMukSamlExtensionAttributeXml("Strasse", "Musterstraße"), + getMukSamlExtensionAttributeXml("Hausnummer", "1"), + getMukSamlExtensionAttributeXml("PLZ", "11011"), + getMukSamlExtensionAttributeXml("Ort", "Berlin"), + getMukSamlExtensionAttributeXml("Land", "DE"), + getMukSamlExtensionAttributeXml("Adressergaenzung", "3. Stock"), + getMukSamlExtensionAttributeXml("Typ", "INLAND")))), + BUND_ID_DUMMY( + "bund-id-dummy", + "password", + Map.ofEntries( + Map.entry( + "urn_oid_1.3.6.1.4.1.25484.494450.3", + "bPK2-bereichsspezifisches-personenkennzeichen-1"), + Map.entry("urn_oid_2.5.4.42", "Horst"), + Map.entry("urn_oid_2.5.4.4", "Esser"), + Map.entry( + "urn_oid_0.9.2342.19200300.100.1.3", + "horst.esser" + KeycloakUser.TEST_USER_EMAIL_POSTFIX), + Map.entry("urn_oid_2.5.4.16", "Portlandweg 4"), + Map.entry("urn_oid_2.5.4.17", "53227"), + Map.entry("urn_oid_2.5.4.7", "Bonn"), + Map.entry("urn_oid_1.2.40.0.10.2.1.1.225599", "DE"), + Map.entry("urn_oid_0.9.2342.19200300.100.1.40", "Prof. Dr. Dr."), + Map.entry("urn_oid_1.3.6.1.4.1.33592.1.3.5", "1"), + Map.entry("urn_oid_1.2.40.0.10.2.1.1.55", "01.01.2000"), + Map.entry("urn_oid_1.3.6.1.5.5.7.9.2", "Bonn"), + Map.entry("urn_oid_1.2.40.0.10.2.1.1.225566", "Meyer"), + Map.entry("urn_oid_2.5.4.20", "0123456789"))), ; private final String username; private final String password; + private final Map<String, String> additionalAttributes; - IdpTestUser(String username, String password) { + IdpTestUser(String username, String password, Map<String, String> additionalAttributes) { this.username = username; this.password = password; + this.additionalAttributes = additionalAttributes; } @Override @@ -64,4 +106,14 @@ public enum IdpTestUser implements KeycloakUser { public List<KeycloakGroup> groups() { return List.of(); } + + @Override + public Map<String, String> additionalAttributes() { + return additionalAttributes; + } + + public static String getMukSamlExtensionAttributeXml(String name, String value) { + return "<ekona:%s xmlns:ekona=\"http://www.elster.de/schema/ekona/saml/extensions\">%s</ekona:%s>" + .formatted(name, value, name); + } } diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakGroup.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakGroup.java index 73b4930dbaaa00c9530d70080b72edae021a6809..b02cfea2d465108a30a74f18ca7b4e20d8865d08 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakGroup.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakRole.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakRole.java index c94c912c9c8d37564b9936bbd9ea5510c1960ef9..d23220c3cc6a259dc2e233e16fa3e2ce03846a24 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakRole.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakRole.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakUser.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakUser.java index febd4c765a81be05b8f205e719f9fb6021d3a7fd..12b7c27702fbe6f6f85faf9a3901d455e11073cb 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakUser.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/KeycloakUser.java @@ -1,11 +1,12 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.lib.keycloak; import java.util.List; +import java.util.Map; public interface KeycloakUser { String TEST_USER_EMAIL_POSTFIX = "@eshg.de"; @@ -27,4 +28,6 @@ public interface KeycloakUser { List<KeycloakRole> roles(); List<KeycloakGroup> groups(); + + Map<String, String> additionalAttributes(); } diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderGroup.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderGroup.java index 1f668545b60e9546ecb38e22b9a8059401f66e15..b27f44aa79d09ed307c8bac01474e0caa22f9db6 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderGroup.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderRole.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderRole.java index 1d97d2ad6b424a9a7c2f43c799ecf19780324f73..d0b212cf048e03a6adefba102d0d30e3a3d55b64 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderRole.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleLeaderRole.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleMemberGroup.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleMemberGroup.java index 1b9fbd6b0be2bb06617302fa5f31cd215cf66ee5..ec898559cb1b82c26c9333c1f14d3735c463e3d3 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleMemberGroup.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/ModuleMemberGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/PermissionRole.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/PermissionRole.java index c077e90806f84e19334b82d46c2c0437d1d8eda8..c4a904a1feccb6e49bc3bfa96cc4c3455fd7d038 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/PermissionRole.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/PermissionRole.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/Realm.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/Realm.java index e6edec64ecb49e4113438ef246fc0e95b0708d80..2ca5148b69d7909e32cad533adaa69e055317ee3 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/Realm.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/Realm.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/TechnicalGroup.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/TechnicalGroup.java index 671a3c3dad8371b71d1bbcd1cac54d7da0c544a7..bc9aef951be3a276b1d6801350203203663dbb2e 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/TechnicalGroup.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/TechnicalGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,7 +16,9 @@ public enum TechnicalGroup implements KeycloakGroup { TRAVEL_MEDICINE_MFA("RMBI-MFA", EmployeePermissionRole.TRAVEL_MEDICINE_ADMIN), STI_PROTECTION_PHYSICIANS("HIV-STI-Arzt", EmployeePermissionRole.STI_PROTECTION_PHYSICIAN), STI_PROTECTION_MFAS("HIV-STI-MFA", EmployeePermissionRole.STI_PROTECTION_MFA), - STI_PROTECTION_CONSULTANTS("HIV-STI-Berater", EmployeePermissionRole.STI_PROTECTION_CONSULTANT); + STI_PROTECTION_CONSULTANTS("HIV-STI-Berater", EmployeePermissionRole.STI_PROTECTION_CONSULTANT), + OFFICIAL_MEDICAL_SERVICE_PHYSICIANS( + "AÄD-Arzt", EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_ADMIN); private final List<KeycloakRole> roles; private final String name; diff --git a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/UsernamePassword.java b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/UsernamePassword.java index 4cd0ca48eb279a3b002bbee35386ac9db2f3683d..38656a883ed3f63c19767530e55bf74ba731b90f 100644 --- a/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/UsernamePassword.java +++ b/backend/lib-keycloak/src/main/java/de/eshg/lib/keycloak/UsernamePassword.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorDto.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorDto.java index 98bf206a6af1bd8db4e0030f5d8d7a53afd2092b..3e5d6a71772d00a6066dab128b730e62b74822c5 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorDto.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorTypeDto.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorTypeDto.java index f160e8f3050a7f21512566c57668dabd19dd3146..16d71e2a0f4a40c882d9e3ee5cba54818e216018 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorTypeDto.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/ActorTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/AnnounceRequest.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/AnnounceRequest.java index 6e601e68fc1f37b430ff0e8992632c189d17001e..79a96ef5f8729b88f8e2df44aa8cc156b883e5d0 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/AnnounceRequest.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/AnnounceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/CertificateDto.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/CertificateDto.java index 2444c8d53e29d1bf5b39fa259bd95fc5975a7c60..6e937795c14f723cc25cac3c2962a00a0e001a41 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/CertificateDto.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/CertificateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/GetActorsResponse.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/GetActorsResponse.java index ec18b62220d6156fa92e41a598688b9889786b81..a2e42d7a792aa44e7cdaaa1fbbb187f1590fc0ae 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/GetActorsResponse.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/GetActorsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/KeycloakConfiguration.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/KeycloakConfiguration.java index f0655663588669b519aead7903b3d3aaeb47cc84..042c54541eb21d2b8df83017322b93b178492be1 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/KeycloakConfiguration.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/KeycloakConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApi.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApi.java index ed61401b99dd9fc2387fa47820cb097569ff34c5..9975d00095da8f66a0d155560bb25f21ea7cd1e4 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApi.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApiConfiguration.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApiConfiguration.java index 10c8ce1ccdd5130d5de172bb54c483e7d27938de..f457a3b4480fd86bdf53c4b5f4ac7e043e20f823 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApiConfiguration.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdActorApiConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdClientKeycloakProperties.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdClientKeycloakProperties.java index afde7a994c1b962a1b26a84d9b6e41f259d49906..3a82dee5d5b9c4aaf139a45100e278a7b79e93a2 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdClientKeycloakProperties.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdClientKeycloakProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdKeycloakProperties.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdKeycloakProperties.java index 3a728b84959c523d4d61e72cec41c5acbfab8ffe..d88b2cd611cfa625c325417546e09aec9a695efa 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdKeycloakProperties.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdKeycloakProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApi.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApi.java index f6557c05f62568c9f33aeffd7167a8d271566c00..224e761857be474b946f4451f8eafab15c0b0c7c 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApi.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApiConfiguration.java b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApiConfiguration.java index b2d5591f2f62374574fce7d73b64f06e5ab8107b..e7c82503f0e5c930ba08c0b43597679443fb73dd 100644 --- a/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApiConfiguration.java +++ b/backend/lib-lsd-api/src/main/java/de/eshg/lsd/register/api/LsdOrgUnitApiConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexLockingException.java b/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexLockingException.java index 458cd79fa70c354738e7f1a624dd57eebc615524..4ea319ab3f98df694feaaca56875d15f5c3f3763 100644 --- a/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexLockingException.java +++ b/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexLockingException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexService.java b/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexService.java index a0767e420c2c46a6d9573ccb479203a09d089e82..b91b3c5b1638f565db5bc748198fa0605ed7208c 100644 --- a/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexService.java +++ b/backend/lib-mutex/src/main/java/de/eshg/mutex/DatabaseMutexService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-mutex/src/main/java/de/eshg/mutex/Mutex.java b/backend/lib-mutex/src/main/java/de/eshg/mutex/Mutex.java index 83eaa7fca4933d52bfe43be116a4b7ff271e0020..5f4704b5c473db59edf91c11ea431afa0c860a98 100644 --- a/backend/lib-mutex/src/main/java/de/eshg/mutex/Mutex.java +++ b/backend/lib-mutex/src/main/java/de/eshg/mutex/Mutex.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexRepository.java b/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexRepository.java index 9ad4dbc277bdf99fdd71f6d42931814f17c77d4f..0dd8673f4e053eb7d0540dd0755107ad1e60480e 100644 --- a/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexRepository.java +++ b/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexService.java b/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexService.java index c9370c6fe8ee9223465424add1e6b1b96106f15a..b8f17ff07858f97c2a0b6315f9929f2ff5b1228c 100644 --- a/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexService.java +++ b/backend/lib-mutex/src/main/java/de/eshg/mutex/MutexService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-mutex/src/main/java/de/eshg/mutex/spring/MutexAutoConfiguration.java b/backend/lib-mutex/src/main/java/de/eshg/mutex/spring/MutexAutoConfiguration.java index 1209ed8763c813e9d45c1cc0bc53ca0b240ef22f..ff4ca16f779b1651b7e9833276c21ae374982327 100644 --- a/backend/lib-mutex/src/main/java/de/eshg/mutex/spring/MutexAutoConfiguration.java +++ b/backend/lib-mutex/src/main/java/de/eshg/mutex/spring/MutexAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/NotificationApi.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/NotificationApi.java index 1707313b92623121cfeab7d4510eeb606c14a14b..a946edba4f16da10338cc8f091aecfefbf9dc17c 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/NotificationApi.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/NotificationApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbsenceNotificationDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbsenceNotificationDto.java index f1d219cef7cba5fd6fb409d1bf0fb0f98d4d34f6..6ca5b9a20a4c85c48c8ed65bd479af577f88f75a 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbsenceNotificationDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbsenceNotificationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractNotificationDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractNotificationDto.java index 66a0771d6497ebdf15995619593fef83cb86b337..4aea660aabeb8e57f4fba5456656ae47e10b6170 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractNotificationDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractNotificationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationDto.java index e0ecfc7b4d8e216c7169458920b7e8e7adcf6dab..a0f3ea89ce620e17c01aaf309dc5b3eb21ab922c 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationWithCreatorDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationWithCreatorDto.java index cf46bdb27a8ac70e51601da234ed08e094c036cc..68e79e7a7e4029a84c885fcc2e79d4c2ae646e88 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationWithCreatorDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/AbstractProcedureNotificationWithCreatorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/FileDeletionApprovalRequestNotificationDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/FileDeletionApprovalRequestNotificationDto.java index c6afbc5c5e964bf14e9d933bf37a63d6a4114672..88cae5dabce62f00453e2b11ee98e35f5506b06a 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/FileDeletionApprovalRequestNotificationDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/FileDeletionApprovalRequestNotificationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/GetNotificationsResponse.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/GetNotificationsResponse.java index f88af08dd611dec55577521796423b16b17ba688..b258bd14ffd74cb12f47d5fa04f6ad0be2ecfe6c 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/GetNotificationsResponse.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/GetNotificationsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/ManualProgressEntryDeletionApprovalRequestNotificationDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/ManualProgressEntryDeletionApprovalRequestNotificationDto.java index 64a8a29e79e051dd390e1f3b39fea279ca7872c8..eba99c41c5fa56dfc58d2c9ecb51c94f42c01082 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/ManualProgressEntryDeletionApprovalRequestNotificationDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/ManualProgressEntryDeletionApprovalRequestNotificationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/MarkNotificationsAsReadRequest.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/MarkNotificationsAsReadRequest.java index 2a67eebf6da2238cd6c9d45e8327fbdc679c0845..4fb6e5c4f8003756448ddfe553aa48ab394807fe 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/MarkNotificationsAsReadRequest.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/MarkNotificationsAsReadRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/SimpleNotificationDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/SimpleNotificationDto.java index 2f37ba6bf2b7ba6da1753251fc0882bf9b372cbf..f081cbbf59fcd1223b7eaefbd73d574d00fd4285 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/SimpleNotificationDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/SimpleNotificationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/TaskDueAtReminderNotificationDto.java b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/TaskDueAtReminderNotificationDto.java index b66fccf08ba667044524eadf52d33b6efad701e2..bde46ced084f89b78ca4646d805a68fbe4eb6fe1 100644 --- a/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/TaskDueAtReminderNotificationDto.java +++ b/backend/lib-notification-api/src/main/java/de/eshg/lib/notification/api/TaskDueAtReminderNotificationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/openApi.yaml b/backend/lib-notification/openApi.yaml index b81e1d840ae2cf74f1162a01374d4cb15d4c48de..71561744ae10b25e2827b873b7df7320319fe44e 100644 --- a/backend/lib-notification/openApi.yaml +++ b/backend/lib-notification/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/AbstractNotificationService.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/AbstractNotificationService.java index 80557f146c9e8b78ea85c9db714a30bff30c3585..837607bda51e2a0e3ff4bade473c2794f862ed2b 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/AbstractNotificationService.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/AbstractNotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationController.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationController.java index bbce7827fd2e9e2e9d45fc1d7ab571e7bc020ef7..a886a9fc40c555ff3801c2cbc3d76889804dd9d4 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationController.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationHousekeeping.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationHousekeeping.java new file mode 100644 index 0000000000000000000000000000000000000000..f1ebb4c84b2103cd60acf9d5a0f474ab3183c0be --- /dev/null +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationHousekeeping.java @@ -0,0 +1,93 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.lib.notification; + +import de.eshg.lib.notification.config.NotificationHousekeepingProperties; +import de.eshg.lib.notification.domain.repository.NotificationRepository; +import java.time.Clock; +import java.time.Instant; +import java.time.LocalDate; +import java.time.Period; +import java.time.ZoneOffset; +import java.util.Arrays; +import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +@Component +public class NotificationHousekeeping { + + private static final Logger log = LoggerFactory.getLogger(NotificationHousekeeping.class); + private final NotificationHousekeepingProperties notificationHousekeepingProperties; + private final List<NotificationRepository<?>> notificationRepositories; + private final Clock clock; + + public NotificationHousekeeping( + NotificationHousekeepingProperties notificationHousekeepingProperties, + List<NotificationRepository<?>> notificationRepositories, + Clock clock) { + this.notificationHousekeepingProperties = notificationHousekeepingProperties; + this.notificationRepositories = notificationRepositories; + this.clock = clock; + } + + @Transactional + @Scheduled(cron = "${de.eshg.notifications.housekeeping.schedule:@daily}") + public void cleanupNotifications() { + for (NotificationRepository<?> repository : notificationRepositories) { + if (log.isInfoEnabled()) { + log.info("Performing housekeeping for: {}", tryGetRepositoryName(repository)); + } + + cleanupReadNotifications(repository, notificationHousekeepingProperties.getReadMaxAgeDays()); + cleanupUnreadNotifications( + repository, notificationHousekeepingProperties.getUnreadMaxAgeDays()); + } + } + + private void cleanupUnreadNotifications(NotificationRepository<?> repository, Period maxAgeDays) { + Instant createdAtLimit = calculateCreatedAtLimit(maxAgeDays); + logCleanupStarted(createdAtLimit, "unread"); + + long numberOfDeletedNotifications = + repository.deleteByReadAtNullAndCreatedAtLessThan(createdAtLimit); + + logNumberOfDeletedNotifications(numberOfDeletedNotifications, "unread"); + } + + private void cleanupReadNotifications(NotificationRepository<?> repository, Period maxAgeDays) { + Instant createdAtLimit = calculateCreatedAtLimit(maxAgeDays); + logCleanupStarted(createdAtLimit, "read"); + + long numberOfDeletedNotifications = + repository.deleteByReadAtNotNullAndCreatedAtLessThan(createdAtLimit); + + logNumberOfDeletedNotifications(numberOfDeletedNotifications, "read"); + } + + private void logNumberOfDeletedNotifications(long umberOfDeletedNotifications, String type) { + log.info("Deleted {} {} notifications", umberOfDeletedNotifications, type); + } + + private void logCleanupStarted(Instant createdAtLimit, String type) { + log.info("Cleaning up {} notifications created before {}", type, createdAtLimit); + } + + private Instant calculateCreatedAtLimit(Period maxAgeDays) { + return LocalDate.now(clock).atStartOfDay().minus(maxAgeDays).atZone(ZoneOffset.UTC).toInstant(); + } + + private String tryGetRepositoryName(NotificationRepository<?> repo) { + return Arrays.stream(repo.getClass().getInterfaces()) + .map(Class::getName) + .filter(name -> name.startsWith("de.eshg")) + .findFirst() + .orElse("unknown repository"); + } +} diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationService.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationService.java index eb0d53f0e25c288100782dcf2eca48443e0b68be..6266e74a5756fb3d3b15b5a2ffd64dc75f966aff 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationService.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/NotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/SimpleNotificationService.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/SimpleNotificationService.java index ba11bbd47400a5198ca19db316a185ff26cad3f6..6e499310deb8d96dc5e400ade4d3379200b00032 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/SimpleNotificationService.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/SimpleNotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/config/NotificationHousekeepingProperties.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/config/NotificationHousekeepingProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..b4474779c283e0a7fb9b9f121db2db045b4cd746 --- /dev/null +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/config/NotificationHousekeepingProperties.java @@ -0,0 +1,40 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.lib.notification.config; + +import jakarta.validation.constraints.NotNull; +import java.time.Period; +import java.time.temporal.ChronoUnit; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.convert.PeriodUnit; + +@ConfigurationProperties(value = "de.eshg.notifications.housekeeping") +public class NotificationHousekeepingProperties { + + @NotNull + @PeriodUnit(ChronoUnit.DAYS) + private Period unreadMaxAgeDays = Period.ofDays(30); + + @NotNull + @PeriodUnit(ChronoUnit.DAYS) + private Period readMaxAgeDays = Period.ofDays(30); + + public Period getUnreadMaxAgeDays() { + return unreadMaxAgeDays; + } + + public void setUnreadMaxAgeDays(Period unreadMaxAgeDays) { + this.unreadMaxAgeDays = unreadMaxAgeDays; + } + + public Period getReadMaxAgeDays() { + return readMaxAgeDays; + } + + public void setReadMaxAgeDays(Period readMaxAgeDays) { + this.readMaxAgeDays = readMaxAgeDays; + } +} diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/SimpleNotificationMapper.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/SimpleNotificationMapper.java index b7206b0f42c13724fd32d4e301d915616b788abc..bf49bbc95e47db18753ffd14243404a7ba6693cf 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/SimpleNotificationMapper.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/SimpleNotificationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/Notification.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/Notification.java index 129cca387e107a69c816b26b6b6975f59a78a8b3..b8ba6846115fde6871206b13c951103988ba1379 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/Notification.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/Notification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/SimpleNotification.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/SimpleNotification.java index 473a5753dabd9c88f233a95d7a8e16e4a9b63624..34e74c6a9055450c82c5cb498fc90eca5f6b384b 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/SimpleNotification.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/model/SimpleNotification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/NotificationRepository.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/NotificationRepository.java index 8e7726d56fd4725bd99e44dc558bee8ddcd5bf95..a639e2dab16d59313d30c09c798c82ed1a033d48 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/NotificationRepository.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/NotificationRepository.java @@ -1,11 +1,12 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.lib.notification.domain.repository; import de.eshg.lib.notification.domain.model.Notification; +import java.time.Instant; import java.util.Collection; import java.util.List; import java.util.UUID; @@ -23,4 +24,8 @@ public interface NotificationRepository<N extends Notification> List<N> findByRecipientUserIdAndExternalIdInAndReadAtIsNull( UUID recipientUserId, Collection<UUID> externalIds); + + long deleteByReadAtNullAndCreatedAtLessThan(Instant createdAtLimit); + + long deleteByReadAtNotNullAndCreatedAtLessThan(Instant createdAtLimit); } diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/SimpleNotificationRepository.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/SimpleNotificationRepository.java index c25aa0795fb97c125df1db65d1a705199ea67aea..84c4e952b1121b0900db6b846480228a26b4438c 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/SimpleNotificationRepository.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/domain/repository/SimpleNotificationRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationDomainModelAutoConfiguration.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationDomainModelAutoConfiguration.java index 381cd0dc0835b07192538e4b26bdd5cf8277026e..ef4845297fc0e9cc8b429d268905861b0f13e6a2 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationDomainModelAutoConfiguration.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationDomainModelAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryAutoConfiguration.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryAutoConfiguration.java index 0853a5c95542ec75c8b8af6d94af23bd803a5d1e..c85ddbdbaf77bba8af7cec8b3eec74a983ae1bcb 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryAutoConfiguration.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryAutoConfiguration.java @@ -1,22 +1,28 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.lib.notification.spring.config; import de.eshg.lib.notification.NotificationController; +import de.eshg.lib.notification.NotificationHousekeeping; import de.eshg.lib.notification.SimpleNotificationService; +import de.eshg.lib.notification.config.NotificationHousekeepingProperties; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Import; @AutoConfiguration @AutoConfigureAfter(JpaRepositoriesAutoConfiguration.class) +@EnableConfigurationProperties(NotificationHousekeepingProperties.class) @Import({ NotificationController.class, SimpleNotificationService.class, - NotificationLibraryInternalSecurityConfig.class + NotificationLibraryInternalSecurityConfig.class, + NotificationHousekeeping.class, + NotificationLibrarySchedulingConfig.class }) public class NotificationLibraryAutoConfiguration {} diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryInternalSecurityConfig.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryInternalSecurityConfig.java index 4f5c95f10d55f6571f6e65de0597061726273382..f0616cf17399728133c162145c51f2f33756c265 100644 --- a/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryInternalSecurityConfig.java +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibraryInternalSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibrarySchedulingConfig.java b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibrarySchedulingConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..ed90e6e90fc21b39407a1e9e3bb4a828fba15adc --- /dev/null +++ b/backend/lib-notification/src/main/java/de/eshg/lib/notification/spring/config/NotificationLibrarySchedulingConfig.java @@ -0,0 +1,21 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.lib.notification.spring.config; + +import de.eshg.testhelper.ConditionalOnTestHelperEnabled; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.scheduling.annotation.EnableScheduling; + +@Configuration +@EnableScheduling +public class NotificationLibrarySchedulingConfig { + + @Configuration + @ConditionalOnTestHelperEnabled + @PropertySource("classpath:/lib-notification-test-helper.properties") + static class NotificationTestHelperConfiguration {} +} diff --git a/backend/lib-notification/src/main/resources/lib-notification-test-helper.properties b/backend/lib-notification/src/main/resources/lib-notification-test-helper.properties new file mode 100644 index 0000000000000000000000000000000000000000..4510fae495c621840b9f987f7007510178850a2a --- /dev/null +++ b/backend/lib-notification/src/main/resources/lib-notification-test-helper.properties @@ -0,0 +1 @@ +de.eshg.notifications.housekeeping.schedule=- \ No newline at end of file diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ArchivingApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ArchivingApi.java index 8ecbf83d999c62692fe99ee3a19287fe6a2d13fc..a9d29206b2487190e3162efe49e1a63c23982eb9 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ArchivingApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ArchivingApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/RecentProcedureApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/BusinessModuleProcedureApi.java similarity index 75% rename from backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/RecentProcedureApi.java rename to backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/BusinessModuleProcedureApi.java index 28d44051a7995502eaf829e6be2d41accc06610d..61fc1526eca79b422f2acaca53a03af4ee16be5c 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/RecentProcedureApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/BusinessModuleProcedureApi.java @@ -1,26 +1,31 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.lib.procedure.api; -import static de.eshg.lib.procedure.api.RecentProcedureApi.QueryParameter.*; +import static de.eshg.lib.procedure.api.BusinessModuleProcedureApi.QueryParameter.*; +import de.eshg.lib.procedure.model.CheckFileStateUsageRequest; +import de.eshg.lib.procedure.model.CheckFileStateUsageResponse; import de.eshg.lib.procedure.model.GetRecentProceduresResponse; import de.eshg.lib.procedure.model.ProcedureStatusDto; import de.eshg.lib.procedure.model.ProcedureTypeDto; import de.eshg.rest.service.security.config.BaseUrls.ProcedureLibrary; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; +import jakarta.validation.Valid; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import java.util.Set; import java.util.UUID; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.service.annotation.GetExchange; +import org.springframework.web.service.annotation.PostExchange; -public interface RecentProcedureApi { +public interface BusinessModuleProcedureApi { String RECENT_PROCEDURES_API_PATH = ProcedureLibrary.PROCEDURES_API + "/recent"; String SELF_RECENT_PROCEDURES_API_PATH = RECENT_PROCEDURES_API_PATH + "/self"; @@ -54,4 +59,10 @@ public interface RecentProcedureApi { Set<ProcedureStatusDto> procedureStatus, @RequestParam(name = LIMIT, required = false, defaultValue = "50") @Min(1) @Max(200) Integer limit); + + @ApiResponse(responseCode = "200") + @PostExchange(ProcedureLibrary.PROCEDURES_API + "/check-file-state-usage") + @Operation(summary = "Identify which file state IDs are still used by active procedures.") + CheckFileStateUsageResponse checkFileStateUsage( + @Valid @RequestBody CheckFileStateUsageRequest request); } diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/FileApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/FileApi.java index c8d225ff2da48d5565d96ab8d2e402fa3c37c4e4..4243b9208b105cf12cecb48e6697787139d27c16 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/FileApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/FileApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,7 +7,7 @@ package de.eshg.lib.procedure.api; import de.eshg.lib.foureyes.model.ApprovalRequestDto; import de.eshg.lib.foureyes.model.CreateApprovalRequestRequest; -import de.eshg.lib.procedure.model.ConcreteFileDto; +import de.eshg.lib.procedure.model.AbstractFileDto; import de.eshg.lib.procedure.model.GetMetaDataHistoryResponse; import de.eshg.lib.procedure.model.MetaDataDto; import de.eshg.rest.service.security.config.BaseUrls.ProcedureLibrary; @@ -33,12 +33,12 @@ public interface FileApi { @GetExchange("/{fileId}") @ApiResponse(responseCode = "200") @Operation(summary = "Retrieves the meta data of the specified file") - ConcreteFileDto getFile(@PathVariable("fileId") UUID fileId); + AbstractFileDto getFile(@PathVariable("fileId") UUID fileId); @PutExchange("/{fileId}/meta-data") @ApiResponse(responseCode = "200", description = "Updated file") @Operation(summary = "Updates the meta data of the specified file") - ConcreteFileDto updateFileMetaData( + AbstractFileDto updateFileMetaData( @PathVariable("fileId") UUID fileId, @RequestBody @Valid MetaDataDto metaData); @GetExchange(value = "/{fileId}/meta-data/history") diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/GdprValidationTaskApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/GdprValidationTaskApi.java index fd23d627f8fdba09cbd849d0960ebca3ce453b1a..648221ed9d61c5c488aa23126b36591a62ce9d95 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/GdprValidationTaskApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/GdprValidationTaskApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/InboxProcedureApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/InboxProcedureApi.java index a1608f4a7f2b092ade4cb4cabc1f2906cf5d024d..e4a6bed7fc9a5bfe8e6ee72ebdc1974c9c3cff56 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/InboxProcedureApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/InboxProcedureApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureApi.java index 8c1625398a7d412c8d34a1697914aaba73a13fcb..c80328f47e575fe66860a83c1df594fef6cc4528 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.service.annotation.GetExchange; -public interface ProcedureApi extends RecentProcedureApi, ProcedureMetricsApi { +public interface ProcedureApi extends BusinessModuleProcedureApi, ProcedureMetricsApi { class QueryParameter { diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureMetricsApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureMetricsApi.java index 177b5215cedec1cec970ebb8fb33071b54a810f1..17b8a2e2591c1acb5237ec732fe24ba4465d7b33 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureMetricsApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureMetricsApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureSearchApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureSearchApi.java index 351c0edee421f4e4394d14322875a1ee69870b06..9b03bdf8d2f52bd077c8c4b21eebdb9cf1ae076f 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureSearchApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProcedureSearchApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProgressEntryApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProgressEntryApi.java index fe3ef618544854f730c99b6a9658682145b35875..647da531ad3a46dcd2224295fbce1095beb6f68a 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProgressEntryApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/ProgressEntryApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskApi.java index 387c241ae5cb14d71d4bdf0a0fc802c7306f798b..d8a5e3850e895be5ed9a9dfc8f4d342533301944 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskListApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskListApi.java index 435f1c4b0f612298e329a6c876ab7a3b1618a21b..eb3adf76bb6379a36b2f59f0877fdd35b9cfdfde 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskListApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskListApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskMetricsApi.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskMetricsApi.java index 79c5ca13604e0010b259a5d72240b897a6c297df..d57cd962b69ca6ff31da978ddd16fdf3112d1637 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskMetricsApi.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/api/TaskMetricsApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileDto.java index ceb0aa39b82e2a454a8bf5a62dcc38f08f5b05dd..f2a974a1827bf1d8dfd0e733e05a108d9ba1aefb 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileDto.java @@ -1,29 +1,36 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.lib.procedure.model; +import static de.eshg.lib.procedure.model.AbstractFileDto.SCHEMA_NAME; + +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; +import de.cronn.commons.lang.SetUtils; +import de.eshg.lib.foureyes.model.ApprovalRequestEntityDto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import java.time.Instant; -import java.util.*; +import java.util.Set; +import java.util.UUID; -@Schema(name = AbstractFileDto.SCHEMA_NAME, allOf = AbstractFileReferenceDto.class) -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type") +@Schema(name = SCHEMA_NAME) +@JsonTypeInfo(use = Id.NAME, property = "@type") public abstract sealed class AbstractFileDto extends AbstractFileReferenceDto - permits GenericFileDto, ConcreteFileDto { + implements ApprovalRequestEntityDto permits ImageDto, MailDto, PdfDto { public static final String SCHEMA_NAME = "AbstractFile"; + private @NotNull Instant createdAt; private @NotNull Instant modifiedAt; private UUID createdBy; private @NotNull String fileName; private @NotNull FileTypeDto fileType; private @NotNull int fileSizeBytes; - private UUID attachedToMail; private @NotNull boolean locked; public Instant getCreatedAt() { @@ -50,10 +57,6 @@ public abstract sealed class AbstractFileDto extends AbstractFileReferenceDto return fileSizeBytes; } - public UUID getAttachedToMail() { - return attachedToMail; - } - public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; } @@ -78,10 +81,6 @@ public abstract sealed class AbstractFileDto extends AbstractFileReferenceDto this.fileSizeBytes = fileSizeBytes; } - public void setAttachedToMail(UUID attachedToMail) { - this.attachedToMail = attachedToMail; - } - public boolean isLocked() { return locked; } @@ -89,4 +88,15 @@ public abstract sealed class AbstractFileDto extends AbstractFileReferenceDto public void setLocked(boolean locked) { this.locked = locked; } + + @Override + @JsonIgnore + public Set<UUID> getResolvableUserIds() { + UUID createdBy = getCreatedBy(); + if (createdBy == null) { + return Set.of(); + } + + return SetUtils.orderedSet(createdBy); + } } diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileReferenceDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileReferenceDto.java index 4f0062647d81d439ed543d5825cba32b66ec9327..96c8f0785bc7d4e95c6be16e838ae54b5a24420b 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileReferenceDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractFileReferenceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractGetProceduresByPersonResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractGetProceduresByPersonResponse.java index 1bac1877bbd005793ec0da4c82642d3530d841fa..18b82e20f298375142d48f66c42128766864be63 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractGetProceduresByPersonResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractGetProceduresByPersonResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractHistoryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractHistoryDto.java index c3fcec72f8347f1a31af1fe32213541d2aa99b29..70f92ec6795e86a4b82a108ff23292b74125652e 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractHistoryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractProcedureDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractProcedureDto.java index 7932b44b6e6df6929579051b799ca6279eb3647a..4b9bcd804e534b594b4b9e757c433b0b9021a54f 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractProcedureDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AbstractProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingDetailsDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingDetailsDto.java index 5cea319243e6e1fc2d3936bc19f0834e15939f99..8dd9b2e3d37de2a7b7c56582d3eb88ff29fe1d73 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingDetailsDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceDto.java index 2abd0a06a1611e034b1c81282f59cc6e3df413d8..37d1584ce10fe06629939749a9abbb72bd53c7b2 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceSettingsDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceSettingsDto.java index f81d0bc60bae4b78ffc28e6e34bc86140f384d46..b43e27e6c9f47a8caa4537fc9462ea7c03f89968 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceSettingsDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ArchivingRelevanceSettingsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AssignTaskRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AssignTaskRequest.java index b45c37a8c631ef385a016ff0338b9bc36e032ce6..0965b92ec2fb482a7330d0e8569e6f3ea1bc500c 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AssignTaskRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/AssignTaskRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceRequest.java index efe58304f6df29990e0179de56bcbfa37dbe51ce..d7cb1da5eaa45956b662aa6fc80c0e663c67f885 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceResponse.java index 29d7e341d8bc7626a090c9d7d9d8738e037c1a6b..45fa3716bc91dc68145b0ec78e0dea35c402dd95 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/BulkUpdateProceduresArchivingRelevanceResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CheckFileStateUsageRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CheckFileStateUsageRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..f71405fb5658eebb70f7546eaafa78a1737104ac --- /dev/null +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CheckFileStateUsageRequest.java @@ -0,0 +1,13 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.lib.procedure.model; + +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import java.util.List; +import java.util.UUID; + +public record CheckFileStateUsageRequest(@NotNull @Size(min = 1) List<UUID> fileStatesIds) {} diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CheckFileStateUsageResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CheckFileStateUsageResponse.java new file mode 100644 index 0000000000000000000000000000000000000000..544384bf374e7b92965af45739c37d5cca0185e9 --- /dev/null +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CheckFileStateUsageResponse.java @@ -0,0 +1,12 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.lib.procedure.model; + +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.UUID; + +public record CheckFileStateUsageResponse(@NotNull List<UUID> inUse) {} diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ConcreteFileDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ConcreteFileDto.java deleted file mode 100644 index dcda15aba48d34b3ccf02f75fc1d975eff0b0d75..0000000000000000000000000000000000000000 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ConcreteFileDto.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -package de.eshg.lib.procedure.model; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; -import de.cronn.commons.lang.SetUtils; -import de.eshg.lib.foureyes.model.ApprovalRequestEntityDto; -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.Set; -import java.util.UUID; - -@Schema(name = "ConcreteFileDto", allOf = AbstractFileDto.class) -@JsonTypeInfo(use = Id.NAME, property = "@type") -public abstract sealed class ConcreteFileDto extends AbstractFileDto - implements ConcreteFileOrFileReference, ApprovalRequestEntityDto - permits ImageDto, MailDto, PdfDto { - - @Override - @JsonIgnore - public Set<UUID> getResolvableUserIds() { - UUID createdBy = getCreatedBy(); - if (createdBy == null) { - return Set.of(); - } - - return SetUtils.orderedSet(createdBy); - } -} diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ConcreteFileOrFileReference.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ConcreteFileOrFileReference.java deleted file mode 100644 index 7762df76605b020e32804105455f68c152962f71..0000000000000000000000000000000000000000 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ConcreteFileOrFileReference.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -package de.eshg.lib.procedure.model; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.util.UUID; - -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type") -public sealed interface ConcreteFileOrFileReference - permits ConcreteFileDto, GenericFileReferenceDto { - - UUID getFileId(); - - boolean isDeleted(); - - boolean isDeletable(); -} diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactDetailsDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactDetailsDto.java index 43880496be3cd4d1cadf022d77d36fece1ad81ed..6968b2639bcea897e77410a2004fbf4145750a9e 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactDetailsDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactTypeDto.java index eb0f2a03b43f64132b48afd51e525efae096cc76..87821ef4fe48a45c1fdc07d0b46f5fc99f95eb38 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ContactTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProcedureRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProcedureRequest.java index b220969d5f54f2cc98e47cd639b380021e004cef..bf453e9a0b616b7fd79d2c176ea7f1f9b1687466 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProcedureRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProgressEntryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProgressEntryDto.java index b9da3973c078aeb6f6a9ac6624b31e22a366b508..42152fc8d94e4142db6600ab7a88548d593432ef 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProgressEntryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateInboxProgressEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateManualProgressEntryRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateManualProgressEntryRequest.java index a777840b780cd36003ecb19d779083e634850c1e..316371dafcaca2ae2bbf0e8b3263335d4a3b5f00 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateManualProgressEntryRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/CreateManualProgressEntryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedFacilityDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedFacilityDto.java index baa02800b973af65195dee48cb23773199e7fb2d..7812107720830b973062fa91e6dc3aec3fbc2320 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedFacilityDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedFacilityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedPersonDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedPersonDto.java index 5ba25e03dbde3ca2091889be006801f39a1593c6..0fec7277ac6fd089c56093e51cbc282996b311fc 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedPersonDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedTaskDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedTaskDto.java index d11710f994c269b071158ef82da3fea5d9222181..aa424f05f59f206d698f91baabb4525c058536c1 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedTaskDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/DetailedTaskDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ExportArchivingRelevantProceduresRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ExportArchivingRelevantProceduresRequest.java index 5979b70c1f320a55dfb63a80fdb56bae7159247d..994e7b2f8b032d9162afc4a579ba2c42777a0f6c 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ExportArchivingRelevantProceduresRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ExportArchivingRelevantProceduresRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FacilityTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FacilityTypeDto.java index 96870e5aa7013b68689bfdf7f29e8378db5aa690..be78cce6f7b3f02d0a2f174ae619d467b5846011 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FacilityTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FacilityTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileMetaDataDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileMetaDataDto.java index bf900c4142583a23e9278d309c39f5482c70db95..6900170ad36032ff8a2451e3cd0218198e7ef314 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileMetaDataDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileMetaDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileTypeDto.java index f71c987c0895495c4b7b2198dcc36756d1591831..e1b229642959121d81b52073ee3af014e571690b 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FileTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresRequest.java index 240a835374a6caf4a85dfbef756e2c841085429c..c9cf7df0cd64e295ad9f91028f03e0af1dd6b1a0 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresResponse.java index 4de29de457f28b77eeb2094708d9c9b29575ee15..8070636958cf60401b2d1e4a0abb4acd51f1c210 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/FindProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GenericFileDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GenericFileDto.java deleted file mode 100644 index a3b2106285de9ab48d9eb22ace83d37c704d8443..0000000000000000000000000000000000000000 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GenericFileDto.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -package de.eshg.lib.procedure.model; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; -import com.fasterxml.jackson.annotation.JsonTypeName; -import io.swagger.v3.oas.annotations.media.Schema; - -@Schema(name = GenericFileDto.SCHEMA_NAME) -@JsonTypeName(GenericFileDto.SCHEMA_NAME) -@JsonTypeInfo(use = Id.NAME, property = "@type") -public final class GenericFileDto extends AbstractFileDto { - - public static final String SCHEMA_NAME = "GenericFile"; -} diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GenericFileReferenceDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GenericFileReferenceDto.java index 6cfc1ef850b11c955f5d6e458675b14446d1175c..7368f832126cec0ebc255271e0ccf322fbae376d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GenericFileReferenceDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GenericFileReferenceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,11 +10,10 @@ import com.fasterxml.jackson.annotation.JsonTypeName; import io.swagger.v3.oas.annotations.media.Schema; import java.util.UUID; -@Schema(name = GenericFileReferenceDto.SCHEMA_NAME, allOf = AbstractFileReferenceDto.class) +@Schema(name = GenericFileReferenceDto.SCHEMA_NAME) @JsonTypeName(GenericFileReferenceDto.SCHEMA_NAME) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type") -public final class GenericFileReferenceDto extends AbstractFileReferenceDto - implements ConcreteFileOrFileReference { +public final class GenericFileReferenceDto extends AbstractFileReferenceDto { public static final String SCHEMA_NAME = "GenericFileReference"; diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresFilterOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresFilterOptions.java index 8f6794d12a1079e2e4f15150582c793a69b37f51..261e757ee0c9f8480e83e89b235c0ca115aa6ed9 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresFilterOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresResponse.java index 5508c4cebd21eefc0a76661374b079741bc6d78a..61522d72751240c7c9c89f64ad50a493c3403e3d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortByDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortByDto.java index a720979909492766e8b3ec6a5e288080ff0d8214..7200ce1986867e3ab55e21f1554ec18000653b2f 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortByDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOptions.java index adce540d9e485c266b06b277b5046f06893197c7..eaa61d23f71d025ca7f7bbd14d7ddc1f0d9f253a 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOrderDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOrderDto.java index cc1e6fed739aea67ba9c1c3dc726083a1464628b..477b548dbc116263c67fd13ff4841ca1c8b71931 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOrderDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivableProceduresSortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingConfigurationResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingConfigurationResponse.java index 0c60c44c417373d7da3aad76d5a7337cc82aeb6b..9b50953060d573145c07aed22ed809b3b803b03b 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingConfigurationResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingConfigurationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingEndpointsResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingEndpointsResponse.java index 606ebb58fe5ce89a2cc9c7f57e10c429ffdd67ec..0d83f5812c4a0e8fa2049e7015140b70d08f6ed7 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingEndpointsResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetArchivingEndpointsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetDetailedProcedureResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetDetailedProcedureResponse.java index f5028cafbc0380bdb4f029793ebe9344a30b585f..1c627f240426b93573c330c820b83b2fb9541851 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetDetailedProcedureResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetDetailedProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProcedureResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProcedureResponse.java index 316043833ead246f8b4afb1e0fcd9ee79705965d..33d6faf21045674c838d29d91cf8c71de6a5df52 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProcedureResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresFilterOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresFilterOptions.java index 67b0476880217d517b7878f9479a5a04f94df591..fca194b29f5e2dc0fb1a28e81b54048b19ee5488 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresFilterOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresPaginationOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresPaginationOptions.java index c4529bcd25d8f92f745c08740bf1e2955baf3ae4..d209838180ee8f017faeb0b46099890aabccd7a4 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresPaginationOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresResponse.java index 526203c1455c51d64004b001d28b818a77d056cc..c64f7f1f967f56163dcf6e39380411b57cb5a3d2 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortByDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortByDto.java index 80a6ecfbb8f374f3fcf910bfffd75da872b302a1..b74a85e5ee0a869399795d586f1e8527b908c380 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortByDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOptions.java index 924d05e22150f57ee694e499e41fa92028c8bb7e..d1c175717ef4f207b8bc73619dc8e5e5cc394c48 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOrderDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOrderDto.java index 44541b1a9e47a46ee22e1dcad45e33df26ea5e9c..b279a583765b3679de3b894a0bf4e0f9ac7f865e 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOrderDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetInboxProceduresSortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetManualProgressEntryHistoryResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetManualProgressEntryHistoryResponse.java index 519e6d15e9de56b477205ab01c3cef33227a6c8a..38b24886d0122fe07dd8c07a0f555bcdc3adef9d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetManualProgressEntryHistoryResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetManualProgressEntryHistoryResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetMetaDataHistoryResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetMetaDataHistoryResponse.java index f62c05eeb24cf692c755336172cd8eb2b0fa9e2e..5bb2b002865bb074b8547813cc4e6ed0f11ab4c2 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetMetaDataHistoryResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetMetaDataHistoryResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureApprovalRequestsResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureApprovalRequestsResponse.java index eeb5e33fa125eba5d45861a5f89ceb6fa998ae34..e14080fb5c1df78592c0ba8db07d0e81e0e6670a 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureApprovalRequestsResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureApprovalRequestsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureFileDetailsResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureFileDetailsResponse.java index c3d01890833b790d7aa7336a50ed9df0ec5b61d1..9849a28072df23c6f76c3445d7c0983442989391 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureFileDetailsResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureFileDetailsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureMetricsResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureMetricsResponse.java index bfe47ec6f1e76e4c4a670ce35b76824362b05f61..3085512421fd90e4c410015d74dac32b312f84db 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureMetricsResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProcedureMetricsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresFilterOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresFilterOptions.java index ef7dd24b7be5b4b40f2729f5139820785ccb75f5..9980bb5f4cfc3f590873c7939ec8a21b19498ab4 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresFilterOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresPaginationOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresPaginationOptions.java index 26e51944aff8a6ec665b5d4141b3c61dad1ffbb3..59a50a06bdab6c0a27ff2022db4be241dc8bd819 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresPaginationOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresResponse.java index 6292ecd2df2633483677b849d7c0893af7d7a6c3..294f977f03a81dfd83f9ba162ef74a9554373058 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortByDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortByDto.java index bfd46f724e101b89148f5337b2b73f798f1f7c8b..b4188a0dfbc74b68e0378067d027080626646d26 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortByDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOptionsDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOptionsDto.java index afcb50400effeb14bdec5e134277aab10dbd9cf0..40f255b1b43aa65b0a505c30c5d386293991273d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOptionsDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOptionsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOrderDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOrderDto.java index dffd879649d116faacf0324931a59084c90595c9..d9b2e0c85c634df25a832d9724fac9092dec2d49 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOrderDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProceduresSortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesFilterOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesFilterOptions.java index 0eec2d04595e17a119413022f7197b814cbc0bba..00b5606ec8a0a9cf2cb24196ddb8a7479874c2cd 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesFilterOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesResponse.java index b3d1605ba0116fd0f27e6826e91467c2a4a70f76..7559503e4bce35a5c1bb93fe63598bb2e0b3d2ab 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesSortOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesSortOptions.java index 383fa191241e1aab0460c7979173378495c6a725..cb5572be546df56ac79927222605bb1b670b5b0e 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesSortOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntriesSortOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryPaginationOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryPaginationOptions.java index b4d7ac35c78e9ceb3ab30b584b1500f6bf6353ac..7a4fc152dc198199b778932adbea39e12e1fe338 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryPaginationOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryResponse.java index 0f3559fc1795f551a157daef1bca2498fc783adc..5475d43ad12060421bcf0fe1e640f365b9ba9d4a 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetProgressEntryResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRecentProceduresResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRecentProceduresResponse.java index 8c72c12c533831aa59e26322db7942e626fb209d..8e6d428fe6c38a1dc324c9822686cc2b572033fc 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRecentProceduresResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRecentProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresFilterOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresFilterOptions.java index 4e0d304dbf701a320c7e8abc1ae5e6a5a3bc231a..6eff45d2c981129c14d5a2a990cb59b2215d03f1 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresFilterOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresResponse.java index 7ed9fa8090583264943f2d622db7f83640fd7480..0b653d118833619b1488c8a48c5dfa97f92db026 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortByDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortByDto.java index 91d997bf5d26a4063d6c5274d708a5c1cbd52193..0d12624e095fc692cc17d2d6b21f400cc70b3753 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortByDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOptions.java index 24e9df8f71b6bc1093c8edbd0e1ea2de7089908c..5a85c89012073814e32d9350f6f9d3029872c252 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOrderDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOrderDto.java index 3ca0e244bc23d97577c287e5d8f4c7499f917cf1..e16db3f39af4615cceb74852a59337a69a293191 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOrderDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetRelevantArchivableProceduresSortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskByUserResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskByUserResponse.java index e662b4dbecf0c7358a1f52ef3d998d3387e8a0c0..10ba69dcff202efecf501c517b53769214d3009c 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskByUserResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskByUserResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskMetricsResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskMetricsResponse.java index 256d2790771dad9004b7d47c6a2d2a08010eda8b..b29ffd1e33fe79b9de7d8206fbdff83e9bc17394 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskMetricsResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTaskMetricsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksFilterOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksFilterOptions.java index 59908fe146fb40406a1e86845e941e80cca08613..d3a4d5d44262d6b9f455696d57ea7be24b06a8e5 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksFilterOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortByDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortByDto.java index c15814b0372e909b789e562865a117765e387fe9..9a579cde99438b903fd9573d82542a329c620016 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortByDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOptions.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOptions.java index 1c8cb65449e7b68ab28aad5a6c04dcf8861e8636..2b8b8d1c52a0c1c2ce044da54ce66b5f4426b6ab 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOptions.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOrderDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOrderDto.java index 82d008c2405752f901fe1bd384955a1f68a22237..5ad8c0146fed0867b7da009b4d13603fef98824a 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOrderDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/GetTasksSortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageDto.java index 2e3c8d5b0b59ad167d8e2cbdb2fa8365de26416f..a78214a5a3086a038f1a0564bfb023153e78a7fd 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -13,7 +13,7 @@ import jakarta.validation.Valid; @Schema(name = ImageDto.SCHEMA_NAME) @JsonTypeName(ImageDto.SCHEMA_NAME) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type") -public final class ImageDto extends ConcreteFileDto { +public final class ImageDto extends AbstractFileDto { public static final String SCHEMA_NAME = "Image"; diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataDto.java index 33e5d0df74b63ff060420fc3a10127a31f561e72..e9120d66fab5d3dd6ff10aca0143170d3c5d6937 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataHistoryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataHistoryDto.java index 4b84bd8210df484a8c2e8405f06c6b565ac9f0bb..11708d167d2b0d92b24e3bcf2d1bd8244ed13184 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataHistoryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ImageMetaDataHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureAddressDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureAddressDto.java index 7315f9de828311352729ade6f97a46d4057d7c7c..95067589570ff37ddce2814266b27d81475ee9a5 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureAddressDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureDto.java index 2a10e958d1140fa2fd077c2d584d46d82adc1c98..1b0d75d535be4dffadd324c44868a35b3d3296db 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureStatusDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureStatusDto.java index d3a0f33dd7164f8b448b320aa9d89c01c0da856c..77c522d7ef48a21ef6ee7366b928517aabc02c43 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureStatusDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProcedureStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryDto.java index c835891a61efb249d78f58286813e41e5aaff56e..20b571e8897b657febb743e777fc397663e3557e 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,4 +16,4 @@ public record InboxProgressEntryDto( String subject, String messageText, @NotNull InboxProgressEntryTypeDto inboxProgressEntryType, - @Valid ConcreteFileOrFileReference fileReference) {} + @Valid AbstractFileReferenceDto fileReference) {} diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryTypeDto.java index c6dfaccc7fc7b51f1c0e08b53bf8f1d543aa6bd3..eef477dc272f8f978cf2aac854bba346b0d0cf0d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/InboxProgressEntryTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/KeyDocumentAwareProgressEntryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/KeyDocumentAwareProgressEntryDto.java index 00ddcc8265c282ad53f7f091c30b49adba157cdf..040cbee333d0f4adb3f7ac5b13396e038a05bcae 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/KeyDocumentAwareProgressEntryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/KeyDocumentAwareProgressEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailDto.java index b807fd34cb75595ff44535ef7c832b3141294901..b082e9d165e757a084835f47babbde551b340b0d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,19 +10,16 @@ import com.fasterxml.jackson.annotation.JsonTypeName; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; -import java.util.List; @Schema(name = MailDto.SCHEMA_NAME) @JsonTypeName(MailDto.SCHEMA_NAME) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type") -public final class MailDto extends ConcreteFileDto { +public final class MailDto extends AbstractFileDto { public static final String SCHEMA_NAME = "Mail"; private @Valid MailMetaDataDto metaData; - private @Valid List<ConcreteFileDto> attachments; - private @NotNull int removedInvalidAttachments; public MailMetaDataDto getMetaData() { @@ -33,14 +30,6 @@ public final class MailDto extends ConcreteFileDto { this.metaData = metaData; } - public List<ConcreteFileDto> getAttachments() { - return attachments; - } - - public void setAttachments(List<ConcreteFileDto> attachments) { - this.attachments = attachments; - } - public int getRemovedInvalidAttachments() { return removedInvalidAttachments; } diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataDto.java index 3df9f4339fb85b882bd663e1ef94f43629eb772d..851137020e4017f439bb9f1d74dbe772e94e5f36 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataHistoryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataHistoryDto.java index 1a4ff38eca316cf8365c2ffd482826bdbe76a5e4..d630e031faf0af4cd76a2dda8dc16fca025509c4 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataHistoryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MailMetaDataHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryDto.java index 883ed17a94f0266d240a3c14c6789023c2e7e67e..775bb83a455fd2e1d7a4bc6a162f76b55c58d0f7 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryHistoryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryHistoryDto.java index 75483a5e025e33b21829e13b79e129131c39213c..25a4f454d8435e7f5a4a8688bcbdc9211593c591 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryHistoryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryTypeDto.java index 629fec7241b8734f319ecb35289b830adf688077..698dcb4f6884ef511bc5e915895caa3434a3fa88 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ManualProgressEntryTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataDto.java index e767d1d15c1c1f01e1cfa634db964af8fab890e7..c0ebf3f2a3a1a6a3072d2b65220028c8f22754aa 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataHistoryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataHistoryDto.java index 615ef45471af72ab6499bd7170d5dd8c94df42ba..c90c71693691cdd8b1e20e8d42f811f8e4cb57d0 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataHistoryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/MetaDataHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PatchManualProgressEntryRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PatchManualProgressEntryRequest.java index 8c3d3962f7dcbf07cb0797189d6f11368d974225..255a887654f9fc98202c7679e3ea8c217f9ecaf5 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PatchManualProgressEntryRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PatchManualProgressEntryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfDto.java index 87b5c53c80f8a2d602a5423c5a39d6d0a00c9c4a..07ae712873ccc543de0d9995d6146cf13a3ef491 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -13,7 +13,7 @@ import jakarta.validation.Valid; @Schema(name = PdfDto.SCHEMA_NAME) @JsonTypeName(PdfDto.SCHEMA_NAME) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type") -public final class PdfDto extends ConcreteFileDto { +public final class PdfDto extends AbstractFileDto { public static final String SCHEMA_NAME = "Pdf"; diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataDto.java index edd97866766b46f28eb241f60a0c9e8fede560b0..bfcf426f7303b9f1b4875ba0b6fb5aa2d3e42e9f 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataHistoryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataHistoryDto.java index 356f0c79af5158f91be97a54f2c035bf3478d545..9d25f4d0368f9a83c0aca6204d2e6d570804bb5d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataHistoryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PdfMetaDataHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PersonTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PersonTypeDto.java index 1f5d7715c2a8517557c3a932eb0cdf7b4984fe2a..babcf70e25bb1747a9a31e9a8668074d2b110abf 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PersonTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/PersonTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureDto.java index 4af0ff2dba43f133f6ae5671d0f6450ecde66c9a..95279295d362ccc3f8e07dfa5c5f9bff88a37582 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureMetric.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureMetric.java index a5c39bd42edc1c08ed6feef3757bd31aa1c0be62..6885287f1ba6a20b33aa7c5dcb2488bdd7883b79 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureMetric.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureMetric.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureStatusDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureStatusDto.java index 9b24a764236b94b914f15e5929aefd0519d5993b..9de8a937157db2dcc62490a0b5984358b33cc64f 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureStatusDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureTypeDto.java index 3493dc0e08ab595fd42f8009d3152f5be5c4dc87..1028ed219ccae4fa9454d775a87fe6589fa7995d 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureWithDuration.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureWithDuration.java index 99ddb6686d8d6de0502ee5a3fcc656b5245a1cfc..7f62db09827c678af512d6a6aa9af6a73c6dfb73 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureWithDuration.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcedureWithDuration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcessedInboxProgressEntryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcessedInboxProgressEntryDto.java index ae05fa17a9093fed4fcfb0157ea84d1ff0324b87..c7ce3d2ae8d24a79d2e085ac9adbbbd07eb0d42b 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcessedInboxProgressEntryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProcessedInboxProgressEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryClassDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryClassDto.java index 3345f2698f0abe0e74cf3aae6fde002921b801b8..084adcfbc60dad212d6b5771befccf3b7199afcd 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryClassDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryClassDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryDto.java index 3ba55d22222f7bd1bb2c76dddee1ef382b1522a1..02e705e60499ad8292663f4a649ab0a807cc2bdd 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -20,7 +20,7 @@ public abstract sealed class ProgressEntryDto @NotNull private UUID progressEntryId; @NotNull private Instant createdAt; @NotNull private Instant modifiedAt; - private @Valid ConcreteFileOrFileReference fileReference; + private @Valid AbstractFileReferenceDto fileReference; public UUID getProgressEntryId() { return progressEntryId; @@ -46,11 +46,11 @@ public abstract sealed class ProgressEntryDto this.modifiedAt = modifiedAt; } - public ConcreteFileOrFileReference getFileReference() { + public AbstractFileReferenceDto getFileReference() { return fileReference; } - public void setFileReference(ConcreteFileOrFileReference fileReference) { + public void setFileReference(AbstractFileReferenceDto fileReference) { this.fileReference = fileReference; } diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryReferenceFilePairDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryReferenceFilePairDto.java index 108bbd2affd912d80124287c976d70b542304a38..7b95df258b8e0e049f93b41f650cc3985913da58 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryReferenceFilePairDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntryReferenceFilePairDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -12,4 +12,4 @@ import java.util.UUID; @Schema(name = "ProgressEntryReferenceFilePair") public record ProgressEntryReferenceFilePairDto( - @NotNull UUID progressEntryId, @NotNull @Valid GenericFileDto file) {} + @NotNull UUID progressEntryId, @NotNull @Valid AbstractFileDto file) {} diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortByDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortByDto.java index 1b7e5e2c0b4919f163641ce3e8e1a7a675c2a0bf..244598118f627dffaf70ab02a9473a2343826edd 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortByDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortOrderDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortOrderDto.java index d3b19cc3002c31e04b0d2c77223a8d867298a3a4..17323187583de501cdda76d1d970eb8638494bce 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortOrderDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/ProgressEntrySortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SelfAssignTaskRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SelfAssignTaskRequest.java index 36493bf8e226ebb174fec8febab811ce48208fab..21adf4bfc0a892b53db86d38a449ce1f84805cb6 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SelfAssignTaskRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SelfAssignTaskRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SystemProgressEntryDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SystemProgressEntryDto.java index fb9f0bd8160d731687612fa779bb76d3d084fc01..c4019fd6670b68e5ae78cb74bad06af349243687 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SystemProgressEntryDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/SystemProgressEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskDto.java index 8c14b18b7b1b117d379afd37d01c7190cbc57678..786123b328f83d6cec0b542ecc0dde27074c1a62 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskMetric.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskMetric.java index 85139486b43cef80066b221e89d31b1064ece230..ff783542245b7ceaf6ea3bdb6ad3dc5be0ee85a9 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskMetric.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskMetric.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskResponse.java index 7454608ba4752f5be24b94055225dff749f83ad2..8ad181473e9192ffaccf31344e037329c35d8e4f 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskStatusDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskStatusDto.java index 8e074cfe00bf0b3e4bf07af863e5ae6b5a77f16c..fe8fe6f7a94dea9c6adccba19a3665a06056bc1a 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskStatusDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskTypeDto.java index cd2e7478fb602f2307f00ec8e67384cc0d7a162e..44a28ae0a0a2189b8d99af1c3236b93126ca1d32 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TaskTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TitleDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TitleDto.java index befe81d9cc6f0b65d25f027c4b62026b53811688..bee94de26d13734c65adc802c34b602563a49ad6 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TitleDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TitleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TriggerTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TriggerTypeDto.java index 4b00efba632c19858e8bb077c0394f59986e98bd..64fd8a156d122dfba35aa288f882871502ef5b14 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TriggerTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/TriggerTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/AddGdprValidationTaskRequest.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/AddGdprValidationTaskRequest.java index d6a38dd5fce01dc6322d3c40c9b3646ad491fc05..d1bf371839d5f7abe322aea84e9f1a2369616ee5 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/AddGdprValidationTaskRequest.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/AddGdprValidationTaskRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureInclusionStatusDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureInclusionStatusDto.java index 8a483ee999c5dea08f01d329feadca4d5a83572c..39430e827fcc0923a608d1ba3b46eb7fd8c4d23e 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureInclusionStatusDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureInclusionStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureWithInclusionStatusDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureWithInclusionStatusDto.java index 20e81eea4c7dfbc4def2ba79ede868d2ea195384..9d249042908906abedc9cd866d4a731c43bd2c91 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureWithInclusionStatusDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/BusinessProcedureWithInclusionStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprDownloadPackageInfoDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprDownloadPackageInfoDto.java index f2adef7f5554d793309b4ea3df75d0dc60ccd3d5..e043ddea50e0c005a4649d78bd00ede4b254d255 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprDownloadPackageInfoDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprDownloadPackageInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskDto.java index fd964d3efc6898bfe01ee1d2aec77de0b6c203f6..d494f1158aac2b0bf2b59431c6317ef4406723e1 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskFilterParameters.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskFilterParameters.java index 1100060fbe120dfe75de282a26b65bff4bf951f1..e06979255252feb69614ed783df2d302939b86ad 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskFilterParameters.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskSortKey.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskSortKey.java index 5caa87aba6055a3f3e633f672b1c6464fd5c7f5b..52ec64447b7940c48983fa2e5781716eb6b779ea 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskSortKey.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskStatusDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskStatusDto.java index ff0240e47501568c2aaa413a619d43027537b59f..6940888375773a4b002aae01ec1502241a4f9b52 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskStatusDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskTypeDto.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskTypeDto.java index 2fb81dea0a44ec315cb06058da6165764b386ae4..d73909e2eb71899250885a996778bb526747ec0a 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskTypeDto.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GdprValidationTaskTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllGdprValidationTasksResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllGdprValidationTasksResponse.java index 94d95f38b84442e9aa0dcfb9bb8330f97bede49b..217a28d8b55b375cae017bf97ba96ccb950cd565 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllGdprValidationTasksResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllGdprValidationTasksResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllValidationTasksResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllValidationTasksResponse.java index 8b91d78238039eced72481db2ad46ab8c74e83f6..d87d51d381b812afcbc254bfdfd766093f67b4f6 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllValidationTasksResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetAllValidationTasksResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprDownloadPackagesInfoResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprDownloadPackagesInfoResponse.java index 99d43cf933d1027744869360c5f533f806e518a5..6cdec6da1d72c9dfe8038e07858d1226a74e53c0 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprDownloadPackagesInfoResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprDownloadPackagesInfoResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprNotificationBannerResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprNotificationBannerResponse.java index d7b600cd6f5b6a39d7b6345ccb3910b88de2a719..d4e05360691fd9c7070a64b38f1d1b7a7e8d93c3 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprNotificationBannerResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprNotificationBannerResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskDetailsResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskDetailsResponse.java index a856b906adc35e079194d4ae21b82fdb3f341bad..09fd61ab8c1972118b4464925ffc391a1636c2fc 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskDetailsResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskDetailsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskResponse.java b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskResponse.java index 6b3f1e17f6aa1bd9eca1bed389e9b0fa9cffe207..b711cb75a8ac0808dbbc00e44ac9e34e9a8dc367 100644 --- a/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskResponse.java +++ b/backend/lib-procedures-api/src/main/java/de/eshg/lib/procedure/model/gdpr/GetGdprValidationTaskResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/openApi.yaml b/backend/lib-procedures/openApi.yaml index 8035f2ac1c0224fbe69acda3fa11b39ea3be25ec..f80cbd9f2ec0c00d03c3cbfb608e2ebaa133ec70 100644 --- a/backend/lib-procedures/openApi.yaml +++ b/backend/lib-procedures/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 @@ -888,6 +888,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -1685,9 +1704,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -1706,10 +1724,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -1933,75 +1948,28 @@ components: required: - businessProcedure - inclusionStatus - ConcreteFileDto: + CheckFileStateUsageRequest: type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: + properties: + fileStatesIds: + type: array + items: type: string format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' + maxItems: 2147483647 + minItems: 1 required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: + - fileStatesIds + CheckFileStateUsageResponse: type: object - discriminator: - propertyName: '@type' properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid + inUse: + type: array + items: + type: string + format: uuid required: - - '@type' + - inUse ContactDetails: type: object properties: @@ -2717,32 +2685,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -3349,7 +3295,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -3502,18 +3448,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -3657,7 +3596,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -3936,7 +3875,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/BaseFeatureTogglesHelper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/BaseFeatureTogglesHelper.java index 832d99de6123f6a27c0184129404118fe5f81ba5..bc52a68900d4b3f3410d8528fbf1de917fcb1cb8 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/BaseFeatureTogglesHelper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/BaseFeatureTogglesHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/MapperHelper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/MapperHelper.java index 373b7d597cc4526071403d4eb602cb85ebe5fd86..ad2f4d8e6d1f121aafe65b3083064549542da47a 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/MapperHelper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/MapperHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/audit/AuditService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/audit/AuditService.java index 697d2a634dbc51f3e958118ebf6d3adf039b66b5..27a9bc62e16607a894bce01199c49248ca5b3113 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/audit/AuditService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/audit/AuditService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/factory/SystemProgressEntryFactory.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/factory/SystemProgressEntryFactory.java index fecc49f4ffba253efc876b8c9d63aa2a3f8f7de6..49d56215e427daca5ebd4681e0fe79ec88ba9ae6 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/factory/SystemProgressEntryFactory.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/factory/SystemProgressEntryFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Address.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Address.java index 81db6390be0e99291559a9a7803f32989110ea8f..34d0168425febef1ab2e0d40d9b148940e8b53d9 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Address.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Address.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ArchivingRelevance.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ArchivingRelevance.java index 0f93cf32ef30e82b88f617679e6ab6d8525ec082..e48d994e4057e6d1afe72aee84022582755b0261 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ArchivingRelevance.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ArchivingRelevance.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Assignment.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Assignment.java index 6aeaf2b7f416cf7d672b4c44a80721bfb56cc464..115bed49ddadf7e5e71cad89a96bd1a609a2dc6a 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Assignment.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Assignment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/AssignmentHistoryItem.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/AssignmentHistoryItem.java index e8912270086707e2662330b70eaafdf1f8b46612..042d1a557b9300cafbc0f7f4bccec0f4a4ab0f3f 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/AssignmentHistoryItem.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/AssignmentHistoryItem.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/BasicSystemProgressEntryType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/BasicSystemProgressEntryType.java index 86d17a9825b578295184cc6da5b3e3a775343266..3c01b7601717e893dd379f58948e9fe04510a146 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/BasicSystemProgressEntryType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/BasicSystemProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Cemetery.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Cemetery.java index fd9d23b910c7369b65babc0bf802d312bcdbc70a..d0152a38cfe8ad7c7e82de786e04c87d80483554 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Cemetery.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Cemetery.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactDetails.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactDetails.java index f3d5734f501b96717b6aeee99ae0271ab18d74d2..bdfbc1d0961fd574a3c45ed92850c43b6e65164a 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactDetails.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -49,7 +49,7 @@ public class ContactDetails extends BaseEntity { private String phoneNumber; @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) - @OneToOne(optional = false, fetch = FetchType.LAZY) + @OneToOne(optional = false, fetch = FetchType.LAZY, mappedBy = InboxProcedure_.CONTACT_DETAILS) private InboxProcedure inboxProcedure; @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactType.java index 7a4108063ea92829658e5ca0dc9f6752547e9be4..e4e33505b88de9c4447c81f2a96daee4814f2a56 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ContactType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FacilityType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FacilityType.java index ea8336428572d8d7b35fe2afc095906f7723ce04..06f62cff103ee0c7c229236032af74f2425975ea 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FacilityType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FacilityType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/File.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/File.java index 3fab544b54b501c72d3cd3a2d78a552464bac657..dadbbe4b0883aea62460b06384349464f6815ec6 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/File.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/File.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -68,7 +68,7 @@ public abstract class File extends BaseEntityWithExternalId implements LockableE private int fileSizeBytes; @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "attached_to_mail_id") private Mail attachedToMail; diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileAware.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileAware.java index 2b22d0be28abd1b2a9a86fe170be79a5b8088d10..5399189471441423fbf7056effaba20987c37bef 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileAware.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileAware.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileContent.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileContent.java index 0574034b0f5f01bb73717496057637e2576bb260..bf7a5f83a3ee6ec78b9638d60dc935033ce0f97e 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileContent.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileContent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequest.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequest.java index eabb29921debfa06763ee17835b42bcc5d4b3d18..9e0b05b98aa0e0fd71bd1c328ae3be1b4db97ac6 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequest.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequestNotification.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequestNotification.java index 838ea681bea3c12825c775a1c5f48b2d6679be47..2447094ab52cc32a70dac4cb3d178032f915c462 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequestNotification.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileDeletionApprovalRequestNotification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileTypeGroup.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileTypeGroup.java index 50ebbbdabcbd7938c6214b819e6742e043e4ea0f..7550d3585c8d0b3d92e7160a50a00dee22970849 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileTypeGroup.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/FileTypeGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprDownloadPackage.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprDownloadPackage.java index 3d6a295bc5e7345cd79635c9dd2db28982603b58..db848696629212ade141c3a319346fbda387a3e9 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprDownloadPackage.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprDownloadPackage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTask.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTask.java index b13ac2bfa1602bcf4938657c3a3c654a33443178..7f6043f9c216e5c9e4d1b62a29905fd43b811f35 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTask.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskStatus.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskStatus.java index b0f554e8edb0a66eefa0f9b66cf603977f0607f4..833c67cd46f00abe02787f5f9387cd646bbb7e14 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskStatus.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskType.java index 068bf80c465178c817f59ec311915ce30baaa888..82fcdb1e59d2ea7bfde94cb28e4c42473c8c7f2c 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/GdprValidationTaskType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Image.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Image.java index 3c5bd7d5b99798848017c17ee0324978de35a528..3e5d93b7fd004440bf4a8619ae0eb4161c5a0908 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Image.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Image.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ImageMetaData.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ImageMetaData.java index d4b256a97ef54beb504ee1412827f8ac5b20eff5..357297d64d2ceb93797165948a54d921cf9947ea 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ImageMetaData.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ImageMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedure.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedure.java index a824dab6c61bae481f28f6963cd439e2fd372853..4c1e4e86542a0798277ea09afd7cd7e02803261b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedure.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -14,6 +14,7 @@ import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; +import jakarta.persistence.FetchType; import jakarta.persistence.OneToOne; import java.time.Clock; import java.time.Instant; @@ -55,17 +56,17 @@ public class InboxProcedure extends BaseEntityWithExternalId { @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) @OneToOne( optional = false, - mappedBy = "inboxProcedure", cascade = CascadeType.PERSIST, - orphanRemoval = true) + orphanRemoval = true, + fetch = FetchType.LAZY) private ContactDetails contactDetails; @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) @OneToOne( optional = false, - mappedBy = "inboxProcedure", cascade = CascadeType.PERSIST, - orphanRemoval = true) + orphanRemoval = true, + fetch = FetchType.LAZY) private InboxProgressEntry inboxProgressEntry; public InboxProcedureStatus getInboxProcedureStatus() { diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedureStatus.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedureStatus.java index f88bea10f17316f996133e0ad7bee157f458a4b5..902949c5c15d5915d4b7e839eace302bbacea6ad 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedureStatus.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProcedureStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntry.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntry.java index 2792b80e72b649d6bbd39b5d17be7b9129d2bfd2..6b9834c60b5734ce29249341462bd30e4787c025 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntry.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,6 +11,7 @@ import de.eshg.lib.common.SensitivityLevel; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; import jakarta.persistence.OneToOne; import java.util.UUID; import org.hibernate.annotations.JdbcType; @@ -20,7 +21,10 @@ import org.hibernate.dialect.PostgreSQLEnumJdbcType; public class InboxProgressEntry extends BaseEntityWithExternalId implements FileAware { @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) - @OneToOne(optional = false) + @OneToOne( + optional = false, + fetch = FetchType.LAZY, + mappedBy = InboxProcedure_.INBOX_PROGRESS_ENTRY) private InboxProcedure inboxProcedure; @DataSensitivity(SensitivityLevel.PUBLIC) diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntryType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntryType.java index d8ae85335d9dc67bea844dc5ea00c0fb25feec3c..b73e5083ffcfe141f700895d906cf5fa2d794831 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntryType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/InboxProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/KeyDocumentAware.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/KeyDocumentAware.java index 903560f461e38f97909a3eb9baa66b9bfcb0bf79..4a4389d79568a843953908bd9e2f650a15f40507 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/KeyDocumentAware.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/KeyDocumentAware.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Mail.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Mail.java index 7b2696ebfbc70b0270820e408a0ca6e40f637d1a..8de013bc7cbb266338b913b46bb1039c978d05f6 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Mail.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Mail.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MailMetaData.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MailMetaData.java index 1a11a19c3ce339844ffd07efd50302a2f5ab7657..3b93c96c9345b0b1c226dd1da2cb43ce2fbfe65a 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MailMetaData.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MailMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntry.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntry.java index c092d63ce78aca5378f447f6787c210ae60ef6ce..c31eea1dc3d97efd304fdfba004063deb580560a 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntry.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequest.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequest.java index a0bac247daff6276f9b0a3612cef56873fa219ed..8d0e4be1f1378d18d0255755bf15151c28a6be60 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequest.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequestNotification.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequestNotification.java index cfeea119223142d842c1357c64aa739c8f17abd9..48abcaaaf483487c105c0ca09180a69169173821 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequestNotification.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryDeletionApprovalRequestNotification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryType.java index d7e62dcce5a7d88d302bee334571e3cb2fea3cf8..246a4fa7030ae2fe6827be57a5c2aa44999a9172 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ManualProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MetaData.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MetaData.java index 0f0db603cbd02da8400575a2c41c178fa37f2b04..c90d7508c56f9aa5aa1c611f0b81427b5009f719 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MetaData.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/MetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/NotificationWithEmailReminder.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/NotificationWithEmailReminder.java index 44527be056a93f1394cc58cb73a153dd028fa840..21cf7a7057bb2b4c27c3ef90c27212bf3e6ed487 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/NotificationWithEmailReminder.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/NotificationWithEmailReminder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Pdf.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Pdf.java index 4021e369aa3d756788871748a927a56aef18e8e9..b4f48f74da738b2c51e79d93cc1daf79edc323ed 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Pdf.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Pdf.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PdfMetaData.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PdfMetaData.java index 70d0584fb294b1235d4f0e3636f9ef0e307ed066..ec89c08c79e11ed032e425d855436ae94e26d920 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PdfMetaData.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PdfMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PersonType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PersonType.java index 64b4c1dc79d83ad446385f205bbd7cfc8f359341..4f89147b3e0f2f9e6c87859491f99005448e5921 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PersonType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/PersonType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Procedure.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Procedure.java index 972560be7e8d85d009f1563b996723011473295d..7ecb870504a565d98016a6d59615ef861f59f6e1 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Procedure.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Procedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureEntityListener.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureEntityListener.java index cf50e584096856bb585e270259a9d0af227945f9..0bd4ef422b274e37ddffeb7d562dbc8832c88238 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureEntityListener.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureEntityListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureFileType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureFileType.java index 6c222875048c5b87e323e33caa7eaf1737c015a9..3a6dcadb866ccdc668a0d945c24c150c902a202c 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureFileType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureFileType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureStatus.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureStatus.java index 955452a79b6f3533e9b70a4145ba2c2b74df43f1..ab91c1871b04e88f5dd8acb1f2a7fd0bacad43cb 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureStatus.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureType.java index db735193c835dc0861d790cc3db28554fec346f0..14525b4c550f8e93a26ef3cfeb746fba961671de 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcedureType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcessedInboxProgressEntry.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcessedInboxProgressEntry.java index dfcca93abd9517a95aecdbb4e8a4fdec9f9ed602..78e0da914ece56218772b8e51a6d1d9db345be7f 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcessedInboxProgressEntry.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProcessedInboxProgressEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ import de.eshg.lib.common.DataSensitivity; import de.eshg.lib.common.SensitivityLevel; import jakarta.persistence.Column; import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; import jakarta.persistence.OneToOne; import java.util.UUID; import org.hibernate.annotations.JdbcType; @@ -19,7 +20,7 @@ import org.springframework.data.annotation.CreatedBy; public class ProcessedInboxProgressEntry extends ProgressEntry { @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) - @OneToOne(optional = false) + @OneToOne(optional = false, fetch = FetchType.LAZY) private InboxProcedure inboxProcedure; @DataSensitivity(SensitivityLevel.PUBLIC) diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProgressEntry.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProgressEntry.java index 61a39d7a3c2510178f184798872ee3f86ab6f16e..f8ed69ed933d6b97e838b82e0846824915ff3304 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProgressEntry.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/ProgressEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -14,6 +14,7 @@ import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; +import jakarta.persistence.FetchType; import jakarta.persistence.Index; import jakarta.persistence.Inheritance; import jakarta.persistence.OneToOne; @@ -43,7 +44,7 @@ public abstract class ProgressEntry extends SequencedBaseEntityWithExternalId im private Instant modifiedAt; @DataSensitivity(SensitivityLevel.PSEUDONYMIZED) - @OneToOne(cascade = CascadeType.PERSIST, orphanRemoval = true) + @OneToOne(cascade = CascadeType.PERSIST, orphanRemoval = true, fetch = FetchType.LAZY) @NotAudited private File file; diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedFacility.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedFacility.java index 1458a5111314c7fb213a2211d6449f25c2cab6ab..46222395d27a8e1cf5bdd42c395155d54f46a790 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedFacility.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedFacility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedPerson.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedPerson.java index 8987cee694c17dce94eee1f2e8f1250964d3b8b8..0ca9353db66ac193baa1cfd153597e79b7429b94 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedPerson.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/RelatedPerson.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/SystemProgressEntry.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/SystemProgressEntry.java index b8279203c0016f10be5c01bc6049c0995541a51c..e6c29295187b4bf431bc9e93a9ce840847cd4d23 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/SystemProgressEntry.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/SystemProgressEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Task.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Task.java index 61e7dd745b0e262a186d3664cfd3bf0b145e760a..097755422009be8863bb41f09894b17e9cd3f21d 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Task.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Task.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotification.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotification.java index afdd86d6b29fd61cab560e32f4c02bde6fc0e6c7..bf6e824d70b50a93ab34902f6439a67eb3ddfaa0 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotification.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotificationType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotificationType.java index 8f8b8d9b86e34b0e6b937a1379031f8b80baf556..569dbc6df099fa82cbe883c9c698f387c660813f 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotificationType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskDueAtReminderNotificationType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskStatus.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskStatus.java index f0a30925850cb0e2d58c36aa2b734d8ccb66f01c..c43b98383441f579e14a756997745a66ec50b432 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskStatus.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskType.java index 77258817c9cf3a51af4a592d7cee1c1f95cc1d5c..0623c6125ff4fa9bfe2e0fcb598b92764adcaa8d 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TaskType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Title.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Title.java index 7497a745636a4e5ab56a707987f4513294eff3a6..a4d191e5177d2f371e848c8deb1432a0eac607eb 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Title.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/Title.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TriggerType.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TriggerType.java index 3f2ef6bcc85ee3300553ca7183eb838572e6437e..f410e04048dd6ade3738c465cfe4fb795ff433eb 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TriggerType.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/TriggerType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/IdView.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/IdView.java index 2901b035e4a62b0ef4f2b8a596008dbd7e908202..753ad58e419f75ff8036b2f95eb080b5b9413368 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/IdView.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/IdView.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/InboxProcedureProgressEntryView.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/InboxProcedureProgressEntryView.java index 9bb7b347acacdc9bc1fa7b79704843217f6597a3..e45254ffbf3eef60f103c5ebc6d930fc610526df 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/InboxProcedureProgressEntryView.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/model/view/InboxProcedureProgressEntryView.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/AddressRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/AddressRepository.java index a717a0ecffc75931b735f110beb49859a690449e..5c8d1bdc3c826ca25d0184197bd12427172d6afe 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/AddressRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/AddressRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/CemeteryRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/CemeteryRepository.java index 541631ef6ee00b8433762395d282919b741abc0d..a051bcd322c8f134260e98e7e0aa82edfb31b6ca 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/CemeteryRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/CemeteryRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ContactDetailsRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ContactDetailsRepository.java index d15154bbac46659b1eab9d7cfc68df00cff0623e..19fc1ab1e227f8cb0c04fcbc132bc8e20dc9139a 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ContactDetailsRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ContactDetailsRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileContentRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileContentRepository.java index 6860402e5f168e181070f3b25e3bcd119dc36e28..a910daaa36690d9657603505965a1578bbfb6359 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileContentRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileContentRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileDeletionApprovalRequestNotificationRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileDeletionApprovalRequestNotificationRepository.java index 0e56b74a41b3688db9388db34fe7629e4d7d0e7f..df2a251bab46f3bc6f98fd0b39541e878dff0123 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileDeletionApprovalRequestNotificationRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileDeletionApprovalRequestNotificationRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileRepository.java index 845c4d1ea8d93815d351f569259997247b4a56ea..b044a9456db4f53ff58f3296296323c3889ff05b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/FileRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,7 +7,6 @@ package de.eshg.lib.procedure.domain.repository; import de.eshg.lib.procedure.domain.model.File; import de.eshg.lib.procedure.domain.model.FileContent; -import java.util.List; import java.util.Optional; import java.util.UUID; import org.springframework.data.jpa.repository.JpaRepository; @@ -22,15 +21,4 @@ public interface FileRepository extends JpaRepository<File, Long>, JpaSpecificat @Query("select f.fileContent from File f where f.externalId = :externalId and f.deleted = false") Optional<FileContent> findFileContentByExternalIdAndDeletedFalse( @Param("externalId") UUID externalId); - - @Query( - """ - SELECT e.file FROM ProgressEntry e - LEFT JOIN FETCH treat(e.file as Mail).attachments - WHERE e.id = :progressEntryId - AND e.file IS NOT NULL - ORDER BY e.file.id - """) - List<File> findAllByProgressEntryIdFetchAttachmentsAndOrderByFileId( - @Param("progressEntryId") Long progressEntryId); } diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageInfo.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageInfo.java index 7d9a3bb68f991799a243321c982b4b4a949f940e..d80ed83a97bc482e8fdf27fd889ee3017f6d903b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageInfo.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageRepository.java index 3db9ce50cc4f272140ab214f119d6a74d2558a6b..d595ebfb8ccd31b238597982939789502ad4bee1 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprDownloadPackageRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprValidationTaskRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprValidationTaskRepository.java index 51bc7c54cb256a563feb190a84a758b79f7d2fda..72e583be3775cfb4e8e87f27e86df4ceb29549e7 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprValidationTaskRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/GdprValidationTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ImageMetaDataRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ImageMetaDataRepository.java index 1c1ec6ad07ca4fd7e4329b9f6a1e9fff7440f0ae..a1e566ae09a5e8c356d66bbb49f1a916a9e3b87b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ImageMetaDataRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ImageMetaDataRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProcedureRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProcedureRepository.java index 074cc052487d7543a7ae4d4f8f6a0f651b628ba6..7ed119300c0c5ac87e5eca03cbae2708b7f03089 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProcedureRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProgressEntryRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProgressEntryRepository.java index fbfa983c9527985c8b97552c880426fae14c842e..7497a87a3b738e65534600f430b3b9033823d0d3 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProgressEntryRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/InboxProgressEntryRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/MailMetaDataRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/MailMetaDataRepository.java index 6a383575dc18e760e09428faa2f629a72181ed94..cd0295c72c3b9d4295b94d7e9608ed7174ea0fbf 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/MailMetaDataRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/MailMetaDataRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryDeletionApprovalRequestNotificationRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryDeletionApprovalRequestNotificationRepository.java index 42b0adeff51518b7e702ace2755f3c3f75212642..34f364c3478e3ff4d0fe4e66ccd4fc70e3da200b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryDeletionApprovalRequestNotificationRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryDeletionApprovalRequestNotificationRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryRepository.java index b0663261bfbcb15b2f299c19a070f28366ab566f..1dd8debee7507dc2c55c4b97df49478778b5f277 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ManualProgressEntryRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/NotificationWithEmailReminderRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/NotificationWithEmailReminderRepository.java index 2a564fa4953350ab2677b6cffcb9403f241d6098..89ce1549ccc4cb01d50b04dbc601c71604e382a8 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/NotificationWithEmailReminderRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/NotificationWithEmailReminderRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/OpenTaskSummaryRawData.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/OpenTaskSummaryRawData.java index fedcb7a282f798b937a4567b9f6c83406bdb0abb..aac2a14a76b4ff6377b96800a9f35a3a22ae3fad 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/OpenTaskSummaryRawData.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/OpenTaskSummaryRawData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/PdfMetaDataRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/PdfMetaDataRepository.java index 5bd6c239f3065ef00181260b2d86f5f0597fade5..449f72534268a01c417c70c41ac7be67fff2d49b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/PdfMetaDataRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/PdfMetaDataRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProcedureRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProcedureRepository.java index 38be201d59f9e3687ad4a7b70cc4470e1ff69995..44a63b2c4e47b9efb094452e9c59822313b504d3 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProcedureRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -20,6 +20,7 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; import java.util.stream.Stream; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; @@ -216,6 +217,32 @@ public interface ProcedureRepository<ProcedureT extends Procedure<ProcedureT, ?, List<ProcedureT> findByFileStateIds( @Param("centralFileStateIds") Collection<UUID> centralFileStateIds); + @Query( + """ + SELECT person.centralFileStateId AS centralFileStateId + FROM #{#entityName} procedure + JOIN procedure.relatedPersons person + WHERE person.centralFileStateId IN :centralFileStateIds + ORDER BY person.id ASC + + UNION ALL + + SELECT facility.centralFileStateId AS centralFileStateId + FROM #{#entityName} procedure + JOIN procedure.relatedFacilities facility + WHERE facility.centralFileStateId IN :centralFileStateIds + ORDER BY facility.id ASC + """) + List<UUID> findCentralFileStateIdsInUse( + @Param("centralFileStateIds") List<UUID> centralFileStateIds); + + default List<UUID> findCentralFileStateIdsInUseNoDuplicates( + @Param("centralFileStateIds") List<UUID> centralFileStateIds) { + return findCentralFileStateIdsInUse(centralFileStateIds).stream() + .distinct() + .collect(Collectors.toList()); + } + @Query( """ SELECT procedure from #{#entityName} procedure diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProgressEntryRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProgressEntryRepository.java index 04a2aa978deb1b26a9690f81117e3f0674c032d9..3b8447cad7d1e81008dd5fa6efa5ff571186dcd7 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProgressEntryRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/ProgressEntryRepository.java @@ -1,19 +1,18 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.lib.procedure.domain.repository; import de.eshg.lib.procedure.domain.model.ProgressEntry; -import de.eshg.lib.procedure.domain.model.ProgressEntry_; import java.util.List; import java.util.Optional; import java.util.UUID; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; -import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Query; @@ -31,14 +30,18 @@ public interface ProgressEntryRepository @Query( """ SELECT e FROM ProgressEntry e - JOIN FETCH e.file as file - LEFT JOIN FETCH file.attachments - WHERE e.procedureId = :procedureId""") - List<ProgressEntry> findAllByProcedureIdAndFetchFileAndAttachments( - @Param("procedureId") Long procedureId); + JOIN FETCH e.file file + LEFT JOIN FETCH treat(file as Image).metaData + LEFT JOIN FETCH treat(file as Pdf).metaData + LEFT JOIN FETCH treat(file as Mail).metaData + LEFT JOIN FETCH file.attachments attachment + LEFT JOIN FETCH treat(attachment as Image).metaData + LEFT JOIN FETCH treat(attachment as Pdf).metaData + WHERE e.procedureId = :procedureId + """) + List<ProgressEntry> findAllByProcedureIdAndFetchFile(@Param("procedureId") Long procedureId); @Override - @EntityGraph(attributePaths = ProgressEntry_.FILE) Page<ProgressEntry> findAll(Specification<ProgressEntry> spec, Pageable pageable); @Query( @@ -59,7 +62,6 @@ public interface ProgressEntryRepository """ SELECT progressEntry FROM ProgressEntry progressEntry LEFT JOIN FETCH progressEntry.file as file - LEFT JOIN FETCH file.attachments WHERE progressEntry.procedureId = :procedureId AND progressEntry.id != :id AND ( @@ -67,9 +69,25 @@ public interface ProgressEntryRepository OR TREAT(progressEntry as SystemProgressEntry).keyDocumentType = :keyDocumentType ) + ORDER BY + COALESCE(TREAT(progressEntry as ManualProgressEntry).keyDocumentVersion, TREAT(progressEntry as SystemProgressEntry).keyDocumentVersion) DESC, + progressEntry.id DESC """) - List<ProgressEntry> findAllByProcedureIdAndKeyDocumentTypeAndNotIdFetchingFileAndAttachments( + List<ProgressEntry> findAllByProcedureIdAndKeyDocumentTypeAndNotIdFetchingFile( @Param("procedureId") Long procedureId, @Param("keyDocumentType") String keyDocumentType, @Param("id") Long id); + + @Query( + """ + SELECT progressEntry FROM ProgressEntry progressEntry + LEFT JOIN FETCH treat(progressEntry as ProcessedInboxProgressEntry).inboxProcedure + LEFT JOIN FETCH progressEntry.file file + LEFT JOIN FETCH treat(file as Image).metaData + LEFT JOIN FETCH treat(file as Pdf).metaData + LEFT JOIN FETCH treat(file as Mail).metaData + WHERE progressEntry IN :progressEntries + """) + List<ProgressEntry> fetchFilesMetaDataAndInboxProcedure( + @Param("progressEntries") List<ProgressEntry> progressEntries, Sort sort); } diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/TaskRepository.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/TaskRepository.java index 8d9fdcb0fc83cd9c96967b2b8c0831237c938a2d..f7e30f5754f203b02863548209022150f1b13a7c 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/TaskRepository.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/repository/TaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/specification/ArchivableProceduresSpecification.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/specification/ArchivableProceduresSpecification.java index 41d921de03e9843dd2ec967b0a9e1e8d01e45312..6292e1d348666ca0b1c740d102bbd4f5322c6c47 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/specification/ArchivableProceduresSpecification.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/domain/specification/ArchivableProceduresSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/EmlParser.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/EmlParser.java index 9dcd4219488e11eb8ed4ecf87f9dda4ae14584d3..962af85f9464ff3637d863d74113dd9225e78a6e 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/EmlParser.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/EmlParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileController.java index b8efd8df38e06922a652dd30b75ab31886172a3f..b4aa3066943c989e16db75be5bbfe214fc9542dd 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -15,7 +15,7 @@ import de.eshg.lib.procedure.domain.model.FileContent; import de.eshg.lib.procedure.domain.model.FileDeletionApprovalRequest; import de.eshg.lib.procedure.domain.model.MetaData; import de.eshg.lib.procedure.mapping.FileMapper; -import de.eshg.lib.procedure.model.ConcreteFileDto; +import de.eshg.lib.procedure.model.AbstractFileDto; import de.eshg.lib.procedure.model.GetMetaDataHistoryResponse; import de.eshg.lib.procedure.model.MetaDataDto; import io.swagger.v3.oas.annotations.tags.Tag; @@ -47,14 +47,14 @@ public class FileController implements FileApi { @Override @Transactional(readOnly = true) - public ConcreteFileDto getFile(UUID fileId) { + public AbstractFileDto getFile(UUID fileId) { File file = fileStorageService.findFileOrThrow(fileId); return FileMapper.toInterfaceType(file); } @Override @Transactional - public ConcreteFileDto updateFileMetaData(UUID fileId, MetaDataDto metaData) { + public AbstractFileDto updateFileMetaData(UUID fileId, MetaDataDto metaData) { MetaData domainMetaData = FileMapper.toDomainType(metaData); File file = fileStorageService.updateFileMetaData(fileId, domainMetaData); return FileMapper.toInterfaceType(file); diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionApprovalRequestNotificationService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionApprovalRequestNotificationService.java index 915634f6b3019e9815f45e11fdb6eaa1fe0dc79a..9974a47bf756f270c61a8e42f1fbfa3577c11e86 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionApprovalRequestNotificationService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionApprovalRequestNotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionRequestApprovalRequestDecisionHandler.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionRequestApprovalRequestDecisionHandler.java index ab418b93436c7b32ce22fc03b9797b206bee5b7d..446108d61347bf01050a662a52aa7b0a304903a6 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionRequestApprovalRequestDecisionHandler.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileDeletionRequestApprovalRequestDecisionHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileExtensionEnricher.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileExtensionEnricher.java index f5002d84bb05c63ec1e8bd55a18534fa69c20029..d2edc1b499835cbc6c04570837035aaed45c4932 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileExtensionEnricher.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileExtensionEnricher.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileFactory.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileFactory.java index 4913d1489d7fa298cf85221e8c5ea22fdc8d25e9..d3129c4bf53a1062a6a82efd498b012fd79a2249 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileFactory.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileStorageService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileStorageService.java index 3b861da93917dfb4c612b4d7513d026d56490a38..6724aa3aa6351f6e691de8ac3ea3e1386c4afc13 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileStorageService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileStorageService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileTypeMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileTypeMapper.java index e97e5231ada29b04077c1720dd7d178a8939c4af..5bbd4946f63cdb9a7c46fe944849f7d3aa756843 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileTypeMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/FileTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/ImageMetaDataExtractor.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/ImageMetaDataExtractor.java index 84c9598d970c68725214d9e569e7a934166d599e..8065be1c64891be9a8962a800c3a78863da12af0 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/ImageMetaDataExtractor.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/ImageMetaDataExtractor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/MultipartFileParser.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/MultipartFileParser.java index 50cba355778745cb7debfdd8132b5ced8c26d4b3..1d2c743a05509ac9fd5baa0febb7c436310ab064 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/MultipartFileParser.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/MultipartFileParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/PdfMetaDataExtractor.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/PdfMetaDataExtractor.java index 4cccb68ab04d9f8e2e9ee1b9b5345dacd23cc7ca..a746ea0ebc3fe060239d9c0828231be6a0f214de 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/PdfMetaDataExtractor.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/file/PdfMetaDataExtractor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskController.java index 36cb871f34ef0f0cbd26bb336a92d8cf447b4b9b..2fd7b38aa9fbc5f395313e3b7ccc09b00bfbff41 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -17,6 +17,7 @@ import de.eshg.base.gdpr.api.GdprIdentificationDataDto; import de.eshg.base.gdpr.api.GetGdprDownloadsResponse; import de.eshg.base.util.PaginationUtil; import de.eshg.domain.model.serialization.SerializationService; +import de.eshg.domain.model.serialization.ZipFilter; import de.eshg.file.common.CustomMediaTypes; import de.eshg.lib.auditlog.AuditLogger; import de.eshg.lib.procedure.api.GdprValidationTaskApi; @@ -38,12 +39,12 @@ import de.eshg.lib.procedure.model.gdpr.GetGdprNotificationBannerResponse; import de.eshg.lib.procedure.model.gdpr.GetGdprValidationTaskDetailsResponse; import de.eshg.lib.procedure.model.gdpr.GetGdprValidationTaskResponse; import de.eshg.rest.service.error.BadRequestException; -import de.eshg.rest.service.security.CurrentUserHelper; import io.swagger.v3.oas.annotations.tags.Tag; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; import java.util.UUID; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.ByteArrayResource; @@ -65,17 +66,18 @@ public class GdprValidationTaskController< private final GdprValidationTaskService<ProcedureT, TaskT> service; private final BaseFeatureTogglesApi baseFeatureTogglesApi; private final SerializationService serializationService; - private final AuditLogger auditLogger; + private final GdprZipFilterProvider zipFilterProvider; public GdprValidationTaskController( GdprValidationTaskService<ProcedureT, TaskT> service, BaseFeatureTogglesApi baseFeatureTogglesApi, SerializationService serializationService, + GdprZipFilterProvider zipFilterProvider, AuditLogger auditLogger) { this.service = service; this.baseFeatureTogglesApi = baseFeatureTogglesApi; this.serializationService = serializationService; - this.auditLogger = auditLogger; + this.zipFilterProvider = zipFilterProvider; } @Override @@ -108,32 +110,36 @@ public class GdprValidationTaskController< validateStatus(validationTask, GdprValidationTaskStatus.OPEN); Procedure<?, ?, ?, ?> procedure = service.getBusinessProcedureFromDb(businessProcedureId); - service.getFileStateIdsAndValidateLink(gdprProcedureId, businessProcedureId); + List<UUID> fileStateIds = + service.getFileStateIdsAndValidateLink(gdprProcedureId, businessProcedureId); log.info( "Attempting to create a zip of procedure(id={}) for gdprProcedure(id={})", businessProcedureId, gdprProcedureId); - byte[] zip = serializationService.toZip("DSGVO-Vorgang_" + businessProcedureId, procedure); + + ZipFilter zipFilter = zipFilterProvider.create(fileStateIds); + byte[] zip = + serializationService.toZip("DSGVO-Vorgang_" + businessProcedureId, procedure, zipFilter); UUID downloadId = service.createAndSaveDownloadPackage(businessProcedureId, zip).getExternalId(); service.sendDownloadId(gdprProcedureId, downloadId); - auditLogger.log( - "DSGVO", - "Erstellung DSGVO Datenpaket", - Map.of( - "durch Benutzer", - CurrentUserHelper.getCurrentUserIdAsStringGracefully().orElse("-"), - "ID des DSGVO-Vorgangs", - gdprProcedureId.toString(), - "ID des Fachmodule-Vorgangs", - businessProcedureId.toString())); + service.writeAuditLog("Erstellung DSGVO Datenpaket", mapAuditlog(validationTask, procedure)); log.info( "Created downloadPackage of procedure(id={}) for gdprProcedure(id={})", businessProcedureId, gdprProcedureId); } + private Map<String, String> mapAuditlog( + GdprValidationTask validationTask, Procedure<?, ?, ?, ?> procedure) { + return Map.of( + "DSGVO Vorgang ID", + validationTask.getGdprProcedureId().toString(), + "Fachmodul Vorgang ID", + procedure.getExternalId().toString()); + } + private static void validateType( GdprValidationTask validationTask, GdprValidationTaskType gdprValidationTaskType) { if (!validationTask.getType().equals(gdprValidationTaskType)) { @@ -209,6 +215,8 @@ public class GdprValidationTaskController< GdprDownloadPackage downloadPackage = service.getDownloadPackage(id); byte[] content = downloadPackage.getContent(); + service.writeAuditLog("Abrufen DSGVO Datenpaket", mapAuditlog(downloadPackage)); + return ResponseEntity.ok() .header( HttpHeaders.CONTENT_DISPOSITION, @@ -231,6 +239,8 @@ public class GdprValidationTaskController< List<UUID> fileStateIds = service.getAndValidateFileStateIds(gdprId); GdprValidationTask existingTask = service.getValidationTaskFromDb(gdprId); + service.writeAuditLog("Abrufen Daten Überprüfungsvorgang", service.mapAuditLog(existingTask)); + GdprValidationTaskDto validationTaskDto = getGdprValidationTaskDto(existingTask); return new GetGdprValidationTaskDetailsResponse( validationTaskDto, service.getBusinessProceduresWithInclusionStatus(gdprId, fileStateIds)); @@ -262,7 +272,20 @@ public class GdprValidationTaskController< service.findAll(mapToDm(parameters.status()), pageSpec); List<GdprValidationTaskDto> validationTaskDtos = validationTasks.stream().map(this::getGdprValidationTaskDto).toList(); + return new GetAllValidationTasksResponse( validationTaskDtos, validationTasks.getTotalElements()); } + + private Map<String, String> mapAuditlog(Page<GdprValidationTask> validationTasks) { + List<UUID> validationsTasksIds = + validationTasks.stream().map(GdprValidationTask::getGdprProcedureId).toList(); + return Map.of( + "Prüfaufträge IDs:", + validationsTasksIds.stream().map(UUID::toString).collect(Collectors.joining(", "))); + } + + private Map<String, String> mapAuditlog(GdprDownloadPackage downloadPackage) { + return Map.of("Datenpaket", downloadPackage.getExternalId().toString()); + } } diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskService.java index f5d59729c458c203779f72a541895759063628a5..a501377f27d86ce3db9f7181607b7808ab181b95 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprValidationTaskService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -13,6 +13,7 @@ import de.eshg.base.gdpr.api.GdprIdentificationDataDto; import de.eshg.base.gdpr.api.GetGdprDownloadsResponse; import de.eshg.base.gdpr.api.GetGdprProcedureFileStateIdsResponse; import de.eshg.base.util.PaginationUtil; +import de.eshg.lib.auditlog.AuditLogger; import de.eshg.lib.procedure.domain.model.GdprDownloadPackage; import de.eshg.lib.procedure.domain.model.GdprValidationTask; import de.eshg.lib.procedure.domain.model.GdprValidationTaskStatus; @@ -27,12 +28,14 @@ import de.eshg.lib.procedure.model.gdpr.BusinessProcedureInclusionStatusDto; import de.eshg.lib.procedure.model.gdpr.BusinessProcedureWithInclusionStatusDto; import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.error.NotFoundException; +import de.eshg.rest.service.security.CurrentUserHelper; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneOffset; -import java.util.*; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.UUID; @@ -47,6 +50,9 @@ import org.springframework.stereotype.Service; @Service public class GdprValidationTaskService< ProcedureT extends Procedure<ProcedureT, TaskT, ?, ?>, TaskT extends Task<ProcedureT>> { + + private static final String AUDITLOG_CATEGORY = "DSGVO Prüfauftrag"; + private static final Logger log = LoggerFactory.getLogger(GdprValidationTaskService.class); private final GdprValidationTaskRepository validationTaskRepository; private final GdprDownloadPackageRepository downloadPackageRepository; @@ -54,6 +60,7 @@ public class GdprValidationTaskService< private final ProcedureLibraryEnrichingMapper<ProcedureT, TaskT> enrichingMapper; private final GdprProcedureApi baseGdprProcedureApi; private final Clock clock; + private final AuditLogger auditLogger; public GdprValidationTaskService( GdprValidationTaskRepository validationTaskRepository, @@ -61,13 +68,15 @@ public class GdprValidationTaskService< ProcedureRepository<ProcedureT> procedureRepository, ProcedureLibraryEnrichingMapper<ProcedureT, TaskT> enrichingMapper, GdprProcedureApi baseGdprProcedureApi, - Clock clock) { + Clock clock, + AuditLogger auditLogger) { this.validationTaskRepository = validationTaskRepository; this.downloadPackageRepository = downloadPackageRepository; this.procedureRepository = procedureRepository; this.enrichingMapper = enrichingMapper; this.baseGdprProcedureApi = baseGdprProcedureApi; this.clock = clock; + this.auditLogger = auditLogger; } public GdprValidationTask getValidationTaskFromDb(UUID id) { @@ -105,7 +114,7 @@ public class GdprValidationTaskService< .orElseThrow(() -> new NotFoundException("BusinessProcedure not found.")); } - public void getFileStateIdsAndValidateLink(UUID gdprProcedureId, UUID businessProcedureId) { + public List<UUID> getFileStateIdsAndValidateLink(UUID gdprProcedureId, UUID businessProcedureId) { List<UUID> fileStateIdsToSearch = getAndValidateFileStateIds(gdprProcedureId); List<UUID> businessProcedureIds = @@ -115,6 +124,7 @@ public class GdprValidationTaskService< throw new BadRequestException( "The requested business procedure does not have any fileState of the given GDPR procedure"); } + return fileStateIdsToSearch; } public boolean validationTaskAlreadyExists(AddGdprValidationTaskRequest request) { @@ -142,7 +152,9 @@ public class GdprValidationTaskService< validationTask.setCreatedAt(now); validationTask.setModifiedAt(now); - return validationTaskRepository.save(validationTask); + GdprValidationTask saved = validationTaskRepository.save(validationTask); + writeAuditLog("Prüfauftrag hinzufügen", mapAuditLog(validationTask)); + return saved; } public void sendDownloadId(UUID gdprProcedureId, UUID downloadId) { @@ -231,6 +243,7 @@ public class GdprValidationTaskService< log.info("Closing GdprProcedure with gdprProcedureId: {}", gdprProcedureId); task.setStatus(CLOSED); task.setClosedAt(clock.instant()); + writeAuditLog("Schließen Prüfauftrag", mapAuditLog(task)); } } @@ -255,4 +268,15 @@ public class GdprValidationTaskService< } return (root, query, cb) -> cb.equal(root.get(GdprValidationTask_.status), status); } + + public void writeAuditLog(String operationName, Map<String, String> attributes) { + attributes = new LinkedHashMap<>(attributes); + attributes.put( + "durch Benutzer", CurrentUserHelper.getCurrentUserIdAsStringGracefully().orElse("-")); + auditLogger.log(AUDITLOG_CATEGORY, operationName, attributes); + } + + public Map<String, String> mapAuditLog(GdprValidationTask task) { + return Map.of("Prüfauftrag ID", task.getGdprProcedureId().toString()); + } } diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprZipFilterProvider.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprZipFilterProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..216a0aa52a7001001eee3f749471be3797f968bc --- /dev/null +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/GdprZipFilterProvider.java @@ -0,0 +1,187 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.lib.procedure.gdpr; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import de.eshg.domain.model.serialization.ZipFileWrapper; +import de.eshg.domain.model.serialization.ZipFilter; +import de.eshg.lib.procedure.domain.model.FileContent_; +import de.eshg.lib.procedure.domain.model.File_; +import de.eshg.lib.procedure.domain.model.ManualProgressEntry_; +import de.eshg.lib.procedure.domain.model.Procedure_; +import de.eshg.lib.procedure.domain.model.ProgressEntry_; +import de.eshg.lib.procedure.domain.model.RelatedFacility_; +import de.eshg.lib.procedure.domain.model.RelatedPerson_; +import de.eshg.lib.procedure.domain.model.SystemProgressEntry_; +import de.eshg.lib.procedure.domain.model.Task_; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; +import org.apache.commons.lang3.StringUtils; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.stereotype.Component; + +@Component +@ConditionalOnMissingBean(GdprZipFilterProvider.class) +public class GdprZipFilterProvider { + + public ZipFilter create(List<UUID> fileStateIds) { + return createCommonFilter(fileStateIds).andThen(createSpecificFilter()); + } + + protected ZipFilter createSpecificFilter() { + return (jsonNode, zipFileWrapper) -> {}; + } + + private static ZipFilter createCommonFilter(List<UUID> fileStateIds) { + List<String> fileStateIdStrings = fileStateIds.stream().map(UUID::toString).toList(); + return removeManualProgressEntries() + .andThen( + removeArrayEntriesWithoutValues( + Procedure_.RELATED_PERSONS, + RelatedPerson_.CENTRAL_FILE_STATE_ID, + fileStateIdStrings)) + .andThen( + removeArrayEntriesWithoutValues( + Procedure_.RELATED_FACILITIES, + RelatedFacility_.CENTRAL_FILE_STATE_ID, + fileStateIdStrings)) + .andThen( + removeFieldFromArray(SystemProgressEntry_.TRIGGERED_BY, Procedure_.PROGRESS_ENTRIES)) + .andThen( + removeFieldFromArray( + File_.CREATED_BY, Procedure_.PROGRESS_ENTRIES, ProgressEntry_.FILE)) + .andThen(removeFieldFromArray(Task_.CURRENT_ASSIGNMENT, Procedure_.TASKS)) + .andThen( + removeFieldFromArray(SystemProgressEntry_.TRIGGERED_BY, Procedure_.PROGRESS_ENTRIES)); + } + + protected static ZipFilter removeManualProgressEntries() { + return (procedureNode, zipFile) -> { + ArrayNode arrayNode = procedureNode.withArray(Procedure_.PROGRESS_ENTRIES); + for (Iterator<JsonNode> array = arrayNode.elements(); array.hasNext(); ) { + JsonNode element = array.next(); + removeManualProgressEntry(element, array, zipFile); + } + }; + } + + private static void removeManualProgressEntry( + JsonNode element, Iterator<JsonNode> array, ZipFileWrapper zipFile) { + String fileName = getFileName(element); + if (isManualProgressEntry(element)) { + removeFileIfNonNull(zipFile, fileName); + array.remove(); + } + } + + private static void removeFileIfNonNull(ZipFileWrapper zipFile, String fileName) { + if (fileName != null) { + zipFile.removeEntry(fileName); + } + } + + private static boolean isManualProgressEntry(JsonNode element) { + return !StringUtils.equals( + null, getTextOrNull(element.get(ManualProgressEntry_.MANUAL_PROGRESS_ENTRY_TYPE))); + } + + protected static ZipFilter removeArrayEntriesWithoutValues( + String arrayFieldName, String fieldName, List<String> filterValues) { + return (procedureNode, zipFile) -> { + ArrayNode arrayNode = procedureNode.withArray(arrayFieldName); + for (Iterator<JsonNode> array = arrayNode.elements(); array.hasNext(); ) { + JsonNode element = array.next(); + removeArrayEntryNotIn(fieldName, filterValues, element, array, zipFile); + } + }; + } + + private static void removeArrayEntryNotIn( + String fieldName, + List<String> filterValues, + JsonNode element, + Iterator<JsonNode> array, + ZipFileWrapper zipFile) { + String fieldValue = getTextOrNull(element.get(fieldName)); + if (filterValues.stream() + .noneMatch(filterValue -> StringUtils.equals(filterValue, fieldValue))) { + array.remove(); + removeFileIfNonNull(zipFile, getFileName(element)); + } + } + + protected static ZipFilter removeArrayEntriesWithValues( + String arrayFieldName, String fieldName, List<String> filterValues) { + return (procedureNode, zipFile) -> { + ArrayNode arrayNode = procedureNode.withArray(arrayFieldName); + for (Iterator<JsonNode> array = arrayNode.elements(); array.hasNext(); ) { + JsonNode element = array.next(); + removeArrayEntryIn(fieldName, filterValues, element, array, zipFile); + } + }; + } + + private static void removeArrayEntryIn( + String fieldName, + List<String> filterValues, + JsonNode element, + Iterator<JsonNode> array, + ZipFileWrapper zipFile) { + String fieldValue = getTextOrNull(element.get(fieldName)); + if (filterValues.stream() + .anyMatch(filterValue -> StringUtils.equals(filterValue, fieldValue))) { + array.remove(); + removeFileIfNonNull(zipFile, getFileName(element)); + } + } + + protected static ZipFilter removeFieldFromArray( + String fieldName, String arrayFieldName, String... nestedFieldNames) { + return (procedureNode, zipFile) -> { + ArrayNode arrayNode = procedureNode.withArray(arrayFieldName); + for (Iterator<JsonNode> array = arrayNode.elements(); array.hasNext(); ) { + JsonNode element = array.next(); + element = moveThroughNestedFields(nestedFieldNames, element); + ((ObjectNode) element).remove(fieldName); + } + }; + } + + private static JsonNode moveThroughNestedFields(String[] nestedFieldNames, JsonNode element) { + for (String name : nestedFieldNames) { + JsonNode nested = element.get(name); + if (nested != null && !nested.isNull()) { + element = nested; + } + } + return element; + } + + protected static ZipFilter removeFieldFromPath(String fieldName, String... nestedFieldNames) { + return (jsonNode, zipFileWrapper) -> { + JsonNode element = moveThroughNestedFields(nestedFieldNames, jsonNode); + ((ObjectNode) element).remove(fieldName); + }; + } + + private static String getFileName(JsonNode element) { + JsonNode file = element.get(ProgressEntry_.FILE); + String fileName; + if (file == null || file.isNull()) { + fileName = null; + } else { + fileName = file.get(File_.FILE_CONTENT).get(FileContent_.CONTENT).asText(); + } + return fileName; + } + + private static String getTextOrNull(JsonNode element) { + return element == null ? null : element.asText(); + } +} diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/OpenTaskSummary.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/OpenTaskSummary.java index 2ac3510f9ee7688f53e03a8d6353a7e682111aed..9a868587290597acf65430b75ea5efd2aa0901fe 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/OpenTaskSummary.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/gdpr/OpenTaskSummary.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/AbstractSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/AbstractSearchableStringFormatter.java index 26813bd554c91eed5920d661359610dd999be800..26b7fd8bb33661cb5d4ebed281626155d8be0389 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/AbstractSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/AbstractSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/DomesticAddressDtoSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/DomesticAddressDtoSearchableStringFormatter.java index afe97eb3d4f120a1d41aaad643ea3683a47bd806..6c1c67819cda3ebd4c79afc62e9561306d491251 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/DomesticAddressDtoSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/DomesticAddressDtoSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityContactPersonSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityContactPersonSearchableStringFormatter.java index 6e733bf24bacad0385ee0fb3247cb76eed1c0e75..18ceb374a5fefe00534bab514dda7372a63a22da 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityContactPersonSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityContactPersonSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityFileStateSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityFileStateSearchableStringFormatter.java index a7c7be148ca13381d55b4ac7cf9e21aed89913ef..2d2a94abab701c80eed7307e2a14126c213be284 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityFileStateSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/FacilityFileStateSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PersonFileStateSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PersonFileStateSearchableStringFormatter.java index a098de5bba1e495da1d5adc081e1ee53f1daad6b..24fdc001c32a474fa2eec23465752aa1e057fdd7 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PersonFileStateSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PersonFileStateSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PostboxAddressDtoSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PostboxAddressDtoSearchableStringFormatter.java index 3b5f1c0b23fa0ce6d278f485cb031829ad886f9b..f634d812af528a3d0fb287e050c95e11134a1a09 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PostboxAddressDtoSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/PostboxAddressDtoSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/TypedPropertyFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/TypedPropertyFormatter.java index f001439241f24538dd4511a82693751325daf1e6..e10cfdd6da5bda129ef198798a8ff55fdc8ccd77 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/TypedPropertyFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/TypedPropertyFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/UserHelper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/UserHelper.java index 0f4b1fe29294071d8a6f03a89ae6691669e3078b..5c868a71e3806cb70aa65fde4d3abcf1c2ea5240 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/UserHelper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/helper/UserHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -118,7 +118,7 @@ public class UserHelper { } public Map<UUID, UserDto> resolveUsers(Set<UUID> userIds) { - return resolveUsers(userIds, false); + return resolveUsers(userIds, true); } public Map<UUID, UserDto> resolveUsers(Set<UUID> userIds, boolean ignoreUnknownId) { diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingConfiguration.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingConfiguration.java index 07f41810df5ca84d33f4f5278eb4592d448bba0e..51a94a4009421d1576e93d4af637ce0ec28c3381 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingConfiguration.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingController.java index f7756d8dd97a3378760ceed280b72f42743770c1..e85f004d18843db70c292a7e33d53a714211a221 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingJob.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingJob.java index 888b127fb8bf1f6238a0e59f7e603a3eb11dc9a7..7edfa30f3baa99296082459ae0ece159f2008f4c 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingJob.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingProperties.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingProperties.java index b998881b3f943a53ab9d8530867e38b9c6e63d5f..f05d8084082a3994d69aaa0f0057c3a5215f6de8 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingProperties.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/archiving/ArchivingProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeeping.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeeping.java index b1722ac17fa4938f26f664e8fd58951f5d4e2157..7312a4a941b550f747fbc2154dd5d2471857e593 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeeping.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeeping.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingConfiguration.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingConfiguration.java index 585625ff99422a6149e4f6fbfa96bb8de3a4d6c4..308efd6f86dd47c8ee8d6b9a1fd274ee07f76424 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingConfiguration.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingProperties.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingProperties.java index a75618c2e08b260751f8de9c2a30c83b25ddb932..dc8b4760a3f6306dc11d7fcf12a80d348d34d8b9 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingProperties.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/cemetery/CemeteryHousekeepingProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/inbox/InboxProcedureCleanupJob.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/inbox/InboxProcedureCleanupJob.java index 674e19d6421de6385437b052b35add4eb0b1d110..b99d17d035d7135a846141e5f878e508de456c86 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/inbox/InboxProcedureCleanupJob.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/housekeeping/inbox/InboxProcedureCleanupJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureController.java index dcbe56ae0eae579bf8454beff4136c7e53ad6bf8..eb0df39107a656ffb0486ffab5ec408e5e7f2498 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureService.java index 99cbe56bfbe44444598913f589b82197cb65c8b7..044d0376b79eae7082cc9dbb3911066c9d93fa9b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/inbox/InboxProcedureService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FacilityTypeMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FacilityTypeMapper.java index fed13b846362a7ce894ab28279b0fae21ab4f156..1c6f6d460f0a512cd3312f9fb5bd0e6f1ba91f14 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FacilityTypeMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FacilityTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FileMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FileMapper.java index 16569f66945607d3594efb17e26cc1232429a7ae..621a388cc2f21e9b5b33feb24d5e9252b7cada2f 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FileMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/FileMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,10 +16,8 @@ import de.eshg.lib.procedure.domain.model.Pdf; import de.eshg.lib.procedure.domain.model.PdfMetaData; import de.eshg.lib.procedure.domain.model.ProcedureFileType; import de.eshg.lib.procedure.model.AbstractFileDto; -import de.eshg.lib.procedure.model.ConcreteFileDto; -import de.eshg.lib.procedure.model.ConcreteFileOrFileReference; +import de.eshg.lib.procedure.model.AbstractFileReferenceDto; import de.eshg.lib.procedure.model.FileTypeDto; -import de.eshg.lib.procedure.model.GenericFileDto; import de.eshg.lib.procedure.model.GenericFileReferenceDto; import de.eshg.lib.procedure.model.ImageDto; import de.eshg.lib.procedure.model.ImageMetaDataDto; @@ -35,9 +33,7 @@ import de.eshg.lib.procedure.model.PdfMetaDataHistoryDto; import de.eshg.lib.procedure.model.ProgressEntryReferenceFilePairDto; import de.eshg.lib.procedure.procedures.ProgressEntryReferenceFilePair; import de.eshg.mapper.RevisionEntry; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import org.hibernate.Hibernate; public final class FileMapper { @@ -52,7 +48,7 @@ public final class FileMapper { }; } - public static ConcreteFileOrFileReference toConcreteInterfaceTypeOrReferenceInterfaceType( + public static AbstractFileReferenceDto toConcreteInterfaceTypeOrReferenceInterfaceType( File file) { if (file == null) { return null; @@ -98,8 +94,8 @@ public final class FileMapper { return domainType; } - public static ConcreteFileDto toInterfaceType(File file) { - return switch (file) { + public static AbstractFileDto toInterfaceType(File file) { + return switch (Hibernate.unproxy(file)) { case null -> null; case Image image -> toInterfaceType(image); case Pdf pdf -> toInterfaceType(pdf); @@ -131,19 +127,10 @@ public final class FileMapper { mapCommonFields(mailDto, mail); mailDto.setMetaData(toInterfaceType(mail.getMetaData())); - mailDto.setAttachments(toInterfaceTypes(mail.getAttachments())); mailDto.setRemovedInvalidAttachments(mail.getRemovedInvalidAttachments()); return mailDto; } - private static List<ConcreteFileDto> toInterfaceTypes(List<File> attachments) { - if (attachments == null) { - return null; - } - - return attachments.stream().map(FileMapper::toInterfaceType).toList(); - } - private static void mapCommonFields(AbstractFileDto fileDto, File file) { fileDto.setFileId(file.getExternalId()); fileDto.setCreatedAt(file.getCreatedAt()); @@ -152,7 +139,6 @@ public final class FileMapper { fileDto.setFileName(file.getFileName()); fileDto.setFileType(toInterfaceType(file.getFileType())); fileDto.setFileSizeBytes(file.getFileSizeBytes()); - fileDto.setAttachedToMail(getAttachedToMailExternalId(file)); fileDto.setDeleted(file.isDeleted()); fileDto.setDeletable(file.isDeletable()); fileDto.setLocked(file.isLocked()); @@ -204,10 +190,6 @@ public final class FileMapper { }; } - private static UUID getAttachedToMailExternalId(File file) { - return Optional.ofNullable(file.getAttachedToMail()).map(File::getExternalId).orElse(null); - } - static GenericFileReferenceDto toInterfaceTypeAsReference(File file) { if (file == null) { return null; @@ -263,12 +245,6 @@ public final class FileMapper { return new ProgressEntryReferenceFilePairDto( progressEntryReferenceFilePair.progressEntryExternalId(), - toGeneralInterfaceType(progressEntryReferenceFilePair.file())); - } - - private static GenericFileDto toGeneralInterfaceType(File file) { - GenericFileDto fileDto = new GenericFileDto(); - mapCommonFields(fileDto, file); - return fileDto; + toInterfaceType(progressEntryReferenceFilePair.file())); } } diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/GdprValidationTaskMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/GdprValidationTaskMapper.java index 27a939b952be19a3c79baccfacffbc1a616f96cd..10330d81a5bd39d00359fa47266fbabee74015ea 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/GdprValidationTaskMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/GdprValidationTaskMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/InboxProcedureMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/InboxProcedureMapper.java index fb980bbca8429ac6239fd9221e42b9a322cd4192..de71292dd8090934621c6c8b4a4465274b1d4887 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/InboxProcedureMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/InboxProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,7 +16,7 @@ import de.eshg.lib.procedure.domain.model.InboxProcedureStatus; import de.eshg.lib.procedure.domain.model.InboxProgressEntry; import de.eshg.lib.procedure.domain.model.InboxProgressEntryType; import de.eshg.lib.procedure.domain.model.Title; -import de.eshg.lib.procedure.model.ConcreteFileOrFileReference; +import de.eshg.lib.procedure.model.AbstractFileReferenceDto; import de.eshg.lib.procedure.model.ContactDetailsDto; import de.eshg.lib.procedure.model.ContactTypeDto; import de.eshg.lib.procedure.model.CreateInboxProcedureRequest; @@ -125,7 +125,7 @@ public final class InboxProcedureMapper { } private static InboxProcedureDto toInterfaceType( - InboxProcedure inboxProcedure, Function<File, ConcreteFileOrFileReference> fileMapper) { + InboxProcedure inboxProcedure, Function<File, AbstractFileReferenceDto> fileMapper) { return new InboxProcedureDto( inboxProcedure.getExternalId(), ProcedureMapper.toInterfaceType(inboxProcedure.getProcedureType()), @@ -146,8 +146,7 @@ public final class InboxProcedureMapper { } private static InboxProgressEntryDto toInterfaceType( - InboxProgressEntry inboxProgressEntry, - Function<File, ConcreteFileOrFileReference> fileMapper) { + InboxProgressEntry inboxProgressEntry, Function<File, AbstractFileReferenceDto> fileMapper) { return new InboxProgressEntryDto( inboxProgressEntry.getExternalId(), inboxProgressEntry.getSubject(), diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/PersonTypeMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/PersonTypeMapper.java index 66a8e4074c3bf9c85245a029a1260723510b709f..74516136898c9798ff021a7dd6b92439e9b0dff3 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/PersonTypeMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/PersonTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureApprovalRequestMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureApprovalRequestMapper.java index 55ce80474204e8650d1dca3fe72f8389616e28df..a20a028154f4a4e988d2b18764ab627c2dd53f1d 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureApprovalRequestMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureApprovalRequestMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -27,7 +27,7 @@ public final class ProcedureApprovalRequestMapper implements EntityToApprovalReq public ApprovalRequestEntityDto toInterfaceType(EntityWithExternalId entity) { if (entity instanceof ManualProgressEntry manualProgressEntry) { ManualProgressEntryDto progressEntry = - ProgressEntryMapper.toInterfaceTypeWithFileReference(manualProgressEntry); + ProgressEntryMapper.toInterfaceType(manualProgressEntry); userHelper.enrichUsersFirstNamesAndLastNames(progressEntry); return progressEntry; } diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureLibraryEnrichingMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureLibraryEnrichingMapper.java index d394147b6b7f7db5e746645fae1fe020e3f476ff..16cf784634a57152a822c8c27adb11f0e169f755 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureLibraryEnrichingMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureLibraryEnrichingMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureMapper.java index df168a87748ed7b32916d334f7b3e38c5a026a6a..1ad6c555e1c67ad097180b7e0c2f005cecab2b62 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProgressEntryMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProgressEntryMapper.java index 4372a23c17f27694900929fdc7fe7b9bea7b9c7a..2fb89ca37417c26beec35bf90ffda0573841d0e2 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProgressEntryMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/ProgressEntryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -48,20 +48,11 @@ public class ProgressEntryMapper { } public static ProgressEntryDto toInterfaceType(ProgressEntry progressEntry) { - ProgressEntryDto progressEntryDto = toInterfaceTypeWithFileReference(progressEntry); - progressEntryDto.setFileReference( - FileMapper.toConcreteInterfaceTypeOrReferenceInterfaceType(progressEntry.getFile())); - return progressEntryDto; - } - - public static ProgressEntryDto toInterfaceTypeWithFileReference(ProgressEntry progressEntry) { return switch (progressEntry) { - case SystemProgressEntry systemProgressEntry -> - toInterfaceTypeWithFileReference(systemProgressEntry); - case ManualProgressEntry manualProgressEntry -> - toInterfaceTypeWithFileReference(manualProgressEntry); + case SystemProgressEntry systemProgressEntry -> toInterfaceType(systemProgressEntry); + case ManualProgressEntry manualProgressEntry -> toInterfaceType(manualProgressEntry); case ProcessedInboxProgressEntry processedInboxProgressEntry -> - toInterfaceTypeWithFileReference(processedInboxProgressEntry); + toInterfaceType(processedInboxProgressEntry); default -> throw new IllegalArgumentException( "Unsupported progress entry subclass: %s" @@ -69,8 +60,7 @@ public class ProgressEntryMapper { }; } - private static SystemProgressEntryDto toInterfaceTypeWithFileReference( - SystemProgressEntry progressEntry) { + private static SystemProgressEntryDto toInterfaceType(SystemProgressEntry progressEntry) { SystemProgressEntryDto systemProgressEntryDto = new SystemProgressEntryDto(); systemProgressEntryDto.setSystemProgressEntryType(progressEntry.getSystemProgressEntryType()); systemProgressEntryDto.setTriggeredBy(progressEntry.getTriggeredBy()); @@ -82,8 +72,7 @@ public class ProgressEntryMapper { return systemProgressEntryDto; } - public static ManualProgressEntryDto toInterfaceTypeWithFileReference( - ManualProgressEntry progressEntry) { + public static ManualProgressEntryDto toInterfaceType(ManualProgressEntry progressEntry) { ManualProgressEntryDto manualProgressEntryDto = new ManualProgressEntryDto(); manualProgressEntryDto.setManualProgressEntryType( toInterfaceType(progressEntry.getManualProgressEntryType())); @@ -96,7 +85,7 @@ public class ProgressEntryMapper { return manualProgressEntryDto; } - private static ProcessedInboxProgressEntryDto toInterfaceTypeWithFileReference( + private static ProcessedInboxProgressEntryDto toInterfaceType( ProcessedInboxProgressEntry progressEntry) { ProcessedInboxProgressEntryDto processedInboxProgressEntryDto = new ProcessedInboxProgressEntryDto(); @@ -116,8 +105,7 @@ public class ProgressEntryMapper { progressEntryDto.setProgressEntryId(progressEntry.getExternalId()); progressEntryDto.setCreatedAt(progressEntry.getCreatedAt()); progressEntryDto.setModifiedAt(progressEntry.getModifiedAt()); - progressEntryDto.setFileReference( - FileMapper.toInterfaceTypeAsReference(progressEntry.getFile())); + progressEntryDto.setFileReference(FileMapper.toInterfaceType(progressEntry.getFile())); } private static ManualProgressEntryTypeDto toInterfaceType( @@ -163,7 +151,7 @@ public class ProgressEntryMapper { ManualProgressEntryHistoryDto manualProgressEntryHistoryDto = new ManualProgressEntryHistoryDto(); manualProgressEntryHistoryDto.setManualProgressEntry( - toInterfaceTypeWithFileReference(manualProgressEntryRevisionEntry.getEntity())); + toInterfaceType(manualProgressEntryRevisionEntry.getEntity())); RevisionHistoryMapper.mapCommonFields( manualProgressEntryHistoryDto, manualProgressEntryRevisionEntry.getRevision()); return manualProgressEntryHistoryDto; diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/RevisionHistoryMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/RevisionHistoryMapper.java index 266101ec5d52c3f64d7b5d378910d11a9dbabd67..7130f411e236f39dfda984e03635bad858a42803 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/RevisionHistoryMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/RevisionHistoryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/TaskMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/TaskMapper.java index 07f7f85d2906f96f4cd52c4c9b2de544c1f34668..4f3ef0fbb78f1958bc017cb9472910e9afe88da2 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/TaskMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/mapping/TaskMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailJob.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailJob.java index bda2968e9c2ee13d31707f6b4771d9c01f5254b7..3e4f354c1452a17eb530a44be0939a5723d8edcd 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailJob.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailService.java index 9d7a6968599d973acc66d8f72f78d9bf6921ebd4..2eb23f705bd83e650fa5eeb4bdd35f1372c80f58 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/notifications/ApprovalRequestMailService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/AbstractProcedureSearchController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/AbstractProcedureSearchController.java index 4bbec491b7c204f21af4ae05a21991e80e03bda5..b099fb79530282deb4a95a91758ec0db710717fa 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/AbstractProcedureSearchController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/AbstractProcedureSearchController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/DefaultProcedureAsSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/DefaultProcedureAsSearchableStringFormatter.java index f7f33b860493e9bbdbc3136862d5e3ce7237e18e..485bc2fc15f8f20973d040c569178b8523acfd49 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/DefaultProcedureAsSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/DefaultProcedureAsSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureAsSearchableStringFormatter.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureAsSearchableStringFormatter.java index 7b158eefbffabde04181d94175dd19816d274f79..22b9c6e3cddac54e21495d515de0b8e33697062e 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureAsSearchableStringFormatter.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureAsSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureController.java index e2b36bd58b02b423311fb8cff24d149e2d7313f1..14c29bf13560b466e7b07a9c301bcacd7f6974e7 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -73,6 +73,8 @@ import de.eshg.lib.procedure.mapping.FileMapper; import de.eshg.lib.procedure.mapping.PersonTypeMapper; import de.eshg.lib.procedure.mapping.ProcedureLibraryEnrichingMapper; import de.eshg.lib.procedure.mapping.ProcedureMapper; +import de.eshg.lib.procedure.model.CheckFileStateUsageRequest; +import de.eshg.lib.procedure.model.CheckFileStateUsageResponse; import de.eshg.lib.procedure.model.DetailedFacilityDto; import de.eshg.lib.procedure.model.DetailedPersonDto; import de.eshg.lib.procedure.model.DetailedTaskDto; @@ -121,6 +123,8 @@ import java.util.UUID; import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.data.domain.Page; import org.springframework.data.domain.Sort; @@ -136,6 +140,7 @@ import org.springframework.web.bind.annotation.RestController; public class ProcedureController< ProcedureT extends Procedure<ProcedureT, TaskT, ?, ?>, TaskT extends Task<ProcedureT>> implements ProcedureApi { + private static final Logger log = LoggerFactory.getLogger(ProcedureController.class); private final Clock clock; private final BusinessModule businessModule; @@ -306,6 +311,14 @@ public class ProcedureController< return new GetProcedureApprovalRequestsResponse(approvalRequestDtos, resolvedUsers); } + @Override + public CheckFileStateUsageResponse checkFileStateUsage(CheckFileStateUsageRequest request) { + log.info("Checking usage of file state ids: {}", request.fileStatesIds()); + List<UUID> centralFileStateIdsInUse = + procedureRepository.findCentralFileStateIdsInUseNoDuplicates(request.fileStatesIds()); + return new CheckFileStateUsageResponse(centralFileStateIdsInUse); + } + private Specification<ApprovalRequest<?>> isAttachedToProcedure(ProcedureT procedure) { return (root, query, cb) -> cb.or( @@ -689,9 +702,7 @@ public class ProcedureController< ProcedureT procedureT = resolveProcedureByExternalIdOrThrow(id); List<ProgressEntry> procedureProgressEntries = - progressEntryRepository - .findAllByProcedureIdAndFetchFileAndAttachments(procedureT.getId()) - .stream() + progressEntryRepository.findAllByProcedureIdAndFetchFile(procedureT.getId()).stream() .filter(progressEntry -> progressEntry.getFile() != null) .filter(p -> !p.getFile().isDeleted()) .toList(); diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureDeletionService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureDeletionService.java index 6b0c2a289dbdbe804438e812c801b6e0232d813e..d1a3a84ddefe1e754cc0f158d233772ae10412cf 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureDeletionService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureDeletionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureMapper.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureMapper.java index 51832016c43dade78a6c50ec91dcbcf16586f4ab..4bbed3346a4b9ff7812e0722ec49ca8604d85a34 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureMapper.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureQuery.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureQuery.java new file mode 100644 index 0000000000000000000000000000000000000000..d1d12752d7bfeb68b3bd76cecc665f283ef38649 --- /dev/null +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureQuery.java @@ -0,0 +1,55 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.lib.procedure.procedures; + +import de.eshg.lib.procedure.domain.model.PersonType; +import de.eshg.lib.procedure.domain.model.Procedure; +import de.eshg.lib.procedure.domain.model.Procedure_; +import de.eshg.lib.procedure.domain.model.RelatedPerson; +import de.eshg.lib.procedure.domain.model.RelatedPerson_; +import jakarta.persistence.EntityManager; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Join; +import jakarta.persistence.criteria.Root; +import java.util.List; +import java.util.UUID; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Component; + +@Component +public class ProcedureQuery { + + private final EntityManager entityManager; + + public ProcedureQuery(EntityManager entityManager) { + this.entityManager = entityManager; + } + + public < + ProcedureT extends Procedure<ProcedureT, ?, RelatedPersonT, ?>, + RelatedPersonT extends RelatedPerson<ProcedureT>> + List<UUID> findAllRelatedPersonFileStateIds( + Specification<ProcedureT> procedureSpecification, + Class<ProcedureT> procedureClass, + PersonType personType) { + CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); + CriteriaQuery<UUID> query = criteriaBuilder.createQuery(UUID.class); + Root<ProcedureT> root = query.from(procedureClass); + + Join<ProcedureT, ? extends RelatedPerson<?>> relatedPersonsJoin = + root.join(Procedure_.relatedPersons); + Join<ProcedureT, ? extends RelatedPerson<?>> childJoin = + relatedPersonsJoin.on( + criteriaBuilder.equal(relatedPersonsJoin.get(RelatedPerson_.personType), personType)); + + query.select(childJoin.get(RelatedPerson_.centralFileStateId)); + + query.where(procedureSpecification.toPredicate(root, query, criteriaBuilder)); + + return entityManager.createQuery(query).getResultList(); + } +} diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureSearchService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureSearchService.java index 776038c2203ac6748444bf46e84cb59c6739c033..b447f30305dbe38a08a536fe989e26369c05c697 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureSearchService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProcedureSearchService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProgressEntryReferenceFilePair.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProgressEntryReferenceFilePair.java index e9830f781da6544d53f094cfc1d62c82f4f63dc0..6ba41413ae2602027eb5771eb7956edf7cd8846d 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProgressEntryReferenceFilePair.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/ProgressEntryReferenceFilePair.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SimpleSummaryProvider.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SimpleSummaryProvider.java index ec9e54b50cb8cfb2e7edbce48d556df9af86eeb4..1432ab88e493e0aba43cdffee520e24471553ab5 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SimpleSummaryProvider.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SimpleSummaryProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SummaryProvider.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SummaryProvider.java index a32f265ba0d88c7fe482075f719d7fd7c90eb647..5492a8b7c30f5d1e462eab9a8cc6cb1a839f2b46 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SummaryProvider.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/procedures/SummaryProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestHandler.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestHandler.java index 94e594453ee669a37088ae9258a07f1224ab666e..6fb5a1907c55c605d25b732abe5149b694a86715 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestHandler.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestNotificationService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestNotificationService.java index f4b9c9ec8b33d01b64a95ef23ded874adbe12cc4..df8c372bff1feb0134c2d1aef5d383771f401ef7 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestNotificationService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ManualProgressEntryDeletionApprovalRequestNotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryController.java index 806e52fb24a5faa11d79c23b995e57ceaf7abb5a..4f22355e6377d07af3f78bc3bf2a44843f8ed63c 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -12,7 +12,6 @@ import static org.springframework.data.jpa.domain.Specification.allOf; import static org.springframework.data.jpa.domain.Specification.where; import de.cronn.commons.lang.StreamUtil; -import de.eshg.domain.model.BaseEntity; import de.eshg.lib.foureyes.mapping.ApprovalRequestMapper; import de.eshg.lib.foureyes.model.ApprovalRequestDto; import de.eshg.lib.foureyes.model.CreateApprovalRequestRequest; @@ -31,11 +30,9 @@ import de.eshg.lib.procedure.domain.model.ProgressEntry_; import de.eshg.lib.procedure.domain.model.SystemProgressEntry; import de.eshg.lib.procedure.domain.model.SystemProgressEntry_; import de.eshg.lib.procedure.domain.model.TriggerType; -import de.eshg.lib.procedure.domain.model.view.InboxProcedureProgressEntryView; import de.eshg.lib.procedure.domain.repository.InboxProcedureRepository; import de.eshg.lib.procedure.domain.repository.ProgressEntryRepository; import de.eshg.lib.procedure.helper.UserHelper; -import de.eshg.lib.procedure.mapping.FileMapper; import de.eshg.lib.procedure.mapping.ProgressEntryMapper; import de.eshg.lib.procedure.model.CreateManualProgressEntryRequest; import de.eshg.lib.procedure.model.FileMetaDataDto; @@ -55,8 +52,6 @@ import de.eshg.lib.procedure.model.ProgressEntrySortOrderDto; import io.swagger.v3.oas.annotations.tags.Tag; import java.io.IOException; import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; @@ -142,17 +137,18 @@ public class ProgressEntryController<P extends Procedure<P, ?, ?, ?>> implements specifications.add(progressEntryHasTriggerType(triggerTypes)); } + Sort sort = mapToSort(sortOptions); Page<ProgressEntry> page = progressEntryRepository.findAll( where(allOf(specifications)), PageRequest.ofSize(paginationOptions.pageSize()) .withPage(paginationOptions.pageNumber()) - .withSort(mapToSort(sortOptions))); - - enrichWithInboxProcedureIds(page); + .withSort(sort)); List<ProgressEntryDto> progressEntries = - page.stream().map(ProgressEntryMapper::toInterfaceType).toList(); + progressEntryRepository.fetchFilesMetaDataAndInboxProcedure(page.toList(), sort).stream() + .map(ProgressEntryMapper::toInterfaceType) + .toList(); userHelper.enrichUsersFirstNamesAndLastNames(progressEntries); @@ -160,35 +156,6 @@ public class ProgressEntryController<P extends Procedure<P, ?, ?, ?>> implements page.getTotalPages(), page.getTotalElements(), progressEntries); } - private void enrichWithInboxProcedureIds(Page<ProgressEntry> page) { - List<ProcessedInboxProgressEntry> processedInboxProgressEntries = - page.stream() - .filter(ProcessedInboxProgressEntry.class::isInstance) - .map(ProcessedInboxProgressEntry.class::cast) - .toList(); - - Set<Long> inboxProcedureIds = - processedInboxProgressEntries.stream() - .map(ProcessedInboxProgressEntry::getInboxProcedure) - .map(BaseEntity::getId) - .collect(Collectors.toSet()); - - if (inboxProcedureIds.isEmpty()) { - return; - } - - Map<Long, InboxProcedureProgressEntryView> inboxProcedureInternalIdToViewMap = - inboxProcedureRepository.findByIdIsIn(inboxProcedureIds).stream() - .collect(Collectors.toMap(InboxProcedureProgressEntryView::id, Function.identity())); - - for (ProcessedInboxProgressEntry progressEntry : processedInboxProgressEntries) { - InboxProcedureProgressEntryView inboxProcedureProgressEntryView = - inboxProcedureInternalIdToViewMap.get(progressEntry.getInboxProcedure().getId()); - - progressEntry.setInboxProcedure(inboxProcedureProgressEntryView.asInboxProcedure()); - } - } - @Override @Transactional public ManualProgressEntryDto addProgressEntry( @@ -205,7 +172,7 @@ public class ProgressEntryController<P extends Procedure<P, ?, ?, ?>> implements procedureId, manualProgressEntry, file, fileMetaData); ManualProgressEntryDto manualProgressEntryDto = - ProgressEntryMapper.toInterfaceTypeWithFileReference(savedManualProgressEntry); + ProgressEntryMapper.toInterfaceType(savedManualProgressEntry); userHelper.enrichUsersFirstNamesAndLastNames(manualProgressEntryDto); @@ -301,8 +268,7 @@ public class ProgressEntryController<P extends Procedure<P, ?, ?, ?>> implements ProgressEntry progressEntry = progressEntryService.getProgressEntryOrThrow(procedureId, progressEntryId); return new GetProgressEntryResponse( - mapAndEnrichWithFileDetails(progressEntry), - getRelatedKeyDocumentProgressEntries(progressEntry)); + mapAndEnrich(progressEntry), getRelatedKeyDocumentProgressEntries(progressEntry)); } private List<KeyDocumentAwareProgressEntryDto> getRelatedKeyDocumentProgressEntries( @@ -316,21 +282,20 @@ public class ProgressEntryController<P extends Procedure<P, ?, ?, ?>> implements } return progressEntryRepository - .findAllByProcedureIdAndKeyDocumentTypeAndNotIdFetchingFileAndAttachments( + .findAllByProcedureIdAndKeyDocumentTypeAndNotIdFetchingFile( progressEntry.getProcedureId(), keyDocumentAware.getKeyDocumentType(), progressEntry.getId()) .stream() - .map(this::mapAndEnrichWithFileDetails) + .map(this::mapAndEnrich) .filter(KeyDocumentAwareProgressEntryDto.class::isInstance) .map(KeyDocumentAwareProgressEntryDto.class::cast) .toList(); } - private ProgressEntryDto mapAndEnrichWithFileDetails(ProgressEntry entity) { - ProgressEntryDto response = ProgressEntryMapper.toInterfaceTypeWithFileReference(entity); + private ProgressEntryDto mapAndEnrich(ProgressEntry entity) { + ProgressEntryDto response = ProgressEntryMapper.toInterfaceType(entity); userHelper.enrichUsersFirstNamesAndLastNames(response); - response.setFileReference(FileMapper.toInterfaceType(entity.getFile())); return response; } @@ -357,7 +322,7 @@ public class ProgressEntryController<P extends Procedure<P, ?, ?, ?>> implements procedureId, progressEntryId, patchManualProgressEntryRequest); ManualProgressEntryDto manualProgressEntryDto = - ProgressEntryMapper.toInterfaceTypeWithFileReference(manualProgressEntry); + ProgressEntryMapper.toInterfaceType(manualProgressEntry); userHelper.enrichUsersFirstNamesAndLastNames(manualProgressEntryDto); diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryService.java index 0e35407d6f7dbccd6cff86a0d54532ce839528a5..e8ba9ff30cdc9b1ee6096748ef10b0eed24a2fe0 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/progressentry/ProgressEntryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryAutoConfiguration.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryAutoConfiguration.java index 8317099630fbe6eb63dfa1bb5187741cd8550f50..96fd853418289b135f95cd76fcc540f15746b2e6 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryAutoConfiguration.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,7 @@ import de.eshg.lib.procedure.file.FileDeletionRequestApprovalRequestDecisionHand import de.eshg.lib.procedure.file.FileStorageService; import de.eshg.lib.procedure.gdpr.GdprValidationTaskController; import de.eshg.lib.procedure.gdpr.GdprValidationTaskService; +import de.eshg.lib.procedure.gdpr.GdprZipFilterProvider; import de.eshg.lib.procedure.helper.UserHelper; import de.eshg.lib.procedure.housekeeping.archiving.ArchivingConfiguration; import de.eshg.lib.procedure.housekeeping.cemetery.CemeteryHousekeepingConfiguration; @@ -25,8 +26,6 @@ import de.eshg.lib.procedure.inbox.InboxProcedureService; import de.eshg.lib.procedure.mapping.ProcedureApprovalRequestMapper; import de.eshg.lib.procedure.mapping.ProcedureLibraryEnrichingMapper; import de.eshg.lib.procedure.model.AbstractFileDto; -import de.eshg.lib.procedure.model.ConcreteFileDto; -import de.eshg.lib.procedure.model.GenericFileDto; import de.eshg.lib.procedure.model.GenericFileReferenceDto; import de.eshg.lib.procedure.model.ImageDto; import de.eshg.lib.procedure.model.ImageMetaDataDto; @@ -46,6 +45,7 @@ import de.eshg.lib.procedure.notifications.ApprovalRequestMailService; import de.eshg.lib.procedure.procedures.DefaultProcedureAsSearchableStringFormatter; import de.eshg.lib.procedure.procedures.ProcedureController; import de.eshg.lib.procedure.procedures.ProcedureDeletionService; +import de.eshg.lib.procedure.procedures.ProcedureQuery; import de.eshg.lib.procedure.procedures.ProcedureSearchService; import de.eshg.lib.procedure.progressentry.ManualProgressEntryDeletionApprovalRequestHandler; import de.eshg.lib.procedure.progressentry.ManualProgressEntryDeletionApprovalRequestNotificationService; @@ -97,6 +97,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; ArchivingConfiguration.class, InboxProcedureCleanupJob.class, ProcedureSearchService.class, + ProcedureQuery.class, ProcedureDeletionService.class, CemeteryService.class, SerializationService.class, @@ -106,7 +107,8 @@ import org.springframework.scheduling.annotation.EnableScheduling; ApprovalRequestMailService.class, ProcedureLibrarySchedulingConfig.class, GdprValidationTaskController.class, - GdprValidationTaskService.class + GdprValidationTaskService.class, + GdprZipFilterProvider.class }) public class ProcedureLibraryAutoConfiguration { @Bean @@ -130,11 +132,10 @@ public class ProcedureLibraryAutoConfiguration { .registerSubtypes( GenericFileReferenceDto.class, AbstractFileDto.class, - ConcreteFileDto.class, + AbstractFileDto.class, ImageDto.class, MailDto.class, - PdfDto.class, - GenericFileDto.class); + PdfDto.class); } @Bean diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryDomainModelAutoConfiguration.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryDomainModelAutoConfiguration.java index 844128846cf8eaa08598647d543b98a7704c32d3..381631d261ba53df42bc5c7aad455da184b7abeb 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryDomainModelAutoConfiguration.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibraryDomainModelAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibrarySchedulingConfig.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibrarySchedulingConfig.java index 06badcd19b195c31fc9a95303799a4c58cec908f..f095c0d72b4c9fecfaa6f40b3b291e6826310010 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibrarySchedulingConfig.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/spring/ProcedureLibrarySchedulingConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskController.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskController.java index 1393a9efe9c6928e98df7c6c62d22d5702082ec0..7480f4e2d5dcfdae9b4c4ef540702d05745f598b 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskController.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskDueAtReminderNotificationService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskDueAtReminderNotificationService.java index 4c6bd2888ab5b0c4230b74dffa56f129c6208757..fdb87d24c806e1b72973f77bb58231ef2de6b819 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskDueAtReminderNotificationService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskDueAtReminderNotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskService.java index 5936a9e5e7d0265d1004e6a24c0c80ec824f45fd..288e74e11b52c5f86546e4de2b516e67bf8e1007 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskServiceImpl.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskServiceImpl.java index 59d60b9cbee12e991b8500cee9a0d6aeca944eb7..c900035f93dcc606cc959d4b4ce5b39983e8ad48 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskServiceImpl.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskTeamOverviewService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskTeamOverviewService.java index cfdfb00e8b9858ff8b55d6af58e2e31c2cf79cf0..bd9e03bed15afe53da36646dcc0bad6b2d42f167 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskTeamOverviewService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/tasks/TaskTeamOverviewService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/BusinessDayService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/BusinessDayService.java index 7bb9b21b9febaa3428e1e54d7dde58486ebca42b..099fc6063c88a1733499841c00c59ce6d98ce1b0 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/BusinessDayService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/BusinessDayService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/CemeteryService.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/CemeteryService.java index d5dafbdf20ce380664399e84e12bd35e1ec33399..5fba1458898ab666b47acf930cf4f942b87f650e 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/CemeteryService.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/CemeteryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/FileValidator.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/FileValidator.java index d748066fbcebeb06bbd326df3e8e1cb714c047e9..3f0e886dff930cad28c9501118358c6acc1c9909 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/FileValidator.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/FileValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/MetricTimeRangeValidator.java b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/MetricTimeRangeValidator.java index a4a63f72d4f1f3493316acea1e9c7d63bd80a3e5..afc76ed5ebce184fcd7b3f20cf6ecbe380ae2f9a 100644 --- a/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/MetricTimeRangeValidator.java +++ b/backend/lib-procedures/src/main/java/de/eshg/lib/procedure/util/MetricTimeRangeValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-relay/src/main/java/de/eshg/lib/relay/MessageType.java b/backend/lib-relay/src/main/java/de/eshg/lib/relay/MessageType.java index 368c4aafb168a5687711e914a59ca2dbfeb779c4..bc17d0a8781677cc2c8dc44d1fcca28bfcdba74d 100644 --- a/backend/lib-relay/src/main/java/de/eshg/lib/relay/MessageType.java +++ b/backend/lib-relay/src/main/java/de/eshg/lib/relay/MessageType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-relay/src/main/java/de/eshg/lib/relay/SNIParser.java b/backend/lib-relay/src/main/java/de/eshg/lib/relay/SNIParser.java index fee0d5adafe594cbbc874543a087b98b047aa920..d1661347824cb1a3eaff61611d2bb971c727600c 100644 --- a/backend/lib-relay/src/main/java/de/eshg/lib/relay/SNIParser.java +++ b/backend/lib-relay/src/main/java/de/eshg/lib/relay/SNIParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-relay/src/main/java/de/eshg/lib/relay/UUIDParser.java b/backend/lib-relay/src/main/java/de/eshg/lib/relay/UUIDParser.java index 4e76f6d4e70060bfa43902ce4c7dbe9ce8edc9e3..725c990346c514ab9ae0b53d2265d489d7c7017f 100644 --- a/backend/lib-relay/src/main/java/de/eshg/lib/relay/UUIDParser.java +++ b/backend/lib-relay/src/main/java/de/eshg/lib/relay/UUIDParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/Shedlock.java b/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/Shedlock.java index e914cc13d9cbdf765b55dc15c074462b64684d00..fc2bae7f8932a3a5a67b9e78da7e6c6ae46ee09e 100644 --- a/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/Shedlock.java +++ b/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/Shedlock.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingConfiguration.java b/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingConfiguration.java index a43fd4f2dc8dbb2168b3ff26cf2ab30858587140..2fe81a30d754c71c2027a202a446d518874a1d91 100644 --- a/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingConfiguration.java +++ b/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingLibraryAutoConfiguration.java b/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingLibraryAutoConfiguration.java index bf75cd6641ddffbec664a3fdc4634fa0fef913bf..a1d236f96f2ab0385c2ca2659957f03f23db1be7 100644 --- a/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingLibraryAutoConfiguration.java +++ b/backend/lib-scheduling/src/main/java/de/eshg/lib/scheduling/spring/SchedulingLibraryAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config-urls/src/main/java/de/eshg/rest/service/security/config/BaseUrls.java b/backend/lib-security-config-urls/src/main/java/de/eshg/rest/service/security/config/BaseUrls.java index a050d3b3eab41fea93f3f0b893f7b5cd2eaf21c9..8f4c53c4bc5524d341d2750d42a18ede0ed8b5a8 100644 --- a/backend/lib-security-config-urls/src/main/java/de/eshg/rest/service/security/config/BaseUrls.java +++ b/backend/lib-security-config-urls/src/main/java/de/eshg/rest/service/security/config/BaseUrls.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -21,7 +21,6 @@ public final class BaseUrls { public static final class Base { public static final String BULK_GET_URL_END = "/bulk-get"; - public static final String MUK_SELF_USER_FACILITY = "/self/facility"; public static final String USER_API = "/users"; public static final String USER_KEYS_URL = "/keys"; @@ -48,6 +47,8 @@ public final class BaseUrls { public static final String PERSON_API = "/persons"; public static final String PERSON_FILE_STATE_URL = "/centralfilestates"; public static final String PERSON_EXTERNAL_DATA_SOURCE_URL = "/external-source"; + public static final String BUNDID_PERSON_LINK_API = "/bundid-person-link"; + public static final String BUNDID_SELF_USER_PERSON = "/self/person"; public static final String INVENTORY_API = "/inventoryItems"; public static final String INVENTORY_BOOKING_URL = "/booking"; public static final String INVENTORY_RESTOCKING_URL = "/restocking"; @@ -65,6 +66,7 @@ public final class BaseUrls { public static final String FACILITY_FILE_STATE_URL = "/centralfilestates"; public static final String FACILITY_EXTERNAL_DATA_SOURCE_URL = "/external-source"; public static final String MUK_FACILITY_LINK_API = "/muk-facility-link"; + public static final String MUK_SELF_USER_FACILITY = "/self/facility"; public static final String STREET_AUTOCOMPLETE_URL = "/autocomplete"; public static final String RECENT_PROCEDURE_API = "/recent-procedures"; public static final String PROCEDURE_METRICS_API = "/procedure-metrics"; @@ -148,6 +150,7 @@ public final class BaseUrls { public static final String MEDICAL_REGISTRY_CONTROLLER = "/medical-registry-entries"; public static final String CITIZEN_PORTAL_ENDPOINT = "/public"; public static final String MEDICAL_REGISTRY_IMPORT_CONTROLLER = "/import"; + public static final String FEATURE_TOGGLES_CONTROLLER = "/feature-toggles"; private MedicalRegistry() {} } diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AbstractPublicSecurityConfiguration.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AbstractPublicSecurityConfiguration.java index e9a205d14d0402cc05b38c7e4cd6b1145b908566..5b1bade60e90d9e77ae3bbf25e28dd3f1784e715 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AbstractPublicSecurityConfiguration.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AbstractPublicSecurityConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -105,6 +105,10 @@ public abstract class AbstractPublicSecurityConfiguration { requestMatchers( GET, ProcedureLibrary.PROCEDURES_API + "/**", ProcedureLibrary.FILES_API + "/**") .hasAnyRole(procedureAccessRole, EmployeePermissionRole.PROCEDURE_ARCHIVE); + + requestMatchers(POST, ProcedureLibrary.PROCEDURES_API + "/check-file-state-usage") + .hasAnyRole(EmployeePermissionRole.BASE_GDPR_PROCEDURE_READ); + requestMatchers( GET, ProcedureLibrary.INBOX_PROCEDURES_API + "/**", ProcedureLibrary.TASKS_API + "/**") .hasRole(procedureAccessRole); diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AnyRole.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AnyRole.java index 274c734cf97cae66017c7c79b4339f1f6e50ae0b..1ed087f996f7b6f9bad83befee3c3647e5bb9e93 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AnyRole.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AnyRole.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuditlogPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuditlogPublicSecurityConfig.java index 7767ccd628874e9c48f16f1cd343e7f59d0ed560..273de017b435892aefa85bc0cd6651a5ea16c09a 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuditlogPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuditlogPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/Authenticated.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/Authenticated.java index e3eeab4d9bb8feee0b24bc969f8188560441d140..c996a7110d2f99e6e3642d14055761ea5e44fc62 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/Authenticated.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/Authenticated.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuthorizationDefinition.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuthorizationDefinition.java index bd2b2c1bbc6d3a2574aebbbeee5b4ae1cb71d134..f3524a37ac7729ba125af24f13ff9c3bdbd92208 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuthorizationDefinition.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/AuthorizationDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/BasePublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/BasePublicSecurityConfig.java index 2df22377af5f3a48fe8236b436291e9ffedefe97..b76056b9a5e0aad758999ad06fed76b86f6c7871 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/BasePublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/BasePublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -19,6 +19,7 @@ public final class BasePublicSecurityConfig extends AbstractPublicSecurityConfig calendarsAndEvents(); users(); mukFacilityLinks(); + bundIdPersonLinkS(); notifications(); inventory(); resources(); @@ -41,6 +42,14 @@ public final class BasePublicSecurityConfig extends AbstractPublicSecurityConfig .hasRole(EmployeePermissionRole.BASE_MUK_FACILITY_LINK_WRITE); } + private void bundIdPersonLinkS() { + requestMatchers( + GET, BaseUrls.Base.BUNDID_PERSON_LINK_API + BaseUrls.Base.BUNDID_SELF_USER_PERSON) + .hasRole(CitizenPermissionRole.BUND_ID_USER); + requestMatchers(POST, BaseUrls.Base.BUNDID_PERSON_LINK_API) + .hasRole(EmployeePermissionRole.BASE_BUNDID_PERSON_LINK_WRITE); + } + private void proceduresAndTasks() { requestMatchers(BaseUrls.Base.RECENT_PROCEDURE_API + "/**") .hasRole(EmployeePermissionRole.BASE_PROCEDURES_READ); @@ -90,6 +99,8 @@ public final class BasePublicSecurityConfig extends AbstractPublicSecurityConfig private void gdpr() { requestMatchers(GET, BaseUrls.Base.GDPR_PROCEDURE_API + "/*/fileStateIds") .hasRole(EmployeePermissionRole.BASE_GDPR_PROCEDURE_REVIEW); + requestMatchers(GET, BaseUrls.Base.GDPR_PROCEDURE_API + "/*/downloads") + .hasRole(EmployeePermissionRole.BASE_GDPR_PROCEDURE_REVIEW); requestMatchers(POST, BaseUrls.Base.GDPR_PROCEDURE_API + "/*/downloads") .hasRole(EmployeePermissionRole.BASE_GDPR_PROCEDURE_REVIEW); requestMatchers(GET, BaseUrls.Base.GDPR_PROCEDURE_API + "/**") diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/ChatManagementPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/ChatManagementPublicSecurityConfig.java index 9e2b84d22d94dd0af6e5caf9242c94cb25e8a394..8c57f167096a7b027221ca383382301bb8534a05 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/ChatManagementPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/ChatManagementPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/DentalPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/DentalPublicSecurityConfig.java index bd5c2aae7a3cb83f7279f3cbaf3cb3e096ba8864..c7903b63604cdcd5cd878708affca267daa93c6c 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/DentalPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/DentalPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/InspectionPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/InspectionPublicSecurityConfig.java index 53cda193380de8c9525ab1ad1f2a069328a14f7d..fe5e2e087c4b179ed9ee4c0ab4260b3ef4a57514 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/InspectionPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/InspectionPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MeaslesProtectionPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MeaslesProtectionPublicSecurityConfig.java index 9c7d0b9cffb20961a0bf4839d843ac12e3eebd92..70655eb89b38a6396ad7d8e8e06bdfdc7c75ae20 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MeaslesProtectionPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MeaslesProtectionPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MedicalRegistryPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MedicalRegistryPublicSecurityConfig.java index d0ac01f0a2917f975fa626f8819e96043c1dd20b..d8cd2b9d6c21f251b2c2ed30aa359fb31e2f8fd0 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MedicalRegistryPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/MedicalRegistryPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -28,6 +28,8 @@ public final class MedicalRegistryPublicSecurityConfig extends AbstractPublicSec + "/**") .permitAll(); + requestMatchers(HttpMethod.GET, MedicalRegistry.FEATURE_TOGGLES_CONTROLLER + "/**").permitAll(); + requestMatchers(HttpMethod.GET, MedicalRegistry.CITIZEN_PORTAL_ENDPOINT + "/privacy-notice") .permitAll(); diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OfficialMedicalServicePublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OfficialMedicalServicePublicSecurityConfig.java index 696269b5ad56722ab05eab5b19890f1d057b5add..7b29d87eb818bd6f5e6e2fcbfd71d9d29bd66ac1 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OfficialMedicalServicePublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OfficialMedicalServicePublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,6 +16,8 @@ public class OfficialMedicalServicePublicSecurityConfig OfficialMedicalServicePublicSecurityConfig() { super("official-medical-service"); + grantAccessToLibAppointmentBlockUrls( + EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_ADMIN, false); grantAccessToLibProceduresUrls( EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_ADMIN, ModuleLeaderRole.OFFICIAL_MEDICAL_SERVICE_LEADER); @@ -27,8 +29,5 @@ public class OfficialMedicalServicePublicSecurityConfig requestMatchers(BaseUrls.OfficialMedicalService.EMPLOYEE_API + "/**") .hasRole(EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_ADMIN); - - requestMatchers(BaseUrls.OfficialMedicalService.EMPLOYEE_API + "/**") - .hasRole(EmployeePermissionRole.OFFICIAL_MEDICAL_SERVICE_PHYSICIAN); } } diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OpenDataPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OpenDataPublicSecurityConfig.java index 125d759fccc488e49441c2e67547dc16b3f3f4b5..fdaa1c76890edc3d0c4a8032c446d5216298e177 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OpenDataPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/OpenDataPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PathAuthorizationDefinition.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PathAuthorizationDefinition.java index 3a148a008b2b944f539467b1b14f19c47d3c9a8f..32dd410633f22970565d9033c46a30b0ddb1e656 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PathAuthorizationDefinition.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PathAuthorizationDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PermitAll.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PermitAll.java index 78ef1a73afa706d76c4cb4114698fa2e268f98a5..c7e2ceb2f422106a7bb00c4faa379df3fb200919 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PermitAll.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/PermitAll.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/SchoolEntryPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/SchoolEntryPublicSecurityConfig.java index d83f031457856760d376b01727a46eab985f0051..86975162743013f5da186da80eb7e9452492c917 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/SchoolEntryPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/SchoolEntryPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StatisticsPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StatisticsPublicSecurityConfig.java index 02cdba3fa7a9f8b17cf906d21ad2716d9d7bbd1f..2036bb6b3437dc00a319b81438286fbd515e1007 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StatisticsPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StatisticsPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StiProtectionPublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StiProtectionPublicSecurityConfig.java index db8bd04be374531f5499ddd850eddb1d74622f14..3130379204db364cc4503b00f33993afa2f9aa26 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StiProtectionPublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/StiProtectionPublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/TravelMedicinePublicSecurityConfig.java b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/TravelMedicinePublicSecurityConfig.java index 847813314feb866d6124705f704f52b8e67f9a71..380ba3e937f6cf88896eab1321e35d33950524ee 100644 --- a/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/TravelMedicinePublicSecurityConfig.java +++ b/backend/lib-security-config/src/main/java/de/eshg/rest/service/security/config/TravelMedicinePublicSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/AdminCertHttpHeaders.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/AdminCertHttpHeaders.java index 8faf47d1190981cef5010b94ba56d42f496a96cc..35b4149081ec6c31e1cafcce5128ebf4b0ea3d89 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/AdminCertHttpHeaders.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/AdminCertHttpHeaders.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApi.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApi.java index 952cf7eda56f9f27d179ce1cb06e10b3ef84032b..003fff000e3382e9476fb50aa174766daf6b998f 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApi.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApiConfiguration.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApiConfiguration.java index 00e263f4961727ac92942bf39c171175bb04cba4..0ce37208d945c28aa01fbbdee37e0fb8e501ed4d 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApiConfiguration.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/ServiceDirectoryAdminApiConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorDto.java index 821a0faed518270e222b1b8d9e1309ec3a80bee0..92229f82ac664a06f562314528ac169ba563466d 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorMetadataDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorMetadataDto.java index 52dd79380ae6c8723654b71d639edffa79bca0c5..55f9433462288bd3516dff7e85a54bd31db5b49e 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorMetadataDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorMetadataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorTypeDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorTypeDto.java index b8e9c3fffa9a264e96aec03e147ef5aaf4e63bc0..396f14e0ec5ee93bc1b3625e202d0d9b9aea05cb 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorTypeDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/ActorTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/CertificateDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/CertificateDto.java index c104b27ab97c0ef78bea2a7666b5acf0d660dbc2..4b9615eeabfd8c5556f43e0ad1e5d3025bc37446 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/CertificateDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/CertificateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/GetApplicableActorsResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/GetApplicableActorsResponse.java index eea5b8cd0f8195813768a3d18bcf5f0fdbd62335..9cd6ec0c2e6d6fd26a9f7266424ecf7e0b8cc6e2 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/GetApplicableActorsResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/GetApplicableActorsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/PartialActorDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/PartialActorDto.java index b6fc34fbe55ab1b667b2d4130b316095fc156e3f..6afea3e1522feb495ac59919b8423dc674473590 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/PartialActorDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/actor/PartialActorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetRevisionsResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetRevisionsResponse.java index 2af13ebd64132fadfff324fe4439854f07e53837..20d8d08aaa9bb1d910821a050f5c46bb5940d5b7 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetRevisionsResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetRevisionsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetUsernamesResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetUsernamesResponse.java index 06bac5756befeb6572b50ddd99b3fcafdcac0073..e551cf86fce6f2c643bbfd9177587106f063145c 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetUsernamesResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/GetUsernamesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/RevisionDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/RevisionDto.java index 991cdcadaef152e8c0bb3cf5a536f95aaf814994..db94b68d20a8e7aa5a10453d3bb1752e54083d57 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/RevisionDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/audit/RevisionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ExportResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ExportResponse.java index e05f4bf0e152ae3e8adfc6e0c379806d6ce2aef3..5d1de9a1ca3a12be64ebfeeef7fc6e06ecadf472 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ExportResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ExportResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ImportRequest.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ImportRequest.java index 20adf30207365adcbc50242d7871fe50bf6b11e9..bdf349b83165d043980ac78ddcc8fd96c03871b5 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ImportRequest.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/impex/ImportRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/GetOrgUnitsResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/GetOrgUnitsResponse.java index 1bc96d812ebfc140015d38cc72b5393fdeee2463..30096ba2a6f4c55fa19bd8522d96b3fb6c0411af 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/GetOrgUnitsResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/GetOrgUnitsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitDto.java index 5e93c1e3b284c1b7541882646e8b1272f9fa4fb5..9b63b448c913639e36ed5eed3081c54893a9e761 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitTypeDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitTypeDto.java index e60ebe695329e0e8d005c9d74d9b159b9a88603d..68513a14be4e580827e014b40b41286950d0075c 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitTypeDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/OrgUnitTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/PartialOrgUnitDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/PartialOrgUnitDto.java index a66c87222b904b1600efae2ee8d3c9be37838eec..98f8d3373d5567772d490b276c724d0a4a4c88b8 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/PartialOrgUnitDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/orgunit/PartialOrgUnitDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/ActorSelectorDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/ActorSelectorDto.java index 867f66c15ca20ecf8337b22b94ea9e4b445a0928..bee77a29f1f484b3d2579b8a33e075da386d5a72 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/ActorSelectorDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/ActorSelectorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetActiveApplicableRulesResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetActiveApplicableRulesResponse.java index c8d52358cd456bce7642082ba1f62d8ebdfead86..b7325f7354d9258ca572e5538cb6ba632b755d4b 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetActiveApplicableRulesResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetActiveApplicableRulesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetRulesResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetRulesResponse.java index c65dc3b891ab46cbcfd44c7b40456f7d24c3a564..b77652ae189f29b86fc2d569a90fb0f5d52ac2ad 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetRulesResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/GetRulesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/PartialRuleDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/PartialRuleDto.java index 19eb59b44f794a86cfb52d25dbd0a01b8fe10b92..aa0571351aebb3a773ee0f206a4ba6ca8996fa74 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/PartialRuleDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/PartialRuleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/RuleDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/RuleDto.java index bd4a50342c7cc97e362845f93149bb3417b378ae..fb6f9323f90fa297e3ebd8aa7688bdad149ae630 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/RuleDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/rule/RuleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/CommitResponseDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/CommitResponseDto.java index 53432a3a0917700ac0357feea54d7a1a2a7afa7e..a866f255137e2e0f519aa8f61b028282fdc74683 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/CommitResponseDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/CommitResponseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityDto.java index 33436a882aa6cfffeab38c71d70ac52b6c0a4134..079ca66cd788119ba9ee68fc691a47ce4f9a5fb4 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityTypeDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityTypeDto.java index 10cfb0ff1184ad8b7e3a5a41085c04fdba2056a8..9355ee66701c415f4838cb05ece849abd31538ba 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityTypeDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagedEntityTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagingStatusDto.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagingStatusDto.java index 17b5550eac0e3bf24171d588bbf2fe1de65b302f..df9c3757f91de617ce6e29099597b952b619c345 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagingStatusDto.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/staging/StagingStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationRequest.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationRequest.java index 5881dced79a7562226f6633b91d23c1c4a95bdf0..71ee8d16ac057f0ff5774486683c29c060e13532 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationRequest.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationResponse.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationResponse.java index 0578883fef09f08a4630e7ff2ba0d111f18c7b0b..a4fa91d3cb4dfdb9c046b5fc87753e717bb8ee77 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationResponse.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/OrgUnitPopulationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/ServiceDirectoryTestHelperApi.java b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/ServiceDirectoryTestHelperApi.java index bd3d7fd47f15f79c6fee10bef84a4e93c7330366..c2355256eee343270e6e69087cee83ca1ca88c43 100644 --- a/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/ServiceDirectoryTestHelperApi.java +++ b/backend/lib-service-directory-admin-api/src/main/java/de/eshg/libservicedirectoryadminapi/api/testhelper/ServiceDirectoryTestHelperApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApi.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApi.java index 4fa95f353a09c4ae797ca3fe591a40896f1997b5..a42a1cc9b1db2960a39b6b927c38f242547253f3 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApi.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApiConfiguration.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApiConfiguration.java index 89c2032777f86ec52987083c865ca2fde47a9b05..15e2bd912213be8fa0a34f85cee3e389356e60b2 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApiConfiguration.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/ServiceDirectoryApiConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorMetadataDto.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorMetadataDto.java index 5de2157b2ff1d7b975d08a4c794991f905114bb3..7db94c996bde089a2d7ab3ec6ebbd97b3f811541 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorMetadataDto.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorMetadataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorRequestDto.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorRequestDto.java index 52820c552483dc4854b6252d3f33c3efdb176a36..efbc66aadfc295ece47716c18ee962c4ce2c88a9 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorRequestDto.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorRequestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorResponseDto.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorResponseDto.java index c63a1258c7685647d13de9f031476001103ac78a..38fc8237888e8a1daf650cf849c67ef87d813faf 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorResponseDto.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorResponseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorTypeDto.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorTypeDto.java index bda8336475b3acb991dfa6d49a041b0e49ead55b..02b57e094e6e3e59f0780c31a9224877c1eb718c 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorTypeDto.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/ActorTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/CertificateDto.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/CertificateDto.java index 296d2ea05fdce821f0beb59c93a984cce4f41309..81aaa297db2edcffe461958ef2ec227b54083206 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/CertificateDto.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/CertificateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetActiveActorsResponse.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetActiveActorsResponse.java index dd8b3d8a6cf6c142c7723b4e67d7f1847726f5ef..36018ccfaad668e435684d8b4e198cdd53dbee1e 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetActiveActorsResponse.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetActiveActorsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetTrustedActorsResponse.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetTrustedActorsResponse.java index 14d5ffb07af99ad804369bc7892278c4faaef90d..e6d1d7f7fd4b6e5d48478ff14960fb59f218bb0a 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetTrustedActorsResponse.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/GetTrustedActorsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/OrgUnitTypeDto.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/OrgUnitTypeDto.java index f79362e4563688d5f477160a7763ef366bd71f9c..c61bd7e2820e962a7b2fc6a16e2bbee90773b73b 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/OrgUnitTypeDto.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/OrgUnitTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/PostTopologyRequestDto.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/PostTopologyRequestDto.java index 36d0a8cb313662c72efacff360ec5d0731b85fe0..e4b35e53b0b4f6196b79d6a54eab812b7bc9f7a5 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/PostTopologyRequestDto.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/api/PostTopologyRequestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/util/CertificateSignatureUtil.java b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/util/CertificateSignatureUtil.java index adabad0d0a0a9600e72087b9f15d233e6199e6da..c8bdbe0c657cfd76e64273f5b2a15e26a698c168 100644 --- a/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/util/CertificateSignatureUtil.java +++ b/backend/lib-service-directory-api/src/main/java/de/eshg/lib/servicedirectory/util/CertificateSignatureUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/StatisticsApi.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/StatisticsApi.java index 147cb46b96723955db46eee4393e806b25e26411..9dcbe26e164a76316fc051c14a6e77064bbfdb3d 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/StatisticsApi.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/StatisticsApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/Attribute.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/Attribute.java index f75730990276add29d14006bd3efa8b22e324a67..0f1873fafa67ae0a75dca8494369c122fcf2a3b5 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/Attribute.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/Attribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataRow.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataRow.java index dbd9e92f56076a04516df3493972dab2f5272fcb..e97772df845d8c80d405c0a5fea2978025cacded 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataRow.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSource.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSource.java index 2c8d12f1d7ba58c3825573e58eade2a5184a3f33..132225667e886a3727a4b13fefc3014b318069c8 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSource.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSourceSensitivity.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSourceSensitivity.java index 96c4ead4c6344e68de191d25d6b4c2daf6125620..5e16a0cc0ace32dc15939b50f039690da2dcb415 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSourceSensitivity.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataSourceSensitivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataTableHeader.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataTableHeader.java index efbd38cf9644ecb110d3303f6a3ee39499be1c62..92dff650270522b540a10be4557276a76644b126 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataTableHeader.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/DataTableHeader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetDataSourcesResponse.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetDataSourcesResponse.java index 6f86261b6d133f20b183b7c42da3cb23f33a4a30..c56858d883624ba5345b4a02bfa13bb71b9df4e3 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetDataSourcesResponse.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetDataSourcesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataRequest.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataRequest.java index 4240eb8ed1848511b1e1b7d787d7d878b8c7479e..66c0a947e7d18f0b34d39eada19e9fb6b6c83769 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataRequest.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataResponse.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataResponse.java index a81c0305744ae68e839c86fec8965b03cc5f46c9..624f33ce19eec45331d7798d0d8b02e14be304d2 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataResponse.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/GetSpecificDataResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/SubjectType.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/SubjectType.java index a5c174b052e6a02aa46e17acc3bec02ff4d42f20..7852d519ab8483d5edb30a4f45b5a90fd232368c 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/SubjectType.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/SubjectType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueOptionInternal.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueOptionInternal.java index 90d71bdda8c9b5c54c84e677fa08e6e7adb6e276..40c16db097dc1c7f479988cf2c253dd64c64a783 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueOptionInternal.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueOptionInternal.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueType.java b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueType.java index 076559697f2489896ca03270b358e1f78ac54377..76c0bba145c03b6d1f58d87bfdbf100f08fde5ad 100644 --- a/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueType.java +++ b/backend/lib-statistics-api/src/main/java/de/eshg/lib/statistics/api/ValueType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics/README.md b/backend/lib-statistics/README.md index b27833f6235c04f765794114e50dce86053a94ab..af891a58638b3e682bbbd099f5f305c5bf3616ee 100644 --- a/backend/lib-statistics/README.md +++ b/backend/lib-statistics/README.md @@ -42,8 +42,7 @@ in the statistics module. IMPORTANT: `canBeAnonymized` can only be true if the business module has an algorithm for the anonymization of the data. - -It should always be false if `DataSourceSensitivity` = `ANONYMOUS`. +`canBeAnonymized` should always be false if `DataSourceSensitivity` = `ANONYMOUS`. ### getDataSourceIdToAttributeInfos A list of `AttributeInfo`s belongs to each `DataSourceInfo`. diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/AbstractStatisticsService.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/AbstractStatisticsService.java index 8a9844ce119e9aee39dc704ab92f94e39ef49a3c..8241efac37722d27ec87d3d529e67c2878654673 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/AbstractStatisticsService.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/AbstractStatisticsService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -50,11 +50,11 @@ public abstract class AbstractStatisticsService<P extends Procedure<P, ?, ?, ?>> private List<AttributeInfo> getAttributeInfos(UUID dataSourceId) { return Optional.ofNullable(getDataSourceIdToAttributeInfos().get(dataSourceId)) - .orElseThrow(() -> getDataSourceNotFoundException(dataSourceId)); + .orElseThrow(AbstractStatisticsService::dataSourceNotFoundException); } - private static NotFoundException getDataSourceNotFoundException(UUID dataSourceId) { - return new NotFoundException("Data source with id '%s' not found".formatted(dataSourceId)); + private static NotFoundException dataSourceNotFoundException() { + return new NotFoundException("Data source with given id not found"); } protected abstract Map<UUID, List<AttributeInfo>> getDataSourceIdToAttributeInfos(); @@ -91,8 +91,7 @@ public abstract class AbstractStatisticsService<P extends Procedure<P, ?, ?, ?>> .filter( dataSourceInfo -> dataSourceInfo.id().equals(getSpecificDataRequest.dataSourceId())) .findFirst() - .orElseThrow( - () -> getDataSourceNotFoundException(getSpecificDataRequest.dataSourceId())); + .orElseThrow(AbstractStatisticsService::dataSourceNotFoundException); if (getSpecificDataRequest.anonymizationRequired() && !dataSource.canBeAnonymized()) { throw new BadRequestException("Data cannot be anonymized"); } diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/StatisticsController.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/StatisticsController.java index 0e3b5f3a27d781d85d49562a826c5fac12421a73..51396b13afb9bd441155917bf41a3aa4073782fb 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/StatisticsController.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/StatisticsController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/spring/config/StatisticsLibraryAutoConfiguration.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/spring/config/StatisticsLibraryAutoConfiguration.java index 8849c836d23115fd1fcb1a08b50481d6b5117b60..a09385de7ca2666b9b8e7361fe5e3d00ecdab73d 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/spring/config/StatisticsLibraryAutoConfiguration.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/spring/config/StatisticsLibraryAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/AttributeInfo.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/AttributeInfo.java index 529519f98463b228603ac9bb91544bacf15589be..a11510587d223dab0f09b1873c2051713d2d617f 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/AttributeInfo.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/AttributeInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertToValueOptionHelper.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertToValueOptionHelper.java index b1ed0e2be0efa91ee7ef27204a2c43bac432aac1..5358e06d5f4875f5014d05778f36ee7e7ac37c06 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertToValueOptionHelper.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertToValueOptionHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertibleToValueOptions.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertibleToValueOptions.java index 1a1c86f9bcca991e5bd6e2e062cfd5fe05e25c49..02fd1f84ebe47639a5336dec69294944f739d23a 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertibleToValueOptions.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/ConvertibleToValueOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/DataSourceInfo.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/DataSourceInfo.java index c4975eb42b6f695f3b3ba8afef57acad4dd1c24e..65f5a36d2d2b6802e00133d55d0f95a3f5bde28d 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/DataSourceInfo.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/DataSourceInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/SpecificData.java b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/SpecificData.java index 6714aaf3f74e1b706bed87bbc9a5368f2812124a..3d09451ed3348c172378cba69bb55ca374a8ee14 100644 --- a/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/SpecificData.java +++ b/backend/lib-statistics/src/main/java/de/eshg/lib/statistics/util/SpecificData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xdomea/xdomea/catalog.xml b/backend/lib-xdomea/xdomea/catalog.xml index 8f707ec525173df377bca13ce9fa9d45d1dda53a..af99d18d32a1f769edd21855a815bedafef3e5a1 100644 --- a/backend/lib-xdomea/xdomea/catalog.xml +++ b/backend/lib-xdomea/xdomea/catalog.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ColumnAccessor.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ColumnAccessor.java index 4dfd11c08b7f7855677e6b7576a11dc488635f5e..8016358c0c53bd1aa8b098a08ce5b2aae0908e22 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ColumnAccessor.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ColumnAccessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ErrorHandler.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ErrorHandler.java index e15e7700aeb8010301b0f8757ed8ad1101f64188..11885a43a882c4285de71fc73dae8ab45e32d0f4 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ErrorHandler.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ErrorHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/FeedbackColumnAccessor.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/FeedbackColumnAccessor.java index af0a6610c4a15423b94b20da7a2cc8a274572963..21c93a6a22a9572ce2dc279af5d5ead41f06c84e 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/FeedbackColumnAccessor.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/FeedbackColumnAccessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportStatus.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportStatus.java index bcd3f8a8e92c87363e700e70410c44fbedb22602..5397ba0ad816eb0e4ceb177ba9a0d00c90f1b1ed 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportStatus.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportValidator.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportValidator.java index 4aa86e52459a063c0c292e8d45d63eb992d07c04..41e527274ce901a7f33fb3d4f088856b04115a04 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportValidator.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/ImportValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/Importer.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/Importer.java index 702c95d061df1293007043830e2ea4e3c93b10a8..0f49fdfb793f18377781632723d157cf6646b28a 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/Importer.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/Importer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowData.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowData.java index 6af7bba6a5414c73a102d2f91af810a7428895bd..6c277cd351b828f33dd55595201f6ac509b3f0b3 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowData.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowReader.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowReader.java index 449e89173e587c20bf67673e5954e6e1a01f67e2..57fd51c31ea793e365ffb5b926b52f438ea78964 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowReader.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/RowReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/TransactionalWithTimeoutForFileImports.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/TransactionalWithTimeoutForFileImports.java index 6df2db045900a77c4313e0076ef604d27fda6cbe..71e02f1c9fe62abbc24c4d0b9d8dd8296ac6d0f8 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/TransactionalWithTimeoutForFileImports.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/TransactionalWithTimeoutForFileImports.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxColumn.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxColumn.java index b98ac1809f41ceea1b15573f5ee3417de725e5af..637924d51236e3f476941ea4a241cd51295bcd85 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxColumn.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxNormalizer.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxNormalizer.java index d52fe059b7d7dc32468cd033ec32c9a01cad2112..fcd617ba6a0e5f6a8d937c0b3276888713b396f9 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxNormalizer.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/XlsxNormalizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/api/ImportStatisticsDto.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/api/ImportStatisticsDto.java index 3e2ac453826e8423f0d19d33f32d12aa81a45624..86af3a69ac24ec66f55198fe37ce2205eb770432 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/api/ImportStatisticsDto.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/api/ImportStatisticsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/AddressData.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/AddressData.java index c6dd239eae532ba6940dc888f83111e021ceacc3..6f98508ee83fa5edb6c97ca5c49bf804ff625693 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/AddressData.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/AddressData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportResult.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportResult.java index 343a890cfe290a128c639e795bd5d222b6126b2f..ab5ee02283f247c5b2b98e0f790819f791607598 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportResult.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportStatistics.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportStatistics.java index 12c7dfd287e8b5ad635a3b5498b3eb71f03fa839..4e0838df06c30d2e33daeed76110dbb22fc57fdc 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportStatistics.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/model/ImportStatistics.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/FileResponseUtil.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/FileResponseUtil.java index 1693e663350dedaee79cfd3e786e164f853d4984..624b464f55145ac4d5455eaf07bed85c2ef57e62 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/FileResponseUtil.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/FileResponseUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/XlsxUtil.java b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/XlsxUtil.java index 35d9be7bf54b6a90fa48db13a4981b4c864ee485..ef10a3ae21b2c7305a45dc586260118662ea3709 100644 --- a/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/XlsxUtil.java +++ b/backend/lib-xlsx-import/src/main/java/de/eshg/lib/xlsximport/util/XlsxUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/openApi.yaml b/backend/local-service-directory/openApi.yaml index c2f983d428414670419cf6faec65ca066e8ce61f..e0e87a9b97bacfdf650ea142b2e9f405a2bfcb37 100644 --- a/backend/local-service-directory/openApi.yaml +++ b/backend/local-service-directory/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/InitializationMetadataUpdateService.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/InitializationMetadataUpdateService.java index 3d67b23f7e16caefc8211831e1d61f02ff9f2708..4c2d4c73f8d429a81ef5edcf9335a21326f11593 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/InitializationMetadataUpdateService.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/InitializationMetadataUpdateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/LsdApplication.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/LsdApplication.java index 8dab72a82509fe11b9115229630a27e39a1e8830..01a6bb9d0c6ba6e3fcbf84f91e1011fc6f330595 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/LsdApplication.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/LsdApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/advice/ActorControllerAdvice.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/advice/ActorControllerAdvice.java index 65611f4c8c218cb4505638913d224cfadb36e3e8..717c6789ac4fc60a384aa78c56684d64831aa77f 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/advice/ActorControllerAdvice.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/advice/ActorControllerAdvice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdActorController.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdActorController.java index 43a4dcff63c3c40c31fbe353f810e66bbee6cb3e..e1f9e7e4c2c34a14de79498c11e212ad5258dc45 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdActorController.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdActorController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdOrgUnitController.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdOrgUnitController.java index ed089d2ca96699da03556e673713ccd8cedf8e5c..dedfa28007cf9dfb5cf8b4dcfec72322f8c13a18 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdOrgUnitController.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/controller/LsdOrgUnitController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/ActorNotFoundException.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/ActorNotFoundException.java index 8bace64b2d28f32f9fb0ba76bfede4bfc15d7e1d..5eb5392d522848e88c7e4bb6c197b52db96a525c 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/ActorNotFoundException.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/ActorNotFoundException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/InvalidCertificateException.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/InvalidCertificateException.java index e6ceb1bd50dff1eaf54b8ee0ec4d01de008feea4..261124ff762e7026855ba2827f3a96acc1daeb1a 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/InvalidCertificateException.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/InvalidCertificateException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/SignatureServiceException.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/SignatureServiceException.java index 31237c33fe385046a513b2012217fb57e86043f6..e25b1cc2f6ac422a659504d8130143c31495a56c 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/SignatureServiceException.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/exception/SignatureServiceException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/EventFilterConfig.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/EventFilterConfig.java index 1683a2b0c73b4d9b70a6c4653c323af9551ed564..c779e8d0ea19b5de42029d2d9f1ddff8173c84c5 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/EventFilterConfig.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/EventFilterConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/KeycloakProvisioning.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/KeycloakProvisioning.java index 15a01167e50c4adde2817ac1204d8f1c57ab2c69..d40f0ebcb40d8fc1904a2d1b768307a5c531f97d 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/KeycloakProvisioning.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/KeycloakProvisioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdInitialSetupService.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdInitialSetupService.java index 0a14c5e4b47a77c3c6d0caa17510f772a5e30e7a..5a2751cdbc1aa750385e85d20895890421e21cb4 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdInitialSetupService.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdInitialSetupService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdKeycloakClient.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdKeycloakClient.java index 26c742b935060a52d4817eda270f67821a404638..437633364a141c97d2fa8c1ed672f41845d39eb9 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdKeycloakClient.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/LsdKeycloakClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/PermissionRole.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/PermissionRole.java index 5acbc0bc53023ed70c68eb457ff8b5efd44ce2fd..166e5a4559ce944351b3030ef46c31770173e052 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/PermissionRole.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/PermissionRole.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/SecurityAction.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/SecurityAction.java index 96cdf520ce5a88a8878d31ed161523253be519be..8fbc758da955d2500fb3299e4aa6cab620e578f8 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/SecurityAction.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/SecurityAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/exception/KeycloakException.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/exception/KeycloakException.java index 8a01fc502035b5440396d599398528db4bcd7fd5..a26fb130797148ae4dec56daf9b80c2b33aa01eb 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/exception/KeycloakException.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/exception/KeycloakException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/properties/LsdInternalKeycloakProperties.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/properties/LsdInternalKeycloakProperties.java index 8edf1db459c10490a40393e3dbc37bd306c2bc47..d5de8d05de36e9ba69bfc48eeee5f6cbeedff6c3 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/properties/LsdInternalKeycloakProperties.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/properties/LsdInternalKeycloakProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/util/Differ.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/util/Differ.java index 3f7af428193ddcf9a4ad8fe8b6f010138ff2930d..59385e2cd241b04be91359fe1fe299331afed6b0 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/util/Differ.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/keycloak/util/Differ.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/service/ActorService.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/service/ActorService.java index c9df60f0df1a8ab3c75e51ad93cc92f6e37bbb8c..f5c00da3370138911dca1080fd5a10a0069d6d32 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/service/ActorService.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/service/ActorService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/service/LsdAttributeKey.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/service/LsdAttributeKey.java index 95479c640326699fa4e80bb0552eaa63735dc839..c1e7b8c6b65e4fd95b94060553fc56d119edc8fa 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/service/LsdAttributeKey.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/service/LsdAttributeKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/service/SignatureService.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/service/SignatureService.java index 4cfc29250de97ca48d423674ff5765f67609d736..536df96c90e73e8968638f3f7268fd0128dcaef2 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/service/SignatureService.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/service/SignatureService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/spring/config/LsdSecurityConfig.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/spring/config/LsdSecurityConfig.java index 95a47bc885eb8a4269b396fd0cf6ee8cd27cc12c..0f333fbcf7b2d6340df4418e71fe059f628fe77c 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/spring/config/LsdSecurityConfig.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/spring/config/LsdSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/local-service-directory/src/main/java/de/eshg/lsd/testhelper/LsdTestHelperService.java b/backend/local-service-directory/src/main/java/de/eshg/lsd/testhelper/LsdTestHelperService.java index d78bcd447d649d1239338b41463ddbdce155d5dc..e30ff33ff66286a36b06524502ba246cc9519985 100644 --- a/backend/local-service-directory/src/main/java/de/eshg/lsd/testhelper/LsdTestHelperService.java +++ b/backend/local-service-directory/src/main/java/de/eshg/lsd/testhelper/LsdTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/logging-commons/src/main/java/de/eshg/logging/LoggingConstants.java b/backend/logging-commons/src/main/java/de/eshg/logging/LoggingConstants.java index 8f17829d77d2ce2de7ecb62b25d64fc97c315231..54488f9f62391e18a8800040fef2b0e556b14447 100644 --- a/backend/logging-commons/src/main/java/de/eshg/logging/LoggingConstants.java +++ b/backend/logging-commons/src/main/java/de/eshg/logging/LoggingConstants.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/measles-protection/openApi.yaml b/backend/measles-protection/openApi.yaml index b537aaab4a1976ebd495307cabab158e83165f82..5018840d8622100076589473de063411547f435c 100644 --- a/backend/measles-protection/openApi.yaml +++ b/backend/measles-protection/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 @@ -1103,6 +1103,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -2655,9 +2674,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -2676,10 +2694,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -3121,6 +3136,7 @@ components: - HIV_STI_CONSULTATION - SEX_WORK - RESULTS_REVIEW + - OFFICIAL_MEDICAL_SERVICE AppointmentTypeConfig: type: object properties: @@ -3327,75 +3343,28 @@ components: - AUTHORITY_HANDOVER - ACCESS_RESTRICTED - INDIVIDUAL_REVIEW - ConcreteFileDto: + CheckFileStateUsageRequest: type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: + properties: + fileStatesIds: + type: array + items: type: string format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' + maxItems: 2147483647 + minItems: 1 required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: + - fileStatesIds + CheckFileStateUsageResponse: type: object - discriminator: - propertyName: '@type' properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid + inUse: + type: array + items: + type: string + format: uuid required: - - '@type' + - inUse ContactDetails: type: object properties: @@ -4467,32 +4436,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -5182,7 +5129,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -5356,18 +5303,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -5614,7 +5554,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -5918,7 +5858,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionController.java index 835f7d6bd34161781fd4fe2417224e92633a1b03..c44df3ab1ab68c799902c211ab8482ce57e48155 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionService.java index 9e3fa23797850f042512a27c8bbf6915618e7145..ab984021764ac02641ba6598dac6984261ad3513 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AccessRestrictionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -116,8 +116,7 @@ public class AccessRestrictionService { MeaslesProtectionProcedure procedure = procedureFinder.findProcedureByExternalId(procedureId); if (procedure.getAccessRestriction() == null) { - throw new NotFoundException( - "Procedure with UUID %s has no AccessRestriction".formatted(procedureId)); + throw new NotFoundException("Procedure with with given UUID has no AccessRestriction"); } // Todo: check if recipient id is one of related persons of procedure diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentBookingController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentBookingController.java index 78a49e93aed8430e551a7a36a0a6739b9bd8b7d2..b793be0761f6911efdb1aeb0f45b86f196f000e5 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentBookingController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentBookingController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentService.java index 25d1e52f32c266db4756ef564a48fe950070e3fa..86f57c5becb400289be20584f7b2277db401028c 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/AppointmentService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftMeaslesProtectionService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftMeaslesProtectionService.java index 74b3116a85cd63ca8bd2cf0b50a0889f74da1a8d..00250a1b4d3f1c686b1cd94ed1817e5dbbe98491 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftMeaslesProtectionService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftMeaslesProtectionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -122,7 +122,7 @@ public class DraftMeaslesProtectionService { MeaslesProtectionProcedure procedure = repository .findByExternalId(id) - .orElseThrow(() -> new NotFoundException("%s: no such procedure".formatted(id))); + .orElseThrow(() -> new NotFoundException("No such procedure")); ProcedureStatus procedureStatus = procedure.getProcedureStatus(); assertProcedureStatus(id, ProcedureStatus.DRAFT, procedureStatus); return procedure; diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftProtectionProcedureController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftProtectionProcedureController.java index 43cda13455c61f574f5c62f68e8b48f7eedd8fb0..23d0ebd889137caafabe8e3f801bf7bcd2533e11 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftProtectionProcedureController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/DraftProtectionProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionApplication.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionApplication.java index 8d75230e7b0874f7ac5bb83ca584018478d42dfe..1df5ac7c9556f512277fedd0a9508d797d34b90f 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionApplication.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionFeatureTogglesController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionFeatureTogglesController.java index dee0b3c57aae3fda5471d73ea8251bce07cf0418..a02d98cc9759d65d9d46ef3748624d14bcbf6c6c 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionFeatureTogglesController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionFeatureTogglesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionMetadataService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionMetadataService.java index 364ab5c070e12f160a32f285621107cc52d28524..cc6ebe7eea6c0a543b6745d22abd14344cd0ffae 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionMetadataService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionMetadataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionService.java index b8a06d65f01620569df3cb5f9bfe8e3f9920cfaa..665c1f8342878b7ffdcbdcbd6aa09b6db877ada0 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MeaslesProtectionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineController.java index 468e49883e5c0ec24bbf4881665146a270fa84e2..8de8fe4d56e1b08a54831d4f43e69dcfac6a83b8 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineService.java index 4e123e7c918b4b70d16dcc07f677b1357120bedf..5bac0b93d45852bbcae2893eaf0fd2ed436f5c94 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/MonetaryFineService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -65,10 +65,7 @@ public class MonetaryFineService { procedure.getMonetaryFines().stream() .filter(mf -> mf.getExternalId().equals(monetaryFineId)) .findAny() - .orElseThrow( - () -> - new NotFoundException( - "MonetaryFine with UUID %s not found".formatted(monetaryFineId))); + .orElseThrow(() -> new NotFoundException("MonetaryFine with given UUID not found")); monetaryFine.setFineIssuedDate(request.fineIssuedDate()); return monetaryFine; diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalController.java index 327adc7eac3d8f0504ade4e3db6f30c6d0a2816e..18307c2f1aa6b5d904bf53c9ccb171e33b5c1668 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalService.java index ef0b93a34bd679a8001a676eaaa5619a668e8ede..9f9195ec95f016ea0ef15c71cc0077d64f5e4ed9 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/OrganisationPortalService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureFinder.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureFinder.java index 2143147b75da3a49d72fc4bf879afe35f263f160..d1ba3c34a47c43335102e8a67813c014785b99c4 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureFinder.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureFinder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -28,11 +28,7 @@ public class ProcedureFinder { public MeaslesProtectionProcedure findProcedureByExternalId(UUID procedureId) { return measlesProtectionProcedureRepository .findByExternalId(procedureId) - .orElseThrow( - () -> - new NotFoundException( - "%s with UUID %s not found" - .formatted(MeaslesProtectionProcedure.class.getSimpleName(), procedureId))); + .orElseThrow(() -> new NotFoundException("Procedure with given UUID not found")); } @Transactional(readOnly = true) diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureStatusUpdater.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureStatusUpdater.java index 116473476b7e761bf1612d2e373227dff0d08036..8d5ed1fd3b3ea3844c84950984cde72cf2c59535 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureStatusUpdater.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProcedureStatusUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterController.java index f046855d6ebd6ff5dbdf486b5b5ec59ced3b538c..033c27a0f8826ee6a3186a9851975fc9e6712f0c 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterService.java index 5effa53bce7e55b21607a752914413ff454a81f4..d3f7d0286f20501a3435e778e686b2e1ee8c6122 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofRequestLetterService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -157,9 +157,8 @@ public class ProofRequestLetterService { GetPersonFileStateResponse personFileState = procedure.custodians().stream() .filter(custodian -> custodian.id().equals(custodianId)) - .collect( - StreamUtil.toSingleElement( - () -> new NotFoundException(custodianId + ": No such custodian"))); + .collect(StreamUtil.toSingleOptionalElement()) + .orElseThrow(() -> new NotFoundException("No such custodian")); return ToDtoMappers.toCustodianDto(personFileState); } diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionController.java index d37c2117c76ead232e110cfe472e62069593ac70..f34a1ec214b17d8563d4c20bf59631917f4eea43 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionService.java index 5704fd0bf0d663799de53a409270348c63279e56..23f28e8c528ac08d9afdedde7467aa011f5fce0c 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProofSubmissionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -102,10 +102,7 @@ public class ProofSubmissionService { procedure.getProofSubmissions().stream() .filter(ps -> ps.getExternalId().equals(proofSubmissionId)) .findAny() - .orElseThrow( - () -> - new NotFoundException( - "ProofSubmission with UUID %s not found".formatted(proofSubmissionId))); + .orElseThrow(() -> new NotFoundException("ProofSubmission with given UUID not found")); updateProofSubmission(currentProofSubmission, updateProofSubmission); diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProtectionProcedureController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProtectionProcedureController.java index 68a23d7d42b174f03f0278f7157a748daa87bb7f..acb7d8bb9431f2377b432c53e0bd509a96eaf911 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProtectionProcedureController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/ProtectionProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/StatusTransitionController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/StatusTransitionController.java index e33aa04e840c079d594f81fa1232145c7bc4628f..18d168127ee22c1d1e456ea3ba918e18bc990ef3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/StatusTransitionController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/StatusTransitionController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionDto.java index 4997b5e95b5cf0725a57d64c08791304a13c5406..2deeae279ee1dbb2f267cccd87016606800e6a7f 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionLetterDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionLetterDto.java index 31c6b88fdfdff64f9b5904e792465c39779ac655..4bf2eaee1404817025275963962a6bf431013c2f 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionLetterDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AccessRestrictionLetterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AffectedPersonDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AffectedPersonDto.java index d62907eb3632cf0538a44c87059391463e4384ba..50c2c09837a387205fccada9ddf8a9c8345ed688 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AffectedPersonDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/AffectedPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/BookAppointmentRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/BookAppointmentRequest.java index 921d326da58d11ae2b0b53dc32d33407a469541c..bc2af1e3df9948f49f1162d899f37852a012d8ce 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/BookAppointmentRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/BookAppointmentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CaseStatusDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CaseStatusDto.java index c1ba755efc6bb1d7ede7f96e5ec3c464aa8ebd50..ef3800d507967868e9231bacc801aab0e69682ce 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CaseStatusDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CaseStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionDto.java index d7da01e90a057118def5d43f44c5b4436c4d6d2b..6205846a26c6e2eb170c968fb2528f87c7dc0fc0 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionLetterDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionLetterDto.java index cbdd4e4ece386252c3d14dd4367622a1c08559dd..53e8e8163d855bd78fe98234c3c7eb55b8b4f931 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionLetterDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateAccessRestrictionLetterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateMonetaryFineDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateMonetaryFineDto.java index d1f1fc29d3732e63c3bb742864280fef05ccf85a..256e1bffcd1f8d95065f527f9f0e5baa4f4e67c1 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateMonetaryFineDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateMonetaryFineDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofRequestLetterRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofRequestLetterRequest.java index 7f21633784c98e9affa6d08530ede9bd0ff8c625..5d082b01a03253920a07d20e4fcdb588787c3209 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofRequestLetterRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofRequestLetterRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofSubmissionDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofSubmissionDto.java index f1fb41e580d945de222c4d041f8e3f736885e7d4..6118673b289e32a21f95bb95e2c3e514a223047e 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofSubmissionDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CreateProofSubmissionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CustodianDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CustodianDto.java index 8379bae4a05fc6184cbdc74fc01a57dbc906caf2..fe1a77a93d0ae6a6543dfe4e455c952170b47316 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CustodianDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/CustodianDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/DraftMeaslesProcedureDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/DraftMeaslesProcedureDto.java index 0c01e4a35af9b492b7bd737de315490d0d97d72c..833fd8f72d0e6349945c931fbdca39889c2073a9 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/DraftMeaslesProcedureDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/DraftMeaslesProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityContactPersonDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityContactPersonDto.java index 9f11438e9ddac2e48cd7c87919e0ec9c830fa124..bd80683761fc7e66d8571a51906b61a96c384f36 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityContactPersonDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityContactPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityDto.java index 7d7d17fd0d0d8446894f9ac4dd23c00c981fd3bd..5e50a29dde206a62627563143fb95c62742c410d 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/FacilityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetFeatureTogglesResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetFeatureTogglesResponse.java index e16da240719407a6c88369cf2cdf483a83a9c32d..da8dcccacd508f44c392b28be690908e2e812465 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetFeatureTogglesResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetFeatureTogglesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresFilterOptions.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresFilterOptions.java index be22094073b4b9e65b626b7cef2af12c85cf79d0..8469d72822e75231d87b343370aa2c3343e29e6d 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresFilterOptions.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresPaginationOptions.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresPaginationOptions.java index 3d90f61bc6556bbc831ad067d699e4e6b91d2630..bc6159ac145b5f466d47fad892d337980ab1edcb 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresPaginationOptions.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresResponse.java index da1c5723faf9b2a158559ace86a05795e4387b9f..09eb04b1776fc4ae8b8cbcc439066882b9717d90 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortByDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortByDto.java index bf8d9ee71006d2a0e22b2706550558dfc1c3bc44..749e64aff6af798128df67c1d1b154c4d03b6ba9 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortByDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOptions.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOptions.java index 59a1e6660a0acb3f18e271b2d4cb30225579e8d8..07428987f8fbc2e1dab6f58510eaa5284186f0bd 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOptions.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOrderDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOrderDto.java index f3d3d4e3865d9462372835e02628287da02dd483..ca4065baafe7ecdee7814b5e34d16083816b7d77 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOrderDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetMeaslesProtectionProceduresSortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonRequest.java index be9d6038e8e7895a4473a41201da68b7c84482bd..4d09b22d142f111b24e853be1e46c64dca4c1426 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonResponse.java index a9546c8d5ea3de1c123a42869d821ce8cd17e00d..7661f26203ecb14e89533ca53782e97d5b02028d 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProceduresForPersonResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProofRequestLettersResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProofRequestLettersResponse.java index 4c949c0190f02a503a8d9954a835064dc1b17a81..9f81442942461bdacf5207299410f76ad9f6c6c3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProofRequestLettersResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/GetProofRequestLettersResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/LetterTypeDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/LetterTypeDto.java index 2064deff8bbfa4c993e44e6d120d1b23b8a56abe..7cfe2dd7e8dedb5e5ac16af238023336810b4b85 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/LetterTypeDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/LetterTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MPFacilityTypeDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MPFacilityTypeDto.java index 1fa108fadee58beea28b5f01e26beddd36e430c5..5235ab598ed9c320ccb69e8dc8f0ac709c451075 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MPFacilityTypeDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MPFacilityTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedureDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedureDto.java index f93de61913dc8b40e5c492207555cc2c9f65bc40..6e60608c449264c3700586c1504e6ccfa4fb8fc6 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedureDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedurePopulationResult.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedurePopulationResult.java index de23974e9af8caeea97d7150976eacf73e2c064d..1c595eeff3e4a6ee1ddab1779ac569f0f16605e8 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedurePopulationResult.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeaslesProtectionProcedurePopulationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeasureDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeasureDto.java index d3a80bc03527683ebda6b3bf8218c206747d4a3a..61b267a50aaa9d3e4664ce7d88d63ecc86c0faff 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeasureDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MeasureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MonetaryFineDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MonetaryFineDto.java index 8f770d48e9a77894fca81517f378f35d2bc22aa4..54256685bdc959587522d28b9848b8764f6a9d2d 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MonetaryFineDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/MonetaryFineDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/PersonBaseDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/PersonBaseDto.java index edb5b63df70871a61cff7ac4cb933559bc545a3e..4486f05577ee85ad85679c910ef2b4af0ae60517 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/PersonBaseDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/PersonBaseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProcedureForPersonDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProcedureForPersonDto.java index 5ec02613c9227618faaaa1951f998e39d1129df5..ce9006a0c650756ed8abd8a1a9c26e59277f1cac 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProcedureForPersonDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProcedureForPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterDto.java index 02dcc51dee4a8309665dcf1715a0102f0ce833fb..85566005759b5bbf3d074e72ae533489dc66831e 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterRequest.java index 22dc9e29f42e5e8dd25ac014e17a9a01f7562162..943fd1d4d63f65293ac7baba39d9bf804d48465b 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestLetterRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestSentDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestSentDto.java index be6809140c9c975980dcc1bab67a6804bacb24d8..749c8d287ad8311236c011454c4fd0593f9ac79f 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestSentDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofRequestSentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionBaseDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionBaseDto.java index 13c6c84dc29f913ca5f577997e6bff6ac9bbdfdd..b335673943a4cbfc4eceae9b53982d21b6b184e2 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionBaseDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionBaseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionDto.java index 904376fbb78146bb98cee4cbe6cc131e5b2c9004..3ae31f0a52009612ada1402f4f4fa5d8c3474b04 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProofSubmissionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProtectionProcedureDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProtectionProcedureDto.java index 58568dad0e2e0d47d1d5d62e624c2928c1b3fff1..b04ad0e8d3fabdf82fcf3b4997a0758e5bae2f44 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProtectionProcedureDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ProtectionProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportDataDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportDataDto.java index 0f85fa6d497c7b52c963f17ae12909d792546c27..e81c65f84a416509449a15596a20cf1c436912f3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportDataDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDto.java index 5ef0adb3cc5bedf1aec317ce37ca767ca06d4c2b..53463b858c2baf8c46e33969eb0c82027b0a3cac 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDtoAware.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDtoAware.java index fe3e14b626f03853734df54eb05f8ade5bff9518..63f6613fbcb9f8c5e9882e160d85a8315ae65ed2 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDtoAware.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ReportingReasonDtoAware.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/RoleStatusDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/RoleStatusDto.java index fb2824f4169f9db16c2c0a7d8d749d5b38824949..4c63484f7d835a9ac7b130f966d7c5f9040b5d64 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/RoleStatusDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/RoleStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SaveProofRequestLetterRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SaveProofRequestLetterRequest.java index f8a33f3e595a50cf7a68dbde652bdb6eb60605f5..7e02506b18ece54745ed92f4c6bcb30566e0c106 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SaveProofRequestLetterRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SaveProofRequestLetterRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SubmissionResultDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SubmissionResultDto.java index 89c9f3593bc572707854b1d4f922bf375c61d452..a884f873977177ce6a01ea7680432a52357488e6 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SubmissionResultDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/SubmissionResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateAccessRestrictionDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateAccessRestrictionDto.java index 34db530942f35b316340ec4a7d8fdb7d5c5b2757..324519662f2219cfd6e9228cd7e5b7588b6571bf 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateAccessRestrictionDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateAccessRestrictionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateMonetaryFineDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateMonetaryFineDto.java index ddee8a9a7be75ec2b9972047c5a3109c52ab17ab..22cd243871b935a306bf4d5c344bb596ca602344 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateMonetaryFineDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateMonetaryFineDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProcedureRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProcedureRequest.java index bd3b87e27b74afc3bfcf1302b547a2ca33746421..3cc9a783774fd51426d45229e70eb4bfe6459be3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProcedureRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProofSubmissionDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProofSubmissionDto.java index ad8bd9b9b8b7c93b35cf77476d9117906e054862..080d2a7207808ce4828db31f92cf4dd36606f1e8 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProofSubmissionDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateProofSubmissionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateReportDataDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateReportDataDto.java index fd4d60f0a6dc31d9e836d6346c25941ff4814146..fd1ad5cbf4721c8e173ee12250d537af5737afb3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateReportDataDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/UpdateReportDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ValidOtherFacilityTypeInformation.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ValidOtherFacilityTypeInformation.java index e9fc867785a6756e57750f2584a3554eaa8428f9..8ea5a3db85e784a8461d8524f447ec89e68241f8 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ValidOtherFacilityTypeInformation.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/ValidOtherFacilityTypeInformation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/AffectedPersonSupplementalDataDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/AffectedPersonSupplementalDataDto.java index babb8190c9723d8d3cdc2027caf22095e0fa22d1..0f1056bccb4d7e03a870570db4f3ab5c01253d04 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/AffectedPersonSupplementalDataDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/AffectedPersonSupplementalDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportCaseRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportCaseRequest.java index 2fe8dcbb5fe57009570442ee4298442cca078dbc..c75c84d9c5a61ad8d2cb2310748638b3acffe251 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportCaseRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportCaseRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportPersonDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportPersonDto.java index 0e315c42daf52ff721edc790f6de92ef82f0cf72..d9747e009558896b6784dabc7c5b01291e78f31e 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportPersonDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/citizenportal/ReportPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianRequest.java index e7385650dcca60738c14fa7dfe1e7cff74f6e98d..a9ca744cbd867d2b4abb594985820872aeea1730 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianResponse.java index f7de6883026a8f7a05cc20b0cee3fefd8742524c..03401b25db5afce27b85e646b6e06f8c2fc1b12a 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddCustodianResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityRequest.java index 2a442b5a76a20d4bd54326c896901c1e1d9401e1..86dbe09a611634a411f2fb190f7f5b1bb61fa4b5 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityResponse.java index 28cf78d8c4d51c4367c33a47d320d307069134e1..22c47ae43100a6a3d34131140cdea48e2581a85a 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AddFacilityResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AffectedPersonDetailsDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AffectedPersonDetailsDto.java index f437893f946f1b50eb9f38029bb49a9e9c03918c..02a748776a489b2ebed57f846ce8900d825f5fb3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AffectedPersonDetailsDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/AffectedPersonDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonRequest.java index 32571464ea9e17859be747361f3c5daf12220c1b..d270b953be6993f6ea29e96ea3e24c610f83e52a 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonResponse.java index 2bd79df500872710b5f562ce4334da796609743f..74b06b3f364b639b6e4f8c9aaba815e69c24f090 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CreatePersonResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CustodianDetailsDto.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CustodianDetailsDto.java index ff885922a35813b50be04451f18b32d66666e137..a985206a3bd5d5d43d8874b20415c0da24cbd186 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CustodianDetailsDto.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/CustodianDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureRequest.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureRequest.java index 36732814141c7aa20e4f6c42c0703ed93a9c4ac5..0d0381ff579c4d51d6c4456bb003d0351ddbe343 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureRequest.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureResponse.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureResponse.java index b89d855c7e96e218a35a71366bb4ab7b34b2b54e..02da57e6dd4c4a64b742b54ff08b2e9e6a58f93a 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureResponse.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/api/draft/OpenProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/DateTimeConstants.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/DateTimeConstants.java index 91f5cf17d827dbbefd3d141c3ffb46c8f2d626cf..95a90c6a3023047890d72ad5a6e39b625725d01d 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/DateTimeConstants.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/DateTimeConstants.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionAuditLogConfiguration.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionAuditLogConfiguration.java index ff5c8cf7afe00ee9e916a8bd005d1e0e12862ddf..d8e070c7880656a50796096f7977a853e48b4be9 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionAuditLogConfiguration.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeature.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeature.java index e7f2c6f7ea5ed3da041b1fd33c5090ad7ff8d842..326b11237c0ef637d0a553df1dfb048e31955c06 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeature.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeatureToggle.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeatureToggle.java index efcb5103194398732c4fccf5514bdb95f6c6f777..5064e742aaec9c90315240702371d52fe5f67c7d 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeatureToggle.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionFeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionNotificationConfiguration.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionNotificationConfiguration.java index 0bdc918d3d480b3cfb8c022291f90aeba437076e..3cbc498c3a4832b17442e24655bb0af6f1fbf5e2 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionNotificationConfiguration.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionNotificationConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionProcedureConfiguration.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionProcedureConfiguration.java index 079ddb29c11dbab7eca7aa0210f881821e876d18..2b9e6ad09fd801e6d0deca63de779c429507ceba 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionProcedureConfiguration.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/config/MeaslesProtectionProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionLetterMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionLetterMapper.java index b08a74d4fbc9831ec675d51332e3ab9777b597b2..4f97106ad88d8fdb0bc9f582995c3ce042786ee7 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionLetterMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionLetterMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionMapper.java index 959c34d48202bc006f29a27d1e0b4f8775955a26..97ea28234d30fbc18f496953b255ce2dd19a9460 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AccessRestrictionMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AffectedPersonDetailsMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AffectedPersonDetailsMapper.java index 71f4ff18cf9d24279b5bbce8099f5a98e93034fb..6d5d8ae1114abbfee71e240f88a38f07194d40ab 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AffectedPersonDetailsMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/AffectedPersonDetailsMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CaseStatusMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CaseStatusMapper.java index 1dca15940f434634ec4a9dfb934a909ea71820d8..18efb0b61e260f096147b29c3ba3be76d16d7efd 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CaseStatusMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CaseStatusMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CreatePersonResponseMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CreatePersonResponseMapper.java index 7bcfce049549cf44053bccf5dc57f25383f302eb..96a34d65c7f0d03a9dc059d49853ec02af09d37a 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CreatePersonResponseMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/CreatePersonResponseMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityContactPersonMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityContactPersonMapper.java index 9eebacb6f1d9d142281611b9baf127ca2583080a..b32642d67d7921d36388ba13db10d89a05b380b6 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityContactPersonMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityContactPersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityDetailsMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityDetailsMapper.java index c3bbde68d171a7a7408e691f3acc932cded09412..bca53aff6cc8ce31d584c979ac441dad8014fe84 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityDetailsMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/FacilityDetailsMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/GetProceduresForPersonMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/GetProceduresForPersonMapper.java index cef9a3e82a6af2a61cd84622aa783db0d59b52f2..74e5b0122a06f25636078cdc44be56cdd4a92986 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/GetProceduresForPersonMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/GetProceduresForPersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/LetterTypeMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/LetterTypeMapper.java index 05aaf1fd33204a4ea9027ad99022a8622d0510ee..9e01efb6944c8b031d838013b94e1fdb2ee101c3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/LetterTypeMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/LetterTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MPFacilityTypeMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MPFacilityTypeMapper.java index 432e3b7298bb069d21d7df5e945f6793fb20913a..d05d6fab57ac8086893ad0ddbf7217c62300c1bd 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MPFacilityTypeMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MPFacilityTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MonetaryFineMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MonetaryFineMapper.java index 223804b402bc253d58375069837e9e3ba00afc27..4c8f5aa9c5bb22606f2592b5204ef87c26a7173e 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MonetaryFineMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/MonetaryFineMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofRequestLetterMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofRequestLetterMapper.java index 13a59757edad5f99c0da5521a6193f2e6220f315..f8d0286ecf5851c4bae388782889bec9f22e330c 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofRequestLetterMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofRequestLetterMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofSubmissionMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofSubmissionMapper.java index 29b3c62f94f1c6eaaa37edc0c670f33a7072e43e..3401ae24ef552e7f57eafa2de6e04deca84d9d8e 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofSubmissionMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ProofSubmissionMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportDataMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportDataMapper.java index ba3a2e95c3acf31f194f1043baf2dceef70870f1..932fc2d1c534a1c017e931bc4433b7d41db159a7 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportDataMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportDataMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportingReasonMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportingReasonMapper.java index b11757814725423061ac2e0a2ef26a402ab8a791..41271400c860c3428749509d00df9acf980e62d1 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportingReasonMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ReportingReasonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/RoleStatusMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/RoleStatusMapper.java index 5682939fa8c74dbcab2f8225e669457e43e44759..8a3f874ecd6db2197d478c423bbf3e7c10bd04ba 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/RoleStatusMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/RoleStatusMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/SubmissionResultMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/SubmissionResultMapper.java index 0b7f525b75a5ec0df32b76c80f68da18acb0487c..a625a1a6b63f755cee3e04aa657cbd380b44fbdc 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/SubmissionResultMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/SubmissionResultMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ToDtoMappers.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ToDtoMappers.java index 78f86793a47cd71f3fd1993f8f504265e5f85812..b093f7e48f559f248bb27b794c3d88269db52e39 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ToDtoMappers.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/mapper/ToDtoMappers.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterBody.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterBody.java index 3754a49e47dd1920ecdf770cdf61f6be2d27c95a..b7ee01608db2901853193ec04732d9bdc274b423 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterBody.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterBody.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterData.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterData.java index d639fa1b74c56c7f7cedfadcd8690962b14c998f..7a9be2edb4fa089c6cf782528f64fa5bca085d7e 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterData.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPerson.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPerson.java index cd7f0381e139a43f05375cbc1e9b71533786b5e0..490a5b943dc47c7e54ca81ec70263c4fa410b81b 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPerson.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPerson.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPersonMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPersonMapper.java index 1c99b6ccd660a3fac9910002b4ae6283dbba4f96..93deb014fcf914cde7211cab0a6cd4d4b72cbc9b 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPersonMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterPersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterService.java index 24356a1209970c83a17f84aa437eb5274cd82256..67cb0bfaf6330bc4c066e5d15c3f453ca95dbb1f 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterType.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterType.java index dc089d909eca14cf64cd3ec2a354937472771848..8bf8674efa9d2f44127477f2e0c0e2232f75a4a4 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterType.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/CoverLetterType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfo.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfo.java index 455321ef70f796399fce7bd03bf9eb576b540b6e..121a1e94f5d980713cb4906316b7480f391176fa 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfo.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfoMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfoMapper.java index f38f39b29bab3c6c05cb8800a2c441f97722125b..f9ccc64186c9fea1022ab96e7f183afd2768c9da 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfoMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/DepartmentInfoMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/SalutationMapper.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/SalutationMapper.java index c5b7d1da9c5aff62986093c8df6fd1208b821657..8ccbb82eecf98c95a417cbf6b12017af37e609ae 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/SalutationMapper.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/pdf/coverletter/SalutationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/Assertions.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/Assertions.java index 33d5b0a9e3214cbae3efd29fa49a06398add4e1d..52db388e01179977953c5aee54cc4f6c79cf58e5 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/Assertions.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/Assertions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityClient.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityClient.java index ab6a56f9e6d021cf5e2b857e2831ae6012094998..2b821312480225c6e4a6040a89847689bd891e0f 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityClient.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityData.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityData.java index c63a145224ec74a93c42e0a7f073cc5899894b5b..0df4080c72d9ee06618154782f78c8ecbb20e141 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityData.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/FacilityData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonClient.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonClient.java index 4a32290ec1092112d7887da78173a8891c2add63..a51e03d2ca31288ea0f70802d5a64c3cc84e359a 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonClient.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -110,7 +110,7 @@ public class PersonClient { GetPersonFileStateResponse personDto = personsById.get(patientId); if (personDto == null) { throw new NotFoundException( - "No related person found", "No related person found: " + patientId); + "No related person found", "No related person of the given patient found"); } List<GetPersonFileStateResponse> custodianDtos = diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonFileStateIdsWithSameReferencePerson.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonFileStateIdsWithSameReferencePerson.java index 83093e6111271a43ce67f3ee4dabbb9c8e9dec6e..e4419c43d5cf5a373d2168bac8342387ebddffce 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonFileStateIdsWithSameReferencePerson.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/PersonFileStateIdsWithSameReferencePerson.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureDetailsData.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureDetailsData.java index d9ecc2a6e71e1340f69d31139d371dd21145b226..1c9320717c2f069bcccba168e2d25a33794f6ac5 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureDetailsData.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureDetailsData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureWithPersonDetailsData.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureWithPersonDetailsData.java index 720abfa27ec272fa7e96a436f67776bca5433c8b..6c18e6dd0fa78e4c5d985f0c8676e45d9229bdb1 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureWithPersonDetailsData.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/centralfile/ProcedureWithPersonDetailsData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestriction.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestriction.java index bca6eb7113a2e50b926d9e2d563223f72c3b5ba0..923d5fc1bf83a401831fc20e735916bb93017d04 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestriction.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestriction.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestrictionLetter.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestrictionLetter.java index 73e7acdd9832b604596d51ef699433a747d1214f..9f56571ca3e1eed08b498d1c25d56462b2553256 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestrictionLetter.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/AccessRestrictionLetter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/CaseStatus.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/CaseStatus.java index 073ac10264d50f194e39e38a78510a3ace20baca..57bba650757926dad8b93ce16287473064122954 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/CaseStatus.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/CaseStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Facility.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Facility.java index 8b78199df180e2eb69fd5e9b55fde0a307030133..5bb3cc2b6591d3d91ffebbfb87a14794b7dbddce 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Facility.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/FacilityRepository.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/FacilityRepository.java index 82ce9b5511e439dcd828ec783cf54531e27bc173..1b977684d1ce2a12551b900b9768328964c2d98d 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/FacilityRepository.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/FacilityRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterStatus.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterStatus.java index a931c770c480126a003ab001cf71f17f358fb7dc..9ef051ac4658fd70909a94a06f70c54bcb005c61 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterStatus.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterType.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterType.java index c33a9339d4c629dfaf3961596d71948a9199ee88..3ade40fa5d1cd261e170bf5fc4e3c24df897ecea 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterType.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/LetterType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MPFacilityType.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MPFacilityType.java index e807b8a5ca9cfff55f54b4d02ab3012b66a9d4a4..742832d5fb00e9ac80df7a9b97e70b89e55a7f82 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MPFacilityType.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MPFacilityType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedure.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedure.java index 9df3e87670b85dbc755ab9fd0a48d98d204a2061..a96aaa5166181cfe988038bfe142f61088efbe65 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedure.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedureRepository.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedureRepository.java index 18dcd0090f4d5e57f369e6cae4f94f092237c98f..99267294c45ab40af527ccc556df9a7f602f1784 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedureRepository.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTask.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTask.java index a94a6acbc3bb4c20b5ffd67e4f8413314d3f52f8..c794e51a32620dc11b1b1525f3887eec4ec67430 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTask.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTaskRepository.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTaskRepository.java index a931eab7f4a5c95f72305a14c5086a48495596bc..e5edd44d4fdf17d1ba710d4dd202388ad268b5f9 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTaskRepository.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MeaslesProtectionTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MonetaryFine.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MonetaryFine.java index 06428413c8f10d2375a5c7534057b3c0513dadd4..a391a8eb8596f8c63ce6e3359db9361cd696a16f 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MonetaryFine.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/MonetaryFine.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Person.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Person.java index 78129e7d806b01fe446582e9fc4b2ee588fa64c5..5348aaa90dd186212a509355b05a0b4189579078 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Person.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/PersonRepository.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/PersonRepository.java index 8a17b9cb39119b082449c234280ba67efca318de..85b2fd3b0c5e52ac552b3e35c679bcfe76eb1b56 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/PersonRepository.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/PersonRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofRequestLetter.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofRequestLetter.java index 9cdfef364b6439f78759efe407cc8a29b5b518e8..86af2c6a56a5f3356f570d9013191532c81860c3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofRequestLetter.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofRequestLetter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofSubmission.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofSubmission.java index f29321369a4480da05d14b0acce1c98860280a0f..2b1317cd9c950bfb82460b41126e505b33c3ca05 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofSubmission.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ProofSubmission.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportData.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportData.java index 5a1bc532f3277187bf84f66b447f7fabfbf1ce37..0ebdf10cd95683cdd59b5101737726e3ba88bf50 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportData.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportingReason.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportingReason.java index 9b34b5c60584856aaa05c9930dac213b49d7603e..a557e8d7925a868fb8f7eccc7d59726fa41e7134 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportingReason.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/ReportingReason.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/RoleStatus.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/RoleStatus.java index 82970e546eee4b7bf6087dfcb0a320c27b0800f9..b5a5a91ad90f21bf539c42c000a22697e37a06b5 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/RoleStatus.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/RoleStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/SubmissionResult.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/SubmissionResult.java index 9edbaa96e61cbd816a9b4247a55c2d69198bda7c..08d4b51fdea89672d4a0cf593469dc4776e19a65 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/SubmissionResult.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/db/SubmissionResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionProcedureSpecification.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionProcedureSpecification.java index 586e1722e139b073c52d27d6520d1d3b373f999f..9c19d06d832e638bbb1826cb0417a215030ef1c4 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionProcedureSpecification.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionProcedureSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionSystemProgressEntryType.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionSystemProgressEntryType.java index 73d9aab757aeded1f3c194f65cf0dc6f37cd53f4..931d30874c7a17110e3ba746317fa24f43e0e381 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionSystemProgressEntryType.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/MeaslesProtectionSystemProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/ResultPage.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/ResultPage.java index a9b5cef9e5163b84dbeedf2bcf73e42e4f57a3f0..593e7d57f8753758fbc239a508535dd49fe8e72a 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/ResultPage.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/persistence/support/ResultPage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/MeaslesProtectionTestHelperService.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/MeaslesProtectionTestHelperService.java index 2ee1685cc87c2a9e15b6f597c90719db539ac414..a2dcd3cf058fc4b5500c28f7852da9655457e978 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/MeaslesProtectionTestHelperService.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/MeaslesProtectionTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedurePopulator.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedurePopulator.java index a284963a7c2de157cec068386f963d1c433deb60..8312d29831a116a4f6fbbdb8ba7a15ffd017ba1c 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedurePopulator.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedurePopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedureTestHelperController.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedureTestHelperController.java index 420136c1b36ecdb2bf9f253d8dd91a31c725e164..fe07287a3ed91efff384eb4772f4e25db9a8ee96 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedureTestHelperController.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/testhelper/ProtectionProcedureTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/Adult.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/Adult.java index 68f44ce24064104c28a6d6f7d82571bb767654ac..51016b8da81197693fba622ecdf8d12fe8542c0c 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/Adult.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/Adult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/AdultValidator.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/AdultValidator.java index 4afb4106b50893586d84f5dc18335fea6bfe6bb0..a7e3ffe6a46b292f4a27514229f53774ab8a8501 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/AdultValidator.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/AdultValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ConfigurationCustomizer.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ConfigurationCustomizer.java index f1b9fdda4ee8d3b8cf7afb042dd02b885ea2dec4..05feecc66a1d7baa187d1d4bfb4577efeacbebc1 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ConfigurationCustomizer.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ConfigurationCustomizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/InjectableClockProvider.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/InjectableClockProvider.java index b3041b15ac0d3db4f7dcb409905e779944d3ee52..1e146ef9c679f255ad445f05bbf61b2b1f25d2a3 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/InjectableClockProvider.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/InjectableClockProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedure.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedure.java index 671ec80abfd472978dca3dc720b6e1331df2f297..54cbddc3a8885884656a9b9641927e3c19a870d5 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedure.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedureValidator.java b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedureValidator.java index 2cc99d7127aa4067aac105b524dba212cc0f9255..de1e295527238f6189f1c7f7d9347510073f2d67 100644 --- a/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedureValidator.java +++ b/backend/measles-protection/src/main/java/de/eshg/measlesprotection/validation/ProtectedProcedureValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/measles-protection/src/main/resources/migrations/0001_initial.xml b/backend/measles-protection/src/main/resources/migrations/0001_initial.xml index 306d9f2e96a873a56abc1ec6440a215f6d99735e..a32e52cd07423a236c614609e43616860652f68c 100644 --- a/backend/measles-protection/src/main/resources/migrations/0001_initial.xml +++ b/backend/measles-protection/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0002_rename_tables.xml b/backend/measles-protection/src/main/resources/migrations/0002_rename_tables.xml index 6b0eda313e1fcdbbb8fa65e7aade90f9585c62aa..0029e932b8f33d66c45dbc25549d7bd59d98012d 100644 --- a/backend/measles-protection/src/main/resources/migrations/0002_rename_tables.xml +++ b/backend/measles-protection/src/main/resources/migrations/0002_rename_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0003_indices_for_many_to_one_relations.xml b/backend/measles-protection/src/main/resources/migrations/0003_indices_for_many_to_one_relations.xml index 31c60fc39a4ce77807e151ac77a820c1757d0454..2e2c6420d3dbd05a04bd88b69385dc1a37ac637f 100644 --- a/backend/measles-protection/src/main/resources/migrations/0003_indices_for_many_to_one_relations.xml +++ b/backend/measles-protection/src/main/resources/migrations/0003_indices_for_many_to_one_relations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0004_access_restriction_multiplicity.xml b/backend/measles-protection/src/main/resources/migrations/0004_access_restriction_multiplicity.xml index 9480e03334e2e2e131f2f418d4681eb519edb602..c9faddeb9a7b3212658ecc5a8dea4967cf70c374 100644 --- a/backend/measles-protection/src/main/resources/migrations/0004_access_restriction_multiplicity.xml +++ b/backend/measles-protection/src/main/resources/migrations/0004_access_restriction_multiplicity.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0005_inbox_procedure_add_closed_at.xml b/backend/measles-protection/src/main/resources/migrations/0005_inbox_procedure_add_closed_at.xml index 954cce4b48cb743ee158e5178a2266a4d3587dfb..917255a1abab0b756b93bfb923841d85febc0d24 100644 --- a/backend/measles-protection/src/main/resources/migrations/0005_inbox_procedure_add_closed_at.xml +++ b/backend/measles-protection/src/main/resources/migrations/0005_inbox_procedure_add_closed_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0006_add_mpfacilitytype_enum.xml b/backend/measles-protection/src/main/resources/migrations/0006_add_mpfacilitytype_enum.xml index 78235a7e4b690b598ae644e7c7185f4de4fa5e53..1adc53b31d9deeed68a75ec7bb6d2cf42a0727af 100644 --- a/backend/measles-protection/src/main/resources/migrations/0006_add_mpfacilitytype_enum.xml +++ b/backend/measles-protection/src/main/resources/migrations/0006_add_mpfacilitytype_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0007_add_deadline_to_proof_request_letter.xml b/backend/measles-protection/src/main/resources/migrations/0007_add_deadline_to_proof_request_letter.xml index 80d923c2e49de3721eeced451d46c2577d96554a..901eba82e4ce6fdbeba66211a367b5a0b6c78f9c 100644 --- a/backend/measles-protection/src/main/resources/migrations/0007_add_deadline_to_proof_request_letter.xml +++ b/backend/measles-protection/src/main/resources/migrations/0007_add_deadline_to_proof_request_letter.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0008_mandatory_fk_for_monetary_fine_and_proof_request_letter.xml b/backend/measles-protection/src/main/resources/migrations/0008_mandatory_fk_for_monetary_fine_and_proof_request_letter.xml index 792a2f61b372c6e3c681e28ab9c4aa1f23d55001..71c2dde1b5df32d47a351dfc6df70f34bde4b8d3 100644 --- a/backend/measles-protection/src/main/resources/migrations/0008_mandatory_fk_for_monetary_fine_and_proof_request_letter.xml +++ b/backend/measles-protection/src/main/resources/migrations/0008_mandatory_fk_for_monetary_fine_and_proof_request_letter.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml b/backend/measles-protection/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml index b2a6682e605eafe5a4ae6d04e3ae355a2287d4ba..45cc09b8465d4e95b79dffafc2a9ad1d623da161 100644 --- a/backend/measles-protection/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml +++ b/backend/measles-protection/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0010_remove_procedure_result.xml b/backend/measles-protection/src/main/resources/migrations/0010_remove_procedure_result.xml index a277a33668f708f519ff3c3e9a6ae04cec9ae1d8..fcfbf1be9124ea72117e121d09c25d1b28534ac7 100644 --- a/backend/measles-protection/src/main/resources/migrations/0010_remove_procedure_result.xml +++ b/backend/measles-protection/src/main/resources/migrations/0010_remove_procedure_result.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0011_remove_procedure_type_2.xml b/backend/measles-protection/src/main/resources/migrations/0011_remove_procedure_type_2.xml index f5bdc05931258059bd287e198e7fbf25335668fc..fdca4f621539b7ef9c43f2228de63c8c7535fd58 100644 --- a/backend/measles-protection/src/main/resources/migrations/0011_remove_procedure_type_2.xml +++ b/backend/measles-protection/src/main/resources/migrations/0011_remove_procedure_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0012_remove_task_type_2.xml b/backend/measles-protection/src/main/resources/migrations/0012_remove_task_type_2.xml index 633b050e733e1930950749ec435fc4a0e7d6c290..d112d7900d7439f1605076ad94a3eb43caae3fb7 100644 --- a/backend/measles-protection/src/main/resources/migrations/0012_remove_task_type_2.xml +++ b/backend/measles-protection/src/main/resources/migrations/0012_remove_task_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0013_update_trigger_type.xml b/backend/measles-protection/src/main/resources/migrations/0013_update_trigger_type.xml index 1a5c68bf45a40bea1e1accb87bfae485307bed07..de251743de6a2a7105ee00a61550ce9465c57ffa 100644 --- a/backend/measles-protection/src/main/resources/migrations/0013_update_trigger_type.xml +++ b/backend/measles-protection/src/main/resources/migrations/0013_update_trigger_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0014_unique_facility_procedure_id_key.xml b/backend/measles-protection/src/main/resources/migrations/0014_unique_facility_procedure_id_key.xml index 9854c11fcd0451b7908068b8e14311752e3acef9..9df04e20f57c1c86155183d43811c2b74531df0d 100644 --- a/backend/measles-protection/src/main/resources/migrations/0014_unique_facility_procedure_id_key.xml +++ b/backend/measles-protection/src/main/resources/migrations/0014_unique_facility_procedure_id_key.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0015_add_sti_protection_procedure_lib_enum_values.xml b/backend/measles-protection/src/main/resources/migrations/0015_add_sti_protection_procedure_lib_enum_values.xml index e174fbce405e561969e34a6857c8c316f5c25172..1fc6b4091123165eba5003c36cebb128191f7817 100644 --- a/backend/measles-protection/src/main/resources/migrations/0015_add_sti_protection_procedure_lib_enum_values.xml +++ b/backend/measles-protection/src/main/resources/migrations/0015_add_sti_protection_procedure_lib_enum_values.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0016_central_file_state_id_unique_index.xml b/backend/measles-protection/src/main/resources/migrations/0016_central_file_state_id_unique_index.xml index 86b6d3978945bf8e44a7b0544ae6788f8ed81f7c..bcee49fd47999c77411b75d72b143e7511f7ef46 100644 --- a/backend/measles-protection/src/main/resources/migrations/0016_central_file_state_id_unique_index.xml +++ b/backend/measles-protection/src/main/resources/migrations/0016_central_file_state_id_unique_index.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0017_add_cemetery.xml b/backend/measles-protection/src/main/resources/migrations/0017_add_cemetery.xml index 663357331f7755c9ced82ee843aad10164b1aaf1..6228443f842732217c662b0ec258266675ce23f1 100644 --- a/backend/measles-protection/src/main/resources/migrations/0017_add_cemetery.xml +++ b/backend/measles-protection/src/main/resources/migrations/0017_add_cemetery.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0018_remove_progress_entry_deleted.xml b/backend/measles-protection/src/main/resources/migrations/0018_remove_progress_entry_deleted.xml index d7e8df4b552c35f2d8d160c7714367f9d1243f0d..6a939cd4cfd0eae09337757937f5e986cff0a08c 100644 --- a/backend/measles-protection/src/main/resources/migrations/0018_remove_progress_entry_deleted.xml +++ b/backend/measles-protection/src/main/resources/migrations/0018_remove_progress_entry_deleted.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0019_appointment_block_location.xml b/backend/measles-protection/src/main/resources/migrations/0019_appointment_block_location.xml index 19b32e76369ef621ed74be90241e88d49b90db83..b0dc9e82ddc5c21d3274192cd33ba7bf6778cdf4 100644 --- a/backend/measles-protection/src/main/resources/migrations/0019_appointment_block_location.xml +++ b/backend/measles-protection/src/main/resources/migrations/0019_appointment_block_location.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0020_insert_UUID_for_procedures_from_citizen_portal.xml b/backend/measles-protection/src/main/resources/migrations/0020_insert_UUID_for_procedures_from_citizen_portal.xml index 91bd9dd90d9323afd7238b6577a683d5c9b4fefc..7092663330fe1c11dfc26806b75051163b626abc 100644 --- a/backend/measles-protection/src/main/resources/migrations/0020_insert_UUID_for_procedures_from_citizen_portal.xml +++ b/backend/measles-protection/src/main/resources/migrations/0020_insert_UUID_for_procedures_from_citizen_portal.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0021_add_procedure_exported_at.xml b/backend/measles-protection/src/main/resources/migrations/0021_add_procedure_exported_at.xml index 197d438fc56958ea9a819fd9193404fb939fd7e1..796f684e602189478def1a6fbfbcaf33b28c2962 100644 --- a/backend/measles-protection/src/main/resources/migrations/0021_add_procedure_exported_at.xml +++ b/backend/measles-protection/src/main/resources/migrations/0021_add_procedure_exported_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0022_add_consultant_to_appointment_blocks.xml b/backend/measles-protection/src/main/resources/migrations/0022_add_consultant_to_appointment_blocks.xml index d58c350d333e3934734c34ffc6dd50c8ee59e59d..68080f358538e95e443d94d9a2805693e0bb7b10 100644 --- a/backend/measles-protection/src/main/resources/migrations/0022_add_consultant_to_appointment_blocks.xml +++ b/backend/measles-protection/src/main/resources/migrations/0022_add_consultant_to_appointment_blocks.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0023_procedure_sequences.xml b/backend/measles-protection/src/main/resources/migrations/0023_procedure_sequences.xml index 0ce448ac67868e145fd2b2346e7283c80d37b108..a82558037cab74f660b15fdede679c35ae3bcb98 100644 --- a/backend/measles-protection/src/main/resources/migrations/0023_procedure_sequences.xml +++ b/backend/measles-protection/src/main/resources/migrations/0023_procedure_sequences.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0024_introduce_procedure_file_type.xml b/backend/measles-protection/src/main/resources/migrations/0024_introduce_procedure_file_type.xml index 90a5df65b363ab278c3ba3a62941d86806b051a8..3558a0bd85051e374a7bccf44ee00e3afe9555e5 100644 --- a/backend/measles-protection/src/main/resources/migrations/0024_introduce_procedure_file_type.xml +++ b/backend/measles-protection/src/main/resources/migrations/0024_introduce_procedure_file_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0025_medical_registry_procedure_types.xml b/backend/measles-protection/src/main/resources/migrations/0025_medical_registry_procedure_types.xml index 21b419fae25d7dc24f7b51eda6325688211b2b1a..f3564c33df47a27379b995555c627d46bbadc90f 100644 --- a/backend/measles-protection/src/main/resources/migrations/0025_medical_registry_procedure_types.xml +++ b/backend/measles-protection/src/main/resources/migrations/0025_medical_registry_procedure_types.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0026_remove_key_document_type_enum.xml b/backend/measles-protection/src/main/resources/migrations/0026_remove_key_document_type_enum.xml index 9c8360be7cc7efa4de7e20d752461bc68d6acb6d..16dfcfcd1825c953fab9fbc0f95a67c2707b83ec 100644 --- a/backend/measles-protection/src/main/resources/migrations/0026_remove_key_document_type_enum.xml +++ b/backend/measles-protection/src/main/resources/migrations/0026_remove_key_document_type_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0027_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml b/backend/measles-protection/src/main/resources/migrations/0027_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml index 96375e47f8db1d7bfb615060bb3ffe38809e105e..0b495386302328bee469b00fef5aaf9ba6b7741d 100644 --- a/backend/measles-protection/src/main/resources/migrations/0027_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml +++ b/backend/measles-protection/src/main/resources/migrations/0027_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0028_add_system_progress_entry_keydocument.xml b/backend/measles-protection/src/main/resources/migrations/0028_add_system_progress_entry_keydocument.xml index 2ef4593b8cc84a692bf38a8c8d741a0af8224b3d..30799d700f6432f3f4778e733e0ed08e89f866e9 100644 --- a/backend/measles-protection/src/main/resources/migrations/0028_add_system_progress_entry_keydocument.xml +++ b/backend/measles-protection/src/main/resources/migrations/0028_add_system_progress_entry_keydocument.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0029_cemetery_sequence.xml b/backend/measles-protection/src/main/resources/migrations/0029_cemetery_sequence.xml index 1b1ac8a9f7841c1b969399b3ea3a2152de988545..36c73b1535f2d137edd009560dd6f537443b42c6 100644 --- a/backend/measles-protection/src/main/resources/migrations/0029_cemetery_sequence.xml +++ b/backend/measles-protection/src/main/resources/migrations/0029_cemetery_sequence.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0030_move_subject_and_message_text_to_mail_metadata.xml b/backend/measles-protection/src/main/resources/migrations/0030_move_subject_and_message_text_to_mail_metadata.xml index 609846864d70853f0ad803232dc97d5ff9a9ad21..18aab2df5ffb8b18fd3357efdaac519c7f1f67fa 100644 --- a/backend/measles-protection/src/main/resources/migrations/0030_move_subject_and_message_text_to_mail_metadata.xml +++ b/backend/measles-protection/src/main/resources/migrations/0030_move_subject_and_message_text_to_mail_metadata.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0031_add_gdpr_validation_task.xml b/backend/measles-protection/src/main/resources/migrations/0031_add_gdpr_validation_task.xml index fc254c7a0cef19d9122400cacc88b542d426fc90..31212fd52882108afe16d4c39a9c9610504dfde4 100644 --- a/backend/measles-protection/src/main/resources/migrations/0031_add_gdpr_validation_task.xml +++ b/backend/measles-protection/src/main/resources/migrations/0031_add_gdpr_validation_task.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0032_add_started_at.xml b/backend/measles-protection/src/main/resources/migrations/0032_add_started_at.xml index 0f98e184b53908a01e63db5f92e631d4fd4592b1..59cb9daf4eac2c0771081989353c32cc1d9e71c0 100644 --- a/backend/measles-protection/src/main/resources/migrations/0032_add_started_at.xml +++ b/backend/measles-protection/src/main/resources/migrations/0032_add_started_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0033_drop_not_null_constraints.xml b/backend/measles-protection/src/main/resources/migrations/0033_drop_not_null_constraints.xml index b92fba35ff4d66ae69d156bd3e46749c5d62b5fb..4f2a1cc940601660bd27dc22186a19eb031cdcb9 100644 --- a/backend/measles-protection/src/main/resources/migrations/0033_drop_not_null_constraints.xml +++ b/backend/measles-protection/src/main/resources/migrations/0033_drop_not_null_constraints.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0034_rename_gdpr_validation_task_procedure_id.xml b/backend/measles-protection/src/main/resources/migrations/0034_rename_gdpr_validation_task_procedure_id.xml index 040274eb82c783e118781ac8e754679df317f107..5afddf78e56eb23c9463cdaced0c7e0b3a5abd5c 100644 --- a/backend/measles-protection/src/main/resources/migrations/0034_rename_gdpr_validation_task_procedure_id.xml +++ b/backend/measles-protection/src/main/resources/migrations/0034_rename_gdpr_validation_task_procedure_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0035_add_download_package_table.xml b/backend/measles-protection/src/main/resources/migrations/0035_add_download_package_table.xml index 8560d84aae548c983f547b6c851d84e42216b0f7..086f58c7652d882ac8850835a0b95d795930ca05 100644 --- a/backend/measles-protection/src/main/resources/migrations/0035_add_download_package_table.xml +++ b/backend/measles-protection/src/main/resources/migrations/0035_add_download_package_table.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0036_add_dental_as_procedure_type.xml b/backend/measles-protection/src/main/resources/migrations/0036_add_dental_as_procedure_type.xml index 201ab3f220c53292400c6945a5dd186737ff4599..9e66f1fa5a7e3fadc58fe0075fae6d92bc49ea35 100644 --- a/backend/measles-protection/src/main/resources/migrations/0036_add_dental_as_procedure_type.xml +++ b/backend/measles-protection/src/main/resources/migrations/0036_add_dental_as_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0037_add_official_medical_service_procedure_type.xml b/backend/measles-protection/src/main/resources/migrations/0037_add_official_medical_service_procedure_type.xml index ee1996e1253420d22dcfc24c8af13255f168d834..e51592c72eab6d0ec644b90ce9f0084c1f5004b0 100644 --- a/backend/measles-protection/src/main/resources/migrations/0037_add_official_medical_service_procedure_type.xml +++ b/backend/measles-protection/src/main/resources/migrations/0037_add_official_medical_service_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0038_add_mail_to_simple_notification.xml b/backend/measles-protection/src/main/resources/migrations/0038_add_mail_to_simple_notification.xml index 200892ba85d414eb2882bf7961706eda7a47046b..2b9e54ddc1f47958989772a2906bb6d8d711e17b 100644 --- a/backend/measles-protection/src/main/resources/migrations/0038_add_mail_to_simple_notification.xml +++ b/backend/measles-protection/src/main/resources/migrations/0038_add_mail_to_simple_notification.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/measles-protection/src/main/resources/migrations/0039_invert_inbox_procedure_relationships.xml b/backend/measles-protection/src/main/resources/migrations/0039_invert_inbox_procedure_relationships.xml new file mode 100644 index 0000000000000000000000000000000000000000..b477ebeeca47e0bf2add3bba8e686b2b119f5646 --- /dev/null +++ b/backend/measles-protection/src/main/resources/migrations/0039_invert_inbox_procedure_relationships.xml @@ -0,0 +1,72 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733835693519-1"> + <addColumn tableName="inbox_procedure"> + <column name="contact_details_id" type="BIGINT"/> + </addColumn> + <sql> + UPDATE inbox_procedure + SET contact_details_id=contact_details.id FROM contact_details + WHERE contact_details.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="contact_details_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="contact_details_id" + constraintName="inbox_procedure_contact_details_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_contact_details" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" referencedTableName="contact_details" + validate="true"/> + + <dropForeignKeyConstraint baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure"/> + <dropUniqueConstraint + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + <dropColumn columnName="inbox_procedure_id" tableName="contact_details"/> + </changeSet> + <changeSet author="GA-Lotse" id="1733835693519-2"> + <addColumn tableName="inbox_procedure"> + <column name="inbox_progress_entry_id" type="BIGINT"/> + </addColumn> + + <sql> + UPDATE inbox_procedure + SET inbox_progress_entry_id=inbox_progress_entry.id FROM inbox_progress_entry + WHERE inbox_progress_entry.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="inbox_progress_entry_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="inbox_progress_entry_id" + constraintName="inbox_procedure_inbox_progress_entry_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="inbox_progress_entry_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_inbox_progress_entry" + deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="inbox_progress_entry" validate="true"/> + + <dropForeignKeyConstraint baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure"/> + <dropUniqueConstraint + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + <dropColumn columnName="inbox_procedure_id" + tableName="inbox_progress_entry"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/measles-protection/src/main/resources/migrations/0040_add_official_medical_service_appointment_type.xml b/backend/measles-protection/src/main/resources/migrations/0040_add_official_medical_service_appointment_type.xml new file mode 100644 index 0000000000000000000000000000000000000000..53fe6666b15fe9722125d71f86304810becfa0d2 --- /dev/null +++ b/backend/measles-protection/src/main/resources/migrations/0040_add_official_medical_service_appointment_type.xml @@ -0,0 +1,11 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733920622934-1"> + <ext:addPostgresEnumValues enumTypeName="appointmenttype" valuesToAdd="OFFICIAL_MEDICAL_SERVICE"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/measles-protection/src/main/resources/migrations/changelog.xml b/backend/measles-protection/src/main/resources/migrations/changelog.xml index a931f936a6235c9f03246c9ad73d3e0e90bdcb64..73cb7982330d915485694d6fb8f2a2fb3f2fff02 100644 --- a/backend/measles-protection/src/main/resources/migrations/changelog.xml +++ b/backend/measles-protection/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> @@ -52,5 +52,7 @@ <include file="migrations/0037_add_official_medical_service_procedure_type.xml"/> <include file="migrations/0038_add_mail_to_simple_notification.xml"/> + <include file="migrations/0039_invert_inbox_procedure_relationships.xml"/> + <include file="migrations/0040_add_official_medical_service_appointment_type.xml"/> </databaseChangeLog> diff --git a/backend/measles-protection/src/main/resources/templates/coverletters/cover-letter.css b/backend/measles-protection/src/main/resources/templates/coverletters/cover-letter.css index 035351e73254f6db38c23f1443e2a29d75c19069..d107002c9d3824acdc9ad52b4c993795fec3fc7e 100644 --- a/backend/measles-protection/src/main/resources/templates/coverletters/cover-letter.css +++ b/backend/measles-protection/src/main/resources/templates/coverletters/cover-letter.css @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/medical-registry/openApi.yaml b/backend/medical-registry/openApi.yaml index 712b9dd50e70945835d6df3c62df998c22fa49a9..600fe38f8799fee92f8be313d4eca21bb2509650 100644 --- a/backend/medical-registry/openApi.yaml +++ b/backend/medical-registry/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 @@ -252,6 +252,18 @@ paths: description: OK tags: - Archiving + /feature-toggles: + get: + operationId: getFeatureToggles + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/GetMedicalRegistryFeatureTogglesResponse" + description: OK + tags: + - MedicalRegistryFeatureTogglesPublic /files/{fileId}: delete: operationId: deleteFile @@ -1186,6 +1198,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -1897,36 +1928,6 @@ paths: description: OK tags: - TestHelper - /test-helper/medical-registry-entries/{procedureId}/close: - post: - operationId: closeProcedure - parameters: - - in: path - name: procedureId - required: true - schema: - type: string - format: uuid - responses: - "200": - description: OK - tags: - - TestHelper - /test-helper/medical-registry-entries/{procedureId}/open: - post: - operationId: openProcedure - parameters: - - in: path - name: procedureId - required: true - schema: - type: string - format: uuid - responses: - "200": - description: OK - tags: - - TestHelper /test-helper/population: post: operationId: populateDefaults @@ -2057,9 +2058,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -2078,10 +2078,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -2196,7 +2193,6 @@ components: - firstName - gender - lastName - - nameAtBirth - nationality - phoneNumbers - placeOfBirth @@ -2385,75 +2381,28 @@ components: required: - businessProcedure - inclusionStatus - ConcreteFileDto: + CheckFileStateUsageRequest: type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: + properties: + fileStatesIds: + type: array + items: type: string format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' + maxItems: 2147483647 + minItems: 1 required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: + - fileStatesIds + CheckFileStateUsageResponse: type: object - discriminator: - propertyName: '@type' properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid + inUse: + type: array + items: + type: string + format: uuid required: - - '@type' + - inUse ConfirmProcedureRequest: type: object properties: @@ -2791,11 +2740,9 @@ components: required: - address - dateOfBirth - - emailAddress - firstName - gender - lastName - - nameAtBirth - nationality - phoneNumber - placeOfBirth @@ -3385,32 +3332,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -3616,6 +3541,22 @@ components: - medicalRegistryEntries - totalElements - totalPages + GetMedicalRegistryFeatureTogglesResponse: + type: object + properties: + disabledOldFeatures: + type: array + items: + $ref: "#/components/schemas/MedicalRegistryFeature" + uniqueItems: true + enabledNewFeatures: + type: array + items: + $ref: "#/components/schemas/MedicalRegistryFeature" + uniqueItems: true + required: + - disabledOldFeatures + - enabledNewFeatures GetMetaDataHistoryResponse: type: object properties: @@ -4130,7 +4071,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -4317,18 +4258,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -4501,6 +4435,10 @@ components: - practiceNames - status - version + MedicalRegistryFeature: + type: string + enum: + - CITIZEN_PORTAL_ENABLED MetaData: type: object discriminator: @@ -4554,7 +4492,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -5097,7 +5035,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/FacilityService.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/FacilityService.java index 6961b5e6c95656e6e989cd66ae524c20cbd9a27b..69da6f74819ca020071a3f35013dec8bc659d0af 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/FacilityService.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/FacilityService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryApplication.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryApplication.java index 8532491296392f0cd10519559649e3c6b3d7277e..ade968f683bc70483b9ec4ff20570da241d106d2 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryApplication.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,6 +7,7 @@ package de.eshg.medicalregistry; import de.eshg.lib.common.BusinessModule; import de.eshg.medicalregistry.config.MedicalRegistryProperties; +import de.eshg.medicalregistry.featuretoggle.MedicalRegistryFeatureToggle; import de.eshg.rest.service.security.config.MedicalRegistryPublicSecurityConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -16,7 +17,10 @@ import org.springframework.context.annotation.Import; @SpringBootApplication @Import(MedicalRegistryPublicSecurityConfig.class) -@EnableConfigurationProperties(MedicalRegistryProperties.class) +@EnableConfigurationProperties({ + MedicalRegistryProperties.class, + MedicalRegistryFeatureToggle.class +}) public class MedicalRegistryApplication { @Bean diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryController.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryController.java index 7ca10870bca18fe57b21712c0f8d7cf9fbf14c1f..bf8178cc0bb788031eed8cbf7251dd8319edd2be 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryController.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -55,7 +55,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.UUID; -import java.util.function.Supplier; import java.util.stream.Collectors; import org.springdoc.core.annotations.ParameterObject; import org.springframework.http.MediaType; @@ -128,7 +127,7 @@ public class MedicalRegistryController { Validator.validateIsMedicalRegistryEntryChange( medicalRegistryService .findProcedureByExternalIdForUpdate(procedureId, confirmProcedureRequest.version()) - .orElseThrow(notFoundException(procedureId))); + .orElseThrow(MedicalRegistryController::notFoundException)); Validator.validateIsDraft(sourceMedicalRegistryChange); @@ -186,8 +185,7 @@ public class MedicalRegistryController { medicalRegistryService .findProcedureByExternalIdForUpdate(targetReference.id(), targetReference.version()) .map(Validator::validateIsMedicalRegistryEntry) - .orElseThrow( - () -> new BadRequestException(makeProcedureNotFoundMessage(targetReference.id()))); + .orElseThrow(() -> new BadRequestException(makeProcedureNotFoundMessage())); validator.validateMergeTarget( mergeTarget, confirmProcedureRequest.professionalReferencePerson()); @@ -344,7 +342,7 @@ public class MedicalRegistryController { MedicalRegistryProcedure medicalRegistryProcedure = medicalRegistryService .findProcedureByExternalId(procedureId) - .orElseThrow(notFoundException(procedureId)); + .orElseThrow(MedicalRegistryController::notFoundException); Professional professional = medicalRegistryProcedure.getProfessional(); GetPersonFileStateResponse professionalDetails = @@ -378,7 +376,7 @@ public class MedicalRegistryController { MedicalRegistryProcedure medicalRegistryProcedure = medicalRegistryService .findProcedureByExternalIdForUpdate(procedureId, request.version()) - .orElseThrow(notFoundException(procedureId)); + .orElseThrow(MedicalRegistryController::notFoundException); MedicalRegistryEntryChange medicalRegistryEntryChange = Validator.validateIsMedicalRegistryEntryChange(medicalRegistryProcedure); @@ -437,12 +435,11 @@ public class MedicalRegistryController { return String.format("%s.%s", filename, FileType.JPEG.getDefaultFileExtension().getValue()); } - private static Supplier<NotFoundException> notFoundException(UUID procedureId) { - return () -> new NotFoundException(makeProcedureNotFoundMessage(procedureId)); + private static NotFoundException notFoundException() { + return new NotFoundException(makeProcedureNotFoundMessage()); } - private static String makeProcedureNotFoundMessage(UUID procedureId) { - return "%s with UUID %s not found" - .formatted(MedicalRegistryProcedure.class.getSimpleName(), procedureId); + private static String makeProcedureNotFoundMessage() { + return "%s with given UUID not found".formatted(MedicalRegistryProcedure.class.getSimpleName()); } } diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryGuard.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryGuard.java index 5be4849a9add0eb2c848b59dc973d60862d0b454..bee095d9935a1ff525348ee7f64ce4a9294a7c36 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryGuard.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryGuard.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryImportController.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryImportController.java index 937f1187ba0401507c3320be2598c0270da09c20..cca61baebdf38e028342dd35ad6d79cacba9482c 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryImportController.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryImportController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryProcedureSearchableStringFormatter.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryProcedureSearchableStringFormatter.java index cfa2208e2bc4fed56a895a81cd98bb8522f0000b..d5cc987b8e66a2d18259a5c54367c04e41b3111b 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryProcedureSearchableStringFormatter.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryProcedureSearchableStringFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryPublicCitizenController.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryPublicCitizenController.java index bb1f96d2249567d43b635cf3fcf31fa741bea8e7..8f42481c72461f814cae21d73911d07189a0df71 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryPublicCitizenController.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryPublicCitizenController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistrySearchController.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistrySearchController.java index c3a274912fa2fa12ce75eaa9ed2950932e39a3c1..626e02e03d715d4bdff03c02eba3a23dbd7f75a1 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistrySearchController.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistrySearchController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryService.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryService.java index eefcb21e282fc7f4cb1af5e8d47d0b7c91095f6d..6cf1a2efdc8f48ae1a75a33ad490b43eb0c7cbd0 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryService.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/MedicalRegistryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/PersonService.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/PersonService.java index 643a4ffe5f8c0be7a79535e7defd97b12fa52827..bc078aeac10517e2109bb0a0334dabdc886c6c5e 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/PersonService.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/PersonService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/SearchMedicalRegistryByPersonResponse.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/SearchMedicalRegistryByPersonResponse.java index 024c3e6a1860d44f0f70633473dfd5c91a911b43..189145fad9b770f158dae1f79cf321bc89c174da 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/SearchMedicalRegistryByPersonResponse.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/SearchMedicalRegistryByPersonResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/Validator.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/Validator.java index 3ed710c3c3c390b3b82bb5bc1ccccedc9751b1be..524080296636553a8c3ad915daa42f9dad576679 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/Validator.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/Validator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantAddressDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantAddressDto.java index 60499645a848e2172e2daace5b08924d6cd32fbb..16317bbe6851e41c1ccacf47b9f2839dbbfbc6ad 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantAddressDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantDto.java index 0a39dbcfe1f4702254e8dfc59aca67effcc849c1..c4e8176631f89507dd8d00c9a8c772989121b8d6 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ApplicantDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.medicalregistry.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.lib.common.CountryCode; import io.swagger.v3.oas.annotations.media.Schema; @@ -23,9 +23,9 @@ public record ApplicantDto( @NotNull @Size(min = 1, max = 80) String firstName, @NotNull @Size(min = 1, max = 120) String lastName, @NotNull LocalDate dateOfBirth, - @NotNull @Size(min = 1, max = 40) String nameAtBirth, + @Size(min = 1, max = 40) String nameAtBirth, @NotNull @Size(min = 1, max = 50) String placeOfBirth, - @NotEmpty List<@EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotEmpty List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @NotNull @Valid ApplicantAddressDto address, @NotNull CountryCode nationality) {} diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ConfirmProcedureRequest.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ConfirmProcedureRequest.java index 6ef98d72158e2095e36e9b227a56423768eb5843..8aea748064d398dc672f7b300759e5dd2a0e6c26 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ConfirmProcedureRequest.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ConfirmProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantChangeRequest.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantChangeRequest.java index 0c2cf8c8c8953b31597ce2bd6edfec1660a025c1..a6c07fad940e3222cd90c743c712910c9026ec65 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantChangeRequest.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantChangeRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantDto.java index 2cbe5f76c90809205078616767c948a4d1358b62..de27df8f1dcfefcb5a92a9dcef3dfa70733b1df9 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateApplicantDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -21,9 +21,9 @@ public class CreateApplicantDto { private @NotNull @Size(min = 1, max = 80) String firstName; private @NotNull @Size(min = 1, max = 120) String lastName; private @NotNull LocalDate dateOfBirth; - private @NotNull @Size(min = 1, max = 40) String nameAtBirth; + private @Size(min = 1, max = 40) String nameAtBirth; private @NotNull @Size(min = 1, max = 50) String placeOfBirth; - private @NotNull @EmailAddressConstraint String emailAddress; + private @EmailAddressConstraint String emailAddress; private @NotNull @Size(min = 1, max = 23) String phoneNumber; private @NotNull @Valid ApplicantAddressDto address; private @NotNull CountryCode nationality; @@ -31,17 +31,17 @@ public class CreateApplicantDto { public CreateApplicantDto() {} public CreateApplicantDto( - @Size(min = 1, max = 119) String title, - @NotNull GenderDto gender, - @NotNull @Size(min = 1, max = 80) String firstName, - @NotNull @Size(min = 1, max = 120) String lastName, - @NotNull LocalDate dateOfBirth, - @NotNull @Size(min = 1, max = 40) String nameAtBirth, - @NotNull @Size(min = 1, max = 50) String placeOfBirth, - @NotNull @EmailAddressConstraint String emailAddress, - @NotNull @Size(min = 1, max = 23) String phoneNumber, - @NotNull @Valid ApplicantAddressDto address, - @NotNull CountryCode nationality) { + String title, + GenderDto gender, + String firstName, + String lastName, + LocalDate dateOfBirth, + String nameAtBirth, + String placeOfBirth, + String emailAddress, + String phoneNumber, + ApplicantAddressDto address, + CountryCode nationality) { this.title = title; this.gender = gender; this.firstName = firstName; @@ -55,6 +55,29 @@ public class CreateApplicantDto { this.nationality = nationality; } + public CreateApplicantDto( + GenderDto gender, + String firstName, + String lastName, + LocalDate dateOfBirth, + String placeOfBirth, + String phoneNumber, + ApplicantAddressDto address, + CountryCode nationality) { + this( + null, + gender, + firstName, + lastName, + dateOfBirth, + null, + placeOfBirth, + null, + phoneNumber, + address, + nationality); + } + public String getTitle() { return title; } diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateFullChangeRequest.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateFullChangeRequest.java index 37778767ec9ec706e65900a17df3395d15d1ca6e..a82c80842420d19be48f434e47f9a55c0e64b74a 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateFullChangeRequest.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateFullChangeRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeChangeRequest.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeChangeRequest.java index ba859cc4690a68f6fa64c12bc1c24dcc21ac1ca6..e028c3accac5158c21fe37dab4173e98a1ad63ca 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeChangeRequest.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeChangeRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeDto.java index 6e1a409d729756e8fd0512b006e6b86756bfd519..da2e4f6787f8cc16ff277967673b87f2b20638c7 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreatePracticeDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.medicalregistry.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; @@ -19,7 +19,7 @@ public class CreatePracticeDto { @Size(min = 1, max = 300) private String name; - @NotNull @EmailAddressConstraint private String emailAddress; + @NotNull @MandatoryEmailAddressConstraint private String emailAddress; @NotNull @Size(min = 1, max = 23) diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProcedureRequest.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProcedureRequest.java index eaf09ea3da1dda044c3f616f64cdb919ad06b960..998f945ed05d653f31be3887511bbd0d50b5d2f4 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProcedureRequest.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProfessionInformationDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProfessionInformationDto.java index 774375714668b11ef6dfa4fc0d51fe91b92dbb0d..b22cad366be53e827e755e98a87bc448d7e3652b 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProfessionInformationDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/CreateProfessionInformationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/DeleteProcedureRequest.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/DeleteProcedureRequest.java index 00262900cfb99563e89200a7a07d54348f2fff04..31ce6032ddf9363f63f3a6a70e3c67af6bc4255a 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/DeleteProcedureRequest.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/DeleteProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentStatusDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentStatusDto.java index d6b39494cc18222928e7a14b373687495a439eb2..52c8beb7289a501c561e7662dc1e0d16b45304da 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentStatusDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentTypeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentTypeDto.java index a73ef83b3e00ef532c3b015bdfce27f35551ffe8..a352b3cd065d6557af2c78dd2550ec850d5e1189 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentTypeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/EmploymentTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryEntries.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryEntries.java index 697fcbd3bbd1b00190f68d0d5b2968858b8a85db..fcc812e214e2d6fe403a702226ab1cbdda38e61f 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryEntries.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryEntries.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresFilterOptions.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresFilterOptions.java index 4f7c22363517ff3ed2067636052e29a3acc4607d..c95a6bc7c5dff771b40322ffadb38d1e6c5f0bff 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresFilterOptions.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresPaginationOptions.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresPaginationOptions.java index 7d4b1f05f8e90f86dc992123c88521f3172068bb..3dc0241572b4d4761525db1e249a7839a0506862 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresPaginationOptions.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetMedicalRegistryProceduresPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureConfirmedResponse.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureConfirmedResponse.java index 5710b674590ccdbf3ba96e6d7e4888461198cc88..020034da10b4d5fbeb72b16511cd905df45301a8 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureConfirmedResponse.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureConfirmedResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureDraftResponse.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureDraftResponse.java index 3d919852d8311fe72f51dfc33a144201c1e85992..33150eed1f8f66960cbb624e9522760d3a81f5fa 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureDraftResponse.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureDraftResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureResponse.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureResponse.java index 24d46108a2c1a300a9c14041ed1afc96a7fd9682..7787d9397bc1c679db21469214b439a9689aecc0 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureResponse.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/GetProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntryDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntryDto.java index 24cb5707c79e74a9992ca03ac6359620048a4676..024fae118a34b87c5081b309c8ea725dd7e8c093 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntryDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntrySearchResultDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntrySearchResultDto.java index a544d1b1d3fd2133491836a79c44d7b993bab3f9..59845850eabe6339f0e17b489e17c2b21ee9d816 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntrySearchResultDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/MedicalRegistryEntrySearchResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeAddressDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeAddressDto.java index 203139a83fb609ee0bc9ce873deaa9406b50fffa..eadf4a30446002b7d0c62ff1a91b71f92b70e5f2 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeAddressDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeDto.java index 4fb92c478fc7a0807319734c97bdef7451bc53c4..e69597d4f9766f5b8889d304647b007b7b907b42 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.medicalregistry.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; @@ -17,7 +17,7 @@ import java.util.List; @Schema(name = "Practice") public record PracticeDto( @NotNull @Size(min = 1, max = 300) String name, - @NotEmpty List<@NotNull @EmailAddressConstraint String> emailAddresses, + @NotNull List<@MandatoryEmailAddressConstraint String> emailAddresses, @NotEmpty List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @NotNull @Valid PracticeAddressDto address, @Size(min = 6, max = 254) String website, diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeReferenceFacilityDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeReferenceFacilityDto.java index 928fb16b0c02f86ff13f4ac627287fada536ac6a..68a71180b7ed2887fc418ddb11c6c331a7b0e5c4 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeReferenceFacilityDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/PracticeReferenceFacilityDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.medicalregistry.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.address.AddressDto; import de.eshg.base.centralfile.api.facility.FacilityContactPersonDto; import de.eshg.base.centralfile.api.facility.FacilityDetails; @@ -21,7 +21,7 @@ public record PracticeReferenceFacilityDto( @NotNull UUID id, @NotNull long version, @NotNull @Size(min = 1, max = 300) String name, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(max = 23) String> phoneNumbers, @Valid List<FacilityContactPersonDto> contactPersons, @Valid AddressDto contactAddress, diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureReferenceDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureReferenceDto.java index 9fb3b346d200e0440d1925eef767ce59f7040455..4013093db738bbae432e86cb856848935f5a38d3 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureReferenceDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureReferenceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureTypeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureTypeDto.java index b52567f9e0df5d3b32dbadec2edbe5fc59833c5d..8d315aa40efaf50a18bd978d0fd4adbf2bf65bcc 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureTypeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProcedureTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionInformationDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionInformationDto.java index 674b3b40c5ffff39554f7539103e43f1931c33bf..cf4841b269f3986ff6ecf915702c0bab2fb11ce7 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionInformationDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionInformationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalReferencePersonDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalReferencePersonDto.java index ff6dec8899a4d6c8cea2cb9f1592e7f8519ff400..569df5e160fd1c19bc228c0a36d891de4d3377cd 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalReferencePersonDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalReferencePersonDto.java @@ -1,11 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.medicalregistry.api; -import de.eshg.CustomValidations.EmailAddressConstraint; +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; import de.eshg.base.GenderDto; import de.eshg.base.SalutationDto; import de.eshg.base.address.AddressDto; @@ -32,7 +32,7 @@ public record ProfessionalReferencePersonDto( @Size(min = 1, max = 40) String nameAtBirth, @Size(min = 1, max = 50) String placeOfBirth, CountryCode countryOfBirth, - List<@EmailAddressConstraint String> emailAddresses, + List<@MandatoryEmailAddressConstraint String> emailAddresses, List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, @Valid AddressDto contactAddress, @Valid AddressDto differentBillingAddress) diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalTitleDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalTitleDto.java index bda5768ae1309eb854dac0101bd9ece7e5c6eb05..93e9a73807fa3425efcba73e61d0632ca3644399 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalTitleDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/ProfessionalTitleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfApplicantChangeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfApplicantChangeDto.java index 27ce89c8ca8c161b4c962e5ba471f8afc964ec6b..fd90f509a88f8acba3ae398755dbd0c728b87f44 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfApplicantChangeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfApplicantChangeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfChangeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfChangeDto.java index fb36ca235467fdea207302bad321c92f8c3386b9..5c8cacd9d323ba7c3d52c2a2156409c9770d2a70 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfChangeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfChangeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfFullChangeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfFullChangeDto.java index 79358eec7008322eb44b0942585a50eb308be1e5..8ff25082786c7cb5d8ea42fde2d4e9755b540b1e 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfFullChangeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfFullChangeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfPracticeChangeDto.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfPracticeChangeDto.java index 703ad6a9daa76329630071902a4448d74d6e4ac4..dfbee1fee3ed34cd41561e65d19a622ab780969e 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfPracticeChangeDto.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/api/TypeOfPracticeChangeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/DocumentData.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/DocumentData.java index f462b37c6fa38670bc2783d435fb52c544730167..a15945b62f81b465357d31460dc6968aba16f809 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/DocumentData.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/DocumentData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/MedicalRegistryKeyDocumentType.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/MedicalRegistryKeyDocumentType.java index f1822e1d3b5e4f5dbae63d6bf57a108175660d49..9566ddd6c7abcc725fba527633370d957d03dd04 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/MedicalRegistryKeyDocumentType.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/business/model/MedicalRegistryKeyDocumentType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryAuditLogConfiguration.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryAuditLogConfiguration.java index 3678d7987c206c39b1044196d8bb7c443c14d916..a688bb09d274d942402062ea539a7eeae5f5ec5b 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryAuditLogConfiguration.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProcedureConfiguration.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProcedureConfiguration.java index dc8aa695dc10acdff2f0a7919980079741dd65f8..40f12a33773d8e31db494381466dbeba34b52758 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProcedureConfiguration.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProperties.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProperties.java index 71a7700d6f03075e9c3efbe5868d2845eba7e7bc..91b9319ff7b9888e9fd591f708981a1191429e63 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProperties.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/config/MedicalRegistryProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentStatus.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentStatus.java index 1ddebf305040249f07342e17693650d87c0e98de..34cfccc2074668fb6a9fe14c6be80fa9a8089cc3 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentStatus.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentType.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentType.java index da05806dcaeb7d8d8e2e24d3727751715058deab..cf8b09310cabf9de71eec837f3a52cd0ea04979d 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentType.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/EmploymentType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/FullMedicalRegistryEntryChange.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/FullMedicalRegistryEntryChange.java index 83866a79bdac6932a6fa1e383cb7b2960e5f44ad..b65501f101f6cf08238c85f6b74e87e4d5dd54c0 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/FullMedicalRegistryEntryChange.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/FullMedicalRegistryEntryChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntry.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntry.java index 195f1589b32dd8f108b55bb3271de33fa6ee2d1b..f7ad3c89e46fc1980af11841c665d306e46943f6 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntry.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntryChange.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntryChange.java index 3c99108dbe9ad9ee36822c782fc45a60a72ee9bb..af5b875e7c1d617a7ff9a14ba72d494e11c9f9fc 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntryChange.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryEntryChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryProcedure.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryProcedure.java index db6521b5271f325c744fefa9441e7aef24274e2e..811ad425d47815ba5f8c254e4b5fd0a832902f14 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryProcedure.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistrySystemProgressEntryType.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistrySystemProgressEntryType.java index 53f030a68b2db2efcada7bda49d6ab9e2a9b030a..525ccf56185cb5c7b30cd7c06232a6d70059fb2b 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistrySystemProgressEntryType.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistrySystemProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryTask.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryTask.java index 04762ebde73623ce2e2b180c05b58f553d3c8305..7664114ade7e4266233cf7dfbe9094aa9633798d 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryTask.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/MedicalRegistryTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/PartialMedicalRegistryEntryChange.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/PartialMedicalRegistryEntryChange.java index 76e3c7fc4ffd812b3823b2eaa41a65837aabd869..45364da2bd53e926f04bd9a9bf8cb90206a225dc 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/PartialMedicalRegistryEntryChange.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/PartialMedicalRegistryEntryChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Practice.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Practice.java index 9516c73f196ff3b2e835af437f8e8259fa0e20f5..5ea97ad0178cf6429275e0b1dbc557bec4c95d64 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Practice.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Practice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionInformation.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionInformation.java index b2a4b1f62874e5e5910e596d6151a2fff61bf0b9..4681638f4fa707a5a8db4670caac033a6ca5bd9b 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionInformation.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionInformation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Professional.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Professional.java index f85f4b6a8d6fa9ec09d146a1b9a0d6767b264624..2fef6253a90e5b81255564f237476b76e8e7693b 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Professional.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/Professional.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionalTitle.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionalTitle.java index 2e3fcc67f20c1a40cec89a3cdbd11ed6bb00f0ff..8131632fd1325b66a65c593189a74b0e729136e8 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionalTitle.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/ProfessionalTitle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfChange.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfChange.java index c8fe4c23fafd598aa0a8396bfb041650f828564b..92fa228060ac92df79eacc53f8f711371c9415d3 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfChange.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfFullMedicalRegistryEntryChange.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfFullMedicalRegistryEntryChange.java index 6437b149319f7d498b26800853adb7d7c5174d83..806ce707580fb0ee2da2ffbda12e82efb2397f0b 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfFullMedicalRegistryEntryChange.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfFullMedicalRegistryEntryChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfPartialMedicalRegistryEntryChange.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfPartialMedicalRegistryEntryChange.java index afe61a895a244b1949c9b601139d426f2b2fc0bb..28d446dfaf1db77f1f16d310cba6883df86a643d 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfPartialMedicalRegistryEntryChange.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/model/TypeOfPartialMedicalRegistryEntryChange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryProcedureRepository.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryProcedureRepository.java index e48e6e7ea7890556b20ab095a6c6d3963adee564..667cb6cc8e931e0d9a3cc3bdeed9f7dbeceb41c1 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryProcedureRepository.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryTaskRepository.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryTaskRepository.java index 825577e1d61a2bc2c2eb4cec21851898b683ddb5..d333fed4c50b353d0e253fac028682810760bd18 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryTaskRepository.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/repository/MedicalRegistryTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/specification/MedicalRegistryProcedureOverviewSpecification.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/specification/MedicalRegistryProcedureOverviewSpecification.java index 906126cf419cfd494a8c994edf5e412b1fd395ba..ae8c38c7ef69f1d14f1dda775a6dda0c1987e7a4 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/specification/MedicalRegistryProcedureOverviewSpecification.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/domain/specification/MedicalRegistryProcedureOverviewSpecification.java @@ -1,10 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.medicalregistry.domain.specification; +import static de.eshg.domain.model.SequencedBaseEntity_.id; import static de.eshg.lib.procedure.MapperHelper.mapEnumSet; import static de.eshg.lib.procedure.domain.model.Procedure_.createdAt; import static de.eshg.lib.procedure.domain.model.Procedure_.procedureStatus; @@ -98,7 +99,8 @@ public class MedicalRegistryProcedureOverviewSpecification query.orderBy( cb.asc(statusToSortingIndex(procedure.get(procedureStatus), cb)), - cb.asc(procedure.get(createdAt))); + cb.asc(procedure.get(createdAt)), + cb.asc(procedure.get(id))); return cb.and(filters.toArray(Predicate[]::new)); } diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeature.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeature.java new file mode 100644 index 0000000000000000000000000000000000000000..bf4e7c2275a49484b1b5a8ea12b03d8920594483 --- /dev/null +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeature.java @@ -0,0 +1,10 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.medicalregistry.featuretoggle; + +public enum MedicalRegistryFeature { + CITIZEN_PORTAL_ENABLED +} diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeatureToggle.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeatureToggle.java new file mode 100644 index 0000000000000000000000000000000000000000..674ac5d3871c243bcbf2a58e7f6c0c0ed846d82e --- /dev/null +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeatureToggle.java @@ -0,0 +1,16 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.medicalregistry.featuretoggle; + +import de.eshg.testhelper.FeatureToggle; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +@Validated +@ConfigurationProperties( + prefix = "de.eshg.medicalregistry.feature-toggle", + ignoreUnknownFields = false) +public class MedicalRegistryFeatureToggle extends FeatureToggle<MedicalRegistryFeature> {} diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeatureTogglesPublicController.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeatureTogglesPublicController.java new file mode 100644 index 0000000000000000000000000000000000000000..3d395902ea5821a1c4476333b7f12e1dfcce8e23 --- /dev/null +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/MedicalRegistryFeatureTogglesPublicController.java @@ -0,0 +1,33 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.medicalregistry.featuretoggle; + +import de.eshg.medicalregistry.featuretoggle.api.GetMedicalRegistryFeatureTogglesResponse; +import de.eshg.rest.service.security.config.BaseUrls; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(MedicalRegistryFeatureTogglesPublicController.BASE_URL) +@Tag(name = "MedicalRegistryFeatureTogglesPublic") +public class MedicalRegistryFeatureTogglesPublicController { + + public static final String BASE_URL = BaseUrls.MedicalRegistry.FEATURE_TOGGLES_CONTROLLER; + + private final MedicalRegistryFeatureToggle featureToggle; + + public MedicalRegistryFeatureTogglesPublicController(MedicalRegistryFeatureToggle featureToggle) { + this.featureToggle = featureToggle; + } + + @GetMapping + public GetMedicalRegistryFeatureTogglesResponse getFeatureToggles() { + return new GetMedicalRegistryFeatureTogglesResponse( + featureToggle.getEnabledNewFeatures(), featureToggle.getDisabledOldFeatures()); + } +} diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/api/GetMedicalRegistryFeatureTogglesResponse.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/api/GetMedicalRegistryFeatureTogglesResponse.java new file mode 100644 index 0000000000000000000000000000000000000000..9db042e1078347bd59e2a147cf89ae9c609194c3 --- /dev/null +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/featuretoggle/api/GetMedicalRegistryFeatureTogglesResponse.java @@ -0,0 +1,14 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.medicalregistry.featuretoggle.api; + +import de.eshg.medicalregistry.featuretoggle.MedicalRegistryFeature; +import jakarta.validation.constraints.NotNull; +import java.util.Set; + +public record GetMedicalRegistryFeatureTogglesResponse( + @NotNull Set<MedicalRegistryFeature> enabledNewFeatures, + @NotNull Set<MedicalRegistryFeature> disabledOldFeatures) {} diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Constants.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Constants.java index dfcd8ab76d7118c2e3e3f3bb90b3b69fa9448c2a..0e2e5d561e9fa3d1d7b8d3d79c65aa60bd3ca8b7 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Constants.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Constants.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Mapping.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Mapping.java index ef71b941e3be430714cd30fa3a3c359f097275f4..5432f63c3bd285aad187f026c925c7be3d44f797 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Mapping.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/Mapping.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryColumn.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryColumn.java index 37396dfa0fa63ce2fe7ce7b53fe3e728948d4dec..3d286b59da7c3e991ef468f6babf80d557e96dae 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryColumn.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryImporter.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryImporter.java index 7bc42fbbf2da2b4d081fba9df674189ade1ba94c..f62561367daa0e43d0f8f6f2bc812012d22d322d 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryImporter.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryImporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRow.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRow.java index 98f8ada2e2a2e5c2b8c28258307d39b2483652a4..ae784429ffa83caf3d08e4e08433868d342759b0 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRow.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRowReader.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRowReader.java index 10866aeae44dc033a380d83810a42e7990ce1c32..71212d30c3ec288d8c44240d1febd43f3d736935 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRowReader.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/importer/MedicalRegistryRowReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/AddressMapper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/AddressMapper.java index 717ac46d37624488ff45a1145670c22d057ff3b8..1de0b30f4f4ae4f9b6f9816d57ec752cee69f5fa 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/AddressMapper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/AddressMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/CreationMapper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/CreationMapper.java index 966691982bc4346ad439f018ba09ae3491445d4f..79f1ae03589c855b75cbd01fe3853a6b141a992e 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/CreationMapper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/CreationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EnrichmentHelper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EnrichmentHelper.java index 05aea2de1c5133b2cc435183baad70b16702fb12..0581eae508c3258c02a7311bc2cbb628e7414027 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EnrichmentHelper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EnrichmentHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EntryMapper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EntryMapper.java index 5f8dfc7c62b3e753d3e3dc833a8bc83f8f7909a2..bede7ff5abdfccba2d10a55af3e6772c24b7258e 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EntryMapper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/EntryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/PracticeMapper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/PracticeMapper.java index 1c2e0387bb86cc79d0a2a37652c5e552f4d172a8..0e55808600e4b5cdc6e2e5f0c3bb36f2f9b80b04 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/PracticeMapper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/PracticeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProcedureMapper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProcedureMapper.java index 20867e5ea5f474c7af451c8a2c555bfb4b196ed2..15c242136c394844d9e786cd52104a2571c1e210 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProcedureMapper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProfessionalMapper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProfessionalMapper.java index 1eeb69e648bee5c429f97afa58ca36ecb5d81ad6..783ef8d69847469abbc23f4f68f472a01c2a0559 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProfessionalMapper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/ProfessionalMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/SearchProcedureByPersonMapper.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/SearchProcedureByPersonMapper.java index 1edf244ccab2d737e5920f1e985c5f166667ea42..091dfee50202ec1144268e1eb9782a6f9a1bad04 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/SearchProcedureByPersonMapper.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/mapper/SearchProcedureByPersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/testhelper/MedicalRegistryTestHelperController.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/testhelper/MedicalRegistryTestHelperController.java index d96b5715e36643d2969b2e8a25f882453576a38a..38ad987fd44c6842a2648dd62c0229dadba63a23 100644 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/testhelper/MedicalRegistryTestHelperController.java +++ b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/testhelper/MedicalRegistryTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -12,11 +12,7 @@ import de.eshg.testhelper.TestHelperController; import de.eshg.testhelper.TestHelperWithDatabaseService; import de.eshg.testhelper.environment.EnvironmentConfig; import java.io.IOException; -import java.util.UUID; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.service.annotation.PostExchange; @RestController @ConditionalOnTestHelperEnabled @@ -24,28 +20,13 @@ public class MedicalRegistryTestHelperController extends TestHelperController implements SharedAuditLogTestHelperApi { private final AuditLogTestHelperService auditLogTestHelperService; - private final MedicalRegistryTestHelperService medicalRegistryTestHelperService; public MedicalRegistryTestHelperController( TestHelperWithDatabaseService testHelperWithDatabaseService, EnvironmentConfig environmentConfig, - AuditLogTestHelperService auditLogTestHelperService, - MedicalRegistryTestHelperService medicalRegistryTestHelperService) { + AuditLogTestHelperService auditLogTestHelperService) { super(testHelperWithDatabaseService, environmentConfig); this.auditLogTestHelperService = auditLogTestHelperService; - this.medicalRegistryTestHelperService = medicalRegistryTestHelperService; - } - - @Transactional - @PostExchange("/medical-registry-entries/{procedureId}/close") - public void closeProcedure(@PathVariable("procedureId") UUID procedureId) { - medicalRegistryTestHelperService.closeProcedure(procedureId); - } - - @Transactional - @PostExchange("/medical-registry-entries/{procedureId}/open") - public void openProcedure(@PathVariable("procedureId") UUID procedureId) { - medicalRegistryTestHelperService.openProcedure(procedureId); } @Override diff --git a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/testhelper/MedicalRegistryTestHelperService.java b/backend/medical-registry/src/main/java/de/eshg/medicalregistry/testhelper/MedicalRegistryTestHelperService.java deleted file mode 100644 index 56389e46ba4562547c392f160c9a03b9d7eaec2b..0000000000000000000000000000000000000000 --- a/backend/medical-registry/src/main/java/de/eshg/medicalregistry/testhelper/MedicalRegistryTestHelperService.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -package de.eshg.medicalregistry.testhelper; - -import de.eshg.lib.auditlog.AuditLogger; -import de.eshg.lib.procedure.domain.model.ProcedureStatus; -import de.eshg.lib.procedure.domain.model.ProcedureType; -import de.eshg.medicalregistry.domain.model.MedicalRegistryProcedure; -import de.eshg.medicalregistry.domain.repository.MedicalRegistryProcedureRepository; -import de.eshg.testhelper.ConditionalOnTestHelperEnabled; -import de.eshg.testhelper.DatabaseResetHelper; -import de.eshg.testhelper.DefaultTestHelperService; -import de.eshg.testhelper.ResettableProperties; -import de.eshg.testhelper.environment.EnvironmentConfig; -import de.eshg.testhelper.interception.TestRequestInterceptor; -import de.eshg.testhelper.population.BasePopulator; -import java.time.Clock; -import java.util.List; -import java.util.UUID; -import org.springframework.stereotype.Service; - -@ConditionalOnTestHelperEnabled -@Service -public class MedicalRegistryTestHelperService extends DefaultTestHelperService { - - private final AuditLogger auditLogger; - private final MedicalRegistryProcedureRepository medicalRegistryProcedureRepository; - - protected MedicalRegistryTestHelperService( - DatabaseResetHelper databaseResetHelper, - TestRequestInterceptor testRequestInterceptor, - Clock clock, - List<BasePopulator<?>> populators, - List<ResettableProperties> resettableProperties, - EnvironmentConfig environmentConfig, - AuditLogger auditLogger, - MedicalRegistryProcedureRepository medicalRegistryProcedureRepository) { - super( - databaseResetHelper, - testRequestInterceptor, - clock, - populators, - resettableProperties, - environmentConfig); - this.auditLogger = auditLogger; - this.medicalRegistryProcedureRepository = medicalRegistryProcedureRepository; - } - - public void closeProcedure(UUID procedureId) { - MedicalRegistryProcedure medicalRegistryProcedure = - medicalRegistryProcedureRepository.findByExternalId(procedureId).orElseThrow(); - medicalRegistryProcedure.updateProcedureStatus(ProcedureStatus.CLOSED, clock, auditLogger); - medicalRegistryProcedure.setProcedureType(ProcedureType.MEDICAL_REGISTRY_ENTRY); - } - - public void openProcedure(UUID procedureId) { - MedicalRegistryProcedure medicalRegistryProcedure = - medicalRegistryProcedureRepository.findByExternalId(procedureId).orElseThrow(); - medicalRegistryProcedure.updateProcedureStatus(ProcedureStatus.OPEN, clock, auditLogger); - medicalRegistryProcedure.setProcedureType(ProcedureType.MEDICAL_REGISTRY_ENTRY); - } -} diff --git a/backend/medical-registry/src/main/resources/MedicalRegistryImportTemplate.xlsx b/backend/medical-registry/src/main/resources/MedicalRegistryImportTemplate.xlsx index 40b07df02b9570643e52012368c369e476b89303..2b14bbdb0fb205d1942d49f4483b1c6897f7afca 100644 Binary files a/backend/medical-registry/src/main/resources/MedicalRegistryImportTemplate.xlsx and b/backend/medical-registry/src/main/resources/MedicalRegistryImportTemplate.xlsx differ diff --git a/backend/medical-registry/src/main/resources/application-preview-features.properties b/backend/medical-registry/src/main/resources/application-preview-features.properties new file mode 100644 index 0000000000000000000000000000000000000000..f35c532dbc07e55344a179a65f50fa38c3349cbf --- /dev/null +++ b/backend/medical-registry/src/main/resources/application-preview-features.properties @@ -0,0 +1,2 @@ +de.eshg.medicalregistry.feature-toggle.enabled-new-features=\ + CITIZEN_PORTAL_ENABLED diff --git a/backend/medical-registry/src/main/resources/application.properties b/backend/medical-registry/src/main/resources/application.properties index 00ffad681607407924fdb4484d932587305172d6..09586ccbe80562848932554f6ae7312564bf3342 100644 --- a/backend/medical-registry/src/main/resources/application.properties +++ b/backend/medical-registry/src/main/resources/application.properties @@ -1,7 +1,9 @@ spring.datasource.url=jdbc:postgresql://localhost:5447/medical_registry spring.datasource.username=testuser spring.datasource.password=testpassword -spring.jpa.hibernate.ddl-auto=create +spring.jpa.hibernate.ddl-auto=validate +spring.liquibase.enabled=true +spring.liquibase.change-log=classpath:/migrations/changelog.xml # The port should match the one specified in the configuration annotated with @OpenAPIDefinition. server.port=8097 diff --git a/backend/medical-registry/src/main/resources/migrations/0001_initial.xml b/backend/medical-registry/src/main/resources/migrations/0001_initial.xml new file mode 100644 index 0000000000000000000000000000000000000000..16534acb1eac3b1cb592c4937fcd375a1f7c0d21 --- /dev/null +++ b/backend/medical-registry/src/main/resources/migrations/0001_initial.xml @@ -0,0 +1,1590 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="initial"> + <ext:createPostgresEnumType name="archivingrelevance" + values="DEFAULT, IRRELEVANT, RELEVANT"/> + + + <ext:createPostgresEnumType name="procedurestatus" + values="ABORTED, CLOSED, DRAFT, IN_PROGRESS, OPEN"/> + + + <ext:createPostgresEnumType name="proceduretype" + values="CAN_CHILD, DENTAL_CHILD, DRAFT_CITIZEN_OFFICE_IMPORT, DRAFT_SCHOOL_IMPORT, ENTRY_LEVEL, INSPECTION, MEASLES_PROTECTION, MEDICAL_REGISTRY_CITIZEN_DRAFT, MEDICAL_REGISTRY_EMPLOYEE_DRAFT, MEDICAL_REGISTRY_ENTRY, OFFICIAL_MEDICAL_SERVICE, REGULAR_EXAMINATION, STI_PROTECTION, TM_VACCINATION_CONSULTATION"/> + + + <ext:createPostgresEnumType name="typeoffullmedicalregistryentrychange" + values="CHANGE_OF_NAME, CHANGE_OF_REGISTRATION, NEW_REGISTRATION, OTHER, RE_REGISTRATION, SECOND_PRACTICE"/> + + + <ext:createPostgresEnumType name="taskstatus" values="CLOSED, OPEN"/> + + + <ext:createPostgresEnumType name="tasktype" + values="BOOK_APPOINTMENT, INSPECTION_EXECUTION, INSPECTION_PLANNING, INSPECTION_REPORT, MEASLES_PROTECTION, PERFORM_SCHOOL_ENTRY_EXAMINATION, STI_PROTECTION, TRAVEL_MEDICINE"/> + + + <ext:createPostgresEnumType name="typeofpartialmedicalregistryentrychange" + values="CHANGE_OF_NAME, CHANGE_OF_REGISTRATION, DEREGISTRATION, RELOCATION, SECOND_PRACTICE"/> + + + <ext:createPostgresEnumType name="facilitytype" + values="DAYCARE, HOSPITAL, INSPECTION, MEDICAL_PRACTICE, OTHER, REFUGEE_ACCOMMODATION, SCHOOL"/> + + + <ext:createPostgresEnumType name="employmentstatus" + values="EMPLOYEE, FREELANCE, SELF_EMPLOYED"/> + + + <ext:createPostgresEnumType name="employmenttype" + values="FULL_TIME, PART_TIME"/> + + + <ext:createPostgresEnumType name="professionaltitle" + values="ALTERNATIVE_PRACTITIONER, ALTERNATIVE_PRACTITIONER_FOR_SPEECH_THERAPY, CARE_ASSISTANT, CHILD_AND_YOUTH_PSYCHOTHERAPIST, DENTIST, DIETICIAN, DISINFECTOR, DOCTOR, EMERGENCY_PARAMEDIC, GERIATRIC_NURSE, HEALTHCARE_AND_NURSING_ASSISTANT, HEALTHCARE_AND_NURSING_ASSISTANTS_HELPER, HEALTHCARE_AND_PEDIATRIC_NURSE, HEALTH_SUPERVISOR, MASSEUR_AND_MEDICAL_BATH_ATTENDANT, MEDICAL_DOCUMENTALIST, MEDICAL_TECHNICAL_ASSISTANT_FOR_FUNCTIONAL_DIAGNOSTICS, MEDICAL_TECHNICAL_LABORATORY_ASSISTANT, MEDICAL_TECHNICAL_RADIOLOGY_ASSISTANT, MIDWIVE_MATERNITY_NURSE, NON_MEDICAL_PRACTITIONER_FOR_CHIROPRACTIC, NON_MEDICAL_PRACTITIONER_FOR_PHYSIOTHERAPY, NON_MEDICAL_PRACTITIONER_FOR_PSYCHOTHERAPY, NURSING_ASSISTANT, NURSING_SERVICE, NURSING_SERVICE_MANAGER, OCCUPATIONAL_THERAPIST, ORTHOPTIST, PHARMACEUTICAL_TECHNICAL_ASSISTANT, PHARMACIST, PHYSIOTHERAPIST, PODIATRIST, PSYCHOLOGICAL_PSYCHOTHERAPIST, RADIOLOGY_ASSISTANT, SPEECH_THERAPIST, SPORTS_THERAPIST, VETERINARIAN"/> + + + <ext:createPostgresEnumType name="persontype" + values="PARENT, PATIENT, PROFESSIONAL"/> + + + <ext:createPostgresEnumType name="countrycode" + values="AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW"/> + + + <ext:createPostgresEnumType name="contacttype" + values="FACILITY, PRIVATE_PERSON"/> + + + <ext:createPostgresEnumType name="title" values="DR, PROF, PROF_DR"/> + + + <ext:createPostgresEnumType name="procedurefiletype" + values="EML, JPEG, PDF, PNG"/> + + + <ext:createPostgresEnumType name="decision" values="DENIED, GRANTED"/> + + + <ext:createPostgresEnumType name="gdprvalidationtaskstatus" + values="CLOSED, OPEN"/> + + + <ext:createPostgresEnumType name="gdprvalidationtasktype" + values="RIGHT_OF_ACCESS, RIGHT_TO_ERASURE"/> + + + <ext:createPostgresEnumType name="inboxprocedurestatus" + values="CLOSED, OPEN"/> + + + <ext:createPostgresEnumType name="inboxprogressentrytype" + values="EMAIL, LETTER, PHONE_CALL"/> + + + <ext:createPostgresEnumType name="manualprogressentrytype" + values="DOCUMENT, EMAIL, IMAGE, LETTER, NOTE, PHONE_CALL"/> + + + <ext:createPostgresEnumType name="triggertype" + values="CITIZEN, EMPLOYEE, SYSTEM_AUTOMATIC"/> + + + <ext:createPostgresEnumType name="taskdueatremindernotificationtype" + values="ONE_DAY_BEFORE_DUE_AT, THREE_DAYS_BEFORE_DUE_AT"/> + + + <createTable tableName="simple_notification"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_simple_notification"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="created_by_user_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="read_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="recipient_user_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="mail_sent_at" type="TIMESTAMP WITH TIME ZONE"/> + <column defaultValueBoolean="false" name="mail_to_sent_flag" + type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="message" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="title" type="TEXT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="assignment_history_item"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_assignment_history_item"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="assignee_id" type="UUID"/> + <column name="assigned_by_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="assignment_date" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="task_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="file_deletion_approval_request_notification"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_file_deletion_approval_request_notification"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="created_by_user_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="read_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="recipient_user_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="mail_sent" type="TIMESTAMP WITH TIME ZONE"/> + <column name="approval_request_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable + tableName="manual_progress_entry_deletion_approval_request_notification"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_manual_progress_entry_deletion_approval_request_notification"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="created_by_user_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="read_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="recipient_user_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="mail_sent" type="TIMESTAMP WITH TIME ZONE"/> + <column name="approval_request_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="progress_entry"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_progress_entry"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="modified_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="procedure_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="file_id" type="BIGINT"/> + </createTable> + + + <createTable tableName="address"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_address"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="address_addition" type="TEXT"/> + <column name="city" type="TEXT"/> + <column name="country" type="TEXT"/> + <column name="house_number" type="TEXT"/> + <column name="postal_code" type="TEXT"/> + <column name="postbox_number" type="INTEGER"/> + <column name="street" type="TEXT"/> + <column name="contact_details_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="gdpr_download_package"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_gdpr_download_package"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="business_procedure_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="content" type="BYTEA"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="medical_registry_entry"> + <column name="employees_employed" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_medical_registry_entry"/> + </column> + <column name="profession_information_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="medical_registry_procedure"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_medical_registry_procedure"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="archiving_relevance" type="ARCHIVINGRELEVANCE"> + <constraints nullable="false"/> + </column> + <column name="closed_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="exported_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="modified_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="procedure_status" type="PROCEDURESTATUS"> + <constraints nullable="false"/> + </column> + <column name="procedure_type" type="PROCEDURETYPE"> + <constraints nullable="false"/> + </column> + <column name="consent_to_privacy_policy" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="request_for_written_confirmation" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="inbox_procedure"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_inbox_procedure"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="closed_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="created_by" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="inbox_procedure_status" type="INBOXPROCEDURESTATUS"> + <constraints nullable="false"/> + </column> + <column name="procedure_type" type="PROCEDURETYPE"/> + </createTable> + + + <createTable tableName="full_medical_registry_entry_change"> + <column name="employees_employed" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="type_of_full_change" + type="TYPEOFFULLMEDICALREGISTRYENTRYCHANGE"> + <constraints nullable="false"/> + </column> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_full_medical_registry_entry_change"/> + </column> + <column name="profession_information_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="medical_registry_task"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_medical_registry_task"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="assignee_id" type="UUID"/> + <column name="assigned_by_id" type="UUID"/> + <column name="assignment_date" type="TIMESTAMP WITH TIME ZONE"/> + <column name="due_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="modified_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="task_status" type="TASKSTATUS"> + <constraints nullable="false"/> + </column> + <column name="task_type" type="TASKTYPE"> + <constraints nullable="false"/> + </column> + <column name="procedure_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="partial_medical_registry_entry_change"> + <column name="employees_employed" type="BOOLEAN"/> + <column name="type_of_partial_change" + type="TYPEOFPARTIALMEDICALREGISTRYENTRYCHANGE"> + <constraints nullable="false"/> + </column> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_partial_medical_registry_entry_change"/> + </column> + </createTable> + + + <createTable tableName="practice"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_practice"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="central_file_state_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="facility_type" type="FACILITYTYPE"> + <constraints nullable="false"/> + </column> + <column name="establishment_number" type="TEXT"/> + <column name="health_insurance_authorization" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="institution_identifier" type="TEXT"/> + <column name="opening_hours" type="TEXT"/> + <column name="website" type="TEXT"/> + <column name="procedure_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="profession_information"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_profession_information"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="approbation_granted_on" type="date"> + <constraints nullable="false"/> + </column> + <column name="approbation_issuing_authority" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="employment_status" type="EMPLOYMENTSTATUS"> + <constraints nullable="false"/> + </column> + <column name="employment_type" type="EMPLOYMENTTYPE"> + <constraints nullable="false"/> + </column> + <column name="field_of_expertise" type="TEXT"/> + <column name="further_training" type="TEXT"/> + <column name="lifetime_doctor_number" type="TEXT"/> + <column name="professional_title" type="PROFESSIONALTITLE"> + <constraints nullable="false"/> + </column> + <column name="qualifications" type="TEXT"/> + <column name="specialist_title" type="TEXT"/> + </createTable> + + + <createTable tableName="professional"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_professional"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="central_file_state_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="person_type" type="PERSONTYPE"> + <constraints nullable="false"/> + </column> + <column name="nationality" type="COUNTRYCODE"> + <constraints nullable="false"/> + </column> + <column name="procedure_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="contact_details"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_contact_details"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="contact_type" type="CONTACTTYPE"> + <constraints nullable="false"/> + </column> + <column name="date_of_birth" type="date"/> + <column name="email_address" type="TEXT"/> + <column name="facility_name" type="TEXT"/> + <column name="first_name" type="TEXT"/> + <column name="last_name" type="TEXT"/> + <column name="phone_number" type="TEXT"/> + <column name="title" type="TITLE"/> + <column name="inbox_procedure_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="file"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_file"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="created_by" type="UUID"/> + <column name="deletable" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="deleted" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="file_name" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="file_size_bytes" type="INTEGER"> + <constraints nullable="false"/> + </column> + <column name="file_type" type="PROCEDUREFILETYPE"> + <constraints nullable="false"/> + </column> + <column name="locked_by_mail" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="locked_by_progress_entry" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="locked_by_self" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="modified_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="attached_to_mail_id" type="BIGINT"/> + <column name="deletion_approval_request_id" type="BIGINT"/> + <column name="file_content_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="approval_request"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_approval_request"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="created_by" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="decided_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="decided_by" type="UUID"/> + <column name="decision" type="DECISION"/> + <column name="reason" type="TEXT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="gdpr_validation_task"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_gdpr_validation_task"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="closed_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="gdpr_procedure_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="modified_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="started_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="status" type="GDPRVALIDATIONTASKSTATUS"> + <constraints nullable="false"/> + </column> + <column name="type" type="GDPRVALIDATIONTASKTYPE"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="inbox_progress_entry"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_inbox_progress_entry"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="inbox_progress_entry_type" type="INBOXPROGRESSENTRYTYPE"> + <constraints nullable="false"/> + </column> + <column name="message_text" type="TEXT"/> + <column name="subject" type="TEXT"/> + <column name="file_id" type="BIGINT"/> + <column name="inbox_procedure_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="processed_inbox_progress_entry"> + <column name="created_by" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="inbox_progress_entry_type" type="INBOXPROGRESSENTRYTYPE"> + <constraints nullable="false"/> + </column> + <column name="message_text" type="TEXT"/> + <column name="subject" type="TEXT"/> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_processed_inbox_progress_entry"/> + </column> + <column name="inbox_procedure_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="manual_progress_entry_aud"> + <column name="id" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="rev" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="created_by" type="UUID"/> + <column name="key_document_type" type="TEXT"/> + <column name="key_document_version" type="INTEGER"/> + <column name="locked" type="BOOLEAN"/> + <column name="manual_progress_entry_type" type="MANUALPROGRESSENTRYTYPE"/> + <column name="note" type="TEXT"/> + </createTable> + + + <createTable tableName="manual_progress_entry"> + <column name="created_by" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="key_document_type" type="TEXT"/> + <column name="key_document_version" type="INTEGER"/> + <column name="locked" type="BOOLEAN"> + <constraints nullable="false"/> + </column> + <column name="manual_progress_entry_type" type="MANUALPROGRESSENTRYTYPE"> + <constraints nullable="false"/> + </column> + <column name="note" type="TEXT"/> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_manual_progress_entry"/> + </column> + <column name="deletion_approval_request_id" type="BIGINT"/> + </createTable> + + + <createTable tableName="system_progress_entry"> + <column name="change_description" type="TEXT"/> + <column name="key_document_type" type="TEXT"/> + <column name="key_document_version" type="INTEGER"/> + <column name="system_progress_entry_type" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="trigger_type" type="TRIGGERTYPE"> + <constraints nullable="false"/> + </column> + <column name="triggered_by" type="UUID"/> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_system_progress_entry"/> + </column> + </createTable> + + + <createTable tableName="task_due_at_reminder_notification"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_task_due_at_reminder_notification"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="external_id" type="UUID"> + <constraints nullable="false"/> + </column> + <column name="read_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="reminder_type" type="TASKDUEATREMINDERNOTIFICATIONTYPE"> + <constraints nullable="false"/> + </column> + <column name="task_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <addUniqueConstraint columnNames="external_id" + constraintName="simple_notification_external_id_key" + tableName="simple_notification"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="file_deletion_approval_request_notification_external_id_key" + tableName="file_deletion_approval_request_notification"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="manual_progress_entry_deletion_approval_request_external_id_key" + tableName="manual_progress_entry_deletion_approval_request_notification"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="progress_entry_external_id_key" + tableName="progress_entry"/> + + + <addUniqueConstraint columnNames="file_id" + constraintName="progress_entry_file_id_key" + tableName="progress_entry"/> + + + <addUniqueConstraint columnNames="contact_details_id" + constraintName="address_contact_details_id_key" + tableName="address"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="gdpr_download_package_external_id_key" + tableName="gdpr_download_package"/> + + + <addUniqueConstraint columnNames="profession_information_id" + constraintName="medical_registry_entry_profession_information_id_key" + tableName="medical_registry_entry"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="medical_registry_procedure_external_id_key" + tableName="medical_registry_procedure"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="inbox_procedure_external_id_key" + tableName="inbox_procedure"/> + + + <addUniqueConstraint columnNames="profession_information_id" + constraintName="full_medical_registry_entry_chang_profession_information_id_key" + tableName="full_medical_registry_entry_change"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="medical_registry_task_external_id_key" + tableName="medical_registry_task"/> + + + <addUniqueConstraint columnNames="central_file_state_id" + constraintName="practice_central_file_state_id_key" + tableName="practice"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="practice_external_id_key" + tableName="practice"/> + + + <addUniqueConstraint columnNames="central_file_state_id" + constraintName="professional_central_file_state_id_key" + tableName="professional"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="professional_external_id_key" + tableName="professional"/> + + + <addUniqueConstraint columnNames="inbox_procedure_id" + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + + + <addUniqueConstraint columnNames="deletion_approval_request_id" + constraintName="file_deletion_approval_request_id_key" + tableName="file"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="file_external_id_key" + tableName="file"/> + + + <addUniqueConstraint columnNames="file_content_id" + constraintName="file_file_content_id_key" + tableName="file"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="approval_request_external_id_key" + tableName="approval_request"/> + + + <addUniqueConstraint columnNames="gdpr_procedure_id" + constraintName="gdpr_validation_task_gdpr_procedure_id_key" + tableName="gdpr_validation_task"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="inbox_progress_entry_external_id_key" + tableName="inbox_progress_entry"/> + + + <addUniqueConstraint columnNames="file_id" + constraintName="inbox_progress_entry_file_id_key" + tableName="inbox_progress_entry"/> + + + <addUniqueConstraint columnNames="inbox_procedure_id" + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + + + <addUniqueConstraint columnNames="inbox_procedure_id" + constraintName="processed_inbox_progress_entry_inbox_procedure_id_key" + tableName="processed_inbox_progress_entry"/> + + + <addUniqueConstraint columnNames="deletion_approval_request_id" + constraintName="manual_progress_entry_deletion_approval_request_id_key" + tableName="manual_progress_entry"/> + + + <addUniqueConstraint columnNames="external_id" + constraintName="task_due_at_reminder_notification_external_id_key" + tableName="task_due_at_reminder_notification"/> + + + <createSequence cacheSize="1" cycle="false" dataType="bigint" + incrementBy="50" maxValue="9223372036854775807" minValue="1" + sequenceName="cemetery_seq" startValue="1"/> + + + <createSequence cacheSize="1" cycle="false" dataType="bigint" + incrementBy="50" maxValue="9223372036854775807" minValue="1" + sequenceName="medical_registry_procedure_seq" + startValue="1"/> + + + <createSequence cacheSize="1" cycle="false" dataType="bigint" + incrementBy="50" maxValue="9223372036854775807" minValue="1" + sequenceName="medical_registry_task_seq" startValue="1"/> + + + <createSequence cacheSize="1" cycle="false" dataType="bigint" + incrementBy="50" maxValue="9223372036854775807" minValue="1" + sequenceName="practice_seq" startValue="1"/> + + + <createSequence cacheSize="1" cycle="false" dataType="bigint" + incrementBy="50" maxValue="9223372036854775807" minValue="1" + sequenceName="profession_information_seq" startValue="1"/> + + + <createSequence cacheSize="1" cycle="false" dataType="bigint" + incrementBy="50" maxValue="9223372036854775807" minValue="1" + sequenceName="professional_seq" startValue="1"/> + + + <createSequence cacheSize="1" cycle="false" dataType="bigint" + incrementBy="50" maxValue="9223372036854775807" minValue="1" + sequenceName="progress_entry_seq" startValue="1"/> + + + <createTable tableName="cemetery"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_cemetery"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="content" type="JSONB"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="former_external_id" type="UUID"/> + <column name="former_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="type" type="TEXT"> + <constraints nullable="false"/> + </column> + </createTable> + + + <createTable tableName="default_revision_entity"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_default_revision_entity"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="created_by" type="UUID"/> + </createTable> + + + <createTable tableName="file_content"> + <column autoIncrement="true" name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_file_content"/> + </column> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="content" type="BYTEA"/> + </createTable> + + + <createTable tableName="file_deletion_approval_request"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_file_deletion_approval_request"/> + </column> + </createTable> + + + <createTable tableName="image"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_image"/> + </column> + </createTable> + + + <createTable tableName="image_meta_data"> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="description" type="TEXT"/> + <column name="created_date" type="TIMESTAMP WITH TIME ZONE"/> + <column name="image_id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_image_meta_data"/> + </column> + </createTable> + + + <createTable tableName="image_meta_data_aud"> + <column name="image_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="rev" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="revtype" type="SMALLINT"/> + <column name="description" type="TEXT"/> + <column name="created_date" type="TIMESTAMP WITH TIME ZONE"/> + </createTable> + + + <createTable tableName="mail"> + <column name="removed_invalid_attachments" type="INTEGER"> + <constraints nullable="false"/> + </column> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_mail"/> + </column> + </createTable> + + + <createTable tableName="mail_meta_data"> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="description" type="TEXT"/> + <column name="mail_from" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="mail_to" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="message_text" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="sent_date" type="TIMESTAMP WITH TIME ZONE"> + <constraints nullable="false"/> + </column> + <column name="subject" type="TEXT"> + <constraints nullable="false"/> + </column> + <column name="mail_id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_mail_meta_data"/> + </column> + </createTable> + + + <createTable tableName="mail_meta_data_aud"> + <column name="mail_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="rev" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="revtype" type="SMALLINT"/> + <column name="description" type="TEXT"/> + <column name="mail_from" type="TEXT"/> + <column name="mail_to" type="TEXT"/> + <column name="message_text" type="TEXT"/> + <column name="sent_date" type="TIMESTAMP WITH TIME ZONE"/> + <column name="subject" type="TEXT"/> + </createTable> + + + <createTable tableName="manual_progress_entry_deletion_approval_request"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_manual_progress_entry_deletion_approval_request"/> + </column> + </createTable> + + + <createTable tableName="pdf"> + <column name="id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_pdf"/> + </column> + </createTable> + + + <createTable tableName="pdf_meta_data"> + <column name="version" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="description" type="TEXT"/> + <column name="created_date" type="TIMESTAMP WITH TIME ZONE"/> + <column name="pdf_id" type="BIGINT"> + <constraints nullable="false" primaryKey="true" + primaryKeyName="pk_pdf_meta_data"/> + </column> + </createTable> + + + <createTable tableName="pdf_meta_data_aud"> + <column name="pdf_id" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="rev" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="revtype" type="SMALLINT"/> + <column name="description" type="TEXT"/> + <column name="created_date" type="TIMESTAMP WITH TIME ZONE"/> + </createTable> + + + <createTable tableName="progress_entry_aud"> + <column name="id" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="rev" type="BIGINT"> + <constraints nullable="false"/> + </column> + <column name="revtype" type="SMALLINT"/> + <column name="external_id" type="UUID"/> + <column name="created_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="modified_at" type="TIMESTAMP WITH TIME ZONE"/> + <column name="procedure_id" type="BIGINT"/> + </createTable> + + + <addPrimaryKey columnNames="rev, image_id" + constraintName="pk_image_meta_data_aud" + tableName="image_meta_data_aud"/> + + + <addPrimaryKey columnNames="rev, mail_id" + constraintName="pk_mail_meta_data_aud" + tableName="mail_meta_data_aud"/> + + + <addPrimaryKey columnNames="rev, id" + constraintName="pk_manual_progress_entry_aud" + tableName="manual_progress_entry_aud"/> + + + <addPrimaryKey columnNames="rev, pdf_id" + constraintName="pk_pdf_meta_data_aud" + tableName="pdf_meta_data_aud"/> + + + <addPrimaryKey columnNames="rev, id" constraintName="pk_progress_entry_aud" + tableName="progress_entry_aud"/> + + + <createIndex indexName="idx_assignment_history_item_task_id" + tableName="assignment_history_item"> + <column name="task_id"/> + </createIndex> + + + <createIndex indexName="idx_file_attached_to_mail_id" tableName="file"> + <column name="attached_to_mail_id"/> + </createIndex> + + + <createIndex + indexName="idx_file_deletion_approval_request_notification_approval_request_id" + tableName="file_deletion_approval_request_notification"> + <column name="approval_request_id"/> + </createIndex> + + + <createIndex + indexName="idx_manual_progress_entry_deletion_approval_request_notification_approval_request_id" + tableName="manual_progress_entry_deletion_approval_request_notification"> + <column name="approval_request_id"/> + </createIndex> + + + <createIndex indexName="idx_medical_registry_task_procedure_id" + tableName="medical_registry_task"> + <column name="procedure_id"/> + </createIndex> + + + <createIndex indexName="idx_practice_procedure_id" tableName="practice"> + <column name="procedure_id"/> + </createIndex> + + + <createIndex indexName="idx_professional_procedure_id" + tableName="professional"> + <column name="procedure_id"/> + </createIndex> + + + <createIndex indexName="idx_progress_entry_procedure_id" + tableName="progress_entry"> + <column name="procedure_id"/> + </createIndex> + + + <createIndex indexName="idx_task_due_at_reminder_notification_task_id" + tableName="task_due_at_reminder_notification"> + <column name="task_id"/> + </createIndex> + + + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="address" + constraintName="fk_address_contact_details" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="contact_details" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="task_id" + baseTableName="assignment_history_item" + constraintName="fk_assignment_history_item_medical_registry_task" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_task" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="inbox_procedure_id" + baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="inbox_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="file_deletion_approval_request" + constraintName="fk_file_deletion_approval_request_approval_request" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="approval_request" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="approval_request_id" + baseTableName="file_deletion_approval_request_notification" + constraintName="fk_file_deletion_approval_request_notification_file_deletion_approval_request" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="file_deletion_approval_request" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="file_content_id" + baseTableName="file" + constraintName="fk_file_file_content" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="file_content" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="deletion_approval_request_id" + baseTableName="file" + constraintName="fk_file_file_deletion_approval_request" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="file_deletion_approval_request" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="attached_to_mail_id" + baseTableName="file" constraintName="fk_file_mail" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="mail" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="full_medical_registry_entry_change" + constraintName="fk_full_medical_registry_entry_change_medical_registry_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="profession_information_id" + baseTableName="full_medical_registry_entry_change" + constraintName="fk_full_medical_registry_entry_change_profession_information" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="profession_information" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" baseTableName="image" + constraintName="fk_image_file" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="file" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="rev" + baseTableName="image_meta_data_aud" + constraintName="fk_image_meta_data_aud_default_revision_entity" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="default_revision_entity" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="image_id" + baseTableName="image_meta_data" + constraintName="fk_image_meta_data_image" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="image" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="file_id" + baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_file" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="file" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="inbox_procedure_id" + baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="inbox_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" baseTableName="mail" + constraintName="fk_mail_file" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="file" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="rev" + baseTableName="mail_meta_data_aud" + constraintName="fk_mail_meta_data_aud_default_revision_entity" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="default_revision_entity" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="mail_id" + baseTableName="mail_meta_data" + constraintName="fk_mail_meta_data_mail" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="mail" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="rev,id" + baseTableName="manual_progress_entry_aud" + constraintName="fk_manual_progress_entry_aud_progress_entry_aud" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="rev,id" + referencedTableName="progress_entry_aud" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="manual_progress_entry_deletion_approval_request" + constraintName="fk_manual_progress_entry_deletion_approval_request_approval_request" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="approval_request" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="approval_request_id" + baseTableName="manual_progress_entry_deletion_approval_request_notification" + constraintName="fk_manual_progress_entry_deletion_approval_request_notification_manual_progress_entry_deletion_approval_request" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="manual_progress_entry_deletion_approval_request" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="deletion_approval_request_id" + baseTableName="manual_progress_entry" + constraintName="fk_manual_progress_entry_manual_progress_entry_deletion_approval_request" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="manual_progress_entry_deletion_approval_request" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="manual_progress_entry" + constraintName="fk_manual_progress_entry_progress_entry" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="progress_entry" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="medical_registry_entry" + constraintName="fk_medical_registry_entry_medical_registry_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="profession_information_id" + baseTableName="medical_registry_entry" + constraintName="fk_medical_registry_entry_profession_information" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="profession_information" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="procedure_id" + baseTableName="medical_registry_task" + constraintName="fk_medical_registry_task_medical_registry_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="partial_medical_registry_entry_change" + constraintName="fk_partial_medical_registry_entry_change_medical_registry_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" baseTableName="pdf" + constraintName="fk_pdf_file" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="file" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="rev" + baseTableName="pdf_meta_data_aud" + constraintName="fk_pdf_meta_data_aud_default_revision_entity" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="default_revision_entity" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="pdf_id" + baseTableName="pdf_meta_data" + constraintName="fk_pdf_meta_data_pdf" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="pdf" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="procedure_id" + baseTableName="practice" + constraintName="fk_practice_medical_registry_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="inbox_procedure_id" + baseTableName="processed_inbox_progress_entry" + constraintName="fk_processed_inbox_progress_entry_inbox_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="inbox_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="processed_inbox_progress_entry" + constraintName="fk_processed_inbox_progress_entry_progress_entry" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="progress_entry" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="procedure_id" + baseTableName="professional" + constraintName="fk_professional_medical_registry_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="rev" + baseTableName="progress_entry_aud" + constraintName="fk_progress_entry_aud_default_revision_entity" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="default_revision_entity" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="file_id" + baseTableName="progress_entry" + constraintName="fk_progress_entry_file" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="file" validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="procedure_id" + baseTableName="progress_entry" + constraintName="fk_progress_entry_medical_registry_procedure" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_procedure" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="system_progress_entry" + constraintName="fk_system_progress_entry_progress_entry" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="progress_entry" + validate="true"/> + + + <addForeignKeyConstraint baseColumnNames="task_id" + baseTableName="task_due_at_reminder_notification" + constraintName="fk_task_due_at_reminder_notification_medical_registry_task" + deferrable="false" initiallyDeferred="false" + onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" + referencedTableName="medical_registry_task" + validate="true"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/medical-registry/src/main/resources/migrations/0002_invert_inbox_procedure_relationships.xml b/backend/medical-registry/src/main/resources/migrations/0002_invert_inbox_procedure_relationships.xml new file mode 100644 index 0000000000000000000000000000000000000000..ad74408291a1e84a3b7b11b1c5fe95b149a89016 --- /dev/null +++ b/backend/medical-registry/src/main/resources/migrations/0002_invert_inbox_procedure_relationships.xml @@ -0,0 +1,72 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733835693519-1"> + <addColumn tableName="inbox_procedure"> + <column name="contact_details_id" type="BIGINT"/> + </addColumn> + <sql> + UPDATE inbox_procedure + SET contact_details_id=contact_details.id FROM contact_details + WHERE contact_details.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="contact_details_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="contact_details_id" + constraintName="inbox_procedure_contact_details_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_contact_details" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" referencedTableName="contact_details" + validate="true"/> + + <dropForeignKeyConstraint baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure"/> + <dropUniqueConstraint + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + <dropColumn columnName="inbox_procedure_id" tableName="contact_details"/> + </changeSet> + <changeSet author="GA-Lotse" id="1733835693519-2"> + <addColumn tableName="inbox_procedure"> + <column name="inbox_progress_entry_id" type="BIGINT"/> + </addColumn> + + <sql> + UPDATE inbox_procedure + SET inbox_progress_entry_id=inbox_progress_entry.id FROM inbox_progress_entry + WHERE inbox_progress_entry.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="inbox_progress_entry_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="inbox_progress_entry_id" + constraintName="inbox_procedure_inbox_progress_entry_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="inbox_progress_entry_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_inbox_progress_entry" + deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="inbox_progress_entry" validate="true"/> + + <dropForeignKeyConstraint baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure"/> + <dropUniqueConstraint + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + <dropColumn columnName="inbox_procedure_id" + tableName="inbox_progress_entry"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/medical-registry/src/main/resources/migrations/changelog.xml b/backend/medical-registry/src/main/resources/migrations/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..da7e21d5c65725d29da353ae5c5a5f57a1100e4b --- /dev/null +++ b/backend/medical-registry/src/main/resources/migrations/changelog.xml @@ -0,0 +1,14 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: Apache-2.0 +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> + + <include file="migrations/0001_initial.xml"/> + <include file="migrations/0002_invert_inbox_procedure_relationships.xml"/> + +</databaseChangeLog> diff --git a/backend/official-medical-service/build.gradle b/backend/official-medical-service/build.gradle index b1ffa1673f44c79033a88a12abb43fede77b762c..8060957d727de1198ded0e6007407eedba8f22e3 100644 --- a/backend/official-medical-service/build.gradle +++ b/backend/official-medical-service/build.gradle @@ -8,6 +8,7 @@ dependencies { implementation project(':lib-procedures') implementation project(':business-module-persistence-commons') implementation project(':rest-oauth-client-commons') + implementation project(':lib-appointmentblock') implementation 'org.springdoc:springdoc-openapi-starter-common:latest.release' diff --git a/backend/official-medical-service/openApi.yaml b/backend/official-medical-service/openApi.yaml index b91dfd9adb8f5dd5927186e730f267ba2420f15a..cc3fb0da8a916a3fe88abb7826fb2449a0a54f8e 100644 --- a/backend/official-medical-service/openApi.yaml +++ b/backend/official-medical-service/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 @@ -9,6 +9,165 @@ info: servers: - url: http://localhost:8099 paths: + /appointment-blocks/appointment-block-groups: + get: + operationId: getAppointmentBlockGroups + parameters: + - in: query + name: sortKey + required: false + schema: + $ref: "#/components/schemas/AppointmentBlockSortKey" + - in: query + name: sortDirection + required: false + schema: + $ref: "#/components/schemas/SortDirection" + - in: query + name: pageNumber + required: false + schema: + type: integer + format: int32 + minimum: 0 + - in: query + name: pageSize + required: false + schema: + type: integer + format: int32 + minimum: 1 + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/GetAppointmentBlockGroupsResponse" + description: OK + summary: Get all appointment block groups. + tags: + - AppointmentBlock + /appointment-blocks/daily-appointment-block-groups: + post: + operationId: createDailyAppointmentBlocksForGroup + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateDailyAppointmentBlockGroupRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CreateAppointmentBlockGroupResponse" + description: OK + summary: Create appointment group with blocks for week days. + tags: + - AppointmentBlock + /appointment-blocks/daily-appointment-block-groups/validate: + post: + operationId: validateDailyAppointmentBlocksForGroup + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateDailyAppointmentBlockGroupRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/ValidateAppointmentBlockGroupResponse" + description: OK + summary: Create appointment group with blocks for week days. + tags: + - AppointmentBlock + /appointment-blocks/free-appointments: + get: + operationId: getFreeAppointments + parameters: + - in: query + name: appointmentType + required: true + schema: + $ref: "#/components/schemas/AppointmentType" + - in: query + name: earliestDate + required: false + schema: + type: string + format: date-time + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/GetFreeAppointmentsResponse" + description: OK + summary: Get free appointments for an appointment type. + tags: + - AppointmentBlock + /appointment-types: + get: + operationId: getAppointmentTypes + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/GetAppointmentTypesResponse" + description: OK + summary: Gets all Appointment Types + tags: + - AppointmentType + /appointment-types/{id}: + get: + operationId: getOneAppointmentType + parameters: + - in: path + name: id + required: true + schema: + type: string + format: uuid + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/AppointmentTypeConfig" + description: OK + summary: Gets one Appointment Type by ID + tags: + - AppointmentType + put: + operationId: updateAppointmentType + parameters: + - in: path + name: id + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UpdateAppointmentTypeRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/AppointmentTypeConfig" + description: OK + summary: Modifies an existing Appointment Type + tags: + - AppointmentType /approval-requests/{approvalRequestId}: get: operationId: getApprovalRequest @@ -355,6 +514,54 @@ paths: summary: Get details of an oms procedure tags: - EmployeeOmsProcedure + /employee/procedures/{id}/facility: + patch: + operationId: patchFacility + parameters: + - in: path + name: id + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/PatchEmployeeOmsProcedureFacilityRequest" + required: true + responses: + "200": + description: OK + summary: Updates a facility + tags: + - EmployeeOmsProcedure + post: + operationId: postFacility + parameters: + - in: path + name: id + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/PostEmployeeOmsProcedureFacilityRequest" + required: true + responses: + "200": + content: + application/json: + schema: + type: string + format: uuid + description: OK + summary: Add facility to a draft oms procedure + tags: + - EmployeeOmsProcedure /employee/procedures/{id}/header: get: operationId: getEmployeeProcedureHeader @@ -375,6 +582,28 @@ paths: summary: Get details of an oms procedure tags: - EmployeeOmsProcedure + /employee/procedures/{procedureId}/affected-person: + patch: + operationId: updateAffectedPerson + parameters: + - in: path + name: procedureId + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/PatchAffectedPersonRequest" + required: true + responses: + "200": + description: OK + summary: Update affected person in an oms procedure + tags: + - EmployeeOmsProcedure /files/{fileId}: delete: operationId: deleteFile @@ -1011,6 +1240,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -1677,6 +1925,19 @@ paths: description: OK tags: - TestHelper + /test-helper/population/administrative: + post: + operationId: populateAdministrative + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/PostPopulateAdministrativeResponse" + description: OK + summary: Create administrative entities + tags: + - TestHelper /test-helper/population/procedure: post: operationId: populateProcedure @@ -1814,9 +2075,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -1835,10 +2095,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -1950,11 +2207,74 @@ components: type: string maxLength: 119 minLength: 1 + version: + type: integer + format: int64 required: - contactAddress - dateOfBirth - firstName - lastName + - version + Appointment: + type: object + description: Appointment of a procedure. + properties: + end: + type: string + format: date-time + start: + type: string + format: date-time + required: + - end + - start + AppointmentBlockSortKey: + type: string + enum: + - START + - END + AppointmentLocation: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + AppointmentType: + type: string + enum: + - CONSULTATION + - VACCINATION + - REGULAR_EXAMINATION + - CAN_CHILD + - ENTRY_LEVEL + - SPECIAL_NEEDS + - PROOF_SUBMISSION + - HIV_STI_CONSULTATION + - SEX_WORK + - RESULTS_REVIEW + - OFFICIAL_MEDICAL_SERVICE + AppointmentTypeConfig: + type: object + properties: + appointmentTypeDto: + $ref: "#/components/schemas/AppointmentType" + id: + type: string + format: uuid + standardDurationInMinutes: + type: integer + format: int32 + minimum: 0 + required: + - appointmentTypeDto + - id + - standardDurationInMinutes ApprovalRequest: type: object properties: @@ -2113,75 +2433,28 @@ components: required: - businessProcedure - inclusionStatus - ConcreteFileDto: + CheckFileStateUsageRequest: type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: + properties: + fileStatesIds: + type: array + items: type: string format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' + maxItems: 2147483647 + minItems: 1 required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: + - fileStatesIds + CheckFileStateUsageResponse: type: object - discriminator: - propertyName: '@type' properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid + inUse: + type: array + items: + type: string + format: uuid required: - - '@type' + - inUse ContactDetails: type: object properties: @@ -2464,6 +2737,22 @@ components: - ZA - ZM - ZW + CreateAppointmentBlockGroupResponse: + type: object + properties: + appointmentBlockIds: + type: array + items: + type: string + format: uuid + id: + type: string + format: uuid + description: Id of the AppointmentBlockGroup. + example: a765534d-760a-417d-8639-5e2fd59246e2 + required: + - appointmentBlockIds + - id CreateApprovalRequestRequest: type: object properties: @@ -2471,6 +2760,63 @@ components: type: string required: - reason + CreateDailyAppointmentBlock: + type: object + properties: + daysOfWeek: + type: array + items: + $ref: "#/components/schemas/DayOfWeek" + end: + type: string + format: date-time + description: Time at which the appointment block ends. + example: 2016-01-01T01:45:00.123456+01:00 + start: + type: string + format: date-time + description: Time at which the appointment block starts. + example: 2016-01-01T01:00:00.123456+01:00 + required: + - daysOfWeek + - end + - start + CreateDailyAppointmentBlockGroupRequest: + type: object + properties: + appointmentBlocks: + type: array + items: + $ref: "#/components/schemas/CreateDailyAppointmentBlock" + consultants: + type: array + items: + type: string + format: uuid + locationId: + type: string + format: uuid + mfas: + type: array + items: + type: string + format: uuid + parallelExaminations: + type: integer + format: int32 + maximum: 10 + minimum: 1 + physicians: + type: array + items: + type: string + format: uuid + type: + $ref: "#/components/schemas/AppointmentType" + required: + - appointmentBlocks + - parallelExaminations + - type CreateInboxProcedureRequest: type: object properties: @@ -2517,6 +2863,16 @@ components: - EXTERNAL - IMPORT - EDIT + DayOfWeek: + type: string + enum: + - MONDAY + - TUESDAY + - WEDNESDAY + - THURSDAY + - FRIDAY + - SATURDAY + - SUNDAY Decision: type: string enum: @@ -2618,6 +2974,8 @@ components: properties: affectedPerson: $ref: "#/components/schemas/AffectedPerson" + facility: + $ref: "#/components/schemas/Facility" id: type: string format: uuid @@ -2651,6 +3009,8 @@ components: dateOfBirth: type: string format: date + facilityName: + type: string firstName: type: string id: @@ -2680,6 +3040,35 @@ components: uniqueItems: true required: - procedures + Facility: + type: object + properties: + contactAddress: + oneOf: + - $ref: "#/components/schemas/DomesticAddress" + - $ref: "#/components/schemas/PostboxAddress" + contactPersons: + type: array + items: + $ref: "#/components/schemas/FacilityContactPerson" + emailAddresses: + type: array + items: + type: string + name: + type: string + phoneNumbers: + type: array + items: + type: string + maxLength: 23 + minLength: 1 + version: + type: integer + format: int64 + required: + - name + - version FacilityContactPerson: type: object properties: @@ -2951,32 +3340,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -3002,6 +3369,89 @@ components: required: - elements - totalNumberOfElements + GetAppointmentBlock: + type: object + description: A planned appointment block. Appointment blocks offer a set of + bookable appointments at different times within the timeframe of the appointment + block. + properties: + end: + type: string + format: date-time + description: Time at which the appointment block ends. + example: 2016-01-01T01:45:00.123456+01:00 + id: + type: string + format: uuid + description: Id of the AppointmentBlock. + example: a765534d-760a-417d-8639-5e2fd59246e2 + numberOfBookedAppointments: + type: integer + format: int64 + minimum: 0 + numberOfFreeAppointments: + type: integer + format: int64 + minimum: 0 + start: + type: string + format: date-time + description: Time at which the appointment block starts. + example: 2016-01-01T01:00:00.123456+01:00 + required: + - end + - id + - numberOfBookedAppointments + - numberOfFreeAppointments + - start + GetAppointmentBlockGroup: + type: object + properties: + appointmentBlocks: + type: array + items: + $ref: "#/components/schemas/GetAppointmentBlock" + id: + type: string + format: uuid + description: Id of the AppointmentBlockGroup. + example: a765534d-760a-417d-8639-5e2fd59246e2 + location: + $ref: "#/components/schemas/AppointmentLocation" + parallelExaminations: + type: integer + format: int32 + maximum: 10 + minimum: 1 + type: + $ref: "#/components/schemas/AppointmentType" + required: + - appointmentBlocks + - id + - parallelExaminations + - type + GetAppointmentBlockGroupsResponse: + type: object + properties: + elements: + type: array + items: + $ref: "#/components/schemas/GetAppointmentBlockGroup" + totalNumberOfElements: + type: integer + format: int64 + required: + - elements + - totalNumberOfElements + GetAppointmentTypesResponse: + type: object + properties: + appointmentTypeConfigDtos: + type: array + items: + $ref: "#/components/schemas/AppointmentTypeConfig" + required: + - appointmentTypeConfigDtos GetArchivableProceduresResponse: type: object properties: @@ -3140,6 +3590,15 @@ components: required: - elements - totalNumberOfElements + GetFreeAppointmentsResponse: + type: object + properties: + appointments: + type: array + items: + $ref: "#/components/schemas/Appointment" + required: + - appointments GetGdprDownloadPackagesInfoResponse: type: object properties: @@ -3578,7 +4037,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -3750,18 +4209,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -3894,6 +4346,20 @@ components: type: string enum: - DELETE + PatchAffectedPersonRequest: + type: object + properties: + affectedPerson: + $ref: "#/components/schemas/AffectedPerson" + required: + - affectedPerson + PatchEmployeeOmsProcedureFacilityRequest: + type: object + properties: + updatedFacility: + $ref: "#/components/schemas/Facility" + required: + - updatedFacility PatchManualProgressEntryRequest: type: object properties: @@ -3905,7 +4371,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -3964,6 +4430,13 @@ components: required: - numberOfPopulatedEntities - totalNumberOfEntities + PostEmployeeOmsProcedureFacilityRequest: + type: object + properties: + facility: + $ref: "#/components/schemas/Facility" + required: + - facility PostEmployeeOmsProcedureRequest: type: object properties: @@ -3971,16 +4444,41 @@ components: $ref: "#/components/schemas/AffectedPerson" required: - affectedPerson + PostPopulateAdministrativeResponse: + type: object + properties: + appointmentBlockGroupsCreated: + type: object + additionalProperties: + type: string + format: uuid + physicians: + type: object + additionalProperties: + type: array + items: + type: string + format: uuid + required: + - appointmentBlockGroupsCreated + - physicians PostPopulateProcedureRequest: type: object properties: + facility: + $ref: "#/components/schemas/PostEmployeeOmsProcedureFacilityRequest" procedureData: $ref: "#/components/schemas/PostEmployeeOmsProcedureRequest" + targetState: + $ref: "#/components/schemas/ProcedureStatus" required: - procedureData PostPopulateProcedureResponse: type: object properties: + facilityId: + type: string + format: uuid procedureId: type: string format: uuid @@ -4206,7 +4704,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid @@ -4461,6 +4962,15 @@ components: - SYSTEM_AUTOMATIC - EMPLOYEE - CITIZEN + UpdateAppointmentTypeRequest: + type: object + properties: + standardDurationInMinutes: + type: integer + format: int32 + minimum: 0 + required: + - standardDurationInMinutes User: type: object properties: @@ -4504,3 +5014,19 @@ components: - lastName - userId - username + ValidateAppointmentBlockGroupResponse: + type: object + properties: + userIdsWithEventConflicts: + type: array + items: + type: string + format: uuid + userIdsWithoutEventConflicts: + type: array + items: + type: string + format: uuid + required: + - userIdsWithEventConflicts + - userIdsWithoutEventConflicts diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OfficialMedicalServiceApplication.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OfficialMedicalServiceApplication.java index 642edc2eef2b76ffa01bab78e028453e73822894..141d856b4933c7349d137f24d570601696319b7f 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OfficialMedicalServiceApplication.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OfficialMedicalServiceApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsAppointmentBlockConfiguration.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsAppointmentBlockConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..d40d0c145facb06ab3f4d77626fb579123332995 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsAppointmentBlockConfiguration.java @@ -0,0 +1,20 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice; + +import de.eshg.lib.appointmentblock.AppointmentBlockValidator; +import de.eshg.lib.keycloak.TechnicalGroup; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class OmsAppointmentBlockConfiguration { + + @Bean(name = AppointmentBlockValidator.TECHNICAL_GROUP_PHYSICIANS) + TechnicalGroup technicalGroupPhysicians() { + return TechnicalGroup.OFFICIAL_MEDICAL_SERVICE_PHYSICIANS; + } +} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsAuditLogConfiguration.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsAuditLogConfiguration.java index be74bec9893061c444d5c033bef72a9add6642f8..6f829e4c39f21fe0984e4621132f38dd6b7acec6 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsAuditLogConfiguration.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsNotificationConfiguration.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsNotificationConfiguration.java index ca7871c668941fcf258153bdac045386d9e902d0..dddc20cdfafb4a90d539b17e8c4ea69456991f77 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsNotificationConfiguration.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsNotificationConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsProcedureConfiguration.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsProcedureConfiguration.java index 305e3d3597de241dc1a45126ee72af794238f575..ff3c94ce130c8408e0414eaf2336d0b46127620c 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsProcedureConfiguration.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/OmsProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/CitizenPublicController.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/CitizenPublicController.java index 1d04817723cd7c713f21e49efb172640d3db73e1..b226f62bffb5d89e2748c08a325aea7432f7f51c 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/CitizenPublicController.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/CitizenPublicController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoProperties.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoProperties.java index 7fb5bdab17874896a13b9b4dfac031af904618b8..72a6be75b4af13650c8c45ed8c64346cf969b454 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoProperties.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoService.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoService.java index ffa5626eb64b7ba771540a3e45f9885ea8362288..e7a936d28c7c786e022598b29931ed9d4acdb868 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoService.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/DepartmentInfoService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/OpeningHoursProperties.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/OpeningHoursProperties.java index df4ed9e708538ff56a55f6c8780870bbcf7e5da4..95e4df3a6646093d95e9ffda92d49791ed6ebcf9 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/OpeningHoursProperties.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/OpeningHoursProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/api/GetOpeningHoursResponse.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/api/GetOpeningHoursResponse.java index 5be51a0d23c1e2603a55788410ffe3bdbabbd649..c93d3ee2cd562349977bd8453dc34cdbff1240cd 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/api/GetOpeningHoursResponse.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/citizenpublic/api/GetOpeningHoursResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/facility/FacilityClient.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/facility/FacilityClient.java new file mode 100644 index 0000000000000000000000000000000000000000..71c865c4a97db200b147fdf779de46acb6e67d60 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/facility/FacilityClient.java @@ -0,0 +1,66 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.facility; + +import de.eshg.base.centralfile.FacilityApi; +import de.eshg.base.centralfile.api.facility.AddFacilityFileStateRequest; +import de.eshg.base.centralfile.api.facility.AddFacilityFileStateResponse; +import de.eshg.base.centralfile.api.facility.GetFacilityFileStateResponse; +import de.eshg.base.centralfile.api.facility.GetFacilityFileStatesRequest; +import de.eshg.base.centralfile.api.facility.GetFacilityFileStatesResponse; +import de.eshg.base.centralfile.api.facility.PutFacilityRequest; +import de.eshg.rest.service.error.BadRequestException; +import de.eshg.rest.service.error.ErrorCode; +import de.eshg.rest.service.error.ErrorResponse; +import java.util.UUID; +import java.util.function.Supplier; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.web.client.HttpClientErrorException; + +@Component +public class FacilityClient { + private final FacilityApi facilityApi; + + public FacilityClient(FacilityApi facilityApi) { + this.facilityApi = facilityApi; + } + + public AddFacilityFileStateResponse addFacilityFileState(AddFacilityFileStateRequest request) { + return doAndForwardErrorCodes(() -> facilityApi.addFacilityFileState(request)); + } + + public GetFacilityFileStateResponse getFacilityFileState(UUID id) { + return doAndForwardErrorCodes(() -> facilityApi.getFacilityFileState(id)); + } + + public GetFacilityFileStatesResponse getFacilityFileStates(GetFacilityFileStatesRequest request) { + return doAndForwardErrorCodes(() -> facilityApi.getFacilityFileStates(request)); + } + + public AddFacilityFileStateResponse updateFacilityFileStateAndReference( + UUID id, PutFacilityRequest request) { + return doAndForwardErrorCodes( + () -> facilityApi.updateFacilityFileStateAndReference(id, request)); + } + + private <T> T doAndForwardErrorCodes(Supplier<T> action) { + try { + return action.get(); + } catch (HttpClientErrorException e) { + if (e.getStatusCode().isSameCodeAs(HttpStatus.UNAUTHORIZED)) { + throw new BadRequestException(ErrorCode.UNAUTHORIZED, "Unauthorized base module call"); + } + ErrorResponse errorResponse = e.getResponseBodyAs(ErrorResponse.class); + if (errorResponse != null) { + throw new BadRequestException(errorResponse.errorCode(), errorResponse.message()); + } else { + throw new BadRequestException( + ErrorCode.UNEXPECTED_ERROR, "Could not read error from base module"); + } + } + } +} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/facility/FacilityMapper.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/facility/FacilityMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..e26d8c4e1b56b8aacbc6e54d0e302a022a50e955 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/facility/FacilityMapper.java @@ -0,0 +1,60 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.facility; + +import de.eshg.base.centralfile.api.DataOriginDto; +import de.eshg.base.centralfile.api.facility.AddFacilityFileStateRequest; +import de.eshg.base.centralfile.api.facility.FacilityDetailsDto; +import de.eshg.base.centralfile.api.facility.GetFacilityFileStateResponse; +import de.eshg.base.centralfile.api.facility.PutFacilityRequest; +import de.eshg.officialmedicalservice.procedure.api.FacilityDto; + +public class FacilityMapper { + + private FacilityMapper() {} + + public static AddFacilityFileStateRequest mapToAddFacilityFileStateRequest(FacilityDto facility) { + if (facility == null) { + return null; + } + return new AddFacilityFileStateRequest( + facility.name(), + facility.emailAddresses(), + facility.phoneNumbers(), + facility.contactPersons(), + facility.contactAddress(), + null, + DataOriginDto.MANUAL); + } + + public static PutFacilityRequest mapToPutFacilityRequest(FacilityDto facility) { + if (facility == null) { + return null; + } + return new PutFacilityRequest( + new FacilityDetailsDto( + facility.name(), + facility.emailAddresses(), + facility.phoneNumbers(), + facility.contactPersons(), + facility.contactAddress(), + null)); + } + + public static FacilityDto mapToFacilityDto( + GetFacilityFileStateResponse facilityFileState, long version) { + if (facilityFileState == null) { + return null; + } + return new FacilityDto( + version, + facilityFileState.name(), + facilityFileState.emailAddresses(), + facilityFileState.phoneNumbers(), + facilityFileState.contactPersons(), + facilityFileState.contactAddress()); + } +} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonClient.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonClient.java index 876d471b03f64942ff64dc4b9949f1074db90d79..6b9ac3e8c031b7bb9436736b9bc233f5d4f73ea3 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonClient.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,6 +11,7 @@ import de.eshg.base.centralfile.api.person.AddPersonFileStateResponse; import de.eshg.base.centralfile.api.person.GetPersonFileStateResponse; import de.eshg.base.centralfile.api.person.GetPersonFileStatesRequest; import de.eshg.base.centralfile.api.person.GetPersonFileStatesResponse; +import de.eshg.base.centralfile.api.person.UpdatePersonRequest; import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.error.ErrorCode; import de.eshg.rest.service.error.ErrorResponse; @@ -40,6 +41,11 @@ public class PersonClient { return doAndForwardErrorCodes(() -> personApi.getPersonFileStates(request)); } + public AddPersonFileStateResponse updatePersonFileStateAndReference( + UUID id, UpdatePersonRequest request) { + return doAndForwardErrorCodes(() -> personApi.updatePersonFileStateAndReference(id, request)); + } + private <T> T doAndForwardErrorCodes(Supplier<T> action) { try { return action.get(); diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonMapper.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonMapper.java index d4c41a7bd319375fcdd32b5b87fac14767a9a9bc..d91b664c8843410e8c63255c048b907f28464d91 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonMapper.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/person/PersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ import de.eshg.base.centralfile.api.DataOriginDto; import de.eshg.base.centralfile.api.person.AddPersonFileStateRequest; import de.eshg.base.centralfile.api.person.GetPersonFileStateResponse; import de.eshg.base.centralfile.api.person.PersonDetailsDto; +import de.eshg.base.centralfile.api.person.UpdatePersonRequest; import de.eshg.officialmedicalservice.procedure.api.AffectedPersonDto; public class PersonMapper { @@ -16,11 +17,12 @@ public class PersonMapper { private PersonMapper() {} public static AffectedPersonDto mapToAffectedPersonDto( - GetPersonFileStateResponse personFileState) { + GetPersonFileStateResponse personFileState, long version) { if (personFileState == null) { return null; } return new AffectedPersonDto( + version, personFileState.salutation(), personFileState.firstName(), personFileState.lastName(), @@ -41,20 +43,30 @@ public class PersonMapper { return null; } return new AddPersonFileStateRequest( - new PersonDetailsDto( - affectedPersonDto.title(), - affectedPersonDto.salutation(), - affectedPersonDto.gender(), - affectedPersonDto.firstName(), - affectedPersonDto.lastName(), - affectedPersonDto.dateOfBirth(), - affectedPersonDto.nameAtBirth(), - affectedPersonDto.placeOfBirth(), - affectedPersonDto.countryOfBirth(), - affectedPersonDto.emailAddresses(), - affectedPersonDto.phoneNumbers(), - affectedPersonDto.contactAddress(), - null), - DataOriginDto.MANUAL); + mapToPersonDetailsDto(affectedPersonDto), DataOriginDto.MANUAL); + } + + public static UpdatePersonRequest mapToUpdatePersonRequest(AffectedPersonDto affectedPersonDto) { + if (affectedPersonDto == null) { + return null; + } + return new UpdatePersonRequest(mapToPersonDetailsDto(affectedPersonDto)); + } + + public static PersonDetailsDto mapToPersonDetailsDto(AffectedPersonDto affectedPersonDto) { + return new PersonDetailsDto( + affectedPersonDto.title(), + affectedPersonDto.salutation(), + affectedPersonDto.gender(), + affectedPersonDto.firstName(), + affectedPersonDto.lastName(), + affectedPersonDto.dateOfBirth(), + affectedPersonDto.nameAtBirth(), + affectedPersonDto.placeOfBirth(), + affectedPersonDto.countryOfBirth(), + affectedPersonDto.emailAddresses(), + affectedPersonDto.phoneNumbers(), + affectedPersonDto.contactAddress(), + null); } } diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureController.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureController.java index bb9f25c971a25c3e037f124c4b5341af13c37b0b..e53b2f042efc21ae9dd14e74a2ffe04dc4beedef 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureController.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,6 +11,9 @@ import de.eshg.officialmedicalservice.procedure.api.EmployeeOmsProcedureHeaderDt import de.eshg.officialmedicalservice.procedure.api.EmployeeOmsProcedurePaginationAndSortParameters; import de.eshg.officialmedicalservice.procedure.api.EmployeePagedOmsProcedures; import de.eshg.officialmedicalservice.procedure.api.GetEmployeeOmsProcedureOverviewResponse; +import de.eshg.officialmedicalservice.procedure.api.PatchAffectedPersonRequest; +import de.eshg.officialmedicalservice.procedure.api.PatchEmployeeOmsProcedureFacilityRequest; +import de.eshg.officialmedicalservice.procedure.api.PostEmployeeOmsProcedureFacilityRequest; import de.eshg.officialmedicalservice.procedure.api.PostEmployeeOmsProcedureRequest; import de.eshg.rest.service.security.config.BaseUrls; import io.swagger.v3.oas.annotations.Operation; @@ -20,6 +23,7 @@ import java.util.UUID; import org.springdoc.core.annotations.ParameterObject; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -34,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController; public class EmployeeOmsProcedureController { public static final String BASE_URL = BaseUrls.OfficialMedicalService.EMPLOYEE_API; public static final String PROCEDURES = "/procedures"; + public static final String AFFECTED_PERSON = "/affected-person"; private final EmployeeOmsProcedureService employeeOmsProcedureService; @@ -71,4 +76,28 @@ public class EmployeeOmsProcedureController { return new GetEmployeeOmsProcedureOverviewResponse( pagedOmsProcedures.proceduresPage(), pagedOmsProcedures.totalNumberOfProcedures()); } + + @PatchMapping(path = PROCEDURES + "/{procedureId}" + AFFECTED_PERSON) + @Operation(summary = "Update affected person in an oms procedure") + public void updateAffectedPerson( + @PathVariable("procedureId") UUID externalId, + @RequestBody @Valid PatchAffectedPersonRequest patchAffectedPersonRequest) { + employeeOmsProcedureService.updateAffectedPerson(externalId, patchAffectedPersonRequest); + } + + @PostMapping(path = PROCEDURES + "/{id}/facility") + @Operation(summary = "Add facility to a draft oms procedure") + public UUID postFacility( + @PathVariable("id") UUID id, + @Valid @RequestBody PostEmployeeOmsProcedureFacilityRequest request) { + return employeeOmsProcedureService.addFacility(id, request); + } + + @PatchMapping(path = PROCEDURES + "/{id}/facility") + @Operation(summary = "Updates a facility") + public void patchFacility( + @PathVariable("id") UUID externalId, + @Valid @RequestBody PatchEmployeeOmsProcedureFacilityRequest request) { + employeeOmsProcedureService.updateFacility(externalId, request); + } } diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureService.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureService.java index ccb3f0d64cda0287552513758f008199940b5cba..963a2e91c3f0eb001cd135ecb863446795f30d13 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureService.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureService.java @@ -1,16 +1,25 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.officialmedicalservice.procedure; +import de.eshg.base.centralfile.api.facility.AddFacilityFileStateResponse; +import de.eshg.base.centralfile.api.facility.GetFacilityFileStateResponse; +import de.eshg.base.centralfile.api.facility.GetFacilityFileStatesRequest; +import de.eshg.base.centralfile.api.facility.GetFacilityFileStatesResponse; import de.eshg.base.centralfile.api.person.AddPersonFileStateResponse; import de.eshg.base.centralfile.api.person.GetPersonFileStateResponse; import de.eshg.base.centralfile.api.person.GetPersonFileStatesRequest; import de.eshg.base.centralfile.api.person.GetPersonFileStatesResponse; +import de.eshg.lib.auditlog.AuditLogger; +import de.eshg.lib.procedure.domain.model.FacilityType; +import de.eshg.lib.procedure.domain.model.ProcedureStatus; import de.eshg.lib.procedure.domain.model.RelatedPerson; import de.eshg.lib.procedure.mapping.ProcedureMapper; +import de.eshg.officialmedicalservice.facility.FacilityClient; +import de.eshg.officialmedicalservice.facility.FacilityMapper; import de.eshg.officialmedicalservice.person.PersonClient; import de.eshg.officialmedicalservice.person.PersonMapper; import de.eshg.officialmedicalservice.procedure.api.AffectedPersonDto; @@ -19,17 +28,25 @@ import de.eshg.officialmedicalservice.procedure.api.EmployeeOmsProcedureHeaderDt import de.eshg.officialmedicalservice.procedure.api.EmployeeOmsProcedureOverviewDto; import de.eshg.officialmedicalservice.procedure.api.EmployeeOmsProcedurePaginationAndSortParameters; import de.eshg.officialmedicalservice.procedure.api.EmployeePagedOmsProcedures; +import de.eshg.officialmedicalservice.procedure.api.FacilityDto; +import de.eshg.officialmedicalservice.procedure.api.PatchAffectedPersonRequest; +import de.eshg.officialmedicalservice.procedure.api.PatchEmployeeOmsProcedureFacilityRequest; +import de.eshg.officialmedicalservice.procedure.api.PostEmployeeOmsProcedureFacilityRequest; import de.eshg.officialmedicalservice.procedure.api.PostEmployeeOmsProcedureRequest; +import de.eshg.officialmedicalservice.procedure.persistence.entity.Facility; import de.eshg.officialmedicalservice.procedure.persistence.entity.OmsProcedure; import de.eshg.officialmedicalservice.procedure.persistence.entity.OmsProcedureRepository; +import de.eshg.officialmedicalservice.procedure.persistence.entity.Person; import de.eshg.rest.service.error.BadRequestException; -import de.eshg.rest.service.error.ErrorCode; import de.eshg.rest.service.error.NotFoundException; import de.eshg.rest.service.security.CurrentUserHelper; +import de.eshg.validation.ValidationUtil; +import java.time.Clock; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import java.util.stream.Collectors; import org.springframework.data.domain.Page; @@ -41,22 +58,27 @@ public class EmployeeOmsProcedureService { private final OmsProcedureRepository omsProcedureRepository; private final OmsProcedureOverviewMapper omsProcedureOverviewMapper; private final PersonClient personClient; + private final FacilityClient facilityClient; + private final Clock clock; + private final AuditLogger auditLogger; public EmployeeOmsProcedureService( OmsProcedureRepository omsProcedureRepository, OmsProcedureOverviewMapper omsProcedureOverviewMapper, - PersonClient personClient) { + PersonClient personClient, + FacilityClient facilityClient, + Clock clock, + AuditLogger auditLogger) { this.omsProcedureRepository = omsProcedureRepository; this.omsProcedureOverviewMapper = omsProcedureOverviewMapper; this.personClient = personClient; + this.facilityClient = facilityClient; + this.clock = clock; + this.auditLogger = auditLogger; } @Transactional public UUID createEmployeeProcedure(PostEmployeeOmsProcedureRequest request) { - if (request.affectedPerson().contactAddress() == null) { - throw new BadRequestException(ErrorCode.BAD_REQUEST, "Contact address is required"); - } - AddPersonFileStateResponse affectedPersonBaseResponse = personClient.addPersonFileState( PersonMapper.mapToAddPersonFileStateRequest(request.affectedPerson())); @@ -89,11 +111,22 @@ public class EmployeeOmsProcedureService { OmsProcedureAndAffectedPerson omsProcedureAndAffectedPerson = getOmsProcedureAndAffectedPerson(externalId); + FacilityDto facility = null; + Optional<Facility> optionalFacility = omsProcedureAndAffectedPerson.omsProcedure.getFacility(); + if (optionalFacility.isPresent()) { + Facility facilityFromCentralFile = optionalFacility.get(); + GetFacilityFileStateResponse facilityFileState = + facilityClient.getFacilityFileState(facilityFromCentralFile.getCentralFileStateId()); + facility = + FacilityMapper.mapToFacilityDto(facilityFileState, facilityFromCentralFile.getVersion()); + } + return new EmployeeOmsProcedureDetailsDto( omsProcedureAndAffectedPerson.omsProcedure.getExternalId(), ProcedureMapper.toInterfaceType( omsProcedureAndAffectedPerson.omsProcedure.getProcedureStatus()), - omsProcedureAndAffectedPerson.affectedPerson); + omsProcedureAndAffectedPerson.affectedPerson, + facility); } @Transactional(readOnly = true) @@ -106,29 +139,149 @@ public class EmployeeOmsProcedureService { EmployeeOmsProcedureSpecification.toPageSpec(paginationAndSortParameters)); Map<UUID, GetPersonFileStateResponse> personMap = getPersonMap(omsProcedures.getContent()); + Map<UUID, AddFacilityFileStateResponse> facilityMap = + getFacilityMap(omsProcedures.getContent()); List<EmployeeOmsProcedureOverviewDto> omsProcedureOverviewDtos = omsProcedures.getContent().stream() .map( omsProcedure -> omsProcedureOverviewMapper.toInterfaceType( - omsProcedure, getPersonForOmsProcedure(omsProcedure, personMap))) + omsProcedure, + getPersonForOmsProcedure(omsProcedure, personMap), + getFacilityForOmsProcedure(omsProcedure, facilityMap))) .toList(); return new EmployeePagedOmsProcedures( omsProcedureOverviewDtos, omsProcedures.getTotalElements()); } + @Transactional + public void updateAffectedPerson( + UUID externalId, PatchAffectedPersonRequest patchAffectedPersonRequest) { + OmsProcedure omsProcedure = loadOmsProcedureForUpdate(externalId); + + Person person = omsProcedure.findAffectedPerson(); + + ValidationUtil.validateVersion(patchAffectedPersonRequest.affectedPerson().version(), person); + + AddPersonFileStateResponse baseResponse; + try { + baseResponse = + personClient.updatePersonFileStateAndReference( + person.getCentralFileStateId(), + PersonMapper.mapToUpdatePersonRequest(patchAffectedPersonRequest.affectedPerson())); + } catch (BadRequestException e) { + if (!"Matching reference Person already exists".equals(e.getMessage())) { + throw e; + } + baseResponse = + personClient.addPersonFileState( + PersonMapper.mapToAddPersonFileStateRequest( + patchAffectedPersonRequest.affectedPerson())); + } + + person.setCentralFileStateId(baseResponse.id()); + } + + @Transactional + public UUID addFacility(UUID externalId, PostEmployeeOmsProcedureFacilityRequest request) { + OmsProcedure procedure = loadOmsProcedure(externalId); + + if (procedure.getProcedureStatus() != ProcedureStatus.DRAFT) { + throw new BadRequestException("Facility con only be added in DRAFT status"); + } + if (procedure.getFacility().isPresent()) { + throw new BadRequestException("Procedure already has a facility"); + } + AddFacilityFileStateResponse facilityFileState = + facilityClient.addFacilityFileState( + FacilityMapper.mapToAddFacilityFileStateRequest(request.facility())); + + Facility facility = new Facility(); + facility.setCentralFileStateId(facilityFileState.id()); + facility.setFacilityType(FacilityType.OTHER); + procedure.addRelatedFacility(facility); + + return facilityFileState.id(); + } + + @Transactional + public void updateFacility(UUID externalId, PatchEmployeeOmsProcedureFacilityRequest request) { + OmsProcedure procedure = loadOmsProcedureForUpdate(externalId); + + if (procedure.getProcedureStatus() == ProcedureStatus.CLOSED) { + throw new BadRequestException("Facility can not be edited in CLOSED status"); + } + Optional<Facility> optionalFacility = procedure.getFacility(); + if (optionalFacility.isEmpty()) { + throw new BadRequestException("Procedure doesn't have a facility"); + } + Facility facility = optionalFacility.get(); + ValidationUtil.validateVersion(request.updatedFacility().version(), facility); + + AddFacilityFileStateResponse baseResponse; + try { + baseResponse = + facilityClient.updateFacilityFileStateAndReference( + facility.getCentralFileStateId(), + FacilityMapper.mapToPutFacilityRequest(request.updatedFacility())); + } catch (BadRequestException e) { + if (!"Matching reference facility already exists".equals(e.getMessage())) { + throw e; + } + baseResponse = + facilityClient.addFacilityFileState( + FacilityMapper.mapToAddFacilityFileStateRequest(request.updatedFacility())); + } + + facility.setCentralFileStateId(baseResponse.id()); + } + + @Transactional + public void startProcedure(UUID externalId) { + OmsProcedure procedure = loadOmsProcedure(externalId); + + if (procedure.getProcedureStatus() == ProcedureStatus.OPEN) { + throw new BadRequestException("Procedure already started"); + } + + procedure.updateProcedureStatus(ProcedureStatus.OPEN, clock, auditLogger); + } + + @Transactional + public void closeProcedure(UUID externalId) { + OmsProcedure procedure = loadOmsProcedure(externalId); + + if (procedure.getProcedureStatus() == ProcedureStatus.CLOSED) { + throw new BadRequestException("Procedure already closed"); + } + + procedure.updateProcedureStatus(ProcedureStatus.CLOSED, clock, auditLogger); + } + + private OmsProcedure loadOmsProcedure(UUID externalId) { + return omsProcedureRepository + .findByExternalId(externalId) + .orElseThrow(() -> new NotFoundException("Procedure not found")); + } + + private OmsProcedure loadOmsProcedureForUpdate(UUID externalId) { + return omsProcedureRepository + .findByExternalIdForUpdate(externalId) + .orElseThrow(() -> new NotFoundException("Procedure not found")); + } + private OmsProcedureAndAffectedPerson getOmsProcedureAndAffectedPerson(UUID externalId) { - OmsProcedure omsProcedure = - omsProcedureRepository - .findByExternalId(externalId) - .orElseThrow(() -> new NotFoundException("Procedure not found")); + OmsProcedure omsProcedure = loadOmsProcedure(externalId); + + Person person = omsProcedure.findAffectedPerson(); GetPersonFileStateResponse personFileStateResponse = - personClient.getPersonFileState(omsProcedure.findAffectedPerson().getCentralFileStateId()); + personClient.getPersonFileState(person.getCentralFileStateId()); - AffectedPersonDto affectedPerson = PersonMapper.mapToAffectedPersonDto(personFileStateResponse); + AffectedPersonDto affectedPerson = + PersonMapper.mapToAffectedPersonDto(personFileStateResponse, person.getVersion()); return new OmsProcedureAndAffectedPerson(omsProcedure, affectedPerson); } @@ -159,6 +312,26 @@ public class EmployeeOmsProcedureService { .collect(Collectors.toMap(GetPersonFileStateResponse::id, person -> person)); } + private Map<UUID, AddFacilityFileStateResponse> getFacilityMap(List<OmsProcedure> omsProcedures) { + List<UUID> centralFileStateIds = + omsProcedures.stream() + .map(OmsProcedure::getFacility) + .flatMap(Optional::stream) + .map(Facility::getCentralFileStateId) + .distinct() + .toList(); + + if (centralFileStateIds.isEmpty()) { + return Collections.emptyMap(); + } + + GetFacilityFileStatesResponse facilityFileStatesResponse = + facilityClient.getFacilityFileStates(new GetFacilityFileStatesRequest(centralFileStateIds)); + + return facilityFileStatesResponse.facilityFileStates().stream() + .collect(Collectors.toMap(AddFacilityFileStateResponse::id, facility -> facility)); + } + private GetPersonFileStateResponse getPersonForOmsProcedure( OmsProcedure omsProcedure, Map<UUID, GetPersonFileStateResponse> personMap) { if (omsProcedure.findAffectedPerson() == null) { @@ -167,6 +340,14 @@ public class EmployeeOmsProcedureService { return personMap.get(omsProcedure.findAffectedPerson().getCentralFileStateId()); } + private AddFacilityFileStateResponse getFacilityForOmsProcedure( + OmsProcedure omsProcedure, Map<UUID, AddFacilityFileStateResponse> facilityMap) { + return omsProcedure + .getFacility() + .map(facility -> facilityMap.get(facility.getCentralFileStateId())) + .orElse(null); + } + private record OmsProcedureAndAffectedPerson( OmsProcedure omsProcedure, AffectedPersonDto affectedPerson) {} } diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureSpecification.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureSpecification.java index 7ee6d5181eba7a326b008fd84158756971e7c14e..cfcba8749f47f4ca113cd122cd29a2890039c5ec 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureSpecification.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/EmployeeOmsProcedureSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/OmsProcedureOverviewMapper.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/OmsProcedureOverviewMapper.java index 7acab18d9e83faa8eff881cd482fd7252eb2a916..bcec2c455f06dd69f3d1c6ec78ea98d9dc69765b 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/OmsProcedureOverviewMapper.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/OmsProcedureOverviewMapper.java @@ -1,10 +1,11 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.officialmedicalservice.procedure; +import de.eshg.base.centralfile.api.facility.AddFacilityFileStateResponse; import de.eshg.base.centralfile.api.person.AddPersonFileStateResponse; import de.eshg.base.centralfile.api.person.GetPersonFileStateResponse; import de.eshg.lib.auditlog.AuditLogger; @@ -64,21 +65,28 @@ public class OmsProcedureOverviewMapper { } public EmployeeOmsProcedureOverviewDto toInterfaceType( - OmsProcedure procedure, GetPersonFileStateResponse affectedPerson) { + OmsProcedure procedure, + GetPersonFileStateResponse affectedPerson, + AddFacilityFileStateResponse facility) { String firstName = null; String lastName = null; LocalDate dateOfBirth = null; + String facilityName = null; if (affectedPerson != null) { firstName = affectedPerson.firstName(); lastName = affectedPerson.lastName(); dateOfBirth = affectedPerson.dateOfBirth(); } + if (facility != null) { + facilityName = facility.name(); + } return new EmployeeOmsProcedureOverviewDto( procedure.getExternalId(), ProcedureMapper.toInterfaceType(procedure.getProcedureStatus()), firstName, lastName, - dateOfBirth); + dateOfBirth, + facilityName); } } diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/AffectedPersonDto.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/AffectedPersonDto.java index 6366cd43ccec78f33e4e96f93273e3dd12595039..b5de590fa937a27b3607c372c0dc3f453b64d2b8 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/AffectedPersonDto.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/AffectedPersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -20,6 +20,7 @@ import java.util.List; @Schema(name = "AffectedPerson") public record AffectedPersonDto( + @NotNull long version, SalutationDto salutation, @NotBlank @Size(max = 80) String firstName, @NotBlank @Size(max = 120) String lastName, diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureDetailsDto.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureDetailsDto.java index ede64be817cde4e5e35f2a68014c3170c98452b0..f2522afd176cd57fe154b3c8d5cef5b5334b7b01 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureDetailsDto.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -15,4 +15,5 @@ import java.util.UUID; public record EmployeeOmsProcedureDetailsDto( @NotNull UUID id, @NotNull ProcedureStatusDto status, - @NotNull @Valid AffectedPersonDto affectedPerson) {} + @NotNull @Valid AffectedPersonDto affectedPerson, + @Valid FacilityDto facility) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureHeaderDto.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureHeaderDto.java index 6e0771ce56428e54b068e3db02f54e7450de455d..cb49f620013659af91e5629fef669fe9cace1c71 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureHeaderDto.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureHeaderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureOverviewDto.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureOverviewDto.java index ed2eb2faff87ba31c0c6ac9c8d1567c427273391..29123b0fd1c3545f49fc0a0e943201cace9a2995 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureOverviewDto.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureOverviewDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -17,4 +17,5 @@ public record EmployeeOmsProcedureOverviewDto( @NotNull ProcedureStatusDto status, String firstName, String lastName, - LocalDate dateOfBirth) {} + LocalDate dateOfBirth, + String facilityName) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedurePaginationAndSortParameters.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedurePaginationAndSortParameters.java index 11ff05b6cf95b73f81e9d548cc94d74d9dbcb087..e7246a3055399691c988026a79dfd88629a09c3c 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedurePaginationAndSortParameters.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedurePaginationAndSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureSortKey.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureSortKey.java index ea9b185870d4dc3f90e9ad5eadef4e9cd447bfcc..d78e016632c19d5ae0fb02bb5c555d98acfd46da 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureSortKey.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeeOmsProcedureSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeePagedOmsProcedures.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeePagedOmsProcedures.java index 810fd758c328a13bb9e92d5f10df22fda3ad35c3..3a3720f6ddee33b646710c5fdda8fb6008c4614c 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeePagedOmsProcedures.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/EmployeePagedOmsProcedures.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/FacilityDto.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/FacilityDto.java new file mode 100644 index 0000000000000000000000000000000000000000..3c48a38840af6413349056780b8833cc0e03c1c9 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/FacilityDto.java @@ -0,0 +1,24 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.procedure.api; + +import de.eshg.CustomValidations.MandatoryEmailAddressConstraint; +import de.eshg.base.address.AddressDto; +import de.eshg.base.centralfile.api.facility.FacilityContactPersonDto; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import java.util.List; + +@Schema(name = "Facility") +public record FacilityDto( + @NotNull long version, + @NotNull String name, + List<@MandatoryEmailAddressConstraint String> emailAddresses, + List<@NotNull @Size(min = 1, max = 23) String> phoneNumbers, + @Valid List<FacilityContactPersonDto> contactPersons, + @Valid AddressDto contactAddress) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/GetEmployeeOmsProcedureOverviewResponse.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/GetEmployeeOmsProcedureOverviewResponse.java index bcce044209a57e5f4af0a32f13007fa6328339a1..16d1543858050ba5519107b8cb214e5fe084765d 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/GetEmployeeOmsProcedureOverviewResponse.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/GetEmployeeOmsProcedureOverviewResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PatchAffectedPersonRequest.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PatchAffectedPersonRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..dde69680b95960d2f425a4bfd0ddfa2340250ad7 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PatchAffectedPersonRequest.java @@ -0,0 +1,13 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.procedure.api; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +@Schema(name = "PatchAffectedPersonRequest") +public record PatchAffectedPersonRequest(@NotNull @Valid AffectedPersonDto affectedPerson) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PatchEmployeeOmsProcedureFacilityRequest.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PatchEmployeeOmsProcedureFacilityRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..a886c06b1d683bf75ade8d637bd34e25fb78e145 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PatchEmployeeOmsProcedureFacilityRequest.java @@ -0,0 +1,12 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.procedure.api; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +public record PatchEmployeeOmsProcedureFacilityRequest( + @NotNull @Valid FacilityDto updatedFacility) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PostEmployeeOmsProcedureFacilityRequest.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PostEmployeeOmsProcedureFacilityRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..a95be80714595094c2a5eb200b9d3affef046fed --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PostEmployeeOmsProcedureFacilityRequest.java @@ -0,0 +1,11 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.procedure.api; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +public record PostEmployeeOmsProcedureFacilityRequest(@NotNull @Valid FacilityDto facility) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PostEmployeeOmsProcedureRequest.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PostEmployeeOmsProcedureRequest.java index 73ff1bee4e861ad027e5e904718d33ebd1e23ad5..8411cd7d2f062be944d984706919c42c71356219 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PostEmployeeOmsProcedureRequest.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/api/PostEmployeeOmsProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Facility.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Facility.java index 6e77c7c0e63f0cd4b10b173f55eaa583dad0300e..46eec21b0a5bd354ea4b34d510757f89c87401f9 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Facility.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/FacilityRepository.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/FacilityRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..ef9a7c49cbdd03af88baba0250d6ac8db331f260 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/FacilityRepository.java @@ -0,0 +1,10 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.procedure.persistence.entity; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface FacilityRepository extends JpaRepository<Facility, Long> {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedure.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedure.java index 207fa61dd7c2a955dc2475ecca1b4d0020891ddc..5fd8ea866341a70e63b5457f43bcf921c866ddd9 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedure.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedure.java @@ -1,12 +1,15 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.officialmedicalservice.procedure.persistence.entity; +import de.cronn.commons.lang.StreamUtil; import de.eshg.lib.procedure.domain.model.Procedure; import jakarta.persistence.Entity; +import jakarta.persistence.Transient; +import java.util.Optional; @Entity public class OmsProcedure extends Procedure<OmsProcedure, OmsTask, Person, Facility> { @@ -17,4 +20,9 @@ public class OmsProcedure extends Procedure<OmsProcedure, OmsTask, Person, Facil } return getRelatedPersons().getFirst(); } + + @Transient + public Optional<Facility> getFacility() { + return getRelatedFacilities().stream().collect(StreamUtil.toSingleOptionalElement()); + } } diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedureRepository.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedureRepository.java index 369341dad78e5b13d211569171c393ec5ed8a2e6..88a320e19d215d9799079c451b70c5efd82910aa 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedureRepository.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTask.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTask.java index 9f8eac8f46a69c32b47a3c1caf319a87f33f880f..994b1ebc8a4d9d05a4924dbc3e3c36e955f6006f 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTask.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTaskRepository.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTaskRepository.java index 132dcb47c714ce5af5ff7e765bb897f32f9b5cc6..f2748552d068345b59895c84e3e511ce2ba48bf8 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTaskRepository.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/OmsTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Person.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Person.java index 4c3a0092871a90d7c66f9a1ce257afbd11ea0c87..51b34e2b3eaa6931a9f68a8bb211d4f6361e23fa 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Person.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/procedure/persistence/entity/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/OmsTestHelperController.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/OmsTestHelperController.java index 5e5e07fc22d7bdbe6725e3ea83233e062212fe7f..773aca0b8cf988562896bdfbf14e12be59bf33c9 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/OmsTestHelperController.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/OmsTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,12 +7,12 @@ package de.eshg.officialmedicalservice.testhelper; import de.eshg.auditlog.SharedAuditLogTestHelperApi; import de.eshg.lib.auditlog.AuditLogTestHelperService; +import de.eshg.officialmedicalservice.testhelper.api.PostPopulateAdministrativeResponse; import de.eshg.officialmedicalservice.testhelper.api.PostPopulateProcedureRequest; import de.eshg.officialmedicalservice.testhelper.api.PostPopulateProcedureResponse; import de.eshg.testhelper.ConditionalOnTestHelperEnabled; import de.eshg.testhelper.TestHelperApi; import de.eshg.testhelper.TestHelperController; -import de.eshg.testhelper.TestHelperWithDatabaseService; import de.eshg.testhelper.environment.EnvironmentConfig; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.Valid; @@ -29,18 +29,27 @@ public class OmsTestHelperController extends TestHelperController public static final String TEST_POPULATION_URL = TestHelperApi.BASE_URL + TEST_POPULATION_PATH; private final TestPopulateProcedureService testPopulateProcedureService; + private final TestPopulateAdministrativeService testPopulateAdministrativeService; private final AuditLogTestHelperService auditLogTestHelperService; public OmsTestHelperController( - TestHelperWithDatabaseService omsTestHelperService, + OmsTestHelperService omsTestHelperService, TestPopulateProcedureService testPopulateProcedureService, + TestPopulateAdministrativeService testPopulateAdministrativeService, AuditLogTestHelperService auditLogTestHelperService, EnvironmentConfig environmentConfig) { super(omsTestHelperService, environmentConfig); this.testPopulateProcedureService = testPopulateProcedureService; + this.testPopulateAdministrativeService = testPopulateAdministrativeService; this.auditLogTestHelperService = auditLogTestHelperService; } + @PostExchange(TEST_POPULATION_PATH + "/administrative") + @Operation(summary = "Create administrative entities") + public PostPopulateAdministrativeResponse populateAdministrative() { + return testPopulateAdministrativeService.populateAdministrative(); + } + @PostExchange(TEST_POPULATION_PATH + "/procedure") @Operation(summary = "Create a procedure and dependent entities") public PostPopulateProcedureResponse populateProcedure( diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/OmsTestHelperService.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/OmsTestHelperService.java new file mode 100644 index 0000000000000000000000000000000000000000..f0110b566806f22b0739aaf7836e9443a7780190 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/OmsTestHelperService.java @@ -0,0 +1,48 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.testhelper; + +import de.eshg.lib.appointmentblock.persistence.CreateAppointmentTypeTask; +import de.eshg.testhelper.*; +import de.eshg.testhelper.environment.EnvironmentConfig; +import de.eshg.testhelper.interception.TestRequestInterceptor; +import de.eshg.testhelper.population.BasePopulator; +import java.time.Clock; +import java.time.Instant; +import java.util.List; +import org.springframework.stereotype.Service; + +@ConditionalOnTestHelperEnabled +@Service +public class OmsTestHelperService extends DefaultTestHelperService { + + private final CreateAppointmentTypeTask createAppointmentTypeTask; + + public OmsTestHelperService( + DatabaseResetHelper databaseResetHelper, + TestRequestInterceptor testRequestInterceptor, + Clock clock, + List<BasePopulator<?>> populators, + List<ResettableProperties> resettableProperties, + CreateAppointmentTypeTask createAppointmentTypeTask, + EnvironmentConfig environmentConfig) { + super( + databaseResetHelper, + testRequestInterceptor, + clock, + populators, + resettableProperties, + environmentConfig); + this.createAppointmentTypeTask = createAppointmentTypeTask; + } + + @Override + public Instant reset() throws Exception { + Instant newInstant = super.reset(); + createAppointmentTypeTask.createAppointmentTypes(); + return newInstant; + } +} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/TestPopulateAdministrativeService.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/TestPopulateAdministrativeService.java new file mode 100644 index 0000000000000000000000000000000000000000..0257a7815a8558803850c37cdb23bd7686bc7dc4 --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/TestPopulateAdministrativeService.java @@ -0,0 +1,115 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.testhelper; + +import de.eshg.base.user.UserApi; +import de.eshg.base.user.api.UserDto; +import de.eshg.lib.appointmentblock.AppointmentBlockService; +import de.eshg.lib.appointmentblock.api.AppointmentTypeDto; +import de.eshg.lib.appointmentblock.api.CreateDailyAppointmentBlockDto; +import de.eshg.lib.appointmentblock.api.CreateDailyAppointmentBlockGroupRequest; +import de.eshg.lib.appointmentblock.api.DayOfWeekDto; +import de.eshg.lib.keycloak.TechnicalGroup; +import de.eshg.officialmedicalservice.testhelper.api.PostPopulateAdministrativeResponse; +import de.eshg.testhelper.ConditionalOnTestHelperEnabled; +import de.eshg.testhelper.population.PopulateWithAccessTokenHelper; +import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.time.ZonedDateTime; +import java.time.temporal.ChronoUnit; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@ConditionalOnTestHelperEnabled +@Service +public class TestPopulateAdministrativeService { + + public static final String OMS_NOW_KEY = "Amtsärtzlicher Dienst_heute_09_Uhr"; + public static final String OMS_PHYSICIANS = "Amtsärtzlicher Dienst_Ärzte"; + + private final AppointmentBlockService appointmentBlockService; + private final UserApi userApiClient; + private final Clock clock; + private final PopulateWithAccessTokenHelper populateWithAccessTokenHelper; + + public TestPopulateAdministrativeService( + AppointmentBlockService appointmentBlockService, + UserApi userApiClient, + Clock clock, + PopulateWithAccessTokenHelper populateWithAccessTokenHelper) { + this.appointmentBlockService = appointmentBlockService; + this.userApiClient = userApiClient; + this.clock = clock; + this.populateWithAccessTokenHelper = populateWithAccessTokenHelper; + } + + @Transactional + public PostPopulateAdministrativeResponse populateAdministrative() { + return populateWithAccessTokenHelper.doWithAccessToken( + () -> { + Map<String, List<UUID>> physicians = getPhysicians(); + Map<String, UUID> appointmentBlockGroups = createAppointmentBlockGroups(physicians); + + return new PostPopulateAdministrativeResponse(appointmentBlockGroups, physicians); + }); + } + + private Map<String, List<UUID>> getPhysicians() { + List<UUID> physicians = + userApiClient + .getUsersByGroup(TechnicalGroup.OFFICIAL_MEDICAL_SERVICE_PHYSICIANS.getKeycloakName()) + .users() + .stream() + .map(UserDto::userId) + .toList(); + + Map<String, List<UUID>> physiciansGroup = new LinkedHashMap<>(); + physiciansGroup.put(OMS_PHYSICIANS, physicians); + return physiciansGroup; + } + + private Map<String, UUID> createAppointmentBlockGroups(Map<String, List<UUID>> physicians) { + UUID physician = physicians.get(OMS_PHYSICIANS).getFirst(); + + Instant startBlock_omsNow = + ZonedDateTime.now(clock) + .truncatedTo(ChronoUnit.DAYS) + .plusWeeks(3) + .plusHours(9L) + .toInstant(); + + // 9th March to test months change in appointment picker + Instant endBlock_omsNow = startBlock_omsNow.plus(Duration.ofDays(18).plusHours(3L)); + + UUID appointmentBlockGroup_omsNow = + appointmentBlockService + .createDailyAppointmentBlocksForGroup( + new CreateDailyAppointmentBlockGroupRequest( + AppointmentTypeDto.OFFICIAL_MEDICAL_SERVICE, + 2, + List.of( + new CreateDailyAppointmentBlockDto( + startBlock_omsNow, + endBlock_omsNow, + List.of( + DayOfWeekDto.MONDAY, + DayOfWeekDto.TUESDAY, + DayOfWeekDto.WEDNESDAY))), + List.of(physician), + List.of(), + List.of())) + .id(); + + Map<String, UUID> appointmentBlockGroups = new LinkedHashMap<>(); + appointmentBlockGroups.put(OMS_NOW_KEY, appointmentBlockGroup_omsNow); + return appointmentBlockGroups; + } +} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/TestPopulateProcedureService.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/TestPopulateProcedureService.java index 053fb881d8451af32f8c7db67868443ecbea30a6..7da8688819e7f27abe17c9b08b79ac12c0ba6642 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/TestPopulateProcedureService.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/TestPopulateProcedureService.java @@ -1,19 +1,96 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.officialmedicalservice.testhelper; +import static de.eshg.lib.procedure.model.ProcedureStatusDto.CLOSED; +import static de.eshg.lib.procedure.model.ProcedureStatusDto.OPEN; + import de.eshg.officialmedicalservice.procedure.EmployeeOmsProcedureService; import de.eshg.officialmedicalservice.testhelper.api.PostPopulateProcedureRequest; import de.eshg.officialmedicalservice.testhelper.api.PostPopulateProcedureResponse; import de.eshg.testhelper.ConditionalOnTestHelperEnabled; import de.eshg.testhelper.population.PopulateWithAccessTokenHelper; import jakarta.transaction.Transactional; +import java.util.Arrays; import java.util.UUID; import org.springframework.stereotype.Service; +/* +Entities to take handle: + - Procedure + - Facility + - Concern + - Physician + - Appointments + - BookingType (SelfBooking, Appointmentslot, UserDefined) + - Bookingstate (Open, Booked, Canceled) + - Completed + - Documents (how to access docs created by concern) + - Files (4, 5 Standardfiles im Backend, die via key über API angesprochen werden) + - State + - Opinion + - File + - State + - TargetState + +API Request: + procedureData - fachlicher POST + facility - fachlicher POST + targetState - fachliches Enum, welches im PATCH verwendet wird + concern - ConcernDefinitionKey + physician - UUID des Users, Testfällen beziehen diese stabil über Key aus AdministrativePopResponse + appointments - List of AppointmentPopulations (key, fachlichen PostRequest) + cancelAppointments - List of AppointmentKeys + completeAppointments - List of AppointmentKeys + additionalDocuments - List DocumentPopulations (documentKey, fachlichen PostRequest) + uploadedFiles - List Of filePopulation (documentKey, fileKey, uploadedBy (Citizen or Employee)) + documentState? - ListOf DocumentKeys, entweder (documentState, optional reason) oder fachlicher Patch? + beobachten, möglicherweise wird state auch von fileActions beeinflusst, ggf. ist es doch einfacher, + documents, files und documentState in einem PopulationDto zu handhaben + medicalOpinion - PopulationDto mit state, fileKey, publishedFlag + sendInvitation - true or null + disputeProcedure - true or null + +Folgende PopulationKeys werden nicht vom Client gesetzt, sondern sind im BE fixiert: + - ConcernDefinitionKey, via "test"stabiler application.properties, deutscher Name + - DefaultDocumentDefinitionKey, dito + - FileKey, ~ 3 Dateien, die im BE abgelegt werden, um in der PopulatorAPI keine Filestreamingzirkus veranstalten zu müssen + (sollten Dateinamen eine weitergehende Rolle spielen, nur diese dann in FilePopulationDtos aufnehmen) +Vorschlag: Definitionen als EnumDto in API + +Workflow + # create procedure + # add facility + # add concern + # add physician + # start procedure (using TargetState) + # create appointments + # cancel appointments + # complete appointments + # send invitation and obtain citizen token + # create documents + # obtain UUIDs from default documents + # upload files to documents as employee + # upload files to documents as citizen + # set file states + # upload file to opinion + # set opinion state + # publish opinion + # close procedure + # dispute procedure + +API Response + procedureId + facilityId (wird aktuell nicht verwendet, könnte für SyncTestfälle sinnvoll sein, sollte dann auch mit affectedPerson so gemacht werden) + appointmentMap - appointmentKey, UUID der Entity + documentMap - documentKeys, UUID der Entity (beinhaltet auch die Keys der Documents, die über die default Definitionen angelegt wurden) + ggf. opinionId + disputeProcedureId + */ + @Service @ConditionalOnTestHelperEnabled public class TestPopulateProcedureService { @@ -34,12 +111,28 @@ public class TestPopulateProcedureService { () -> { // 0. create blank response data UUID procedureId; + UUID facilityId = null; // 1. create procedure procedureId = employeeOmsProcedureService.createEmployeeProcedure((request.procedureData())); - return new PostPopulateProcedureResponse(procedureId); + // 2. add facility + if (request.facility() != null) { + facilityId = employeeOmsProcedureService.addFacility(procedureId, request.facility()); + } + + // 3. start procedure + if (Arrays.asList(OPEN).contains(request.targetState())) { + employeeOmsProcedureService.startProcedure(procedureId); + } + + // 4. close procedure + if (Arrays.asList(CLOSED).contains(request.targetState())) { + employeeOmsProcedureService.closeProcedure(procedureId); + } + + return new PostPopulateProcedureResponse(procedureId, facilityId); }); } } diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateAdministrativeResponse.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateAdministrativeResponse.java new file mode 100644 index 0000000000000000000000000000000000000000..00250c360a435c684cf00fd135720b44b3873cad --- /dev/null +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateAdministrativeResponse.java @@ -0,0 +1,16 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +package de.eshg.officialmedicalservice.testhelper.api; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +public record PostPopulateAdministrativeResponse( + @Valid @NotNull Map<String, UUID> appointmentBlockGroupsCreated, + @Valid @NotNull Map<String, List<UUID>> physicians) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureRequest.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureRequest.java index 0d34264109337426afed9d1f3f4794eefec84a8f..624976448da1e1acab21dc3f109529d208c2400b 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureRequest.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureRequest.java @@ -1,13 +1,17 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ package de.eshg.officialmedicalservice.testhelper.api; +import de.eshg.lib.procedure.model.ProcedureStatusDto; +import de.eshg.officialmedicalservice.procedure.api.PostEmployeeOmsProcedureFacilityRequest; import de.eshg.officialmedicalservice.procedure.api.PostEmployeeOmsProcedureRequest; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; public record PostPopulateProcedureRequest( - @NotNull @Valid PostEmployeeOmsProcedureRequest procedureData) {} + @NotNull @Valid PostEmployeeOmsProcedureRequest procedureData, + @Valid PostEmployeeOmsProcedureFacilityRequest facility, + ProcedureStatusDto targetState) {} diff --git a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureResponse.java b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureResponse.java index 6d5e984d49b9d189a82142888713d366cdd8b258..58732fb8cbc958f38235d12a333b67e66164c597 100644 --- a/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureResponse.java +++ b/backend/official-medical-service/src/main/java/de/eshg/officialmedicalservice/testhelper/api/PostPopulateProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,4 +8,4 @@ package de.eshg.officialmedicalservice.testhelper.api; import jakarta.validation.constraints.NotNull; import java.util.UUID; -public record PostPopulateProcedureResponse(@NotNull UUID procedureId) {} +public record PostPopulateProcedureResponse(@NotNull UUID procedureId, UUID facilityId) {} diff --git a/backend/official-medical-service/src/main/resources/application.properties b/backend/official-medical-service/src/main/resources/application.properties index 5b5ba60c1327b7bb84db8173433db81250c339b3..e7259e3d8ffe755e14aee816315526a0eb2aff49 100644 --- a/backend/official-medical-service/src/main/resources/application.properties +++ b/backend/official-medical-service/src/main/resources/application.properties @@ -31,3 +31,8 @@ de.eshg.official-medical-service.opening-hours.en[2]=Mon - Thu: 08:00 - 11:00 a. de.eshg.official-medical-service.opening-hours.en[3]=telephone appointment de.eshg.official-medical-service.opening-hours.en[4]=Fri: 08:00 - 11:00 a.m. de.eshg.official-medical-service.opening-hours.en[5]=telephone appointment + +de.eshg.lib.appointmentblock.defaultAppointmentTypeConfiguration[OFFICIAL_MEDICAL_SERVICE]=30m +de.eshg.lib.appointmentblock.createAppointmentBlockForCurrentUser=false + +eshg.population.default-number-of-entities-to-populate.appointment-block-group=0 diff --git a/backend/official-medical-service/src/main/resources/migrations/changelog.xml b/backend/official-medical-service/src/main/resources/migrations/changelog.xml index 652fc9c560c6b775c43dc943b9810c538e60c4ab..d25ac9a940de0b8f1e6fffbcdf614517123489ca 100644 --- a/backend/official-medical-service/src/main/resources/migrations/changelog.xml +++ b/backend/official-medical-service/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/opendata/openApi.yaml b/backend/opendata/openApi.yaml index ef35af6358249c03223d87b73d931ec587afb508..3ba7fd0f9c3493076349523d17b45bacc209d9a6 100644 --- a/backend/opendata/openApi.yaml +++ b/backend/opendata/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 diff --git a/backend/opendata/src/main/java/de/eshg/opendata/GetFallbackLicenseUrlResponse.java b/backend/opendata/src/main/java/de/eshg/opendata/GetFallbackLicenseUrlResponse.java index a06200bdef2f6f9f187669dd49078fae149a3223..d8b44d6fccc9ed3d7befe48ddd6d16cdabb4d90e 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/GetFallbackLicenseUrlResponse.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/GetFallbackLicenseUrlResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataApplication.java b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataApplication.java index 93ca5f35356095056f8618344917229d99ea1b17..7cd6e191986f73a7f5d5ac013b69285f9c8fdfdd 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataApplication.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataController.java b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataController.java index 14c1a44354a0d8e2fa75cb889b781f378e0def7a..9b4a8fbeffbcc7bc8c2559e628ebdea9ca2b0104 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataController.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataFiltering.java b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataFiltering.java index 15ae2004ebbceb209b82b3634f1c1614ea362fae..1f525e7a8dc5fca3f4630f56af21794c8045bf14 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataFiltering.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataFiltering.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataMapper.java b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataMapper.java index 38ae108532231d3ec84d0697e1891fbb574497bb..f7d5173754300d7865b21ae2595555f0c1aae366 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataMapper.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataPublicCitizenController.java b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataPublicCitizenController.java index 1925d143ce307d0b6c2ded907a73192639de194a..5713ba971ca3b007b673c811d4abf633d9127595 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataPublicCitizenController.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataPublicCitizenController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataService.java b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataService.java index 8b076a44b863c3eaac7019931db63e5e88a79cf1..8ed0a056eb1c4816ece59ce103bf94875156421e 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataService.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -80,6 +80,7 @@ public class OpenDataService { public void updateVersionMetadata(UUID versionId, UpdateVersionMetaDataRequest updateRequest) { Version version = getVersionForUpdateOrThrow(versionId, updateRequest.version()); validateNewFileNameExtension(updateRequest.fileName(), version); + validateStatisticsDates(updateRequest.statisticStartDate(), updateRequest.statisticEndDate()); version.setVersionName(updateRequest.versionName()); version.setFileName(updateRequest.fileName()); diff --git a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataValidations.java b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataValidations.java index 05fdd0d951b63060c6ef994448af202c97f3a3ad..10e012692bdf9fea431ee94e4bb7f27806cab869 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/OpenDataValidations.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/OpenDataValidations.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/VersionFilterSpecification.java b/backend/opendata/src/main/java/de/eshg/opendata/VersionFilterSpecification.java index ce7eca3cb46b65091d88cae1cbba0ccd39570bd5..2187c6df8378f85b46f4a0963411b8540bb6894b 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/VersionFilterSpecification.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/VersionFilterSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsPaginationOptions.java b/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsPaginationOptions.java index e3dc163d03d09bb70cccfac4c44dfb875fea8ca0..e5e69d9916a62ed9119938a6d4eb1c95bad185de 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsPaginationOptions.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsRequest.java b/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsRequest.java index 580aafdf40b05070feeaafdcc2199f91a0ede7c5..59106576ff0f5c08b10c7574b158dd6c6099685e 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsRequest.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsResponse.java b/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsResponse.java index c65643b45c94bb1d57cd7becacc5312d4a643c32..474e1939d85c43d92d3df2d6d0c776a727a58d24 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsResponse.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/api/GetOpenDocumentsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/api/PostOpenDocumentRequest.java b/backend/opendata/src/main/java/de/eshg/opendata/api/PostOpenDocumentRequest.java index e29a1d2f416952a2d480345dbe1f862a2aa02da7..cae544b2ab8ddbf46d1fafa0f3e4d020b73f00c6 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/api/PostOpenDocumentRequest.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/api/PostOpenDocumentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/api/ResourceDto.java b/backend/opendata/src/main/java/de/eshg/opendata/api/ResourceDto.java index 8e16c9aaf80a78d416254413329e10c955bca749..a455aabb610762ebee7b69c8212e101b7ceee25c 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/api/ResourceDto.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/api/ResourceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/api/UpdateVersionMetaDataRequest.java b/backend/opendata/src/main/java/de/eshg/opendata/api/UpdateVersionMetaDataRequest.java index ce2ecfc5d680d46d813bbbb6bd8b2d95af78c8ff..46fcf0494bcbeba659a07432b9f7d723e1a16238 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/api/UpdateVersionMetaDataRequest.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/api/UpdateVersionMetaDataRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/api/VersionDto.java b/backend/opendata/src/main/java/de/eshg/opendata/api/VersionDto.java index 3ba0c511662ab05bd42cc4b14df33bd7b17d5881..a93610583d936f1d2fea6147b7f140c253719f3f 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/api/VersionDto.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/api/VersionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/config/OpenDataProperties.java b/backend/opendata/src/main/java/de/eshg/opendata/config/OpenDataProperties.java index 215396064f30501781a6d496bde3c07164301a8f..1e44e4bc6b1543d69169375da1c681e50c11404d 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/config/OpenDataProperties.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/config/OpenDataProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/FileContent.java b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/FileContent.java index c1682dea78d55111982b856c5b85ad45f1ebf32e..b5beeda8091385c05e574decd1d0aa8767eba8b5 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/FileContent.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/FileContent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/OpenDataFileType.java b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/OpenDataFileType.java index 1c45568800854b1811a138e56e9f5bcfda9a9f66..96a90706d52e2c426f415d9b9f9790e9c76983c9 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/OpenDataFileType.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/OpenDataFileType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Resource.java b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Resource.java index fbcac394eee29f817913a11a2129d610fd0ab44b..a2f5ef1bc00c9e88691885c78189aed2c06a1227 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Resource.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Resource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Version.java b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Version.java index 04430f23b9f7232f9db885b990734d1b08aaa101..3a2186e3ecd5c6a131b0ab437d671d0cc3c4dea6 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Version.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/domain/model/Version.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/ResourceRepository.java b/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/ResourceRepository.java index 35d0c3c66b5cd8c8cb11ab85e9e21ad04e526ea9..8a1f79bf8c2aa10f0949b19bc7e6788918b2c899 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/ResourceRepository.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/ResourceRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/VersionRepository.java b/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/VersionRepository.java index 4c89d60b864113432c9e960d477026db6f42fafd..9375ac953856b8034a122d5c213a9cec337a5d01 100644 --- a/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/VersionRepository.java +++ b/backend/opendata/src/main/java/de/eshg/opendata/domain/repository/VersionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/relay-server/src/main/java/de/eshg/relayserver/EndpointConfiguration.java b/backend/relay-server/src/main/java/de/eshg/relayserver/EndpointConfiguration.java index 77b88d070e001e3835dc0d1b577295d94e64408c..18360c225e3172d99d6a71279bc60f278ddd5de9 100644 --- a/backend/relay-server/src/main/java/de/eshg/relayserver/EndpointConfiguration.java +++ b/backend/relay-server/src/main/java/de/eshg/relayserver/EndpointConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/relay-server/src/main/java/de/eshg/relayserver/RelayServerApplication.java b/backend/relay-server/src/main/java/de/eshg/relayserver/RelayServerApplication.java index 9c727588b769d70ba5a7eac32351d5d680d030ec..1237f6b01cb8edeea39e16b359f10dfe024b1ff9 100644 --- a/backend/relay-server/src/main/java/de/eshg/relayserver/RelayServerApplication.java +++ b/backend/relay-server/src/main/java/de/eshg/relayserver/RelayServerApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/relay-server/src/main/java/de/eshg/relayserver/ws/WebsocketEndpoint.java b/backend/relay-server/src/main/java/de/eshg/relayserver/ws/WebsocketEndpoint.java index 17248ee51580f9c9954243ad9db3735ddc475ab5..d044e4d50399f317bfc738bac78b249f7079df99 100644 --- a/backend/relay-server/src/main/java/de/eshg/relayserver/ws/WebsocketEndpoint.java +++ b/backend/relay-server/src/main/java/de/eshg/relayserver/ws/WebsocketEndpoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/resources/matrix/synapse-db/pg_dump.synapse.local.dev.sql b/backend/resources/matrix/synapse-db/pg_dump.synapse.local.dev.sql index e26f28d7343b3e9e4a15278e150c9808c62eb4ef..3ac285ebbbae5989457364e5317439bee6060e83 100644 --- a/backend/resources/matrix/synapse-db/pg_dump.synapse.local.dev.sql +++ b/backend/resources/matrix/synapse-db/pg_dump.synapse.local.dev.sql @@ -1,4 +1,4 @@ --- Copyright 2024 cronn GmbH +-- Copyright 2025 cronn GmbH -- SPDX-License-Identifier: Apache-2.0 -- diff --git a/backend/resources/matrix/synapse/templates/sso_auth_confirm.html b/backend/resources/matrix/synapse/templates/sso_auth_confirm.html index 5f950c81bde60d94029e786ef8efb33abdeaf0c0..0a283740fc6130d23b1b1d343d4745bd1b4ca1f0 100644 --- a/backend/resources/matrix/synapse/templates/sso_auth_confirm.html +++ b/backend/resources/matrix/synapse/templates/sso_auth_confirm.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/BearerAuthInterceptor.java b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/BearerAuthInterceptor.java index dc9b8601a3d65d3568eeef6861f5f4eafc622a4e..98b7472e23fe5d661330bee1f2add5db3d940ca8 100644 --- a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/BearerAuthInterceptor.java +++ b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/BearerAuthInterceptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/CorrelationIdForwardingInterceptor.java b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/CorrelationIdForwardingInterceptor.java index d9066787256e248347c8b82eab918b8943f4443f..2a777151c146338903717f9d1b3e88991ed8e077 100644 --- a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/CorrelationIdForwardingInterceptor.java +++ b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/CorrelationIdForwardingInterceptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/EshgCommonRestClientAutoConfiguration.java b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/EshgCommonRestClientAutoConfiguration.java index 74ab088d47212a236fe92ecabf77b2b0132b2ccd..b8087f010700a9072244b2f43b03b69922cdc88a 100644 --- a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/EshgCommonRestClientAutoConfiguration.java +++ b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/EshgCommonRestClientAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthentication.java b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthentication.java index 21c426ed44948a0ccf18328849be8286a55eac99..49a4bbd73acee721f7dea800c91b13190073ca85 100644 --- a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthentication.java +++ b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthentication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthenticationHolder.java b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthenticationHolder.java index a40f6cc422d4627e5715ff37aa3dfa08c1f4a327..284320a42b1c0efdc329a157314559c77f5ac5ff 100644 --- a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthenticationHolder.java +++ b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/ModuleClientAuthenticationHolder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/RequestResponseLoggingRestClientCustomizer.java b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/RequestResponseLoggingRestClientCustomizer.java index a35aebf76d53af2b3dce2fd0ca219b98bccd9179..2f5ba1b91b9e7260f0dbd76d0b03a00abc55325c 100644 --- a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/RequestResponseLoggingRestClientCustomizer.java +++ b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/RequestResponseLoggingRestClientCustomizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/SimpleModelAttributeArgumentResolver.java b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/SimpleModelAttributeArgumentResolver.java index d52f49ea904e1c919bc65e25273d2ca3f61361a5..36ea7925ae16c08070ff6723fcfddd8544bac9b4 100644 --- a/backend/rest-client-commons/src/main/java/de/eshg/rest/client/SimpleModelAttributeArgumentResolver.java +++ b/backend/rest-client-commons/src/main/java/de/eshg/rest/client/SimpleModelAttributeArgumentResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/ModuleClientAuthenticator.java b/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/ModuleClientAuthenticator.java index bfd2dd3cf3f957e442d214990198962cbf4d4a49..9b9607475662a4d2406a01d4b12b091294975573 100644 --- a/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/ModuleClientAuthenticator.java +++ b/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/ModuleClientAuthenticator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/RestOAuthClientCommonsAutoConfiguration.java b/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/RestOAuthClientCommonsAutoConfiguration.java index c50ea9d7952858fcc81adc36745aa6aed16dd352..a317f8562de2bdbd2368663d59bb28b560f38a20 100644 --- a/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/RestOAuthClientCommonsAutoConfiguration.java +++ b/backend/rest-oauth-client-commons/src/main/java/de/eshg/lib/rest/oauth/client/commons/RestOAuthClientCommonsAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/ClockAutoConfiguration.java b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/ClockAutoConfiguration.java index 5a31c9341fbfabf925e6e76b2a34530d0ffa274f..ac5ba7ce0f076af4f344ffd8655dfdff6b226a33 100644 --- a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/ClockAutoConfiguration.java +++ b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/ClockAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounter.java b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounter.java index 3d8f0b0a16339232ef30ae9d9bdae6ea4b296502..b54e45c23bb33c10ddec8e314f96fdb8e0ee4dc2 100644 --- a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounter.java +++ b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounterFilter.java b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounterFilter.java index b0a305a42f1683a5b9743c30d7e323170d4ce0e1..1a27c4d73d593261576c4a6f05c3b21c42e5c97c 100644 --- a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounterFilter.java +++ b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/ActiveRequestCounterFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/FilterOrder.java b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/FilterOrder.java index a4a02fd5201ace3911b1ec8c7d2cf8ebe3594f8d..f77fdb70ccdd58ae5dd417bc643943e84e8f0bcb 100644 --- a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/FilterOrder.java +++ b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/FilterOrder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingAutoConfiguration.java b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingAutoConfiguration.java index 3ea73699a1c35314dd18a8b7ce4ff8c1f7d63439..94c7462676990409f0d406869309784bd4b8cb4d 100644 --- a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingAutoConfiguration.java +++ b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingFilter.java b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingFilter.java index 7813120dd72d0ab0d811248d530516d4771c4b5c..ed272a4079b7c46dda4e779aefc657cb231ea0cd 100644 --- a/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingFilter.java +++ b/backend/rest-service-commons/src/main/java/de/eshg/rest/service/commons/filter/RequestLoggingFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AggregationException.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AggregationException.java index f11c503e25bb0281d5a9b629b1712748f48952a2..98e484ee505a68320d2bdd276dfebf6dd9fb3aa7 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AggregationException.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AggregationException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AlreadyExistsException.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AlreadyExistsException.java index 19ca8f8b839f0047986b79f4b9d316b987e5948d..21796072945396cdb5820c04f09f3eaa3344ab10 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AlreadyExistsException.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/AlreadyExistsException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/BadRequestException.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/BadRequestException.java index 97631b5b569a4fff60e6577ca86465c1f8da5dce..fb93dacf3cafccc1668858f7641591d597546e59 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/BadRequestException.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/BadRequestException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorCode.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorCode.java index bc883f8eda72f7da0facf094fc2ed0accba4b87e..efc8c3f1a72d24b062f8d6ccf109a33593427c19 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorCode.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorCode.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponse.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponse.java index 6d1167731a8d55b6c695af68164c2706e1a88d93..2ea95a622d20430d9e5766b9107b8ec0027cfb98 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponse.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponseWithLocation.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponseWithLocation.java index 5dd184a3fbc9166b1cc347a53a0e3ceaa17d04dd..bf06ac90e68c51472e85bfa6a6c946b8cad66844 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponseWithLocation.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/ErrorResponseWithLocation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/EshgBusinessException.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/EshgBusinessException.java index 8d70edacfe1cef365570864cdfb2cf452126f338..7a9c7fc28efdca5eaf983c663f2ed40f6b87e20a 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/EshgBusinessException.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/EshgBusinessException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/NotFoundException.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/NotFoundException.java index 5c022e78da1c69caa4ffc2dada26aa248efe5823..3aac5ccb25d74cffd3531f50877590644d8b398b 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/NotFoundException.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/NotFoundException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/RateLimitReachedException.java b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/RateLimitReachedException.java index 7ae5a3c85b29febac975a871bdbba5082d6ee7a6..3477d834f458b09da0208f27938d759b1ad88211 100644 --- a/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/RateLimitReachedException.java +++ b/backend/rest-service-errors/src/main/java/de/eshg/rest/service/error/RateLimitReachedException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/school-entry/openApi.yaml b/backend/school-entry/openApi.yaml index 0e3e7c34655f2cef29fd3291225ba5ade1a7a0ba..da29c33b27885b64ec1116d35e7b26a172249285 100644 --- a/backend/school-entry/openApi.yaml +++ b/backend/school-entry/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 @@ -1364,6 +1364,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -3241,9 +3260,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -3262,10 +3280,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -3465,6 +3480,7 @@ components: - HIV_STI_CONSULTATION - SEX_WORK - RESULTS_REVIEW + - OFFICIAL_MEDICAL_SERVICE AppointmentTypeConfig: type: object properties: @@ -3674,6 +3690,28 @@ components: required: - businessProcedure - inclusionStatus + CheckFileStateUsageRequest: + type: object + properties: + fileStatesIds: + type: array + items: + type: string + format: uuid + maxItems: 2147483647 + minItems: 1 + required: + - fileStatesIds + CheckFileStateUsageResponse: + type: object + properties: + inUse: + type: array + items: + type: string + format: uuid + required: + - inUse CheckUps: type: object properties: @@ -3814,75 +3852,6 @@ components: format: int64 required: - version - ConcreteFileDto: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: - type: object - discriminator: - propertyName: '@type' - properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid - required: - - '@type' ContactDetails: type: object properties: @@ -5113,32 +5082,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -6059,7 +6006,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -6294,18 +6241,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -6511,7 +6451,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -6890,6 +6830,7 @@ components: - status - type - version + - waitingRoom ProcedureMetric: type: object properties: @@ -7030,7 +6971,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/ExaminationResultService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/ExaminationResultService.java index 7b4cf0ae82e19ea63288af99cc97352b3fb5e51e..c17989f4c11a57620b321cd6aabee368d5a0e7d7 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/ExaminationResultService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/ExaminationResultService.java @@ -1,11 +1,10 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ package de.eshg.schoolentry; -import static de.eshg.schoolentry.util.ExceptionUtil.procedureNotFoundException; import static de.eshg.schoolentry.util.SchoolEntrySystemProgressEntryType.ANAMNESIS_MODIFIED; import static de.eshg.schoolentry.util.SchoolEntrySystemProgressEntryType.DEVELOPMENT_SCREENING_MODIFIED; import static de.eshg.schoolentry.util.SchoolEntrySystemProgressEntryType.EYE_EXAMINATION_MODIFIED; @@ -27,6 +26,7 @@ import de.eshg.schoolentry.domain.repository.HearingTestResultRepository; import de.eshg.schoolentry.domain.repository.SopessExaminationResultRepository; import de.eshg.schoolentry.domain.repository.VaccinationStatusRepository; import de.eshg.schoolentry.percentiles.PercentileCalculationService; +import de.eshg.schoolentry.util.ExceptionUtil; import de.eshg.schoolentry.util.ProgressEntryUtil; import de.eshg.validation.ValidationUtil; import java.util.Objects; @@ -68,7 +68,7 @@ public class ExaminationResultService { HearingTestResult hearingTestResult = hearingTestResultRepository .findByProcedureExternalIdForUpdate(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, hearingTestResult); return hearingTestResult; } @@ -76,14 +76,14 @@ public class ExaminationResultService { public HearingTestResult findHearingTestResult(UUID procedureId) { return hearingTestResultRepository .findByProcedureExternalId(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } public EyeExaminationResult findEyeExaminationResultForUpdate(UUID procedureId, long version) { EyeExaminationResult eyeExaminationResult = eyeExaminationResultRepository .findByProcedureExternalIdForUpdate(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, eyeExaminationResult); return eyeExaminationResult; } @@ -91,7 +91,7 @@ public class ExaminationResultService { public EyeExaminationResult findEyeExaminationResult(UUID procedureId) { return eyeExaminationResultRepository .findByProcedureExternalId(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } public SopessExaminationResult findSopessExaminationResultForUpdate( @@ -99,7 +99,7 @@ public class ExaminationResultService { SopessExaminationResult sopessExaminationResult = sopessExaminationResultRepository .findByProcedureExternalIdForUpdate(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, sopessExaminationResult); return sopessExaminationResult; } @@ -107,7 +107,7 @@ public class ExaminationResultService { public SopessExaminationResult findSopessExaminationResult(UUID procedureId) { return sopessExaminationResultRepository .findByProcedureExternalId(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } public DevelopmentScreening findDevelopmentScreeningResultForUpdate( @@ -115,7 +115,7 @@ public class ExaminationResultService { DevelopmentScreening developmentScreeningResult = developmentScreeningResultRepository .findByProcedureExternalIdForUpdate(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, developmentScreeningResult); return developmentScreeningResult; } @@ -123,20 +123,20 @@ public class ExaminationResultService { public DevelopmentScreening findDevelopmentScreeningResult(UUID procedureId) { return developmentScreeningResultRepository .findByProcedureExternalId(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } public Anamnesis findAnamnesis(UUID procedureId) { return anamnesisRepository .findByProcedureExternalId(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } public Anamnesis findAnamnesisForUpdate(UUID procedureId, long version) { Anamnesis anamnesis = anamnesisRepository .findByProcedureExternalIdForUpdate(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, anamnesis); return anamnesis; } @@ -145,7 +145,7 @@ public class ExaminationResultService { VaccinationStatus vaccinationStatus = vaccinationStatusRepository .findByProcedureExternalIdForUpdate(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, vaccinationStatus); return vaccinationStatus; } @@ -153,7 +153,7 @@ public class ExaminationResultService { public VaccinationStatus findVaccinationStatus(UUID procedureId) { return vaccinationStatusRepository .findByProcedureExternalId(procedureId) - .orElseThrow(procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } void updateHearingTestResult( diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/Icd10CodeController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/Icd10CodeController.java index ada39c17408778b712054630cb70a4a15e8c6930..8c63895b345e5b2cd73abb342e1447562436da08 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/Icd10CodeController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/Icd10CodeController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/ImportController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/ImportController.java index 87484468c046f8b5f97ba2557c511b46ba9ecbbd..d8d4ecdd0c9a14a1119e477d58ef5e3a8e2c9b48 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/ImportController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/ImportController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelController.java index 6f822a83e10832d8d0cfc0117f08b104d9171567..55b8f2a4ea85f266c14c9ffea490400c504fda43 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -24,7 +24,6 @@ import jakarta.validation.Valid; import java.awt.Color; import java.security.SecureRandom; import java.util.*; -import java.util.function.Supplier; import org.jetbrains.annotations.VisibleForTesting; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -65,7 +64,7 @@ public class LabelController { @Transactional(readOnly = true) public LabelDto getLabel(@PathVariable("id") UUID id) { return LabelMapper.toDto( - labelRepository.findByExternalId(id).orElseThrow(labelNotFoundException(id))); + labelRepository.findByExternalId(id).orElseThrow(LabelController::labelNotFoundException)); } @PutMapping("/{id}") @@ -73,7 +72,9 @@ public class LabelController { public LabelDto updateLabel( @PathVariable("id") UUID id, @Valid @RequestBody UpdateLabelRequest request) { Label label = - labelRepository.findByExternalIdForUpdate(id).orElseThrow(labelNotFoundException(id)); + labelRepository + .findByExternalIdForUpdate(id) + .orElseThrow(LabelController::labelNotFoundException); if (label.isReadonly()) { throw new BadRequestException("Label %s is readonly and cannot be updated.".formatted(id)); @@ -117,7 +118,7 @@ public class LabelController { "#%02X%02X%02X", randomColor.getRed(), randomColor.getGreen(), randomColor.getBlue()); } - private static Supplier<NotFoundException> labelNotFoundException(UUID id) { - return notFoundException(Label.class, id); + private static NotFoundException labelNotFoundException() { + return notFoundException(Label.class); } } diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelService.java index 40bae1d5308a2b768bf92506ab571b4df803b608..6da7b4305d88c9eb9cceb18032bcef54af02adf5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/LabelService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/PersonService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/PersonService.java index 2e7c20ce87dd8d0b2329d50bf4dd598c1bb270bd..0026a1bf7f873a8514e6f35d371e54f347da2834 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/PersonService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/PersonService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -122,7 +122,7 @@ public class PersonService { procedure.getRelatedPersons().stream() .filter(p -> p.getCentralFileStateId().equals(centralFileStateId)) .collect(StreamUtil.toSingleOptionalElement()) - .orElseThrow(notFoundException(Person.class, centralFileStateId)); + .orElseThrow(PersonService::personNotFoundException); procedure.getRelatedPersons().remove(person); progressEntryUtil.addProgressEntry(procedure, CUSTODIAN_REMOVED); @@ -141,11 +141,13 @@ public class PersonService { Person person = personRepository.findByProcedureExternalIdAndFileStateIdForUpdate(procedureId, fileStateId); if (person == null) { - throw new NotFoundException( - "Person with fileStateId %s for procedure %s not found" - .formatted(fileStateId, procedureId)); + throw new NotFoundException("Person with given fileStateId for given procedure not found"); } ValidationUtil.validateVersion(version, person); return person; } + + private static NotFoundException personNotFoundException() { + return notFoundException(Person.class); + } } diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/ProcedureOverviewService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/ProcedureOverviewService.java index 077d427403dc2dee834a0f05e046cf905c78b3c6..b9a30450b49ab6fb0c29d255d53312425e90ceea 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/ProcedureOverviewService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/ProcedureOverviewService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,8 +14,7 @@ import de.eshg.base.centralfile.api.person.GetPersonFileStateResponse; import de.eshg.base.centralfile.api.person.GetPersonsSortKey; import de.eshg.lib.contact.ContactClient; import de.eshg.lib.procedure.domain.model.ProcedureStatus; -import de.eshg.lib.procedure.domain.model.RelatedPerson; -import de.eshg.lib.procedure.domain.model.RelatedPerson_; +import de.eshg.lib.procedure.procedures.ProcedureQuery; import de.eshg.lib.procedure.procedures.ProcedureSearchService; import de.eshg.rest.service.error.BadRequestException; import de.eshg.schoolentry.api.ProcedureFilterParameters; @@ -32,7 +31,6 @@ import de.eshg.schoolentry.business.model.WaitingRoomProcedureData; import de.eshg.schoolentry.client.PersonClient; import de.eshg.schoolentry.domain.model.Person; import de.eshg.schoolentry.domain.model.SchoolEntryProcedure; -import de.eshg.schoolentry.domain.model.SchoolEntryProcedure_; import de.eshg.schoolentry.domain.repository.SchoolEntryProcedureRepository; import de.eshg.schoolentry.domain.specification.SchoolEntryProcedureSpecification; import de.eshg.schoolentry.domain.specification.WaitingRoomSpecification; @@ -42,11 +40,6 @@ import de.eshg.schoolentry.util.ProcedurePageSpec; import de.eshg.schoolentry.util.ProcedureSortKey; import de.eshg.schoolentry.util.WaitingRoomPageSpec; import de.eshg.schoolentry.util.WaitingRoomSortKey; -import jakarta.persistence.EntityManager; -import jakarta.persistence.criteria.CriteriaBuilder; -import jakarta.persistence.criteria.CriteriaQuery; -import jakarta.persistence.criteria.Join; -import jakarta.persistence.criteria.Root; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; @@ -67,7 +60,7 @@ public class ProcedureOverviewService { private final ProcedureSearchService<SchoolEntryProcedure> procedureSearchService; private final PersonClient personClient; private final ContactClient contactClient; - private final EntityManager entityManager; + private final ProcedureQuery procedureQuery; private final Validator validator; private final Clock clock; @@ -76,14 +69,14 @@ public class ProcedureOverviewService { ProcedureSearchService<SchoolEntryProcedure> procedureSearchService, PersonClient personClient, ContactClient contactClient, - EntityManager entityManager, + ProcedureQuery procedureQuery, Validator validator, Clock clock) { this.schoolEntryProcedureRepository = schoolEntryProcedureRepository; this.procedureSearchService = procedureSearchService; this.personClient = personClient; this.contactClient = contactClient; - this.entityManager = entityManager; + this.procedureQuery = procedureQuery; this.validator = validator; this.clock = clock; } @@ -261,23 +254,8 @@ public class ProcedureOverviewService { } private List<UUID> findAllChildIds(Specification<SchoolEntryProcedure> procedureSpecification) { - CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); - CriteriaQuery<UUID> query = criteriaBuilder.createQuery(UUID.class); - Root<SchoolEntryProcedure> root = query.from(SchoolEntryProcedure.class); - - Join<SchoolEntryProcedure, ? extends RelatedPerson<?>> relatedPersonsJoin = - root.join(SchoolEntryProcedure_.relatedPersons); - Join<SchoolEntryProcedure, ? extends RelatedPerson<?>> childJoin = - relatedPersonsJoin.on( - criteriaBuilder.equal( - relatedPersonsJoin.get(RelatedPerson_.personType), - Person.PERSON_TYPE_USED_FOR_CHILDREN)); - - query.select(childJoin.get(RelatedPerson_.centralFileStateId)); - - query.where(procedureSpecification.toPredicate(root, query, criteriaBuilder)); - - return entityManager.createQuery(query).getResultList(); + return procedureQuery.findAllRelatedPersonFileStateIds( + procedureSpecification, SchoolEntryProcedure.class, Person.PERSON_TYPE_USED_FOR_CHILDREN); } private Instant getDayOfAppointmentAsInstant(LocalDate dayOfAppointmentFilter) { diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryApplication.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryApplication.java index ff14ac2c072d630c2a315292885580a850568bd4..0996e202d6fc0d74cd1e6a6dac1ab3dabdc54129 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryApplication.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenController.java index 97f630fcced13b3f91f79782cc01612539989ed4..ab244d0b955e8e39a69f3729c9012cc29a57357e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenService.java index a921d7c2fd48dc8adba4af61dc2e803005b7dea0..33a3817ee3747873c8283774990806510fa1778e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCitizenService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryConfigController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryConfigController.java index 335a88dfa28a61b7f99795aba1e3195393312e61..7f916f55093bf0c7bf1e35e464bf3ebc60ea4977 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryConfigController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryConfigController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryController.java index f18ce5e75e199252277de8d87e70c77c0d7ed4e4..4dc46bd66e3ce7768c4beadded87d00171be09e5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCountryCodesController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCountryCodesController.java index 38749632613baa8f39bd42491c03ad5ff761856e..82ae8bbdd5ef489cf53efd28a606f33f65650a3d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCountryCodesController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryCountryCodesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryEventMetadataService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryEventMetadataService.java index 5f9fe2e2f272e78b85b955e1376933e3c96a20d9..351b44adc74fe931805fd00ecb7300cc7c77b662 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryEventMetadataService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryEventMetadataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryFeatureTogglesController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryFeatureTogglesController.java index 19395e268eb0af7b5371f043022ee95b3b410a24..67d20b86386c76cd0509afde92bec847e3d00af5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryFeatureTogglesController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryFeatureTogglesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryGdprZipFilterProvider.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryGdprZipFilterProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..2d8113bd56a8bc504b05caa61de9a01f08af9567 --- /dev/null +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryGdprZipFilterProvider.java @@ -0,0 +1,73 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package de.eshg.schoolentry; + +import de.eshg.domain.model.serialization.ZipFilter; +import de.eshg.lib.appointmentblock.persistence.entity.AppointmentBlockGroup_; +import de.eshg.lib.appointmentblock.persistence.entity.AppointmentBlock_; +import de.eshg.lib.appointmentblock.persistence.entity.Appointment_; +import de.eshg.lib.procedure.domain.model.Procedure_; +import de.eshg.lib.procedure.domain.model.SystemProgressEntry_; +import de.eshg.lib.procedure.gdpr.GdprZipFilterProvider; +import de.eshg.schoolentry.domain.model.DevelopmentScreening_; +import de.eshg.schoolentry.domain.model.EyeExaminationResult_; +import de.eshg.schoolentry.domain.model.HearingTestResult_; +import de.eshg.schoolentry.domain.model.SchoolEntryProcedure_; +import de.eshg.schoolentry.domain.model.SopessExaminationResult_; +import de.eshg.schoolentry.domain.model.WaitingRoom_; +import java.util.List; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; + +@Primary +@Component +public class SchoolEntryGdprZipFilterProvider extends GdprZipFilterProvider { + + @Override + protected ZipFilter createSpecificFilter() { + return removeFieldFromPath(SchoolEntryProcedure_.LABELS) + .andThen( + removeFieldFromPath( + EyeExaminationResult_.NOTE, SchoolEntryProcedure_.EYE_EXAMINATION_RESULT)) + .andThen( + removeFieldFromPath(HearingTestResult_.NOTE, SchoolEntryProcedure_.HEARING_TEST_RESULT)) + .andThen( + removeFieldFromPath( + SopessExaminationResult_.NOTE, SchoolEntryProcedure_.SOPESS_EXAMINATION_RESULT)) + .andThen( + removeFieldFromPath( + DevelopmentScreening_.HANDICAP_NOTE, + SchoolEntryProcedure_.DEVELOPMENT_SCREENING_RESULT)) + .andThen(removeFieldFromPath(WaitingRoom_.DESCRIPTION, SchoolEntryProcedure_.WAITING_ROOM)) + .andThen( + removeFieldFromPath( + DevelopmentScreening_.PHYSICAL_EXAMINATION_NOTE, + SchoolEntryProcedure_.DEVELOPMENT_SCREENING_RESULT)) + .andThen( + removeFieldFromPath( + AppointmentBlockGroup_.PHYSICIANS, + SchoolEntryProcedure_.APPOINTMENT, + Appointment_.APPOINTMENT_BLOCK, + AppointmentBlock_.APPOINTMENT_BLOCK_GROUP)) + .andThen( + removeFieldFromPath( + AppointmentBlockGroup_.MFAS, + SchoolEntryProcedure_.APPOINTMENT, + Appointment_.APPOINTMENT_BLOCK, + AppointmentBlock_.APPOINTMENT_BLOCK_GROUP)) + .andThen( + removeFieldFromPath( + AppointmentBlockGroup_.CONSULTANTS, + SchoolEntryProcedure_.APPOINTMENT, + Appointment_.APPOINTMENT_BLOCK, + AppointmentBlock_.APPOINTMENT_BLOCK_GROUP)) + .andThen( + removeArrayEntriesWithValues( + Procedure_.PROGRESS_ENTRIES, + SystemProgressEntry_.KEY_DOCUMENT_TYPE, + List.of("SCHOOL_INFO_LETTER"))); + } +} diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryProcedureDeletionService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryProcedureDeletionService.java index 06e624cb043cea0a473bda1d33a0fa1e8dc2d773..81e79b2e2c492684cf7be3af6bb6b96cd7f2fae1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryProcedureDeletionService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryProcedureDeletionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryPublicCitizenController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryPublicCitizenController.java index 8b51657c10c647a6a2f2a56d0f9b2414536f1f2f..5275d1630d79060f58a32710b2bda22b78c61dc6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryPublicCitizenController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryPublicCitizenController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryService.java index 8d5ca5f4a36828af547072e293239526aa7ca569..d1bb140ab52759f3e15bc9545d3acf356f908ec8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/SchoolEntryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -318,7 +318,7 @@ public class SchoolEntryService { SchoolEntryProcedure procedure = schoolEntryProcedureRepository .findByExternalIdForUpdate(procedureId) - .orElseThrow(ExceptionUtil.procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, procedure); return procedure; } @@ -326,7 +326,7 @@ public class SchoolEntryService { public SchoolEntryProcedure findProcedureByExternalId(UUID procedureId) { return schoolEntryProcedureRepository .findByExternalId(procedureId) - .orElseThrow(ExceptionUtil.procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } ProcedureDetailsData findAndAugmentProcedureByExternalId(UUID procedureId) { @@ -587,7 +587,7 @@ public class SchoolEntryService { SchoolEntryProcedure procedure = schoolEntryProcedureRepository .findByExternalIdForUpdate(procedureId) - .orElseThrow(ExceptionUtil.procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); Validator.validateProcedureStatusNotClosed(procedure); if (procedure.getAppointment() != null) { stats.countUnmodified(); @@ -817,7 +817,7 @@ public class SchoolEntryService { WaitingRoom waitingRoom = waitingRoomRepository .findByProcedureExternalIdForUpdate(procedureId) - .orElseThrow(ExceptionUtil.procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); ValidationUtil.validateVersion(version, waitingRoom); return waitingRoom; } diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/Validator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/Validator.java index 128a1f0c734c4a687724177fd570432f23be79f9..b84502d2f3608e2faaf495d3030aef0ff7fa6bde 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/Validator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/Validator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/ValueEvaluatorController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/ValueEvaluatorController.java index 42ffcbc2e4d8ef050cb59ad963d29a96e57cdb81..a8837bfcf4af74427dce3691eabbbf33207fd69a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/ValueEvaluatorController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/ValueEvaluatorController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/AddCustodianRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/AddCustodianRequest.java index ee5554c122afbda0f70aa54122832a343244bfa3..779c151f715d688b616f43ace5295560f590d839 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/AddCustodianRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/AddCustodianRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationDto.java index f75d2820933f2e146ae7b5b8ce990fde6d3c32ba..69bdd54285285a191619ae57a75480f120608030 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationValueDto.java index 033972667cb2d243c8b72a17b862ed3b2adb0242..c2c0836f278ffa7fcb2b9b2b7d1d093022b59553 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ArticulationValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/BooleanWithUnknownDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/BooleanWithUnknownDto.java index 3164756e8b4045e16ec4c1879e9e18d0c8b6f3b2..2353cf6d1dce63a889c2d2262fec7fceaaf946db 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/BooleanWithUnknownDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/BooleanWithUnknownDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CheckUpsDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CheckUpsDto.java index a07e7fbae5ce8f50279ba8e87cf69d8f1b41bd0d..58228603d6bd9e3c297c32f859229da9f1d3d344 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CheckUpsDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CheckUpsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ChildDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ChildDto.java index b3542c4377ded9165702eb06b3cd4625850dae68..26197d9a633ae74b4afe9f3208f21ecaa9259207 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ChildDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ChildDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CloseProcedureRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CloseProcedureRequest.java index 3a6ac9345fd9e06dd82761cb329f0db3d70786dd..0f30a1cc52d3eab3577536ec866294d05bbf9f31 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CloseProcedureRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CloseProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CountryCodeDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CountryCodeDto.java index a1edc75fbfe19ec08a04f93ff1d4a05db59dee46..71bc293b5682cc97e13b5e3eeedbeebc747998fd 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CountryCodeDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CountryCodeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkRequest.java index 1a64e976c63a7e5f1e202c2b5aab81fe6bc87096..7f8012c1ccc719d9a3590977e846aa1cbcc5eddb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkResponse.java index 95f2583c79a1b19ba45263670d7fac533f2a43eb..49ea2051162f8fab9d263c892c4cbb5c59d1dde6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateAppointmentsBulkResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateLabelRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateLabelRequest.java index 5a59e90d4a26ae28f9f8f3de7b75905a43582e4c..ab2fa8a08df19a076695697b1b9f2e5bf9567436 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateLabelRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateLabelRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateMedicalReportRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateMedicalReportRequest.java index c52c82510d854440720f9e42d2268699a44ad51e..7d161388de2ba74ac3fce2d74bc659eb412a7b5c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateMedicalReportRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateMedicalReportRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreatePersonDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreatePersonDto.java index 9cfdd300ad1b24f834764540f51cf6b2afe685e2..a22a0b86eb80bfcb0f41becc69be2c03d1a39a57 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreatePersonDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreatePersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureRequest.java index 31aae32fd6c9bfc54455b0b361cd8014a478f95d..f233c7d3868865047970e8184db88592ee65c75e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureResponse.java index a36f2c34adcfb272bafd41c0654a40cf4bffa954..f4f8023be8f70ecb4aa8f9201090abb770dc17ac 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateSchoolInfoLetterRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateSchoolInfoLetterRequest.java index d21eed3171ede71b3818999ab43f8e749f1eeec9..a642b6ca81fa8690a817c5122e93abcce1fe2c5a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateSchoolInfoLetterRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/CreateSchoolInfoLetterRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DecibelValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DecibelValueDto.java index a666c8825db78925fb84d0a5b94687f5f16127c3..e982bc5f5c761eacd551c37d0f974c200540b27d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DecibelValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DecibelValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DeleteProcedureRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DeleteProcedureRequest.java index 97505ab1e7e826eeb339c51d256a9567976ce82e..04bd1e51c9ae8c16fadc2da7d129b01ee663fdc3 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DeleteProcedureRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DeleteProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DevelopmentScreeningResultDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DevelopmentScreeningResultDto.java index 8b007e48a8aa041e854e9d0b10c248a54e03f673..e1edadc2d931e22947f04b7dbebef1760715b9af 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DevelopmentScreeningResultDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DevelopmentScreeningResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DisabilityTypeDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DisabilityTypeDto.java index c4a6c9d4e89840a19b26387cfd683f46747743a5..03f8a272e6d66865dff42631cdbf08e4937357ed 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DisabilityTypeDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DisabilityTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DoctorLetterValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DoctorLetterValueDto.java index 37ab6286c96ab3b96feae48b5d97903b880473e5..8cc83363bf32d9d50eab4ffee437ac1b64a19c9c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DoctorLetterValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DoctorLetterValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DownloadInvitationsBulkRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DownloadInvitationsBulkRequest.java index 3d81e4dcb9de1504281160e525970c90f0de0072..012ae87b72bd937106252bc91292735ca891c898 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DownloadInvitationsBulkRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/DownloadInvitationsBulkRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationArticulationValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationArticulationValueDto.java index 85feffb89a4c6507f47c6ecf0a1e71b87a5f0f7d..681ec0ddc358f0829ed64ea6344f9cf50a9bd473 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationArticulationValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationArticulationValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationDto.java index 1af9cceb59453523d7278be57233f394e362ad26..308111691c9cd097f5a29a433791c4a450932acd 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationValueDto.java index bf759444c3e334de76a5939efa9ca9c0f54405f9..1c55d3d2547fabdc7173647eee1b3635f02988c6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EvaluationExaminationValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultDto.java index 9d8c27adb80174d98c928fb0896e5e65102266f3..5ef10ee592919086e1525969efdddfe6254d0b46 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultValueDto.java index 97800e0c265c60ebb1d3c633e79bc7c2c8da2990..fe555b6620bfefe0815ac2cbd675f61cd467b104 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationResultValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationWithDiagnosisDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationWithDiagnosisDto.java index c6c847f6a3688a8c572004fad3d5c57889f72c55..7d302be5f47da5cd3613b15b44a11f43d8ac9ec6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationWithDiagnosisDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ExaminationWithDiagnosisDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationResultDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationResultDto.java index 93449c5ba4e0b9d073d87ff27cb68d24615d5cd8..8ec28958ad293f7ac774dccc963d27d933d057e2 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationResultDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationTypeDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationTypeDto.java index 384d24bd71daaaa13ab479a3e5ffe58ca9dedca9..e4c373e5af4d2962d98e85355793d38c5fb14854 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationTypeDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/EyeExaminationTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/FamilyLanguageValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/FamilyLanguageValueDto.java index 03f6c7fe6a0c9a4bbb6a5914e3d3906b6cc41554..eeddb81006477e6de9a7b68f72ba4c7487b831b7 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/FamilyLanguageValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/FamilyLanguageValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GermanKnowledgeValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GermanKnowledgeValueDto.java index adb9353f367b781974578eb17d1632733a7d40c8..379dee974972ac8a75c941f03bfe67f20599ddc8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GermanKnowledgeValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GermanKnowledgeValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetClosedProceduresResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetClosedProceduresResponse.java index d7a14511b86a663036693bc92ba713e9b2dad21b..d152dbec38c22221a4b4d831719f42fb76e04b65 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetClosedProceduresResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetClosedProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetCountryCodesResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetCountryCodesResponse.java index 0ffa583640306c01bd419dd741e02e3b07268a1a..2ea3077b81fe090d5a903d5be608a16e78ff11c0 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetCountryCodesResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetCountryCodesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetDevelopmentScreeningResultDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetDevelopmentScreeningResultDto.java index 36bb0ff8152e7f652e393bd54d9c9d47de50630d..e16f390fccadbe009fd4396756a0df5e15aeab08 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetDevelopmentScreeningResultDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetDevelopmentScreeningResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetFeatureTogglesResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetFeatureTogglesResponse.java index 23d6c25288f899d30d471b7d8dae15e59f51f214..24bd8478f81da12e961d310c00b4971c3fb4fbda 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetFeatureTogglesResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetFeatureTogglesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetLabelsResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetLabelsResponse.java index a1aa41993eed3ba1427b1a31905bc1353a2c887a..b95362c3c0010eb0a963d82dc079100685f7ae1a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetLabelsResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetLabelsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetProceduresResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetProceduresResponse.java index f88a6d28ecb8836c94c196db3d6b76a1fe99bd18..abd90fed6d675b390cc2ee8477bd01983b65ad9a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetProceduresResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetSchoolEntryConfigResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetSchoolEntryConfigResponse.java index a62f296077cc9302b60ef186e5f65c959b4898ef..7497b963aee5ae86e1f59a1e8564849033961dfc 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetSchoolEntryConfigResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetSchoolEntryConfigResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetWaitingRoomProceduresResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetWaitingRoomProceduresResponse.java index 76086a3257acaca70fb3db4fedcc084c6f93ef7c..236db16f777a9bf26d04b8c42eaded28af355e74 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetWaitingRoomProceduresResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/GetWaitingRoomProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandednessValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandednessValueDto.java index bf0a1514ce721a5c17f345f7563eead3ac4c0330..3c0997d15060994e8493cb84c58c1828e64430e5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandednessValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandednessValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapDto.java index 20b6a574fa221aae9c1f4d8d0ff95f05463840a9..168985fc0325bdd3403c29bda852093df42f1ad6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapWithDiagnosisDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapWithDiagnosisDto.java index fd7a2405e0101b401ffd7bcb845fffb6c531226e..f77e15f937c081c91da55dbf93625831b2aeecc1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapWithDiagnosisDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HandicapWithDiagnosisDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HasEvaluationExamination.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HasEvaluationExamination.java index 7dc33fb6b0a28a4f291031d12f6fa0a50d7a1008..e5581aeb7601102550ab4569047f773cf55bda3e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HasEvaluationExamination.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HasEvaluationExamination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HearingTestResultDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HearingTestResultDto.java index d8852ad2d830b32b2ae844fb518f1777feb0b1c4..15a12058f4b9ebcefa52b626fb65c1a9e17fa94b 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HearingTestResultDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HearingTestResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HertzValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HertzValueDto.java index f59912dfa5986954a3fc9b9377e7f282164d0eac..9095a179bd90453ecd51450d6837afd3dfde2521 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HertzValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/HertzValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/Icd10CodeDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/Icd10CodeDto.java index 7bc2aa2bea40f09f9c7b8898d429336a7e400aa3..d2a2b42cf8aea3790dd3a85e8e0d4bab5a74eddb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/Icd10CodeDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/Icd10CodeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/KnowledgeThinkingExaminationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/KnowledgeThinkingExaminationDto.java index 594314f5e0be1fab2c39e8e310773b2e59f58ccc..438c4b3e63f430d1c1e122b7be234b90444efa52 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/KnowledgeThinkingExaminationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/KnowledgeThinkingExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LabelDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LabelDto.java index b220e019c4f85c4f41eeb1218f7c3e9b9c55a6a9..d161a96c54cf53860f72e13401163d807d812a17 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LabelDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LabelDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageDto.java index 635945355be5986ea27bfecfb909e53a217c5248..28c86c4fc3992a73bc8c0c27eaa02e90e93a7b5d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageKnowledgeValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageKnowledgeValueDto.java index b49af3a27b3542adfffa1b52c221b87431479eef..5dec7792e65a79d4fdff904f240800cea73dd537 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageKnowledgeValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/LanguageKnowledgeValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MeasurementsDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MeasurementsDto.java index 16ebb761194249a9dd36221964c205c650eb05c2..9598bc54bc3205b5b4c7cf311dac19d676c0ae92 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MeasurementsDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MeasurementsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MigrationBackgroundDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MigrationBackgroundDto.java index 6e1c5a4d88fdf5dad7f3919bcc93a4902dd3e3b0..c6449166971bf06af7d12818461237f76c64b9e6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MigrationBackgroundDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/MigrationBackgroundDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/OtherVaccinationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/OtherVaccinationDto.java index 69ca1c79ea650aa7983a22f1cf169ea820fdc948..413297f708060fb66e959bddd77a79082c5032b5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/OtherVaccinationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/OtherVaccinationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentageValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentageValueDto.java index d9f1559beb27b2995bb59d894129bdb985254524..41378bc753b761124d779d2cff6a37df0bb3c555 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentageValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentageValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentilesDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentilesDto.java index 6a779826d6563042c6579178e0cd89a30826b63c..49a8df8c83131380ba7f3f9d1c0c6e0a0085a8ba 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentilesDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PercentilesDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonBaseDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonBaseDto.java index 968bfc1bde93ca52255ebcbbb2e32fd7c211dc42..7ee5ba26e1d2334adcf2beb9d277913b94b2f1bb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonBaseDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonBaseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonDetailsDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonDetailsDto.java index 0105e4860f85df9bb1c65a14dfee07223ae93381..cd3d7d066164db31e7c1341e3bc8796aa1975f2d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonDetailsDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PersonDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PhysicalExaminationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PhysicalExaminationDto.java index 0cba56333365b0d6416c8806233e2e1bfcdca9df..4d2f621b207dc89d6502f860e04c496e749bce7c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PhysicalExaminationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PhysicalExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PrimaryLanguageValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PrimaryLanguageValueDto.java index 9a7d57bbde4df0c5a6969a57bd825e028c573c5e..13339f749eb8a3075718c9b27bd1dfdb5acb36ce 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PrimaryLanguageValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PrimaryLanguageValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureBaseDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureBaseDto.java index 11ce6cb6a11f6f448cec420b337ecb338b1b7691..6069f46de731d1e00c9a8fc2791b6d3e6add0265 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureBaseDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureBaseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDetailsDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDetailsDto.java index 0ae9d310285b627f144c04c9ef4c62c95d36888f..9cdc668e5d39b889adf5783b70f70d3465e9243c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDetailsDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDetailsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -36,7 +36,7 @@ public record ProcedureDetailsDto( @NotNull boolean isDeletable, @NotNull Instant createdAt, @NotNull Instant modifiedAt, - @Valid WaitingRoomDto waitingRoom, + @NotNull @Valid WaitingRoomDto waitingRoom, Instant schoolInfoLetterCreatedAt, @NotNull boolean hasInformationBlock, @NotNull boolean hasBeenClosed, diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDto.java index 49e886ffd96f1087f0060bb38f09211af3d9a1a3..5afb866da02fe6d5c4d9b3bd6fde09cc5e12f9f8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureFilterParameters.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureFilterParameters.java index 71cd8cfa044872d3e865d236c73151f74e652fa3..d07d6950608483df874b8d4b3186e61e38918067 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureFilterParameters.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureFilterParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedurePaginationAndSortParameters.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedurePaginationAndSortParameters.java index daca425c54eda9e1c4dc3fd459419943bcff9ba5..d3ec337dcaf6735f173d05b596e44b16aca12093 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedurePaginationAndSortParameters.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedurePaginationAndSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureSearchParameters.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureSearchParameters.java index 4351e24d130f758347d8e2f800ae0f0c87766d3e..9f902fdb7efa7f3519a8034b2bd7a02f7f4d02eb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureSearchParameters.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureSearchParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureStatusDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureStatusDto.java index 1d45dba488eea54a27fcca65e57116e0201bfc24..1602e20d3bbb0cf7df736e2b74707fbaafaa2120 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureStatusDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureTypeDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureTypeDto.java index 20f2483f1813da30e92d8dee0e1c9381b1c419e7..5847b48f18ee57b9dc911c9b23a6ef0628b99d3b 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureTypeDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ProcedureTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PromotionBeforeSchoolEntryDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PromotionBeforeSchoolEntryDto.java index 0bedac05e4d4a4b29aa13175cd02c1487cb4ec45..c5252469610ced9703dbac887c4293f00d9136f5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PromotionBeforeSchoolEntryDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PromotionBeforeSchoolEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PsychoSocialRiskDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PsychoSocialRiskDto.java index 3c7c1febf24c4766974ce31cd967cfde74ea5998..cacd9565652d852f95675fe882379c76bd021e5f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PsychoSocialRiskDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/PsychoSocialRiskDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RemoveCustodianRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RemoveCustodianRequest.java index 9d6e1825f7262fc84289f19d7695fe77072da884..73f47eff0d6f610d5848cd0924bc3300e4beb673 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RemoveCustodianRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RemoveCustodianRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ReopenProcedureRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ReopenProcedureRequest.java index 31046de5f6989a47e63549d2c772b7b8adb811b6..47c3883a1535d5d249f3ef9bc45375406abb50a1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ReopenProcedureRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ReopenProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RequiredProcedureData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RequiredProcedureData.java index 0dd47a25ddd89f1af8941d31f2ce4a02ba9d739b..c303f94eede5c34092018524a4147fd09abe09bc 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RequiredProcedureData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/RequiredProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolDto.java index bbb3f5f1315ad8f89b32b13456fe90da291097d4..dec6f70834f2fe332c3f03bac603362a1ca8ab4a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryAppointmentBlockPopulationResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryAppointmentBlockPopulationResult.java index ff8dc84150bece0744747599d3d6cf3be23bfb3a..4d2920b86266a5100f7cf61bc8c5274c9820a70c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryAppointmentBlockPopulationResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryAppointmentBlockPopulationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedurePopulationResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedurePopulationResult.java index afe52703d256972c4d389ad0a77de9207a9ea0bc..3ea4201242eb41c9a1ea9a9a794e3b58b1abef05 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedurePopulationResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedurePopulationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedureSortKey.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedureSortKey.java index c7be7480edf1cf4ed36108b0624dcd6697fc7a66..186cee5b10213a1e55b3db454c113af35b6c83b1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedureSortKey.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolEntryProcedureSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolFeedbackDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolFeedbackDto.java index 2c56ea8ed30e402c2b536470d5bbf80cb42c06e8..00b61ec05dad0d14b50f28df33b3e0035cbd430a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolFeedbackDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolFeedbackDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolRecommendationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolRecommendationDto.java index fc058686511c7a54af6464fe96fb4366dee4540d..f6d3d2fb5d95cf403bb0d5815e62a6e4c609ea14 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolRecommendationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SchoolRecommendationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ScoredEvaluationExaminationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ScoredEvaluationExaminationDto.java index cb1f023c193bbd40224b5d3ce049bd53b7837ddf..96269776135543897f9d228434fdf572d742b3f6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ScoredEvaluationExaminationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ScoredEvaluationExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SearchIcd10CodesResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SearchIcd10CodesResponse.java index 179a2779bb8398c4e342c5e8d16b0b8e1b074f6a..66729a082e90d2080af5ff70e50c04ce72bba583 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SearchIcd10CodesResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SearchIcd10CodesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SocioEducationalPerformanceDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SocioEducationalPerformanceDto.java index d75daa301da6b6e1ddc2374539532463603e139e..be6950d0eaaaee97db34580c9b03994cb9d1f6f5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SocioEducationalPerformanceDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SocioEducationalPerformanceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultDto.java index 4a9ccb3202ac364f1a072b767523027ce7628f50..71050194bddf7c2683aa421d01045005a66a2516 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultValueDto.java index 32e63199167e290034ab5eefb4d3ffa040ce3841..fc7b66b304c68c07d9a61556d8efdbd52e6869de 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SopessExaminationResultValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SpeechEvaluationExaminationDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SpeechEvaluationExaminationDto.java index 3607d0660619ce622900901b535ffb186104135c..d60ad63b9ee77723cfbee562efa566bb7f07adb8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SpeechEvaluationExaminationDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SpeechEvaluationExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SyncPersonRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SyncPersonRequest.java index 71b456981b36ae9004ea3a5f3d325c3bd6f31540..eb99853a37de1e18a35fca00fe150be181a4aa64 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SyncPersonRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/SyncPersonRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateLabelRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateLabelRequest.java index 04b1bf31b4265282c0c214cb4c675c65527b6235..6685d9d47b1dd247ead6413730e7fdb08d7f5fc2 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateLabelRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateLabelRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdatePersonRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdatePersonRequest.java index 0d86e562a3defe26eeae22d8cdad0c68011e456f..119891b97012230a0b52d9c302b19af09fb12d04 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdatePersonRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdatePersonRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateProcedureRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateProcedureRequest.java index 3b7e912723dd79dd9cf48b4a70afd110ddacac13..8e706a59d24e3641e2576576908b11cfdfaf9d24 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateProcedureRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/UpdateProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationSchemeValueDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationSchemeValueDto.java index 180ca52eaae769a330092d4fda5b7bf3b88c31cf..c42bfdd0d7c4cf818dc620e4ddd7e28653b29767 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationSchemeValueDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationSchemeValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationStatusDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationStatusDto.java index f242765e9b72214d58f28023a77458988e2012f3..85a7368c392bb0abf562ca65224cec577e830710 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationStatusDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/VaccinationStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ValidateRequiredProcedureDataResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ValidateRequiredProcedureDataResponse.java index 6a416fbb91ea668e3ba0382419742629264a67f9..dcea771649a2ed16422fe267b9a7d58f50887b63 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ValidateRequiredProcedureDataResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/ValidateRequiredProcedureDataResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomDto.java index 2665942ce38486289d949d593eb267aa5769560f..4044236f0b7873e0c76ed6fbb1a9d75dcf15092e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedureDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedureDto.java index a344998f755d22b9bc9633d87573f501089e54e5..f53b227b99e81c9167be3764a2447c1084c8e9ed 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedureDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedurePaginationAndSortParameters.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedurePaginationAndSortParameters.java index 0e7e1689dd82d48cf192cf1be35f1c02a1134649..dc07468a80c189cf19a61f1c81ea91e9542c4a79 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedurePaginationAndSortParameters.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomProcedurePaginationAndSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomSortKey.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomSortKey.java index d72b0e657d1b43d9a6e16f664c374bfb19021aba..56bff38f28560c793257fca415cce0187df98627 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomSortKey.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingRoomSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingStatusDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingStatusDto.java index 2cad16068def42455b00ed5550b7576ef2ddcae3..63b6a91ba76d637047fcf5de39a602c6849759aa 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingStatusDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/WaitingStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AdditionalChildInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AdditionalChildInfoDto.java index fbba68b1bf48a5bd670ecfa790a35ab76d5df57b..732a550c6ebbce2ab22f12f26c34bc272a42e7aa 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AdditionalChildInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AdditionalChildInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AnamnesisDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AnamnesisDto.java index 557678a6e207e3f628f1e082dbffc3272d85ef99..417ddb0c6871b9bbf8f5d7c97f700365ace1bb10 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AnamnesisDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/AnamnesisDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/CitizenAdditionalChildInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/CitizenAdditionalChildInfoDto.java index 6c10e56a9ac8383479efaa7699dc54c80f93044e..47fd019a8351b5e95e7c99056fbc91398d750353 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/CitizenAdditionalChildInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/CitizenAdditionalChildInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DaycareAndSchoolInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DaycareAndSchoolInfoDto.java index 0c9d20ea9869f368bba0ecebc011c272171c3b93..8097432b87f9272bd8d3c6967e3e42cf68819af3 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DaycareAndSchoolInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DaycareAndSchoolInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DevelopmentInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DevelopmentInfoDto.java index c2f126c81cf107589807ac7bd53a543eb31f48b8..d95de0db902e747e5f8920c3bb55b282daceef2e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DevelopmentInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/DevelopmentInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/FamilyHistoryInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/FamilyHistoryInfoDto.java index 0f993bcd42ddb71fd31d17a356ee98d29bd55e9a..77de3133acfbdf0b2ef4f38c87a43ca29dfabf73 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/FamilyHistoryInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/FamilyHistoryInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/IllnessAndAccidentInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/IllnessAndAccidentInfoDto.java index 1217c13d170faa8c1a671d6d3a6537d6503c3ec7..3adf83b6cd48042bb2a66922c76df6809ce3a6cc 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/IllnessAndAccidentInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/IllnessAndAccidentInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/InterestsAndSportsInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/InterestsAndSportsInfoDto.java index b74d75022347d0dd047b05a6615563e0cd2b4541..3c4ebb0d422c8e62d66a05fd71e04cbc5c5016bf 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/InterestsAndSportsInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/InterestsAndSportsInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/PromotionTherapyAndAidInfoDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/PromotionTherapyAndAidInfoDto.java index 2ffbc9997043bbc9528647ae344c0b5c0cd29ead..ecda7d7e012d3e663c1f72e506103f774d907a2f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/PromotionTherapyAndAidInfoDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/anamnesis/PromotionTherapyAndAidInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AddCitizenAnamnesisRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AddCitizenAnamnesisRequest.java index 5a81e9ca5ee3bea290a09304c79ee3d11efc17e1..0f76741b74812999f3b661cd88d785e7003e90e8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AddCitizenAnamnesisRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AddCitizenAnamnesisRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AppointmentAddressDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AppointmentAddressDto.java index 77556587e460fbcc994dad65ded196960566d782..b5c9e5ac059b21dc74d4c65d0cf88071fcc75b7d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AppointmentAddressDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/AppointmentAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenAnamnesisDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenAnamnesisDto.java index 73e57f78ee5c5387a7195c5c7c16bdba3d756f95..eab2491398e5016560042f461fbe45859e973fb5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenAnamnesisDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenAnamnesisDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenMigrationBackgroundDto.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenMigrationBackgroundDto.java index 86f3e4854db65a1a214be1248b2fbb1adc39effa..93949b408d40d44477d4d4984b091597a89552f1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenMigrationBackgroundDto.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/CitizenMigrationBackgroundDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenFreeAppointmentsResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenFreeAppointmentsResponse.java index b08db9ab4bd2d2695d9109835ac6f3eea32ace2c..f0c53f7da0783970041406ec041d71f1d66cee2a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenFreeAppointmentsResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenFreeAppointmentsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenProcedureResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenProcedureResponse.java index 6ec30056c4c2473bbc2f1e7a86899620cfbd0bec..608dfaba0995d08df36da2b27d15718c0dc204af 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenProcedureResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetCitizenProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetOpeningHoursResponse.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetOpeningHoursResponse.java index 67a7e23c62699841dd6fd4f6192fca9bbf17ba3e..c65f05e06c51804b2d247b340274c1bc4dc9ae8c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetOpeningHoursResponse.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/GetOpeningHoursResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/UpdateCitizenAppointmentRequest.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/UpdateCitizenAppointmentRequest.java index 3e16f6c475ea3ce96968b136e83c61621c14d0ed..672b5cb784eb551231f06e7963c3601f2e6845c2 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/UpdateCitizenAppointmentRequest.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/api/citizen/UpdateCitizenAppointmentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/BulkCreateAppointmentStatistics.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/BulkCreateAppointmentStatistics.java index 9519dacb413bd2f7469a0beccb3eb9e92b3eeb1d..22429b1fcac7b40ad44f76d19d0cc36605a97ba1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/BulkCreateAppointmentStatistics.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/BulkCreateAppointmentStatistics.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ChildData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ChildData.java index e83954756f8da085626608896524eee51ae953b7..d6ad0148dc400fdb1819f197935c24bb7bd211de 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ChildData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ChildData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/CreateAppointmentBlockGroupResponseData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/CreateAppointmentBlockGroupResponseData.java index cab768f1d4536bd0db5c445f5218ebc4eb343cf5..a439a585c61daa522b28d97d34f4f4d35d6b75de 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/CreateAppointmentBlockGroupResponseData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/CreateAppointmentBlockGroupResponseData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/DataOrigin.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/DataOrigin.java index 13ac0cc03ecf7d8e3f144f1ad41e3456a57af55f..75af022057cf51370bfe1375477cf88d1c56c640 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/DataOrigin.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/DataOrigin.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportChildData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportChildData.java index c28ec091155a04f2dda3a77e3945af762cca6d66..249250daa77cf83b34ad959738b59d4ba7628056 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportChildData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportChildData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianData.java index dbc1a5f92b146b9911fb14023f2c4350e62d3bc6..24b7f52b1b2cb98bb0952f97bbe0727f3ee43850 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianDataWithProcedure.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianDataWithProcedure.java index c7354018c442b54e5768c5e9a4a73fb90ec59eb8..42c2117ef0efbdf45d0ede197cd64ff8ddbb9163 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianDataWithProcedure.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportCustodianDataWithProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportPastProcedureData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportPastProcedureData.java index a8654afc36677081c68adc49a05a05e7d7b854f5..f9a80b43da3236138d51a039add3df565801a9ef 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportPastProcedureData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportPastProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportProcedureData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportProcedureData.java index 550d46909c14229b26072fa8d3a404c92818fe0a..4b2252033d1f01602e73c5745f502c8f58850fa9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportProcedureData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ImportProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/MergeProcedureData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/MergeProcedureData.java index 7c75a2cb6d7bf4466954e6810d6af57d4cf7aa24..dd1ad5a69050cf9ec1170a2a87f7f855ba5d4660 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/MergeProcedureData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/MergeProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedProcedures.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedProcedures.java index b0620cf32e7a1e3cfb1fc3982f0aa7a91041fb2e..14fa3f5facbaac5ae4efb630ba32fb276b2fcb53 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedProcedures.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedProcedures.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedWaitingRoomProcedures.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedWaitingRoomProcedures.java index 699bd44d4dec1f826192de59aea9c90defcd9c2d..d30b0da5fb16565605174b6ef5b94a0096e7c21a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedWaitingRoomProcedures.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PagedWaitingRoomProcedures.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PersonDetailsData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PersonDetailsData.java index aafa183edb5c468a3b37ea8d5a23114caca65156..08b0ebcced0a02a7185cc5104f27a2697ce42acf 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PersonDetailsData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/PersonDetailsData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureData.java index 34d76a2ecef69e941d8e40d5f8183e064fd929df..c4390f287c787551667fcb46088f3f5c44a3b17e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureDetailsData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureDetailsData.java index a018cdc2a166ab664c11392099161b4a3d5b6d07..ca92c417a3ecbd0c836f3451b36af82b291b45be 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureDetailsData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureDetailsData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureIds.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureIds.java index 82be238c7e1bee1f646f235c95243f37af98980e..db020f57ea18e403e7afe399899199db7ddd9e22 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureIds.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureIds.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithChildData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithChildData.java index c97e526f51677c6c77785ce68970c6d2740f4b07..775c010c3958b93a133b8169a36b280cf0de9319 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithChildData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithChildData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithPersonDetailsData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithPersonDetailsData.java index 2e5764812eda4e19a5b6788ec5cd9b0ef7516e3f..600cfc40d1bc0965f9b27cada745704f270f3c18 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithPersonDetailsData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ProcedureWithPersonDetailsData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ResolvedMergeProcedureData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ResolvedMergeProcedureData.java index ddbd787a7a9000fe9cea5557c1c6ff68abf853b3..dcd60ffa001adc40f3ccf64845e6292fdefc14ee 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ResolvedMergeProcedureData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/ResolvedMergeProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/WaitingRoomProcedureData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/WaitingRoomProcedureData.java index 6fb75dd50a2e65d53158c4f2b4531de2d13281f6..09859440ff3654465231938ac6bff038469de80b 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/WaitingRoomProcedureData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/business/model/WaitingRoomProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/client/PersonClient.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/client/PersonClient.java index 9d8d7d0d0184c148f36022243199ad8d294a998e..8dc1303c9c0ecf6383e9496dcdd7f5728024931f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/client/PersonClient.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/client/PersonClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAppointmentBlockConfiguration.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAppointmentBlockConfiguration.java index 19d4e86f32b307e701c1fd857edd2be8ee2bf5ca..c66b5547d4c24743ac742c11e880e9a98b7d192d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAppointmentBlockConfiguration.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAppointmentBlockConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAuditLogConfiguration.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAuditLogConfiguration.java index 127ece16c850bd4a7782159741ba4ade4fd19d4b..915d6bfe8f9f02cc51447b70b186bd6a9904f4eb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAuditLogConfiguration.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeature.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeature.java index 79eceaa9c0f67b8e7f196efb8c3edc093a99848b..816d916e89508c2d74b0564a5916fc025c35e64c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeature.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeatureToggle.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeatureToggle.java index 2d0e593562ed9b05b23abe08ff39542421cc0a60..3bd60904e0b14643398da9578ffa26307ce55be3 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeatureToggle.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryFeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryNotificationConfiguration.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryNotificationConfiguration.java index 370042edb882bb852d52ad8dd6b664ce2482ee64..53351349746109c525d6ae75562c751bb77dcc91 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryNotificationConfiguration.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryNotificationConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProcedureConfiguration.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProcedureConfiguration.java index 2a64c1b07e1b9df9d9f3bcbdc4dfbb33ad0848b7..549fb2466c366ea1ebb382cf2463480e31b9a07d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProcedureConfiguration.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProperties.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProperties.java index cf367220460f50c3f9d7221965b8aea1dc3697d6..bbb07641d2fe5d75200da7c97533cedb513a5d86 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProperties.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/config/SchoolEntryProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/contact/SchoolEntryProcedureContactsMergedHandler.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/contact/SchoolEntryProcedureContactsMergedHandler.java index 44cd122194712322196ba1e6b835ef2912e22e54..b70e5282fac30f99bcfde1078b6726560f3c86f1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/contact/SchoolEntryProcedureContactsMergedHandler.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/contact/SchoolEntryProcedureContactsMergedHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Anamnesis.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Anamnesis.java index 1c28538beac1c2e0affa7cf28e332388d4c17f21..4e20421a03cdc2dcc42fb30dfa7ac0fa985c2545 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Anamnesis.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Anamnesis.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ArticulationValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ArticulationValue.java index af028322461fda78cfea6189f4f35419fe84cf8f..7a809d4f2e79470ba9e66d41958b21cca4d79e8a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ArticulationValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ArticulationValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/BooleanWithUnknown.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/BooleanWithUnknown.java index c1f010a0689a552b907d1ba10b89ade7db8c2689..7c4b1132870fbfc84690f6d7c59a36393f1b7b6d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/BooleanWithUnknown.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/BooleanWithUnknown.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/CountryCode.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/CountryCode.java index efaa1a37b084866a87b3247eea100b6e084c5bae..86b4a5e03bb8ef38ff6273e06ea025220971f0a2 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/CountryCode.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/CountryCode.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DecibelValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DecibelValue.java index 2af93bfe846e6ad1def86c7b3c41cc857f190ef8..949b0bc978c645ed04f5d2b877d92a03503f0f46 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DecibelValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DecibelValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DevelopmentScreening.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DevelopmentScreening.java index 9ecf8b694428c1d081b644556aa76ea1524df1fc..896b04003d4b8195d17bf5fbb0343e68c8f45029 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DevelopmentScreening.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DevelopmentScreening.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DisabilityType.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DisabilityType.java index 7abd9afc58f1f6bdbac0788f4ed5f6eca8e64074..c24ca75c124db1f81d95f30ded45ce503b9707fc 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DisabilityType.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DisabilityType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DoctorLetterValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DoctorLetterValue.java index 529842d3eb3849d004435dbfa027071635feb2ec..2c12f125dea529263af893a2221755ce7cc0cfc1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DoctorLetterValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/DoctorLetterValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResult.java index 1cbd324ee482a5bb5a96ef16815696f1cbda1a91..2762242cd0fff026554444b35234843ddfb5dc1e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResultValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResultValue.java index b9a58b30fc946375f5c5fd2a1c8402e0d4af46ae..3ee65a744246cfa27c9e0c41da18bec0eb8d6654 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResultValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationResultValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationWithDiagnosis.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationWithDiagnosis.java index 08f1b29130c139c0fb2d28703a6e72eea0672e69..7b4643da137745aa7163bc4c40e30978785cdfd7 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationWithDiagnosis.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ExaminationWithDiagnosis.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationResult.java index 4e258a705c6a45782eaaa6d0d5160bf21ab81455..bb806958cdea9b0f8eb02ce7013a86290b529b08 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationValues.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationValues.java index 185ced82b6fbf73e170f7f1a3be4bcf6eead185f..dc00cab1ff11b35c81bf07d41b9174e701663cb6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationValues.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/EyeExaminationValues.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Facility.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Facility.java index 0bc0a73295eb5a373f8fab9ea175cd2cb8fc0560..30234e7d20cffaae4e05c1b5a08d02455495ed28 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Facility.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/FamilyLanguageValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/FamilyLanguageValue.java index b2fa9be933153de725978ab613b58cd37dc0c482..95e1fdb0486f07c54d96a79a5766bf7c3439342e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/FamilyLanguageValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/FamilyLanguageValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/GermanKnowledgeValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/GermanKnowledgeValue.java index dfb48e5d785db2e4331f1381f0b75063996bb12b..9f9ca3317f08ab879b57d453cfa74599b733b374 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/GermanKnowledgeValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/GermanKnowledgeValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandednessValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandednessValue.java index c155c4bd5a0a5fb719a84b2df3f519f895bb1323..210f646a9d6b7f9abd60d33b39f238c2cda8263d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandednessValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandednessValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandicapWithDiagnosis.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandicapWithDiagnosis.java index c8a1ed47ac5b0078096553daf823b8dae20df3a7..68ea35f077ef603cf70351b915e761996e31cda7 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandicapWithDiagnosis.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HandicapWithDiagnosis.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestResult.java index eebdfb2d439a982d08f7d900d16561da903e1b8d..9cf91b332d6c9e7c2b8eead6ee2e268ba2a7876a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestValues.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestValues.java index d01902966be377dbdba56a74b7ab1dda42be27ad..babda5f7b7ef30588fa3e54594df044d1e1e56fd 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestValues.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/HearingTestValues.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Code.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Code.java index 0788663c80b33adfe84d5dc09506d0d58202c2bd..fc73b8a8873fc7b7cf5e79b95d6af7f078d393f9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Code.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Code.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Group.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Group.java index 143de0189c45ca2b3adacaa204b70ae0139b45ab..78e6cfaf9ea78315b1cf085abeb7fe5aa2f279de 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Group.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Icd10Group.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Label.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Label.java index 6cf3b4f72bca85b9013a60af9e3c24aa837a152b..058615244b02763de799dd91156c4395575b613b 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Label.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Label.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/LanguageKnowledgeValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/LanguageKnowledgeValue.java index 15cb9fab4b2816af093d1e74b11939aee3e986a4..4152a745403513f4b502e39855203cc98ba8d427 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/LanguageKnowledgeValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/LanguageKnowledgeValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/OtherVaccination.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/OtherVaccination.java index 3b12a9f80b2da513e96658857f2f6161e680318c..59557d0a21e82e189de16542ac5bbfb5565b4252 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/OtherVaccination.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/OtherVaccination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PercentageValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PercentageValue.java index 9248543e1177ee6383348fdea7e9cc36801eeef7..afad7c47d52506f703295cadc4957d354dcbb678 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PercentageValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PercentageValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Person.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Person.java index 67a8b2d1944b333ad790704ca67de79540e5e15c..c0e5843e3a684bd6730b84b79b269f4dcfb97119 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Person.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PrimaryLanguageValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PrimaryLanguageValue.java index 145948345b60b0b26bb52b841aec2f8d379569b0..39e1a1255daa8433aeaaf7f95f8a88b454c1b85e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PrimaryLanguageValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/PrimaryLanguageValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryProcedure.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryProcedure.java index 0958a548be0498ed8e57847d4b96ad7011a68a4f..5f565ba4413f10768e55fe9537f6a8fc0ac6d8d5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryProcedure.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryTask.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryTask.java index ba4391aea5bee17d10c0d48a60fb29c8f8b7e0d2..ef9ad3523488c4ccadd3590d60a58f2c4053afe8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryTask.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolEntryTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolFeedback.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolFeedback.java index c0a8602aa91fa5164c2d52383c78c9bbcbfa874e..21cff4713ea8bbbb3eb6e4c917c3ed8528a5b7e3 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolFeedback.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolFeedback.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolRecommendation.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolRecommendation.java index bc035169fbdd103395a5826f2ae768724a3b2782..fe29d364369b1be18ecad7847655d0a666b467f9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolRecommendation.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SchoolRecommendation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResult.java index 41f241d741e048126c2257aeaf1f2adf97930285..a47282ae26aa40e0c059a266135810a09eef568b 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResultValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResultValue.java index df25a3ebd4890d799abf77db0d439cfea38e6c1c..c6681e69c826f6cd3bf61097a4d153c6ea989923 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResultValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/SopessExaminationResultValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationSchemeValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationSchemeValue.java index 31f3cc0914cf91605dd111e07660c9d333e630e5..b120ea44fbda638ed5bb348eb41466e615a93c15 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationSchemeValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationSchemeValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationStatus.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationStatus.java index b7c7b7d6f1ea3a902c87130466f85a6cc406262b..f81ce41d4493a224ba1af5a7df3cd723f2aedb83 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationStatus.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/VaccinationStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ValidatableEntity.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ValidatableEntity.java index 6926829cd4cecab94eedbb13e9b85eb7784ea8d0..5a9871bfb96679c85a7cdda3b68e4e6c206ad495 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ValidatableEntity.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/ValidatableEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingRoom.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingRoom.java index 2312dcb37e3ccf10aeef2c8372d534e7b2ced7a5..8027f504589e837ebf91423e48ab578b55165f9a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingRoom.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingRoom.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingStatus.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingStatus.java index 34f53b0c67025a381f7062242273d560cc8cfdf7..6e278f27c6d6a361682ddc151e8dacdb440c07b7 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingStatus.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/model/WaitingStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/AnamnesisRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/AnamnesisRepository.java index 3c8c449d7d81aa03741e44da173629555e493370..629b724f030fb8c0b262211beeea9ca8aa80a7d3 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/AnamnesisRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/AnamnesisRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/DevelopmentScreeningResultRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/DevelopmentScreeningResultRepository.java index 5379e79cbbb0012320423280feed95750d28c04d..bd913c442c71db9bf44904fc25134b79962d2753 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/DevelopmentScreeningResultRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/DevelopmentScreeningResultRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/EyeExaminationResultRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/EyeExaminationResultRepository.java index 78426bee489bfc3ac59f08c79bdc2c5dbdaccff0..4eeaf5f8369463cc147bd6ace47f23b3d006b065 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/EyeExaminationResultRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/EyeExaminationResultRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/HearingTestResultRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/HearingTestResultRepository.java index 5025da3945b3645d7c7049c4f60313ec137cfe19..6b7e5097b49867587466b55093581e22dd88319f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/HearingTestResultRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/HearingTestResultRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10CodeRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10CodeRepository.java index 99fb5faae431268e63a0d3e3194a2b4d99854f88..f08c61342f8acbc69ac4ab1fca09cfa95a6a343f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10CodeRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10CodeRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10GroupRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10GroupRepository.java index 05524d5fcf00b3e34fc990d692a25e2b7582ab0e..99a56bf2048a4c23cca2ec819692ec91a4036837 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10GroupRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/Icd10GroupRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/LabelRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/LabelRepository.java index a578f7e59b0820819d6102763ae422e341cd913e..b9ff3940ce3b02a1ea95a84d4a3fb31d958d0559 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/LabelRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/LabelRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/PersonRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/PersonRepository.java index e951f5a3a4e0d19cefdb08ea559a42106d98a411..6c29fad482ab9e8f78e65d6648924003b6bf8716 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/PersonRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/PersonRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryProcedureRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryProcedureRepository.java index d5941dd7461debcee5c5cd34af877e08b6f0a00e..bd4fe855fa525632b4699181d4b8bacd5eb7b144 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryProcedureRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryTaskRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryTaskRepository.java index e3c68380770101ab5ec79e9bd895ac07852b7df1..0747b24aeebde2c5e5f18bd4322d752b098a67ff 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryTaskRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SchoolEntryTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SopessExaminationResultRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SopessExaminationResultRepository.java index 3eb59025f941c8db09c06209405c2e104f514cec..a5c77cb728dab75038e57c10dcd438d6c724e34c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SopessExaminationResultRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/SopessExaminationResultRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/VaccinationStatusRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/VaccinationStatusRepository.java index 0697c90ad5769037fb54ad51e2196d86df9571b5..0b3c63f7de7d9f1acb5afd94e806a8fc49c1bd25 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/VaccinationStatusRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/VaccinationStatusRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/WaitingRoomRepository.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/WaitingRoomRepository.java index b8ac6002916a17a1c1646d952c77ffdcde1b158b..71ccdb0d3074a76a1cf5bff229823d70e0e9fc32 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/WaitingRoomRepository.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/repository/WaitingRoomRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/SchoolEntryProcedureSpecification.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/SchoolEntryProcedureSpecification.java index adebbb306899d0c5367a6a7bc310b46f57274295..a665c5d94733125be1cc4a08754e6c933b51e31a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/SchoolEntryProcedureSpecification.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/SchoolEntryProcedureSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/WaitingRoomSpecification.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/WaitingRoomSpecification.java index 0a72cf3e3e166b7ec7f46b48ead38d29f757141a..0a4d074aabc3d96bfc0a74efc7942aa6b604959d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/WaitingRoomSpecification.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/domain/specification/WaitingRoomSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/initialize/Icd10DataPopulation.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/initialize/Icd10DataPopulation.java index 5ebff28ec32e83975a13153a5ba4b72a0bfd5959..fe02c0eeeb45307da52a7c0a53cdcefe1f5c339a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/initialize/Icd10DataPopulation.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/initialize/Icd10DataPopulation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10CodesParser.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10CodesParser.java index e555513492f310e676fb1131c025ade03b125924..885e7996eb58b6a5ac75e88273eccf49845170db 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10CodesParser.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10CodesParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Data.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Data.java index beffc77ae9750beca131af90d43bf685e0534859..657682e19267f09278ffd84033d7002053baa330 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Data.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Data.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Type.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Type.java index 30165a6ed42fea56270230095fec7db30de28c49..2c9d71867e06699bf990c9b6d626a22e428da477 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Type.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/icd10/parser/Icd10Type.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListColumn.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListColumn.java index 11b3cf91cdd5150c55b3d6910d58fe58707ae5e2..656bbac8e34cb34fa9be5e6e2daeb62ff38d458d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListColumn.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRow.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRow.java index cfe2e26a692b8aed77fd44175862386e9af2f7c1..b1215d0fc2c4b22da3244d0b713cde7612cfc6a8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRow.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowReader.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowReader.java index d6131265d9560236597e25d20491f43ae0a7a9fd..f0ecfd5c1ee7c518954c07fbff3be14b0f7c460e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowReader.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowValueMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowValueMapper.java index f2c1b1ef0114b8057043ca503c5b5fed23087266..7936810a5d68f169ed38f50033276adc9305c5d8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowValueMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenListRowValueMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenOrSchoolListImporter.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenOrSchoolListImporter.java index 639f4175368a73c27cff1b36bbaf058b77f6af3d..f665cda3f5594f361599a260c95293d13033decf 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenOrSchoolListImporter.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/CitizenOrSchoolListImporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportService.java index f302354cf247428d0f8b5a96dfbb61211753a5a2..4242020d571cdeace5080e986ac80e0383717c53 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -332,7 +332,7 @@ public class ImportService { private static SchoolEntryProcedure getProcedureOrThrow( Map<UUID, SchoolEntryProcedure> procedures, UUID procedureId) { return Optional.ofNullable(procedures.get(procedureId)) - .orElseThrow(ExceptionUtil.procedureNotFoundException(procedureId)); + .orElseThrow(ExceptionUtil::procedureNotFoundException); } private void addProgressEntryForMerge(SchoolEntryProcedure procedure, ImportType importType) { diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportType.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportType.java index e19f7fe382dc3e1dc127ab1d6066038de1ce7174..eb8dd18e49f20a5f10fd3a09b918f16716a1e604 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportType.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/ImportType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListColumn.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListColumn.java index 6ad4c9c3f5ed04bbe16b47d83c3be1e7af20ebe7..17653488b8a8e5b2d1035182ff3c1d67e616693f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListColumn.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListImporter.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListImporter.java index d2179989139c4d8c350ed07b2f57f64931e010d6..a8ee0f6ce8cef099bec4a73bb6f2578dba565959 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListImporter.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListImporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRow.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRow.java index 757d9cee4a93168214e28739d921e302181804c5..95e0c1207534dbd488816a27fca1e8b4690923d8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRow.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowReader.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowReader.java index c81acc1625faf7bf25486ee253be1fe8b53c604e..a86455f19bbfbf1298d15d4680236e00dee8f029 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowReader.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowValueMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowValueMapper.java index 0e2e88381a7f21a6a2b57ac275b8295101488198..b3a604329cfbfa1ff47f561559e222ef906c384c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowValueMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/PastProcedureListRowValueMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/RowValueMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/RowValueMapper.java index f95be0aa1c06b2d3611c361d358b401fb8f6d2b6..ff37cc8bbf42d450dca23e8f9c041c356b0a4a80 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/RowValueMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/RowValueMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryImporter.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryImporter.java index ab57715b9404d33483fea92f0a5f65116e7afbc5..693abc6db5604916e2ebb0a5536374cf65a0cf3e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryImporter.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryImporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryRow.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryRow.java index d4036a065b8e41a628eb3eed1bf1e87d383f914f..419e1d9dc738db57ab731c86cbc78ba0bc13ed93 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryRow.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolEntryRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListColumn.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListColumn.java index 50ba772b2f3aaca7628d8b6928356a479c73c122..017ac09feb8f20be4e2e4c5f81fecd3bae7ac81e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListColumn.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRow.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRow.java index d7bb913cce25b4e2e292ad99cd419c2bca84b676..d7ab3c96260a164f24fd0531e99974326f76ab8f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRow.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowReader.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowReader.java index 535e73da2e55a346d92aa81b531eed949f0ca60d..f2b5179525d4baa94049a7dbf783b88cbd7bdb26 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowReader.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowValueMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowValueMapper.java index b4e34aa794f307e820b048a94959f0580ab5b6b7..5096a009e32b346a730fa872a49a81606c735558 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowValueMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/importer/SchoolListRowValueMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AddressMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AddressMapper.java index 3c9fa4796e7c404b0f41026185fea3e1c7e37028..130cc5d96052bd8a618577b0994bb0622d4aac7f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AddressMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AddressMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AnamnesisMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AnamnesisMapper.java index f9768503edbffbbae7d7c15eb863182bbddb346f..779adbbfee6e020d201125dc19baa642fbb21102 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AnamnesisMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AnamnesisMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AppointmentMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AppointmentMapper.java index e26b1e09fa16f396d40fa268d4970fb94e479749..bae7b252feccd523b525a325adb94319600c58fe 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AppointmentMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/AppointmentMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ExaminationResultMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ExaminationResultMapper.java index 443b8629f1f4fe7abfa320c9c5efcf89f300d661..9c6f79b0b7f102328c07e8dd2d3d91c57dabf4ed 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ExaminationResultMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ExaminationResultMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/Icd10CodeMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/Icd10CodeMapper.java index dcd9a9c7989909c9dcdfadcc8f33d5248f0c2b4a..2a5b33e7fb12acfccc89c8ac61cb432cc795264a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/Icd10CodeMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/Icd10CodeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/LabelMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/LabelMapper.java index 6d02bdd3baa4832e84a0cf2fd61a9cc5f5e76f71..ddfb56b94a29cde2a3601b84fe5b47dda34a50ba 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/LabelMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/LabelMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/PersonMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/PersonMapper.java index b458637a9b3c31bdabc6561036a9d27d74dbcadf..c6c5d27464171a1c47d31f96ac97d7114a3b85e2 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/PersonMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/PersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ProcedureMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ProcedureMapper.java index d59e52e3645be464edab9781a2fb69b43042cd74..6fff58bbbfa858cd0f15a0c994f046c0a3d0ae31 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ProcedureMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/ProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/VaccinationStatusMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/VaccinationStatusMapper.java index 38341c8197cd88d8d66c05acd650487fea170c46..3d3f42280a5560bdf18ddabef80a9b4afb7e9a45 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/VaccinationStatusMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/VaccinationStatusMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/WaitingRoomMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/WaitingRoomMapper.java index 0e90e641dc5b6dbebc30aca3ab73be7e8733471d..4d1e1091b35c0c493079f09e3428526abb5a07c7 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/WaitingRoomMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/mapper/WaitingRoomMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/AbstractGenerator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/AbstractGenerator.java index 8fca0673ca616f4ca7d80d52b8e4ce48caf16101..99b3287508700eb1409e2c435a199b53867da596 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/AbstractGenerator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/AbstractGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/Address.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/Address.java index 4a1b0743a75e8255c27b696cdc5fee34e63f51d6..08dfdc8cea202ff3326c39f497c534b3370affee 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/Address.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/Address.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/QrCodeGenerator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/QrCodeGenerator.java index 6bb8294251d244025d596f28067cf293f8c84abd..e79b60ad8392e4ceb7cbc56066ff3983fc0e2edb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/QrCodeGenerator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/QrCodeGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/ReportGeneratorConstants.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/ReportGeneratorConstants.java index 945453eec801b66b4e698b0407e2dd0a3cc7e6f3..36b3920c108222415b672c6871ba5050f65e1bdb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/ReportGeneratorConstants.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/ReportGeneratorConstants.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationData.java index 14a260c40621142aafd65e480177fc344185827d..c66ccdf63a2397afecc04b5cd52aa076c8970f6d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationExamination.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationExamination.java index 997343f726ac6b4dcc2d3a70738e725a5ae8eeb6..5beb52ecea0382c0cd749b9599c1da207d3390dc 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationExamination.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationExamination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationGenerator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationGenerator.java index 2aec24fd621f1d5ca06ab936443ddeac2d41d7b2..68dbe6b7cc6cc2abb88618e5ef4b6b413a418e69 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationGenerator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationInfo.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationInfo.java index 03c444ae90b9022a6478281e8978318a310e2a74..690a0739490190cd4185c0c3786b99eabdcb1ac0 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationInfo.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/invitation/InvitationInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportChild.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportChild.java index 57d1491457a49dbe2f0c0f25e487bcd318cbb619..7b3db66132dc589b3e8b5a837a70e2dcfa9dbf9a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportChild.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportChild.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportData.java index 1952c6a536f4e1d388c1967700fc2d06569a6e8c..97d9740616591119b03647a5d7a531499b8569cd 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportGenerator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportGenerator.java index 8f815a3dcc54c2f04da1e13a4011d1e1db72e87a..8b98fbfcc132649d876761c3b0087205c901bab7 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportGenerator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/medicalreport/MedicalReportGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterExaminationMapper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterExaminationMapper.java index 2b0dc1c97906f71dc7ab1f01bcdca4888308faa5..a84a36e45a9f5a8f533ea3260cfbb59cc7d365a8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterExaminationMapper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterExaminationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterGenerator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterGenerator.java index 3dcc85448624d320bf6ad123a35fe0eca127e93b..6f95b57bc6f12cf016ac478c3521c28d996d8a4d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterGenerator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterValidator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterValidator.java index 29a5c73df0b30c16a62cc91e3ddb482e2fe5f476..8b719fcfdff4f9f3de09ec221368a48de2e6792f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterValidator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/SchoolInfoLetterValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterChild.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterChild.java index 60f5c03c66007a87534fb0e24e952bdd284cbc4d..0adee51cf15f26cc61a54644a384b52ee8775d44 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterChild.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterChild.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterData.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterData.java index 2b306971300c3c1adb4dcf5a9a633fe9ed77079c..254e014e8bfd013a0eebaea07f01fcaafbbc170c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterData.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExamination.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExamination.java index 07a0ea988ea71284e6e002ba12101fce1a27d0ba..3e7d4ff0cab365ad6a9ec34685b6ddfb0d71e92a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExamination.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExamination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExaminationType.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExaminationType.java index 3a23157a57733f223edd855100066914f421b64b..7fd81f3e3d4dac7618faf2467f0aa4a1d80b4a6f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExaminationType.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterExaminationType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterEyeExaminationInfo.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterEyeExaminationInfo.java index 317a31cdcb8fcfeda999644d463c81d56e3c48ad..1cd06d77f94ce84aa80bdda60d1944847fab788a 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterEyeExaminationInfo.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterEyeExaminationInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterHearingExaminationInfo.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterHearingExaminationInfo.java index 66f2a427ce49e270fe13d7f71a6cb6b3a8bdc063..16992286446315c33c6d89d6a7de06d91c036d8f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterHearingExaminationInfo.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterHearingExaminationInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterParentsWish.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterParentsWish.java index 0ddccf40b11ff81d210486df2555d09e99b7597d..8a4a7b2578f5f9c18509db43e68dcb2a782e82b6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterParentsWish.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterParentsWish.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterPhysiciansRecommendation.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterPhysiciansRecommendation.java index 207def7e5b66e7d458e238bbb5935ae89fcf29d4..1ba2ca46cb8e44ca56f97f46d9dabc71e8efac55 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterPhysiciansRecommendation.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterPhysiciansRecommendation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterSchoolAndPromotionHints.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterSchoolAndPromotionHints.java index a65a65a79cfa4a535820f4224a6c522accfaf6e7..b795d06dc08bc8085ae37c362477fb042f9ee8c9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterSchoolAndPromotionHints.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterSchoolAndPromotionHints.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterTherapyAndPromotionInfo.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterTherapyAndPromotionInfo.java index 44371eb1acd6b31bbd139a6a00f448c13c068fb7..344d8a351d17b837a8b2317d59b2d262113978fa 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterTherapyAndPromotionInfo.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterTherapyAndPromotionInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterVaccinationInfo.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterVaccinationInfo.java index 8259eaa08af78afc1140d99716591c7a997cb0b7..416d553694b80ca024250efbad3941838126d0c0 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterVaccinationInfo.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/pdf/schoolinfoletter/model/SchoolInfoLetterVaccinationInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/LMSParameters.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/LMSParameters.java index ba8f8673e8e36161d4475bb8524abc5a7d338aa4..30fc5678e32bc76f885a7b2fe11a9147ca824d8e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/LMSParameters.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/LMSParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileCalculationService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileCalculationService.java index 3ec6ae4b9b147ea52301a70620d33e10426fcbf2..4b7ed51f48519ca679470552e400868f5bcb12df 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileCalculationService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileCalculationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileParameters.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileParameters.java index c728fd1e2e33be1c9b3afabefc8c3fde1abf2e42..4ebb7ee6f78b024ab67a96f75441b46dc4424b05 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileParameters.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/PercentileParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/QuantityType.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/QuantityType.java index 895ab12855e61b2907f7647004b6d23caa764088..df6b3251a0bb2625b7155efc1471a6e8899bf145 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/QuantityType.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/percentiles/QuantityType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/population/CreateLabelsTask.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/population/CreateLabelsTask.java index a8d177a879c94a6da41375dae072461b05b9e1f2..f3ab6447f9a5176f7d182d616ed74ada748d469b 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/population/CreateLabelsTask.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/population/CreateLabelsTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/DevelopmentScreeningStatistics.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/DevelopmentScreeningStatistics.java index 13ec540c7aaee23e1298c9965a4a1a33b1e768c7..9ef936ec79380a219ad5dc4fb3a70e741b7e862f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/DevelopmentScreeningStatistics.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/DevelopmentScreeningStatistics.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributeUtil.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributeUtil.java index 8439e426dbdc803698d2b40adb42382889995ae7..21a4a3f3a98ae4685aa4794b5d2a539cd99a1aa4 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributeUtil.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributeUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributes.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributes.java index c45712010d18374869049bc2ecd6f6c42fa3d148..a5c8acd77205194a029a1bc26451af41e7748c81 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributes.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/EsuAttributes.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/SchoolEntryStatisticsService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/SchoolEntryStatisticsService.java index 9ea504b47a011f05dbb4afd85c0919f9bdc76e5f..d095ac5872244717a16492c848ac50b7cae74ab4 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/SchoolEntryStatisticsService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/SchoolEntryStatisticsService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/StatisticsValueMappers.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/StatisticsValueMappers.java index 5e737132b59d092199e686e558e93046abb0ac1e..fb78ac5dd1d742a5cc0c28517e825c83f65d7efc 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/StatisticsValueMappers.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/StatisticsValueMappers.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Articulation.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Articulation.java index f53dc0cbf8ea83f66706771f0cfcfbafad36c490..04eea168047b7b6bba180a8ec4f8ae223a0f555d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Articulation.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Articulation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/BooleanWithUnknown.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/BooleanWithUnknown.java index c2bf79b4e20eda84e6e0107279aa8ce6740ae593..0b7c408c4ab35da916b046f31b45a4e686f0ce39 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/BooleanWithUnknown.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/BooleanWithUnknown.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Child.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Child.java index 11277e16907f276d5501d04c7af0cf851d2bde79..d8bd343941e410e4dd6ecfec70a990582d9c883f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Child.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Child.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ChildLanguageKnowledge.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ChildLanguageKnowledge.java index 72c736d93f7c5f3ec968c0c12fe4235d151c315c..a569766e385deb3d65331b4acbd71c6743e371dd 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ChildLanguageKnowledge.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ChildLanguageKnowledge.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Country.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Country.java index 5c4c3d91df05c942e63e71eadabaf20b4e217751..8e2b6fe2c867d1340d6d2c54617b9e6a0f7adf88 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Country.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Country.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/CountryName.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/CountryName.java index 4b327e7fac1cc62820d36e368944c1c216185389..97a570920e6923236131dac819e2d68398271da9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/CountryName.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/CountryName.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Daycare.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Daycare.java index 0d72741659e7fad84c7ffb4a51dfbd57d0d9d98f..f8bcf6af4dd15c41b1081c3f2053f8d069be6b8e 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Daycare.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Daycare.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Diagnosis.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Diagnosis.java index 9847f4dd77f54476ac7b89f2affbdb29540e26b2..0710129b42b200bd07bc6e506c0f450cd0a2a8f9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Diagnosis.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Diagnosis.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Disability.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Disability.java index 437e6e55f4e23d2759f477cac3c2c851c216d9c6..ef99026cc8cbaeb63f9011d1fcc5f21e6b7ba2ac 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Disability.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Disability.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/DoctorLetterValue.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/DoctorLetterValue.java index f4945517e8e69cee0d027d708b1b0934fb60d437..16d4c62ec1c963e3d63c28bffdecbaffceab818c 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/DoctorLetterValue.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/DoctorLetterValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/EvaluationResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/EvaluationResult.java index 82d5669643d782c6bc9f8eb3fd5bf51aad72115f..efc84c5615fafd3683dd3d6c52799fbc7e2fdaa6 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/EvaluationResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/EvaluationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFiveOptions.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFiveOptions.java index 286f06dd12f509e97dc209283729646f1869a7f6..8f5d35ce97890970451eccc58d67f55e73732651 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFiveOptions.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFiveOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFourOptions.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFourOptions.java index 4dc89fe2bae6de901ca92cc4658f372f63dc921f..7cf85c18b5837d4c98d89ed67d55af45cfc006a9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFourOptions.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/ExaminationResultFourOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/FirstLanguage.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/FirstLanguage.java index 9f06484a95735fae7208a19abd421089f4d63383..3cc85487a57bd5aa9b9acd51651697159a617787 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/FirstLanguage.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/FirstLanguage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/GuardianLanguageKnowledge.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/GuardianLanguageKnowledge.java index a898bc1876a691502d5933bd9eaa7d2787651f33..09e1c86b28eb5592e7c5c709e3f63ebd41a3b525 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/GuardianLanguageKnowledge.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/GuardianLanguageKnowledge.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Hand.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Hand.java index dcbf854dee4c224d8f6ad1120cc2b11d2c16d332..1ebda5f8563c5bc9ce1f0503666d3f3946008398 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Hand.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Hand.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Language.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Language.java index 13d84a56c35304f313c140d1691a307cb98fc381..2d4d1e8447c47384065daf36db62270fa91545fb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Language.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/Language.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/PhysicalExaminationResult.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/PhysicalExaminationResult.java index ed1c8a722bca3859569248fc7f13e50488776c1a..d78814631df610b3dfb5074a702d0f5e6da6681f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/PhysicalExaminationResult.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/PhysicalExaminationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/SchoolRecommendation.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/SchoolRecommendation.java index 2b920d5996e226412e6dbb2e889d8ad2926a0785..2f42b54bb427961d4a4031733ef53ebf9a571a34 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/SchoolRecommendation.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/SchoolRecommendation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/VaccinationScheme.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/VaccinationScheme.java index 8b2d773980b657f604f2a616e83bd09a5733e2e8..e4c50bc5ec415310c9c811f74018bfd0caf6fb33 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/VaccinationScheme.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/statistics/options/VaccinationScheme.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/Icd10CodeTestHelper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/Icd10CodeTestHelper.java index 5f540485a55354919201af6de7efab7e3a977e30..22ebab7f7703a9a98777a68ba586146eb002d454 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/Icd10CodeTestHelper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/Icd10CodeTestHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryProceduresPopulator.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryProceduresPopulator.java index ca4279461164080dbb441756798864d8c0ba67e2..09253c62da870467ef8c7171e34a7eec945734bb 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryProceduresPopulator.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryProceduresPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperController.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperController.java index a132e579c5f1fb1da6f89e707c3da5879697524c..3e4cc69b589f2b578f4592cb476a672793b823e8 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperController.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperService.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperService.java index a14aa2155206d856e55e830b79fa03a883ad0040..24311cf428ddd6895259e792c6c2ef2dbb684b77 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperService.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/testhelper/SchoolEntryTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/DurationUtil.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/DurationUtil.java index aa5cbeed4b1b82c3927d6a2d61b8f9e73422a5cf..36dac24555c1f0c2d66734a13655e275929691c1 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/DurationUtil.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/DurationUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ExceptionUtil.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ExceptionUtil.java index f9e0fb06da2fedc1e21a995679b886d4e1b5a587..58c2cf57d7a38aebafa013c0fae2c6f5e002c57d 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ExceptionUtil.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ExceptionUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,19 +9,16 @@ import de.eshg.lib.appointmentblock.LocationSelectionMode; import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.error.NotFoundException; import de.eshg.schoolentry.domain.model.SchoolEntryProcedure; -import java.util.UUID; -import java.util.function.Supplier; public final class ExceptionUtil { private ExceptionUtil() {} - public static Supplier<NotFoundException> notFoundException(Class<?> clazz, UUID id) { - return () -> - new NotFoundException("%s with UUID %s not found".formatted(clazz.getSimpleName(), id)); + public static NotFoundException notFoundException(Class<?> clazz) { + return new NotFoundException("%s with given UUID not found".formatted(clazz.getSimpleName())); } - public static Supplier<NotFoundException> procedureNotFoundException(UUID procedureId) { - return notFoundException(SchoolEntryProcedure.class, procedureId); + public static NotFoundException procedureNotFoundException() { + return notFoundException(SchoolEntryProcedure.class); } public static BadRequestException badRequestExceptionForbiddenLocationId() { diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedurePageSpec.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedurePageSpec.java index 3faec455451132fd34d4a997806dff1c7e9bad40..5d07c7ea203d98f5595ddabaf1a78b7ce18c42a9 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedurePageSpec.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedurePageSpec.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureSortKey.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureSortKey.java index a4ee1e76bbb5831d740f930bdb64a62d55e73ffb..1d9e37c237978afdedbfb040f44927ca2ee54827 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureSortKey.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureTypeAssignmentHelper.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureTypeAssignmentHelper.java index 97b87aca1454d90dfd43102b473f77545f25933d..5cbb6c4226ff29ec69cb0e0b34bb24de3013bfc5 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureTypeAssignmentHelper.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProcedureTypeAssignmentHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProgressEntryUtil.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProgressEntryUtil.java index 5e779bf0abcb45b0690e440668dca83700cc8ce6..0be59ad303257f5bf688c68abcea95a4d691b2bd 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProgressEntryUtil.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ProgressEntryUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntryKeyDocumentType.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntryKeyDocumentType.java index 6eb87f7356eaaff947917ab053de277ce87fa187..090960105395e6269b9a72992545ba5c9b6b0b51 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntryKeyDocumentType.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntryKeyDocumentType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntrySystemProgressEntryType.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntrySystemProgressEntryType.java index d359c2babd034364f802aebfe23a2307a3049a47..bc56d4ccecb3f953d3034a19a2591177d4b2bb1f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntrySystemProgressEntryType.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/SchoolEntrySystemProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/TaskUtil.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/TaskUtil.java index 246b011d903afaa509f3d7c3750a48a556ead918..f808dcb78c9b2dde88e8ac00968491fe495ec578 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/TaskUtil.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/TaskUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ValueEvaluatorUtil.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ValueEvaluatorUtil.java index 3670640420bd6619b0d5728e14b624c7333e0b94..e546cecd2e9a9059f5a484b84d8d2846bcb7c28f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ValueEvaluatorUtil.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/ValueEvaluatorUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomPageSpec.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomPageSpec.java index b81f69e249c313119b5af24de051737974b9bab2..91afbb2446749a1bb15459191435e5e7be03d706 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomPageSpec.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomPageSpec.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomSortKey.java b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomSortKey.java index 3a06bfa2cd544e79c46eff1441ecb4b25a233f4b..6e093bbbe7db390fda3b5cd0fbfedb6df70ba32f 100644 --- a/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomSortKey.java +++ b/backend/school-entry/src/main/java/de/eshg/schoolentry/util/WaitingRoomSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/school-entry/src/main/resources/migrations/0001_initial.xml b/backend/school-entry/src/main/resources/migrations/0001_initial.xml index f79847722b4da41753c4cee1d89c2951effc2c2f..c9633024de825f470c552f1334402a09c3a5b5ee 100644 --- a/backend/school-entry/src/main/resources/migrations/0001_initial.xml +++ b/backend/school-entry/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0002_add_column_readonly_label.xml b/backend/school-entry/src/main/resources/migrations/0002_add_column_readonly_label.xml index a4f4fa58aa7e2f94bd144eba4daddf10faf9a040..7890b0f7be2fa95b484692ee34b633bbe20ff80d 100644 --- a/backend/school-entry/src/main/resources/migrations/0002_add_column_readonly_label.xml +++ b/backend/school-entry/src/main/resources/migrations/0002_add_column_readonly_label.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0003_create_table_school_entry_procedure_label.xml b/backend/school-entry/src/main/resources/migrations/0003_create_table_school_entry_procedure_label.xml index b195fa47974277e46d28dc11ac5b6ba37b45519b..a90e1bb10e7a1d3bb41fbfd05637d7aa6f1291a9 100644 --- a/backend/school-entry/src/main/resources/migrations/0003_create_table_school_entry_procedure_label.xml +++ b/backend/school-entry/src/main/resources/migrations/0003_create_table_school_entry_procedure_label.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0004_remove_notNull_constraint_from_changeDescription.xml b/backend/school-entry/src/main/resources/migrations/0004_remove_notNull_constraint_from_changeDescription.xml index 36bcea53de02171ae8c66b8d687447c0b5834eac..be0a8d0931b7075a51631e08df3d8fd80535967d 100644 --- a/backend/school-entry/src/main/resources/migrations/0004_remove_notNull_constraint_from_changeDescription.xml +++ b/backend/school-entry/src/main/resources/migrations/0004_remove_notNull_constraint_from_changeDescription.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0005_add_citizen_user_id.xml b/backend/school-entry/src/main/resources/migrations/0005_add_citizen_user_id.xml index 630377f2fe434fd58b7cd8fcd32f70905f2efd9c..6358af361421dda8ef37b05ce21656a4b492ce83 100644 --- a/backend/school-entry/src/main/resources/migrations/0005_add_citizen_user_id.xml +++ b/backend/school-entry/src/main/resources/migrations/0005_add_citizen_user_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0006_add_column_invitation_sent.xml b/backend/school-entry/src/main/resources/migrations/0006_add_column_invitation_sent.xml index 4a33ccff5b61089dcabc4e66f51254ac04112835..92fc568940e46865a6deabd6ea60facf1afc42cb 100644 --- a/backend/school-entry/src/main/resources/migrations/0006_add_column_invitation_sent.xml +++ b/backend/school-entry/src/main/resources/migrations/0006_add_column_invitation_sent.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0007_add_due_at_notification_reminder.xml b/backend/school-entry/src/main/resources/migrations/0007_add_due_at_notification_reminder.xml index 9473b74d88aabaeb1790306bc2774b23efec1a3c..154d5bd777df1b64405284c6b62e02295f554f6c 100644 --- a/backend/school-entry/src/main/resources/migrations/0007_add_due_at_notification_reminder.xml +++ b/backend/school-entry/src/main/resources/migrations/0007_add_due_at_notification_reminder.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0008_rename_pdf_tables.xml b/backend/school-entry/src/main/resources/migrations/0008_rename_pdf_tables.xml index bf577e28c060ba443a3cdb39e878786ed344d7ed..9131b6d6406a2976aac59e08edecfeb8e47e49e7 100644 --- a/backend/school-entry/src/main/resources/migrations/0008_rename_pdf_tables.xml +++ b/backend/school-entry/src/main/resources/migrations/0008_rename_pdf_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0009_add_percentiles_columns.xml b/backend/school-entry/src/main/resources/migrations/0009_add_percentiles_columns.xml index a71c8efc855e5922dae024a30e681ff867d9e73f..87347041bd0e8d0b06ecf8f8230e09b25f8e94d1 100644 --- a/backend/school-entry/src/main/resources/migrations/0009_add_percentiles_columns.xml +++ b/backend/school-entry/src/main/resources/migrations/0009_add_percentiles_columns.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0010_add_isDeceased_and_deceased.xml b/backend/school-entry/src/main/resources/migrations/0010_add_isDeceased_and_deceased.xml index 0a369599a14c6ce488c680931abd8c10cda57886..e082085d64c18e733932d27ddd45ca95d4e08339 100644 --- a/backend/school-entry/src/main/resources/migrations/0010_add_isDeceased_and_deceased.xml +++ b/backend/school-entry/src/main/resources/migrations/0010_add_isDeceased_and_deceased.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0011_introduce_pgenums.xml b/backend/school-entry/src/main/resources/migrations/0011_introduce_pgenums.xml index 3a8eda009962ebeff5e24144066c5e2e72979892..54f10897e66b4120edaee346e4066d79635aa6c9 100644 --- a/backend/school-entry/src/main/resources/migrations/0011_introduce_pgenums.xml +++ b/backend/school-entry/src/main/resources/migrations/0011_introduce_pgenums.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0012_add_mailSent_fields.xml b/backend/school-entry/src/main/resources/migrations/0012_add_mailSent_fields.xml index f912b00dd85136c35431858f7d163fb35ea2dca4..4700a6d2329371adf177d1a3eb1a4c9ed5a2d225 100644 --- a/backend/school-entry/src/main/resources/migrations/0012_add_mailSent_fields.xml +++ b/backend/school-entry/src/main/resources/migrations/0012_add_mailSent_fields.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0013_create_trigram_extension.xml b/backend/school-entry/src/main/resources/migrations/0013_create_trigram_extension.xml index da7ccbe052ad4e8ce98ee83c950a3921ab3ece6f..8e52d6f423caf91410e6025f1344a73c1a4d98c4 100644 --- a/backend/school-entry/src/main/resources/migrations/0013_create_trigram_extension.xml +++ b/backend/school-entry/src/main/resources/migrations/0013_create_trigram_extension.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0014_rename_tables.xml b/backend/school-entry/src/main/resources/migrations/0014_rename_tables.xml index 2770185532fdd5c6d7653b83a8bdc5218c7839d3..24217ee29b868d3604dd099f5e1677b6419b1ea9 100644 --- a/backend/school-entry/src/main/resources/migrations/0014_rename_tables.xml +++ b/backend/school-entry/src/main/resources/migrations/0014_rename_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0015_indices_for_many_to_one_relations.xml b/backend/school-entry/src/main/resources/migrations/0015_indices_for_many_to_one_relations.xml index e27c9ba0072c1b8d3958c3c86c75198dc6837d08..f775b05b4b6aa6955db6cfc7797f5aa1dea9ed56 100644 --- a/backend/school-entry/src/main/resources/migrations/0015_indices_for_many_to_one_relations.xml +++ b/backend/school-entry/src/main/resources/migrations/0015_indices_for_many_to_one_relations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0016_inbox_procedure_add_closed_at.xml b/backend/school-entry/src/main/resources/migrations/0016_inbox_procedure_add_closed_at.xml index 9e11dea58a8ef2975825c038d5f86b343e9c96ad..bda8c733488d469c654c0833468a59c0e1b5b59c 100644 --- a/backend/school-entry/src/main/resources/migrations/0016_inbox_procedure_add_closed_at.xml +++ b/backend/school-entry/src/main/resources/migrations/0016_inbox_procedure_add_closed_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0017_add_appointment_changes_by_citizen.xml b/backend/school-entry/src/main/resources/migrations/0017_add_appointment_changes_by_citizen.xml index b24599683898e8bd62076177ffc983d81a2ed8b2..376a2754bf9c4ae1b1d3db2bc9d628326a2bc687 100644 --- a/backend/school-entry/src/main/resources/migrations/0017_add_appointment_changes_by_citizen.xml +++ b/backend/school-entry/src/main/resources/migrations/0017_add_appointment_changes_by_citizen.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0018_rename_mother_and_father.xml b/backend/school-entry/src/main/resources/migrations/0018_rename_mother_and_father.xml index 856165bca9870fe8f5dc2db4f9502cfab0dfed02..c8ca8f098224bb920648920f6972dd688d30dd36 100644 --- a/backend/school-entry/src/main/resources/migrations/0018_rename_mother_and_father.xml +++ b/backend/school-entry/src/main/resources/migrations/0018_rename_mother_and_father.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0019_rename_meningococcus.xml b/backend/school-entry/src/main/resources/migrations/0019_rename_meningococcus.xml index 9fcd61e62a03fea274a798855435a0a2c48eb893..16b6ad7f666112f444c060b2f588380cca9c0f13 100644 --- a/backend/school-entry/src/main/resources/migrations/0019_rename_meningococcus.xml +++ b/backend/school-entry/src/main/resources/migrations/0019_rename_meningococcus.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0020_modify_types.xml b/backend/school-entry/src/main/resources/migrations/0020_modify_types.xml index e2fca26b59f4e518c3e1dc9ae8d79abba63e7438..d2d1ba3da0da98b38e8bdc586a06620c5d2bf11e 100644 --- a/backend/school-entry/src/main/resources/migrations/0020_modify_types.xml +++ b/backend/school-entry/src/main/resources/migrations/0020_modify_types.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0021_remove_allCheckUps_chickenPox_careChild.xml b/backend/school-entry/src/main/resources/migrations/0021_remove_allCheckUps_chickenPox_careChild.xml index ee5de529b546a654618dd4953fcaa06677c360ed..7988ff039cda78098930c1280dd2f3bb24d6ac76 100644 --- a/backend/school-entry/src/main/resources/migrations/0021_remove_allCheckUps_chickenPox_careChild.xml +++ b/backend/school-entry/src/main/resources/migrations/0021_remove_allCheckUps_chickenPox_careChild.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0022_change_vaccinationStatus_values.xml b/backend/school-entry/src/main/resources/migrations/0022_change_vaccinationStatus_values.xml index b8a18dd008e848c81592a6c7aeb011a2c219c805..ff3be052926fdd5419219820e63251db4402e508 100644 --- a/backend/school-entry/src/main/resources/migrations/0022_change_vaccinationStatus_values.xml +++ b/backend/school-entry/src/main/resources/migrations/0022_change_vaccinationStatus_values.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0023_add_deletable_boolean_to_files.xml b/backend/school-entry/src/main/resources/migrations/0023_add_deletable_boolean_to_files.xml index cc7b60061a1ec497bb359e0bc2011fa70cf376d6..88bacdc420696d37a65f337a209605cd8f8b5e9d 100644 --- a/backend/school-entry/src/main/resources/migrations/0023_add_deletable_boolean_to_files.xml +++ b/backend/school-entry/src/main/resources/migrations/0023_add_deletable_boolean_to_files.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0024_remove_procedure_result.xml b/backend/school-entry/src/main/resources/migrations/0024_remove_procedure_result.xml index 66f4c4b53a3af2fdb39a0fdb2ac4669b29cb27e9..75834fb43aee33260f4b6a8c6787ea43642e86dc 100644 --- a/backend/school-entry/src/main/resources/migrations/0024_remove_procedure_result.xml +++ b/backend/school-entry/src/main/resources/migrations/0024_remove_procedure_result.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0025_remove_procedure_type_2.xml b/backend/school-entry/src/main/resources/migrations/0025_remove_procedure_type_2.xml index c567081bb955bdf3164dba900ca45094f26291f5..a81bf0bb33e6a0375050b13592d835e2ebab5b59 100644 --- a/backend/school-entry/src/main/resources/migrations/0025_remove_procedure_type_2.xml +++ b/backend/school-entry/src/main/resources/migrations/0025_remove_procedure_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0026_remove_task_type_2.xml b/backend/school-entry/src/main/resources/migrations/0026_remove_task_type_2.xml index c294b935dffc87b01c3b0ae7de33f633508baecb..dadbc6e22a36b52ccf1c71ddc6a52883a731f5fc 100644 --- a/backend/school-entry/src/main/resources/migrations/0026_remove_task_type_2.xml +++ b/backend/school-entry/src/main/resources/migrations/0026_remove_task_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0027_update_trigger_type.xml b/backend/school-entry/src/main/resources/migrations/0027_update_trigger_type.xml index 1a5c68bf45a40bea1e1accb87bfae485307bed07..de251743de6a2a7105ee00a61550ce9465c57ffa 100644 --- a/backend/school-entry/src/main/resources/migrations/0027_update_trigger_type.xml +++ b/backend/school-entry/src/main/resources/migrations/0027_update_trigger_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0028_new_anamnesis_fields.xml b/backend/school-entry/src/main/resources/migrations/0028_new_anamnesis_fields.xml index 83dff99a07a56af612a62601e16e22681777cf62..2caead97127453a4b0fae8ea0937e91248980d32 100644 --- a/backend/school-entry/src/main/resources/migrations/0028_new_anamnesis_fields.xml +++ b/backend/school-entry/src/main/resources/migrations/0028_new_anamnesis_fields.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0029_add_sti_protection_procedure_lib_enum_values.xml b/backend/school-entry/src/main/resources/migrations/0029_add_sti_protection_procedure_lib_enum_values.xml index 498749b3f170a5d126f63b94c7f17e6ccaf5d8ca..27a816fd5175a7643009c02604c0fe36d115a8f8 100644 --- a/backend/school-entry/src/main/resources/migrations/0029_add_sti_protection_procedure_lib_enum_values.xml +++ b/backend/school-entry/src/main/resources/migrations/0029_add_sti_protection_procedure_lib_enum_values.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0030_school_year.xml b/backend/school-entry/src/main/resources/migrations/0030_school_year.xml index 9ddb16a05f7ca2e45897da63fc698d7634f6f904..c9c3df3f195dc158a2af35fefa08a4fa42f21bf3 100644 --- a/backend/school-entry/src/main/resources/migrations/0030_school_year.xml +++ b/backend/school-entry/src/main/resources/migrations/0030_school_year.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0031_central_file_state_id_unique_index.xml b/backend/school-entry/src/main/resources/migrations/0031_central_file_state_id_unique_index.xml index 86b6d3978945bf8e44a7b0544ae6788f8ed81f7c..bcee49fd47999c77411b75d72b143e7511f7ef46 100644 --- a/backend/school-entry/src/main/resources/migrations/0031_central_file_state_id_unique_index.xml +++ b/backend/school-entry/src/main/resources/migrations/0031_central_file_state_id_unique_index.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0032_add_cemetery.xml b/backend/school-entry/src/main/resources/migrations/0032_add_cemetery.xml index 62743e21273209f4518f4651761e0076920e4c21..ceb43c4ff1ab6df44a77460a2bd9e4cd04e3107d 100644 --- a/backend/school-entry/src/main/resources/migrations/0032_add_cemetery.xml +++ b/backend/school-entry/src/main/resources/migrations/0032_add_cemetery.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0033_remove_progress_entry_deleted.xml b/backend/school-entry/src/main/resources/migrations/0033_remove_progress_entry_deleted.xml index 527689275abe05e7fad8266cff531d59ebae393e..39c1edb1c18a7f31a502bb6abe1f5258dcb2fea0 100644 --- a/backend/school-entry/src/main/resources/migrations/0033_remove_progress_entry_deleted.xml +++ b/backend/school-entry/src/main/resources/migrations/0033_remove_progress_entry_deleted.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0034_appointment_block_location.xml b/backend/school-entry/src/main/resources/migrations/0034_appointment_block_location.xml index 19b32e76369ef621ed74be90241e88d49b90db83..b0dc9e82ddc5c21d3274192cd33ba7bf6778cdf4 100644 --- a/backend/school-entry/src/main/resources/migrations/0034_appointment_block_location.xml +++ b/backend/school-entry/src/main/resources/migrations/0034_appointment_block_location.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0035_add_procedure_location.xml b/backend/school-entry/src/main/resources/migrations/0035_add_procedure_location.xml index e4f46d45b6ff1c6e4c6bb7cc2b04973cabba2fb8..031293a45a4028ed9339ed9caffc958564425caa 100644 --- a/backend/school-entry/src/main/resources/migrations/0035_add_procedure_location.xml +++ b/backend/school-entry/src/main/resources/migrations/0035_add_procedure_location.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0036_waiting_room.xml b/backend/school-entry/src/main/resources/migrations/0036_waiting_room.xml index bce3ec01c2e8699e5c1020067f8849293ceaedba..f0cdd81e0c0ce54b4fdfb0b68ce0f633bf198cc6 100644 --- a/backend/school-entry/src/main/resources/migrations/0036_waiting_room.xml +++ b/backend/school-entry/src/main/resources/migrations/0036_waiting_room.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0037_add_procedure_exported_at.xml b/backend/school-entry/src/main/resources/migrations/0037_add_procedure_exported_at.xml index d27236024c4ada7a4bc9bb2beba7c954982de5d9..c7700a5fa4afc313f2f8069e4b3bc053fcf1185f 100644 --- a/backend/school-entry/src/main/resources/migrations/0037_add_procedure_exported_at.xml +++ b/backend/school-entry/src/main/resources/migrations/0037_add_procedure_exported_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0038_waiting_room_for_existing_procedures.xml b/backend/school-entry/src/main/resources/migrations/0038_waiting_room_for_existing_procedures.xml index 55875119858c98968917d0060fbbebc5edc15953..b280f6d0eef1c7fdf4ea4b232eded47cccd2fa0a 100644 --- a/backend/school-entry/src/main/resources/migrations/0038_waiting_room_for_existing_procedures.xml +++ b/backend/school-entry/src/main/resources/migrations/0038_waiting_room_for_existing_procedures.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0039_add_consultant_to_appointment_blocks.xml b/backend/school-entry/src/main/resources/migrations/0039_add_consultant_to_appointment_blocks.xml index 490b504149ee86c584cdd0552a6ff68ef16560df..128198a3fe09a491c17d36408344488597c23a93 100644 --- a/backend/school-entry/src/main/resources/migrations/0039_add_consultant_to_appointment_blocks.xml +++ b/backend/school-entry/src/main/resources/migrations/0039_add_consultant_to_appointment_blocks.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0040_procedure_sequences.xml b/backend/school-entry/src/main/resources/migrations/0040_procedure_sequences.xml index 941521070def711137a88e88ce691fa818b24b0e..75faf905954d552919b449566efac757ebfce0ff 100644 --- a/backend/school-entry/src/main/resources/migrations/0040_procedure_sequences.xml +++ b/backend/school-entry/src/main/resources/migrations/0040_procedure_sequences.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0041_add_modified_at_waiting_room.xml b/backend/school-entry/src/main/resources/migrations/0041_add_modified_at_waiting_room.xml index 42f895b0f78b03b3fbb6e72ded7509c6496c8388..dce58a071f9e9dc59dc9afc8ed7e72194d093835 100644 --- a/backend/school-entry/src/main/resources/migrations/0041_add_modified_at_waiting_room.xml +++ b/backend/school-entry/src/main/resources/migrations/0041_add_modified_at_waiting_room.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0042_boolean_with_unknown.xml b/backend/school-entry/src/main/resources/migrations/0042_boolean_with_unknown.xml index 4f0b9110dbf328f163a8b8795b21a5b7be5643d3..90972529c058a7b77f4b67003f12867c291d8b39 100644 --- a/backend/school-entry/src/main/resources/migrations/0042_boolean_with_unknown.xml +++ b/backend/school-entry/src/main/resources/migrations/0042_boolean_with_unknown.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0043_add_school_info_letter_time_stamp.xml b/backend/school-entry/src/main/resources/migrations/0043_add_school_info_letter_time_stamp.xml index f37c13ff6ae32b669349d6a72e5679f9cb1be30e..aa9b0733ee1a7e433d9ac9957cf72e77ea2e5444 100644 --- a/backend/school-entry/src/main/resources/migrations/0043_add_school_info_letter_time_stamp.xml +++ b/backend/school-entry/src/main/resources/migrations/0043_add_school_info_letter_time_stamp.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0044_add_columns_measles_contra_indication.xml b/backend/school-entry/src/main/resources/migrations/0044_add_columns_measles_contra_indication.xml index 1608900055fd598e75ab680cbde5632426371c62..3fcceb4046f7246dcba2c77413ed73428391ef71 100644 --- a/backend/school-entry/src/main/resources/migrations/0044_add_columns_measles_contra_indication.xml +++ b/backend/school-entry/src/main/resources/migrations/0044_add_columns_measles_contra_indication.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0045_add_examination_date.xml b/backend/school-entry/src/main/resources/migrations/0045_add_examination_date.xml index 56c9d32204494a010b1f5b49e85a05af4049c670..6ccb2908462a0e9fb7f7e409b92deb0096cafb40 100644 --- a/backend/school-entry/src/main/resources/migrations/0045_add_examination_date.xml +++ b/backend/school-entry/src/main/resources/migrations/0045_add_examination_date.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0046_add_general_country_options.xml b/backend/school-entry/src/main/resources/migrations/0046_add_general_country_options.xml index 33326b19ce68a7af9cc8c2b48cd67714f0864acd..e78ce70f1a60436aaa6d2c0486053ee257ae35bf 100644 --- a/backend/school-entry/src/main/resources/migrations/0046_add_general_country_options.xml +++ b/backend/school-entry/src/main/resources/migrations/0046_add_general_country_options.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0047_introduce_procedure_file_type.xml b/backend/school-entry/src/main/resources/migrations/0047_introduce_procedure_file_type.xml index 33e3f6e4d742a512865455371cd5d3db993839cb..508b6007b77cc9f7df19f4ff2bfef63bfbd76204 100644 --- a/backend/school-entry/src/main/resources/migrations/0047_introduce_procedure_file_type.xml +++ b/backend/school-entry/src/main/resources/migrations/0047_introduce_procedure_file_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0048_add_medical_registry_procedure_types.xml b/backend/school-entry/src/main/resources/migrations/0048_add_medical_registry_procedure_types.xml index 21b419fae25d7dc24f7b51eda6325688211b2b1a..f3564c33df47a27379b995555c627d46bbadc90f 100644 --- a/backend/school-entry/src/main/resources/migrations/0048_add_medical_registry_procedure_types.xml +++ b/backend/school-entry/src/main/resources/migrations/0048_add_medical_registry_procedure_types.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0049_remove_key_document_type_enum.xml b/backend/school-entry/src/main/resources/migrations/0049_remove_key_document_type_enum.xml index 9c8360be7cc7efa4de7e20d752461bc68d6acb6d..16dfcfcd1825c953fab9fbc0f95a67c2707b83ec 100644 --- a/backend/school-entry/src/main/resources/migrations/0049_remove_key_document_type_enum.xml +++ b/backend/school-entry/src/main/resources/migrations/0049_remove_key_document_type_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0050_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml b/backend/school-entry/src/main/resources/migrations/0050_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml index 96375e47f8db1d7bfb615060bb3ffe38809e105e..0b495386302328bee469b00fef5aaf9ba6b7741d 100644 --- a/backend/school-entry/src/main/resources/migrations/0050_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml +++ b/backend/school-entry/src/main/resources/migrations/0050_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0051_add_system_progress_entry_keydocument.xml b/backend/school-entry/src/main/resources/migrations/0051_add_system_progress_entry_keydocument.xml index 2ef4593b8cc84a692bf38a8c8d741a0af8224b3d..30799d700f6432f3f4778e733e0ed08e89f866e9 100644 --- a/backend/school-entry/src/main/resources/migrations/0051_add_system_progress_entry_keydocument.xml +++ b/backend/school-entry/src/main/resources/migrations/0051_add_system_progress_entry_keydocument.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0052_cemetery_sequence.xml b/backend/school-entry/src/main/resources/migrations/0052_cemetery_sequence.xml index 1b1ac8a9f7841c1b969399b3ea3a2152de988545..36c73b1535f2d137edd009560dd6f537443b42c6 100644 --- a/backend/school-entry/src/main/resources/migrations/0052_cemetery_sequence.xml +++ b/backend/school-entry/src/main/resources/migrations/0052_cemetery_sequence.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0053_add_was_in_daycare_flag.xml b/backend/school-entry/src/main/resources/migrations/0053_add_was_in_daycare_flag.xml index afab6bee35207e638c8410c23f086667e7dae0da..711a24aa5d3c8dacf2425a35283a6e50846274d3 100644 --- a/backend/school-entry/src/main/resources/migrations/0053_add_was_in_daycare_flag.xml +++ b/backend/school-entry/src/main/resources/migrations/0053_add_was_in_daycare_flag.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0054_move_subject_and_message_text_to_mail_metadata.xml b/backend/school-entry/src/main/resources/migrations/0054_move_subject_and_message_text_to_mail_metadata.xml index 609846864d70853f0ad803232dc97d5ff9a9ad21..18aab2df5ffb8b18fd3357efdaac519c7f1f67fa 100644 --- a/backend/school-entry/src/main/resources/migrations/0054_move_subject_and_message_text_to_mail_metadata.xml +++ b/backend/school-entry/src/main/resources/migrations/0054_move_subject_and_message_text_to_mail_metadata.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0055_add_gdpr_validation_task.xml b/backend/school-entry/src/main/resources/migrations/0055_add_gdpr_validation_task.xml index fc254c7a0cef19d9122400cacc88b542d426fc90..31212fd52882108afe16d4c39a9c9610504dfde4 100644 --- a/backend/school-entry/src/main/resources/migrations/0055_add_gdpr_validation_task.xml +++ b/backend/school-entry/src/main/resources/migrations/0055_add_gdpr_validation_task.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0056_compute_key_document_versions.xml b/backend/school-entry/src/main/resources/migrations/0056_compute_key_document_versions.xml index ac188657a26c72294f3f4245698e0b7efa464899..2a8e7b3071fa6963b89e947f28761a0dd5e1f965 100644 --- a/backend/school-entry/src/main/resources/migrations/0056_compute_key_document_versions.xml +++ b/backend/school-entry/src/main/resources/migrations/0056_compute_key_document_versions.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0057_add_started_at.xml b/backend/school-entry/src/main/resources/migrations/0057_add_started_at.xml index 0f98e184b53908a01e63db5f92e631d4fd4592b1..59cb9daf4eac2c0771081989353c32cc1d9e71c0 100644 --- a/backend/school-entry/src/main/resources/migrations/0057_add_started_at.xml +++ b/backend/school-entry/src/main/resources/migrations/0057_add_started_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0058_drop_not_null_constraints.xml b/backend/school-entry/src/main/resources/migrations/0058_drop_not_null_constraints.xml index b92fba35ff4d66ae69d156bd3e46749c5d62b5fb..4f2a1cc940601660bd27dc22186a19eb031cdcb9 100644 --- a/backend/school-entry/src/main/resources/migrations/0058_drop_not_null_constraints.xml +++ b/backend/school-entry/src/main/resources/migrations/0058_drop_not_null_constraints.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0059_rename_gdpr_validation_task_procedure_id.xml b/backend/school-entry/src/main/resources/migrations/0059_rename_gdpr_validation_task_procedure_id.xml index 040274eb82c783e118781ac8e754679df317f107..5afddf78e56eb23c9463cdaced0c7e0b3a5abd5c 100644 --- a/backend/school-entry/src/main/resources/migrations/0059_rename_gdpr_validation_task_procedure_id.xml +++ b/backend/school-entry/src/main/resources/migrations/0059_rename_gdpr_validation_task_procedure_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0060_add_download_package_table.xml b/backend/school-entry/src/main/resources/migrations/0060_add_download_package_table.xml index 8560d84aae548c983f547b6c851d84e42216b0f7..086f58c7652d882ac8850835a0b95d795930ca05 100644 --- a/backend/school-entry/src/main/resources/migrations/0060_add_download_package_table.xml +++ b/backend/school-entry/src/main/resources/migrations/0060_add_download_package_table.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0061_add_dental_as_procedure_type.xml b/backend/school-entry/src/main/resources/migrations/0061_add_dental_as_procedure_type.xml index 201ab3f220c53292400c6945a5dd186737ff4599..9e66f1fa5a7e3fadc58fe0075fae6d92bc49ea35 100644 --- a/backend/school-entry/src/main/resources/migrations/0061_add_dental_as_procedure_type.xml +++ b/backend/school-entry/src/main/resources/migrations/0061_add_dental_as_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0062_add_official_medical_service_procedure_type.xml b/backend/school-entry/src/main/resources/migrations/0062_add_official_medical_service_procedure_type.xml index b908920b9582ea2a8cf362bf7c1ecdfda2dedf7c..213d4f5a953cc932b6dd00ddded89cae2a9bfbaa 100644 --- a/backend/school-entry/src/main/resources/migrations/0062_add_official_medical_service_procedure_type.xml +++ b/backend/school-entry/src/main/resources/migrations/0062_add_official_medical_service_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0063_add_mail_to_simple_notification.xml b/backend/school-entry/src/main/resources/migrations/0063_add_mail_to_simple_notification.xml index 8c70cece5e24fba73ab109963bc9e7362fbdb8b5..1ab5c3b8e63945060ed7d9f1ac7bdbd0c783a4b2 100644 --- a/backend/school-entry/src/main/resources/migrations/0063_add_mail_to_simple_notification.xml +++ b/backend/school-entry/src/main/resources/migrations/0063_add_mail_to_simple_notification.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/school-entry/src/main/resources/migrations/0064_invert_inbox_procedure_relationships.xml b/backend/school-entry/src/main/resources/migrations/0064_invert_inbox_procedure_relationships.xml new file mode 100644 index 0000000000000000000000000000000000000000..b477ebeeca47e0bf2add3bba8e686b2b119f5646 --- /dev/null +++ b/backend/school-entry/src/main/resources/migrations/0064_invert_inbox_procedure_relationships.xml @@ -0,0 +1,72 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733835693519-1"> + <addColumn tableName="inbox_procedure"> + <column name="contact_details_id" type="BIGINT"/> + </addColumn> + <sql> + UPDATE inbox_procedure + SET contact_details_id=contact_details.id FROM contact_details + WHERE contact_details.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="contact_details_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="contact_details_id" + constraintName="inbox_procedure_contact_details_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_contact_details" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" referencedTableName="contact_details" + validate="true"/> + + <dropForeignKeyConstraint baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure"/> + <dropUniqueConstraint + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + <dropColumn columnName="inbox_procedure_id" tableName="contact_details"/> + </changeSet> + <changeSet author="GA-Lotse" id="1733835693519-2"> + <addColumn tableName="inbox_procedure"> + <column name="inbox_progress_entry_id" type="BIGINT"/> + </addColumn> + + <sql> + UPDATE inbox_procedure + SET inbox_progress_entry_id=inbox_progress_entry.id FROM inbox_progress_entry + WHERE inbox_progress_entry.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="inbox_progress_entry_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="inbox_progress_entry_id" + constraintName="inbox_procedure_inbox_progress_entry_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="inbox_progress_entry_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_inbox_progress_entry" + deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="inbox_progress_entry" validate="true"/> + + <dropForeignKeyConstraint baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure"/> + <dropUniqueConstraint + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + <dropColumn columnName="inbox_procedure_id" + tableName="inbox_progress_entry"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/school-entry/src/main/resources/migrations/0065_add_official_medical_service_appointment_type.xml b/backend/school-entry/src/main/resources/migrations/0065_add_official_medical_service_appointment_type.xml new file mode 100644 index 0000000000000000000000000000000000000000..1bf0e41573d563df1eb5b2f0ab50c2add3c1f6c3 --- /dev/null +++ b/backend/school-entry/src/main/resources/migrations/0065_add_official_medical_service_appointment_type.xml @@ -0,0 +1,11 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733919884097-1"> + <ext:addPostgresEnumValues enumTypeName="appointmenttype" valuesToAdd="OFFICIAL_MEDICAL_SERVICE"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/school-entry/src/main/resources/migrations/changelog.xml b/backend/school-entry/src/main/resources/migrations/changelog.xml index 1fab9f857d8b049e8ff4bb82ea93ddd0dfbb9484..2e19f6778e2c2338cf06d91e50276b1b1d0e93c0 100644 --- a/backend/school-entry/src/main/resources/migrations/changelog.xml +++ b/backend/school-entry/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> @@ -77,5 +77,7 @@ <include file="migrations/0062_add_official_medical_service_procedure_type.xml"/> <include file="migrations/0063_add_mail_to_simple_notification.xml"/> + <include file="migrations/0064_invert_inbox_procedure_relationships.xml"/> + <include file="migrations/0065_add_official_medical_service_appointment_type.xml"/> </databaseChangeLog> diff --git a/backend/service-commons/src/main/resources/logback-spring.xml b/backend/service-commons/src/main/resources/logback-spring.xml index 31893156440a41e7104ea125296477bbcd83b2de..2e21913c2b9d593f8a058703dbe659b706307e7a 100644 --- a/backend/service-commons/src/main/resources/logback-spring.xml +++ b/backend/service-commons/src/main/resources/logback-spring.xml @@ -1,5 +1,5 @@ <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/data/postgres/docker-compose.yml b/backend/service-directory/data/postgres/docker-compose.yml index 8b1ab8ce205ab21e509edede71c592c8a5227150..b5c2483e39afda8c8bb8d5511c5d571f0aafd889 100644 --- a/backend/service-directory/data/postgres/docker-compose.yml +++ b/backend/service-directory/data/postgres/docker-compose.yml @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: Apache-2.0 services: diff --git a/backend/service-directory/openApi.yaml b/backend/service-directory/openApi.yaml index 54b8c6e1a410144d997273136f82e49aa3f70c6c..82e08a2514475b6ea84adc3aade6ec5dc6e2cff3 100644 --- a/backend/service-directory/openApi.yaml +++ b/backend/service-directory/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: Apache-2.0 openapi: 3.0.1 diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminController.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminController.java index 9b653f7e15c6acccf642d44e63f04d02e93407c6..abb39a774dacb28497cdcd4ea3003d43d507cc7b 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminController.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminService.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminService.java index 1312bf11e17f0aaf6a2719a2634bdeedb7594bc2..737cbb31cd9ec8e1e1ae9d1ac3798136121fbf3e 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminService.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryAdminService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryApplication.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryApplication.java index ccd78264fda13d3678ada37e61e15d0cfc347a19..6096bf4e355754a148225bd6ebe3c7df0d86ba83 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryApplication.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryCommitService.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryCommitService.java index 2bce4dc88f75aae6ebb0f882a6a1bc38c2024d69..b524c6f8c9dd2721c7696525187ac63ba89bf640 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryCommitService.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryCommitService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryController.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryController.java index 2121d198a36565cfaed0dc0933a733ade5a5331f..b8055ccb91eafc8a48f8ab5e9e1466774e777642 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryController.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryReadService.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryReadService.java index 2bd34b57cc792a1acbf87968785b246f5b30bf55..cf4a49569adcba6b904a4bc7b3f9553b077f5a43 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryReadService.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryReadService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryService.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryService.java index 7318f9f2ab96dd4a1aa2e5fdd6b1260739e506ce..44c39fd748db60eb4b6b3cbf7ece7eb05110e2ac 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryService.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/ServiceDirectoryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/advice/ActorControllerAdvice.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/advice/ActorControllerAdvice.java index d952f2c57acad8e3dcb06cb015374e23e4055154..f740d8ccbc19571610c3b6a4da5b543a1f2d8531 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/advice/ActorControllerAdvice.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/advice/ActorControllerAdvice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotActiveException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotActiveException.java index afe0bd920de5856671e07f1b45dd47ba449b6e19..d351233c8768a7bb0959ebf591d67999257889f3 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotActiveException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotActiveException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotFoundException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotFoundException.java index b539cef10d5d7ae01e53c5415765c760685f169f..9d53b89091b1437828de6aa1e306f448ddcf46ec 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotFoundException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/exception/ActorNotFoundException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperAdminApi.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperAdminApi.java index 93fa54b706e88dc91e1b2aacbe7b9d4a2d6af169..001e1befd82e2f7567d4bf7ccc406233aaaa95da 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperAdminApi.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperAdminApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperApi.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperApi.java index 3acd23b0eee02fd02d7584a19351cee9656f99df..722ff433ac72ae0123899d960df3418bde56dfb3 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperApi.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/mapper/ActorMapperApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/Actor.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/Actor.java index b755f25620149852ceef42b529f9b2d96fa6aff4..7ce65f6ce2fd465724f41a9aa69159afcf5f515c 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/Actor.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/Actor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorMetadata.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorMetadata.java index 4a20ae32f8946cab7f068f14c89b758e1c70e972..4d264bc11eee29aa7442f05e94dad8943c6a153d 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorMetadata.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorType.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorType.java index fe79954208425adb1a00d8a7cddced882b7a0d6e..63dc6fc3305ce29ec2f8a7d446bfcb8f0d6ff357 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorType.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/ActorType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/AuditedActor.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/AuditedActor.java index aab93d5de8adb06253b4ac2b6621481749328db4..d9e8042d5c267519afb5f328a56cee44f096c245 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/AuditedActor.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/AuditedActor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/StagedActor.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/StagedActor.java index de8f8b200938f016c5c50d92f271f1585beb1055..84d7659f538d5ef447928ee8c07a088c1d91152b 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/StagedActor.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/entity/StagedActor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/ActorMetadataRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/ActorMetadataRepository.java index a4e87fa73f306d3677e02d264be4aa7cbcd45233..8376434edd45cb07e9e270359d26dbd11f0b974d 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/ActorMetadataRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/ActorMetadataRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/AuditedActorRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/AuditedActorRepository.java index 62f002e32cf3c507e18401483d798ac7e539b09c..4817c75afaf1eada921feec424fb4ef1c72afb78 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/AuditedActorRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/AuditedActorRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/StagedActorRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/StagedActorRepository.java index 658bd36b0227ab5a7a4721126059e44b3367da9b..05d0a4fa4226e99f273335c3a5fe52ec3ca04a6d 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/StagedActorRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/actor/persistence/repository/StagedActorRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/AuditService.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/AuditService.java index 3c03cf36eaf06560730a9ebd7c554528fb4c4a36..90640a5c9929d50ba54503de5a7b235f57e6fce5 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/AuditService.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/AuditService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/EmptyAuditorProvider.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/EmptyAuditorProvider.java index 9eb0a137791dfbbef5507156f8050446c6e4f442..e96ba581e98d82d024e7255cd2262b2f73d3cf74 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/EmptyAuditorProvider.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/EmptyAuditorProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/RevisionAccumulator.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/RevisionAccumulator.java index de429885449cc6146a2b1e28665efcd71276c389..72bde7f84ab6d0a4deb2d91196fd7b69a9df7929 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/RevisionAccumulator.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/audit/RevisionAccumulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/AdminNameHolder.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/AdminNameHolder.java index 1b2b3c358c44b7d42dc0a45d7f40fd19fee3d19e..0e7379c5f052e718c2889fd7270f333014d10218 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/AdminNameHolder.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/AdminNameHolder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/CallingClientHelper.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/CallingClientHelper.java index e1efa33608ae93c8d63a385d18715a17c3bde6c2..eec38e9478ac996c1621620bac99667a32d4a818 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/CallingClientHelper.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/CallingClientHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/Utils.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/Utils.java index cf6ddc9f8938f3beb2cc8b4eaa536028d41d4639..8e6ca6f336b7817d9ca3c0529f175786329a408f 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/Utils.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/Utils.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/advice/ServiceDirectoryControllerAdvice.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/advice/ServiceDirectoryControllerAdvice.java index 616d9486441c7711398823038ac2c62d677845ca..9e2ae07938af8ba27025ed5202fedb261b1fd1c0 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/advice/ServiceDirectoryControllerAdvice.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/advice/ServiceDirectoryControllerAdvice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ChangesNotFoundException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ChangesNotFoundException.java index cb5ec2212f6f1c16a385b7f3d0bdeb35db90dd38..ae00f49b9714360743d321722c6012475e1539fd 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ChangesNotFoundException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ChangesNotFoundException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/CommitForbiddenException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/CommitForbiddenException.java index a016cb3af2309ced2569f46426e05ada75f8de78..4943c639ba8bd5385f80f672daa14386e8ecbb4f 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/CommitForbiddenException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/CommitForbiddenException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ConflictingChangesException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ConflictingChangesException.java index 8fe4107824004d3d3ac77f98c92e13efdd9def6b..0f5feaf42143b9e5e0dbbce58d5b515f11eefc52 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ConflictingChangesException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ConflictingChangesException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/DryRunSucceededException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/DryRunSucceededException.java index 4c6ec14a4359f7e94225fc3665b50dc365d5fac2..6bdf28f635c99967067d794a1ae9d0090435920f 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/DryRunSucceededException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/DryRunSucceededException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryBadRequestException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryBadRequestException.java index 9bbb30d82893316529163c70866882ef0b8bfe00..ae070ead8fd42591330dca5bcc2cf68b0c9839f4 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryBadRequestException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryBadRequestException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryForbiddenException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryForbiddenException.java index c6b7f951968d00a2b7966d3595f8b1c3e350777f..02fa19801245d450834cabe6201505392dcde207 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryForbiddenException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/common/exception/ServiceDirectoryForbiddenException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/ServiceDirectorySecurityConfig.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/ServiceDirectorySecurityConfig.java index c81e0630c828055e9b2fb22da595f3bc58387e47..9134fbde5a9eda7f4a20df72e27f4b1fc6ae2e96 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/ServiceDirectorySecurityConfig.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/ServiceDirectorySecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/WebMvcConfig.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/WebMvcConfig.java index 1bf51dc043d463beff8d8e2c5bb6bc8f3c42c0d5..07bdf92ea50bee76f20f8b8eea7f62add95da035 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/WebMvcConfig.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/WebMvcConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/CommitAuthorHolder.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/CommitAuthorHolder.java index e59e3e7663ee48ce9f8f0181b89dfdb2b244fee5..773f392e46f79daadfcc602b0b267925544d905a 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/CommitAuthorHolder.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/CommitAuthorHolder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionEntity.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionEntity.java index 457215c81c8956207a1015e70d6238e544964380..d94a28c0c1e01a4c6c1abe7c3f6b61d85c68400e 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionEntity.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionListenerImpl.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionListenerImpl.java index 4b022817be5b5977d626e9b7203cb6804db78ee0..16f4c46d6a2e30d9de46733ed975b893204618ec 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionListenerImpl.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/config/envers/RevisionListenerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/advice/OrgUnitControllerAdvice.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/advice/OrgUnitControllerAdvice.java index 40440fe5abdb48c193835870d9ffbb1315c5162d..7d4ab08f15f472afb7937236555000a464da1b1a 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/advice/OrgUnitControllerAdvice.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/advice/OrgUnitControllerAdvice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/exception/OrgUnitNotFoundException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/exception/OrgUnitNotFoundException.java index 6d4efdd6f5cff55915b423fe4b6c5f3e82eed6d4..6f7743937d92713a3a78e99e77fb61afb35723c8 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/exception/OrgUnitNotFoundException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/exception/OrgUnitNotFoundException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/mapper/OrgUnitMapper.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/mapper/OrgUnitMapper.java index 1b707b2732a47f79e71b384ab04baf7165c9e05c..036c88c1bae6c75a0d6704b9de2d0552067b737e 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/mapper/OrgUnitMapper.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/mapper/OrgUnitMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/AuditedOrgUnit.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/AuditedOrgUnit.java index 735ee58c47e9c970badc9b4acacf2f331ba1bbda..467e28c816e5957918df85e86472e656c3130284 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/AuditedOrgUnit.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/AuditedOrgUnit.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnit.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnit.java index 3af4cf4f01247874f311767e0f72da30b9f96098..62b7fdbad996ee5c48d280ad5ba76c233196216c 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnit.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnit.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnitType.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnitType.java index 8549b68a5326287ff09504a994a60246b950c37d..df3836ffc45cf8d3d73107e6fef13610663fd673 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnitType.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/OrgUnitType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/StagedOrgUnit.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/StagedOrgUnit.java index 8a1cf902684f1381f9c149ed5f2c34a4ce6a610b..5d18f62bcaaa92adf3ef0cd77b276ca4417f4d39 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/StagedOrgUnit.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/entity/StagedOrgUnit.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/AuditedOrgUnitRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/AuditedOrgUnitRepository.java index f3f793e4a04b9491d271e964b65dafab15e58bf6..a3bae3de0c78531e86d05f1e61bad05198da3ee6 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/AuditedOrgUnitRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/AuditedOrgUnitRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/StagedOrgUnitRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/StagedOrgUnitRepository.java index b1f2577c709c79d24f33325dd29041917a600e40..b9a802e65bc1ab57a77b27d381d37618d0037f28 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/StagedOrgUnitRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/orgunit/persistence/repository/StagedOrgUnitRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/exception/RuleNotFoundException.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/exception/RuleNotFoundException.java index f43c84295b7cd200b5b61c8f7d48670dde25eff4..7375f3614993425dc7e20ebccbc84f5a748b54bc 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/exception/RuleNotFoundException.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/exception/RuleNotFoundException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/mapper/RuleMapper.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/mapper/RuleMapper.java index 80b5c7ba24a7df3ebf4bdfa909a61f44e9c958a2..68f670112cd65fdcd64f128dae94d10e306b87e9 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/mapper/RuleMapper.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/mapper/RuleMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/ActorSelector.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/ActorSelector.java index 7434cc247f1a636dff17bfc958c7d5fb7e2ca0c8..91ac53ba9ce11ee05a8fd44cc20f9e07ed2e416e 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/ActorSelector.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/ActorSelector.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/AuditedRule.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/AuditedRule.java index 2d7215b52e0e2b8333b17c523e1e409297fb3c5c..7f2550f0683ee7082133951197da1da8389a6286 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/AuditedRule.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/AuditedRule.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/Rule.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/Rule.java index 9034d18b3952a25019f0421092079568bac26183..a7f380871c0ac300a58335e6d477b1581d1bba98 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/Rule.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/Rule.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/StagedRule.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/StagedRule.java index 1993e7644d4495bd41312a31f96d0d212443f6f7..84381c18b3dc85d4cdc32125b9b600d9fee35257 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/StagedRule.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/entity/StagedRule.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/AuditedRuleRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/AuditedRuleRepository.java index 6c481006dbd122fdbd1136bd1db36f2d41a2997b..8684d024b35b0d6a851a7810ac32f39d272f041e 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/AuditedRuleRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/AuditedRuleRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/StagedRuleRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/StagedRuleRepository.java index f1d205f3ecc4e2644903f97763d9460b00f6fed8..4b1e724c376ebcbcc37ee7dd3995fa16af927157 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/StagedRuleRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/rule/persistence/repository/StagedRuleRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntity.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntity.java index ff71fbc900c2797157cba0f5e32c381f15b9a0b3..d634db9a1c6f2acd60b67954cbfc3d05f2b31962 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntity.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntityType.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntityType.java index 88433b41040eca188765ba8d6056c7d4044586bd..c50942534a18b9457cd6e6a4dbb5f6b2c47d24e7 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntityType.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagedEntityType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingInfo.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingInfo.java index 6ab1a4fe921cfb0c4bfd20737d3a696b40d0d12d..841f17fb2478079e61f599dc834a39baf4650e3e 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingInfo.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingStatus.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingStatus.java index f2aec77ffb7cdfdc4e3c874a8c95321fb782055e..d916e8d4730a2e1b7e884c7200ba96c684df81f0 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingStatus.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/entity/StagingStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/repository/StagedEntityRepository.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/repository/StagedEntityRepository.java index e7f65452a5c7f03f0410117aecadebaddd8eb87e..0cac2e73b6063dce7096d7ac04c163d1f8d37fa5 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/repository/StagedEntityRepository.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/staging/persistence/repository/StagedEntityRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/CertKeyPair.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/CertKeyPair.java index 35c55f84c7534ce01a3665b4dd28abe1466581c6..91e0ba6b7af1ffd5b92eff94050b39036f9e2953 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/CertKeyPair.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/CertKeyPair.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ImportService.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ImportService.java index 77fc15861e4a0d3ea18b79671a66620e96a956ba..edb9fb497fa1a406d5d5dc4ef840a31cd5fe7738 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ImportService.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ImportService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/OrgUnitPopulator.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/OrgUnitPopulator.java index f7c04ed623e5b388fd17dbae175442cdc0414b60..cf3c90f7d20a647ec0ce099d87a16f588751e487 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/OrgUnitPopulator.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/OrgUnitPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperController.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperController.java index a59a22349328256715c92be5eb23357418c8c95b..37a069485d1430826d9aa992779384aeb009415e 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperController.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperService.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperService.java index 67fd0137b1c272d19bd822b69c544e53972814e6..2c05c169f88f99fc3e2c8bc358b6922a8797629d 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperService.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/ServiceDirectoryTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/X509TestHelperUtil.java b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/X509TestHelperUtil.java index 9bef4bc5803855201d03965ca0a097adc7cf4762..17d104a61f7be5281d75e5f19337a86c7af6ceed 100644 --- a/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/X509TestHelperUtil.java +++ b/backend/service-directory/src/main/java/de/eshg/servicedirectory/testhelper/X509TestHelperUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/service-directory/src/main/resources/migrations/0001_initial.xml b/backend/service-directory/src/main/resources/migrations/0001_initial.xml index 444fe244179549faf7eb546dda419cc9210a388e..9d9f96aeb6b543d1d33a3c2a38696cb4478e8076 100644 --- a/backend/service-directory/src/main/resources/migrations/0001_initial.xml +++ b/backend/service-directory/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/0002_drop_hostname.xml b/backend/service-directory/src/main/resources/migrations/0002_drop_hostname.xml index 299b4a785eac7fcce4e1792f65517a1116151c32..6cd84b5203e8e8907865f5678e44ed9806ee5ff8 100644 --- a/backend/service-directory/src/main/resources/migrations/0002_drop_hostname.xml +++ b/backend/service-directory/src/main/resources/migrations/0002_drop_hostname.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/0003_introduce_pgenums.xml b/backend/service-directory/src/main/resources/migrations/0003_introduce_pgenums.xml index 4d21dc37d48d098886de6f4bf9720544fcbb06ef..89fad0a7774bdfe9e6ec094b3d1e7fedbabd37bd 100644 --- a/backend/service-directory/src/main/resources/migrations/0003_introduce_pgenums.xml +++ b/backend/service-directory/src/main/resources/migrations/0003_introduce_pgenums.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/0004_remove_actortype_lm.xml b/backend/service-directory/src/main/resources/migrations/0004_remove_actortype_lm.xml index 8d3c1754de596baa6f652d052a386556cd4c224b..3361a94f6917bed13b67f2fed1b2655d6976e372 100644 --- a/backend/service-directory/src/main/resources/migrations/0004_remove_actortype_lm.xml +++ b/backend/service-directory/src/main/resources/migrations/0004_remove_actortype_lm.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/0005_add_staging_status.xml b/backend/service-directory/src/main/resources/migrations/0005_add_staging_status.xml index be0a0137fe3cb48790f6335ba4938d491b554c72..233b14696993ddade2d54c7f5916ba24853efdbd 100644 --- a/backend/service-directory/src/main/resources/migrations/0005_add_staging_status.xml +++ b/backend/service-directory/src/main/resources/migrations/0005_add_staging_status.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/0006_add_unique_constraint_to_rule.xml b/backend/service-directory/src/main/resources/migrations/0006_add_unique_constraint_to_rule.xml index 6f71663cd435a41703ac0a2da5c81622b1d58323..4110155fb29c63227f2d1a8ef9efb2e1b1e61405 100644 --- a/backend/service-directory/src/main/resources/migrations/0006_add_unique_constraint_to_rule.xml +++ b/backend/service-directory/src/main/resources/migrations/0006_add_unique_constraint_to_rule.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/0007_add_external_and_miscellaneous_actor_type.xml b/backend/service-directory/src/main/resources/migrations/0007_add_external_and_miscellaneous_actor_type.xml index edecaea5727a7a0f8c2f2706d6033db7cdeabc32..8251250236a212fafd0b08010f7298aaa0699035 100644 --- a/backend/service-directory/src/main/resources/migrations/0007_add_external_and_miscellaneous_actor_type.xml +++ b/backend/service-directory/src/main/resources/migrations/0007_add_external_and_miscellaneous_actor_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/0008_add_manual_cert_bool.xml b/backend/service-directory/src/main/resources/migrations/0008_add_manual_cert_bool.xml index b126ab332e6bbfceda58b564c30f5008a38dd14d..edaf210cbf668769074b220be753541638ab12a4 100644 --- a/backend/service-directory/src/main/resources/migrations/0008_add_manual_cert_bool.xml +++ b/backend/service-directory/src/main/resources/migrations/0008_add_manual_cert_bool.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/service-directory/src/main/resources/migrations/changelog.xml b/backend/service-directory/src/main/resources/migrations/changelog.xml index 886ea758d96e2c95fc623eb78ec24ec11d44786c..9a420e24180d9b4040768dcb2e7e171bf9cd8630 100644 --- a/backend/service-directory/src/main/resources/migrations/changelog.xml +++ b/backend/service-directory/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: Apache-2.0 --> diff --git a/backend/spatz-dns/Dockerfile b/backend/spatz-dns/Dockerfile index 831a90417006097cead000e37ba734238baa07c9..65df9b7fd0d6125985e5c5fd33e710b06ca04a40 100644 --- a/backend/spatz-dns/Dockerfile +++ b/backend/spatz-dns/Dockerfile @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: Apache-2.0 # diff --git a/backend/spatz/src/main/java/de/eshg/spatz/SpatzApp.java b/backend/spatz/src/main/java/de/eshg/spatz/SpatzApp.java index a6893e0e34a13c1bd58e26f07cb6c52417d891b5..6cf096054ae940b0f3d91c34a79413907c7f570d 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/SpatzApp.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/SpatzApp.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/client/HttpProxyClient.java b/backend/spatz/src/main/java/de/eshg/spatz/client/HttpProxyClient.java index 6db974aafa345a2eb42bbcaa31ce638ef9fca68a..ed3e7219efb34dc485e152b907adfa7e44ee3177 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/client/HttpProxyClient.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/client/HttpProxyClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/common/CustomHeaders.java b/backend/spatz/src/main/java/de/eshg/spatz/common/CustomHeaders.java index de891b9d1eba8a678eb08c544047e9b1f2c50e2a..2fe281eb7c4060c01b903f48af3b3f05cef89baf 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/common/CustomHeaders.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/common/CustomHeaders.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertService.java b/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertService.java index fb087de59650e4bc94c1507a4f1233b2391d563e..2a71dabba28d2762a7f33cbb10927e2323e9b4e7 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertService.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertificatePublisher.java b/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertificatePublisher.java index 9b36a0faf71129f5c1d9551994634881408441cc..cf854ac23deaaad5efaf9389f5525d4b26d0cc3b 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertificatePublisher.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/common/SelfSignedCertificatePublisher.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/common/ServiceDirectoryTopologyService.java b/backend/spatz/src/main/java/de/eshg/spatz/common/ServiceDirectoryTopologyService.java index 224d160f2d06ffea421409a9ff8fbfe6ab9ab8b5..7d4a9e1f627271e9e76698bcc0a4a5239ca0aa37 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/common/ServiceDirectoryTopologyService.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/common/ServiceDirectoryTopologyService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/common/SslBundleFactory.java b/backend/spatz/src/main/java/de/eshg/spatz/common/SslBundleFactory.java index a3e2cc5b7c82e85c642bce12b446dd28b91afbde..bcbafb9873f6f6b58ec7a51936e3688858f88e9e 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/common/SslBundleFactory.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/common/SslBundleFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedCertificateLatch.java b/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedCertificateLatch.java index 0efcea45fcf3214ca22441d320fb2dcee7b0c086..27a29e94e562b220490f4ebe0d9c0a26ea2d903f 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedCertificateLatch.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedCertificateLatch.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedSecurityConfiguration.java b/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedSecurityConfiguration.java index eafba42dbd332d58b7dcc9662e711ac0105cd7f6..8653ff5619f054399f239cb32c355a42c2aae8e5 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedSecurityConfiguration.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/config/SelfSignedSecurityConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/config/SpatzConfigurationProperties.java b/backend/spatz/src/main/java/de/eshg/spatz/config/SpatzConfigurationProperties.java index ebf1f1441926c72671c274fc25e102e4f486843b..751b2ef9107eda8a899a76e718f8e0b81ab0980f 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/config/SpatzConfigurationProperties.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/config/SpatzConfigurationProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsQueryHandler.java b/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsQueryHandler.java index 7b73ce546b7fd022eb062087d0e15f9de00190ee..81d525016815f6c996688b6b9700741ff2b4d9d8 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsQueryHandler.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsQueryHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsRecord.java b/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsRecord.java index 66d4797fbdee3265b07a7210c01ec66ac9317bac..a79dcec32411c2308baa5c2171762317052cfefd 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsRecord.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsRecord.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsResolver.java b/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsResolver.java index 54437497944ed8926f2d64d9c259564264d05260..36ae3500f0aca29970d8b4d2752179ba0b2a1a6a 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsResolver.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/dns/DnsResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/dns/UdpServer.java b/backend/spatz/src/main/java/de/eshg/spatz/dns/UdpServer.java index da006dc7ceb75f316972404804b116a441b02924..14be0fc1084060772ffeffa31ce13ddc95a9b9b4 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/dns/UdpServer.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/dns/UdpServer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionHandler.java b/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionHandler.java index 613bf52515eb7db5502ccd5ae6699c561c76f82c..d34932325061089bf5b10e52d40808d75c599784 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionHandler.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionMetaData.java b/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionMetaData.java index ed9170e51e662fd54baa005ed3769d17fb94d189..b5fe93c697bcbf26d50a2a6a497693a02523e403 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionMetaData.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/relay/ConnectionMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayConnector.java b/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayConnector.java index 2b89f17fa6cdc22a80bd81c6601e3e7e14fa2ff0..3a7f8f07e0657750a10e9723547e1035ccbb3187 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayConnector.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayConnector.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayDestinationPredicate.java b/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayDestinationPredicate.java index df14b589f0d6d99d4d8e818ee23175d8a4ea0f59..e9514fe4bcf5f48fc3ae523b7e78e9c50b0ac1dd 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayDestinationPredicate.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/relay/RelayDestinationPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/relay/SpatzRelayConnection.java b/backend/spatz/src/main/java/de/eshg/spatz/relay/SpatzRelayConnection.java index 447ebdbd241c981fde7129a5158508066804faf8..2ead9e1a1a3ec4ba152ed3b75e59073ce6b5417a 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/relay/SpatzRelayConnection.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/relay/SpatzRelayConnection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuild.java b/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuild.java index 5c5d98e87186925080b2fa8a1aaa065c092b084f..f57b7f08cd34e4cb19e5f3ed8acf7a8cb60fdc76 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuild.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuild.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuilder.java b/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuilder.java index 2027bd6c4ddbfe9189c92ec7ba620f6ec27f61fe..deb7242333bbd84bf1c64eab0868bb2cf6038bec 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuilder.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateValidationService.java b/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateValidationService.java index 90ddfdc508fbc90e62f0958e9c640721a7a033ba..2760e360b438dc83cc6a31ecb742804eaaf4837f 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateValidationService.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/security/CertificateValidationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/security/DefaultKeyParameters.java b/backend/spatz/src/main/java/de/eshg/spatz/security/DefaultKeyParameters.java index fd34b06b8e60e5b2ce5ecf0e5484c9381e7fdace..bcbf5825e5fab42d8a33fe1d199df255eb88303c 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/security/DefaultKeyParameters.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/security/DefaultKeyParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/GracefulShutdown.java b/backend/spatz/src/main/java/de/eshg/spatz/server/GracefulShutdown.java index 35a6cc941223347f2bff2fc417e31d56fc4bbf1e..afad30316195c4f485d7dd6f9c6b9a9addce465d 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/GracefulShutdown.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/GracefulShutdown.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/ProxyServer.java b/backend/spatz/src/main/java/de/eshg/spatz/server/ProxyServer.java index 096f6b30d205057a3c07e6b9f0e63a09cf477207..470449fac5861133a09dea475ebd2f673b6c7add 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/ProxyServer.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/ProxyServer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/ResolverFactory.java b/backend/spatz/src/main/java/de/eshg/spatz/server/ResolverFactory.java index ff688b2428b637d549c36bdc7f982790411453b6..2d9d36cf2308ebd2dc9982cc9e4113cc52047a3d 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/ResolverFactory.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/ResolverFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/SslContextException.java b/backend/spatz/src/main/java/de/eshg/spatz/server/SslContextException.java index 81f34ae103fe6952937933febc2060f224ba9032..edbce7c8ac84063886bb25fbba4e7028ae5f36d0 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/SslContextException.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/SslContextException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/WebsocketProxyHandler.java b/backend/spatz/src/main/java/de/eshg/spatz/server/WebsocketProxyHandler.java index 262e6304f26575f1c756ff7d9ad622f2afc4ae20..0ae54a222c864300c050c3bc2175cdfd0a9f8f96 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/WebsocketProxyHandler.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/WebsocketProxyHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/InboundServer.java b/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/InboundServer.java index cdeb082810f96a3a287373434b939e06e2027b71..e5656a78b99aa4461a2d42ee6c6071af7e89bcc2 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/InboundServer.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/InboundServer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/SslCertificateException.java b/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/SslCertificateException.java index 77827749d3fa179d91a702165d4b728912b02e12..4df8ec104d3c49743e839fbb3623b2e74a732d9a 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/SslCertificateException.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/inbound/SslCertificateException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/spatz/src/main/java/de/eshg/spatz/server/outbound/OutboundServer.java b/backend/spatz/src/main/java/de/eshg/spatz/server/outbound/OutboundServer.java index 26313863c7b326a3b53747f1c9a1ab739b5c4a50..24d13db05f8c225741c08fdd1222f863431aa0b2 100644 --- a/backend/spatz/src/main/java/de/eshg/spatz/server/outbound/OutboundServer.java +++ b/backend/spatz/src/main/java/de/eshg/spatz/server/outbound/OutboundServer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/statistics/openApi.yaml b/backend/statistics/openApi.yaml index 69c7ca7f1db1fef61a43b9edcd517ac7bceae44d..0f1c02bd6e21b355de2b4237f84410db795e0ee1 100644 --- a/backend/statistics/openApi.yaml +++ b/backend/statistics/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 @@ -1632,18 +1632,18 @@ components: format: uuid name: type: string + sensitiveDataAllowed: + type: boolean sensitivity: $ref: "#/components/schemas/DataSourceSensitivity" - withoutAnonymizationAllowed: - type: boolean required: - attributes - businessModuleName - canBeAnonymized - id - name + - sensitiveDataAllowed - sensitivity - - withoutAnonymizationAllowed BarChartConfiguration: type: object allOf: @@ -2197,14 +2197,20 @@ components: required: - errorCode - errorLocation + EvaluationDataSensitivity: + type: string + enum: + - ANONYMOUS + - INTERNAL_USAGE + - SENSITIVE EvaluationInfo: type: object properties: - anonymized: - type: boolean createdAt: type: string format: date-time + dataSensitivity: + $ref: "#/components/schemas/EvaluationDataSensitivity" dataSourceNames: type: array items: @@ -2230,8 +2236,8 @@ components: type: string format: uuid required: - - anonymized - createdAt + - dataSensitivity - dataSourceNames - id - name @@ -2663,8 +2669,10 @@ components: GetEvaluationsFilterOptions: type: object properties: - anonymizationValue: - type: boolean + dataSensitivities: + type: array + items: + $ref: "#/components/schemas/EvaluationDataSensitivity" dataSourceIds: type: array items: @@ -2749,6 +2757,8 @@ components: type: array items: $ref: "#/components/schemas/Analysis" + dataSensitivity: + $ref: "#/components/schemas/ReportDataSensitivity" description: type: string executionDate: @@ -2792,6 +2802,7 @@ components: $ref: "#/components/schemas/User" required: - analyses + - dataSensitivity - executionDate - id - name @@ -2807,8 +2818,8 @@ components: GetReportSeriesEntriesOfEvaluationResponse: type: object properties: - anonymized: - type: boolean + dataSensitivity: + $ref: "#/components/schemas/EvaluationDataSensitivity" evaluationId: type: string format: uuid @@ -2823,7 +2834,7 @@ components: additionalProperties: $ref: "#/components/schemas/User" required: - - anonymized + - dataSensitivity - evaluationId - evaluationName - reportSeriesEntries @@ -2831,6 +2842,10 @@ components: GetReportsFilterOptions: type: object properties: + dataSensitivities: + type: array + items: + $ref: "#/components/schemas/ReportDataSensitivity" dataSourceIds: type: array items: @@ -3229,9 +3244,16 @@ components: enum: - ADAPTED - ORIGIN + ReportDataSensitivity: + type: string + enum: + - ANONYMOUS + - INTERNAL_USAGE ReportInfo: type: object properties: + dataSensitivity: + $ref: "#/components/schemas/ReportDataSensitivity" executionDate: type: string format: date @@ -3255,6 +3277,7 @@ components: format: int64 minimum: 0 required: + - dataSensitivity - executionDate - id - name @@ -3466,13 +3489,13 @@ components: properties: canBeAnonymized: type: boolean + sensitiveDataAllowed: + type: boolean sensitivity: $ref: "#/components/schemas/DataSourceSensitivity" - withoutAnonymizationAllowed: - type: boolean required: - canBeAnonymized - - withoutAnonymizationAllowed + - sensitiveDataAllowed TestHelperClockSetRequest: type: object properties: diff --git a/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateController.java b/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateController.java index cb5787ae58462d5ccf8d2d21b2508e413924c50a..0f1bc58984dc1803f36fc6840f8515647bbc97fd 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateService.java b/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateService.java index c11f45d5a1aa41614e4aa5e6ff01cc080a4245f6..ea6083c4b96a1bf85a2a74fa150bfd2b429af714 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/EvaluationTemplateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,6 +10,7 @@ import de.eshg.domain.model.BaseEntity_; import de.eshg.lib.statistics.api.DataSourceSensitivity; import de.eshg.rest.service.error.NotFoundException; import de.eshg.statistics.aggregation.DataSourceAggregationService; +import de.eshg.statistics.aggregation.DataSourceValidator; import de.eshg.statistics.api.datasource.AvailableDataSource; import de.eshg.statistics.api.evaluationtemplate.AddEvaluationTemplateWithDataSourcesRequest; import de.eshg.statistics.api.evaluationtemplate.EvaluationTemplateDto; @@ -20,7 +21,8 @@ import de.eshg.statistics.api.evaluationtemplate.GetEvaluationTemplatesFilterOpt import de.eshg.statistics.api.evaluationtemplate.GetEvaluationTemplatesRequest; import de.eshg.statistics.api.evaluationtemplate.GetEvaluationTemplatesResponse; import de.eshg.statistics.api.evaluationtemplate.UpdateEvaluationTemplateRequest; -import de.eshg.statistics.config.OriginalDataAccessConfig; +import de.eshg.statistics.config.StatisticsConfig; +import de.eshg.statistics.config.StatisticsConfig.BusinessModuleConfig; import de.eshg.statistics.datatransfer.EvaluationTemplateData; import de.eshg.statistics.mapper.EvaluationMapper; import de.eshg.statistics.mapper.EvaluationTemplateMapper; @@ -37,7 +39,6 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; @@ -55,19 +56,19 @@ public class EvaluationTemplateService { private final EvaluationTemplateRepository evaluationTemplateRepository; private final StatisticsUserService userService; private final Clock clock; - private final OriginalDataAccessConfig originalDataAccessConfig; + private final BusinessModuleConfig businessModuleConfig; private final DataSourceAggregationService dataSourceAggregationService; public EvaluationTemplateService( EvaluationTemplateRepository evaluationTemplateRepository, StatisticsUserService userService, Clock clock, - OriginalDataAccessConfig originalDataAccessConfig, + StatisticsConfig statisticsConfig, DataSourceAggregationService dataSourceAggregationService) { this.evaluationTemplateRepository = evaluationTemplateRepository; this.userService = userService; this.clock = clock; - this.originalDataAccessConfig = originalDataAccessConfig; + this.businessModuleConfig = statisticsConfig.businessModule(); this.dataSourceAggregationService = dataSourceAggregationService; } @@ -155,7 +156,7 @@ public class EvaluationTemplateService { evaluationTemplate -> EvaluationTemplateMapper.mapToInfo( evaluationTemplate, - this::withoutAnonymizationAllowed, + this::sensitiveDataAllowed, template -> getMostRestrictiveSensitivity(template, availableDataSources), template -> getCanBeAnonymized(template, availableDataSources))) .toList(); @@ -213,62 +214,64 @@ public class EvaluationTemplateService { dataSourceAggregationService.getAvailableDataSources().availableDataSources(); return EvaluationTemplateMapper.mapToApi( evaluationTemplate, - this::withoutAnonymizationAllowed, - template -> getMostRestrictiveSensitivity(template, availableDataSources), - template -> getCanBeAnonymized(template, availableDataSources), + sensitiveDataAllowed(evaluationTemplate), + getMostRestrictiveSensitivity(evaluationTemplate, availableDataSources), + getCanBeAnonymized(evaluationTemplate, availableDataSources), userService.findUser(evaluationTemplate.getCreatedByUserId())); } - private boolean withoutAnonymizationAllowed(EvaluationTemplate evaluationTemplate) { + private boolean sensitiveDataAllowed(EvaluationTemplate evaluationTemplate) { Set<String> businessModules = evaluationTemplate.getDataSources().stream() .map(DataSource::getBusinessModuleName) .collect(Collectors.toSet()); - return originalDataAccessConfig - .getBusinessModulesOriginalDataAllowedForCurrentUser() + return businessModuleConfig + .getBusinessModulesSensitiveDataAllowedForCurrentUser() .containsAll(businessModules); } private DataSourceSensitivity getMostRestrictiveSensitivity( EvaluationTemplate evaluationTemplate, List<AvailableDataSource> availableDataSources) { - DataSourceSensitivity dataSourceSensitivity = null; - for (DataSource dataSource : evaluationTemplate.getDataSources()) { - Optional<AvailableDataSource> optionalAvailableDataSource = - findExistingAvailableDataSource(availableDataSources, dataSource); - if (optionalAvailableDataSource.isEmpty()) { - return null; - } - AvailableDataSource existingDataSource = optionalAvailableDataSource.get(); - if (dataSourceSensitivity == null - || dataSourceSensitivity.equals(DataSourceSensitivity.ANONYMOUS) - || existingDataSource.sensitivity().equals(DataSourceSensitivity.SENSITIVE)) { - dataSourceSensitivity = existingDataSource.sensitivity(); - } + if (anyDataSourceNotExisting(evaluationTemplate, availableDataSources)) { + return null; } - return dataSourceSensitivity; + return DataSourceValidator.getMostRestrictiveSensitivity( + getRelevantAvailableDataSources(evaluationTemplate, availableDataSources)); } private boolean getCanBeAnonymized( EvaluationTemplate evaluationTemplate, List<AvailableDataSource> availableDataSources) { - for (DataSource dataSource : evaluationTemplate.getDataSources()) { - Optional<AvailableDataSource> optionalAvailableDataSource = - findExistingAvailableDataSource(availableDataSources, dataSource); - if (optionalAvailableDataSource.isEmpty() - || !optionalAvailableDataSource.get().canBeAnonymized()) { - return false; - } + if (anyDataSourceNotExisting(evaluationTemplate, availableDataSources)) { + return false; } - return true; + return DataSourceValidator.getCanBeAnonymized( + getRelevantAvailableDataSources(evaluationTemplate, availableDataSources)); } - private static Optional<AvailableDataSource> findExistingAvailableDataSource( - List<AvailableDataSource> availableDataSources, DataSource dataSource) { + private static boolean anyDataSourceNotExisting( + EvaluationTemplate evaluationTemplate, List<AvailableDataSource> availableDataSources) { + return evaluationTemplate.getDataSources().stream() + .anyMatch( + dataSource -> + availableDataSources.stream() + .noneMatch( + availableDataSource -> isSameDataSource(dataSource, availableDataSource))); + } + + private static List<AvailableDataSource> getRelevantAvailableDataSources( + EvaluationTemplate evaluationTemplate, List<AvailableDataSource> availableDataSources) { return availableDataSources.stream() .filter( availableDataSource -> - availableDataSource.businessModuleName().equals(dataSource.getBusinessModuleName()) - && availableDataSource.id().equals(dataSource.getExternalDataSourceId())) - .findFirst(); + evaluationTemplate.getDataSources().stream() + .anyMatch(dataSource -> isSameDataSource(dataSource, availableDataSource))) + .toList(); + } + + private static boolean isSameDataSource( + DataSource dataSource, AvailableDataSource availableDataSource) { + return availableDataSource.businessModuleName().equals(dataSource.getBusinessModuleName()) + && availableDataSource.id().equals(dataSource.getExternalDataSourceId()); } @Transactional @@ -279,10 +282,7 @@ public class EvaluationTemplateService { public EvaluationTemplate getEvaluationTemplateInternal(UUID templateId) { return evaluationTemplateRepository .findByExternalId(templateId) - .orElseThrow( - () -> - new NotFoundException( - "Evaluation template with id %s not found".formatted(templateId))); + .orElseThrow(() -> new NotFoundException("Evaluation template with given id not found")); } public void setLastUsageToNow(UUID templateId) { diff --git a/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateController.java b/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateController.java index b6efc789dd8f0eea74b4f09fd9820ec238a064f0..1944ac9b04e119948adf12198960e106e2e48f43 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateService.java b/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateService.java index 443cc68c495623dd4eedeb3866d484dcc88c7a5e..0b2752ed7ba21b3475f288a5975630c7d3b34df6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/FilterTemplateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -61,10 +61,7 @@ public class FilterTemplateService { private FilterTemplate getFilterTemplateInternal(UUID filterTemplateId) { return filterTemplateRepository .findByExternalId(filterTemplateId) - .orElseThrow( - () -> - new NotFoundException( - "FilterTemplate with id '%s' not found".formatted(filterTemplateId))); + .orElseThrow(() -> new NotFoundException("FilterTemplate with given id not found")); } @Transactional(readOnly = true) diff --git a/backend/statistics/src/main/java/de/eshg/statistics/GeoJsonHandler.java b/backend/statistics/src/main/java/de/eshg/statistics/GeoJsonHandler.java index 5aa9b1dc866de5b1612e5a31689de77825fb6871..b53a7b1cb473e6d6da89e71209868a14b489a63a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/GeoJsonHandler.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/GeoJsonHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeController.java b/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeController.java index 09be923490dc882d5b937c23ecea51ff0c7d6de1..c746e3ccf22090d8226764347f55faf803d534c7 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeService.java b/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeService.java index 09909db2ed03cda829da068bb99bc8b2c4326a83..85b5a1717f8d1bacb345c83f493b44c1d7fb946e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/GeoShapeService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -120,8 +120,7 @@ public class GeoShapeService { public GeoShape getGeoShapeInternal(UUID geoShapeId) { return geoShapeRepository .findByExternalId(geoShapeId) - .orElseThrow( - () -> new NotFoundException("GeoShape with id '%s' not found".formatted(geoShapeId))); + .orElseThrow(() -> new NotFoundException("GeoShape with given id not found")); } @Transactional diff --git a/backend/statistics/src/main/java/de/eshg/statistics/OverviewSpecifications.java b/backend/statistics/src/main/java/de/eshg/statistics/OverviewSpecifications.java index b532a23dfd74425fc8c89632277f2a6a609304fe..c3a5e905e827599c2fac5a6d534b71ab7da84a0f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/OverviewSpecifications.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/OverviewSpecifications.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/StatisticsApplication.java b/backend/statistics/src/main/java/de/eshg/statistics/StatisticsApplication.java index 01f1cd5e6cfaac1a90332e24da7c724864b27994..e44638f50859fda28cc39aa9a19fea0342be20e9 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/StatisticsApplication.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/StatisticsApplication.java @@ -1,12 +1,12 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ package de.eshg.statistics; import de.eshg.rest.service.security.config.StatisticsPublicSecurityConfig; -import de.eshg.statistics.config.OriginalDataAccessConfig; +import de.eshg.statistics.config.StatisticsConfig; import de.eshg.statistics.config.StatisticsFeatureToggle; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -15,7 +15,7 @@ import org.springframework.context.annotation.Import; @SpringBootApplication @Import(StatisticsPublicSecurityConfig.class) -@EnableConfigurationProperties({StatisticsFeatureToggle.class, OriginalDataAccessConfig.class}) +@EnableConfigurationProperties({StatisticsFeatureToggle.class, StatisticsConfig.class}) public class StatisticsApplication { public static final String MODULE_NAME = "Statistikmodul"; diff --git a/backend/statistics/src/main/java/de/eshg/statistics/StatisticsFeatureTogglesController.java b/backend/statistics/src/main/java/de/eshg/statistics/StatisticsFeatureTogglesController.java index 4291b22539fd687ad2be6d5486bb66cedf5986d5..e4ff7061bd3d8658f9ff5357901a059269bce1da 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/StatisticsFeatureTogglesController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/StatisticsFeatureTogglesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/StatisticsUserService.java b/backend/statistics/src/main/java/de/eshg/statistics/StatisticsUserService.java index fa616b632694b1815da4f00c24d7982acd7f6e5d..a23e47fc4477ca7808db8f515a26b5df6a6542bb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/StatisticsUserService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/StatisticsUserService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/TimeRangeValidator.java b/backend/statistics/src/main/java/de/eshg/statistics/TimeRangeValidator.java index 553527a13f529a7200a44d577ca80c1775f7c651..6bfe6ba6f204ae86775e0eaf7f1e6d63b9a13e93 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/TimeRangeValidator.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/TimeRangeValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AbstractAggregationResultService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AbstractAggregationResultService.java index a0f203b8180f5e9e7d14f300a97d1207bca9ab31..6cd986598b88981e087dd2836f4f05f5aba2df0e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AbstractAggregationResultService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AbstractAggregationResultService.java @@ -1,11 +1,12 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ package de.eshg.statistics.aggregation; import de.eshg.domain.model.SequencedBaseEntity_; +import de.eshg.statistics.config.StatisticsConfig; import de.eshg.statistics.persistence.entity.AbstractAggregationResult; import de.eshg.statistics.persistence.entity.AggregationResultPendingState; import de.eshg.statistics.persistence.entity.AggregationResultState; @@ -33,14 +34,10 @@ public abstract class AbstractAggregationResultService { protected AbstractAggregationResultService( DataAggregationService dataAggregationService, TableRowRepository tableRowRepository, - int tableRowPageSize) { + StatisticsConfig statisticsConfig) { this.dataAggregationService = dataAggregationService; this.tableRowRepository = tableRowRepository; - this.tableRowPageSize = tableRowPageSize; - if (this.tableRowPageSize <= 0) { - throw new IllegalArgumentException( - "'eshg.statistics.tablerows.pagesize' must be greater than 0"); - } + this.tableRowPageSize = statisticsConfig.tableRows().pageSize(); } public static void resetMaxDataRowExportable() { diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultStateInformation.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultStateInformation.java index 102d8b94f12da07adb70e6b1a9dafa315cd94252..5d57e9924ee73c2c14a7e69b0b8029137feb7161 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultStateInformation.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultStateInformation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultUtil.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultUtil.java index b94d90726d01d711298715f83dee8ef0fcc44176..928ab23e6067d430e536bb69d5f2b8fe00078a42 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultUtil.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AggregationResultUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,9 +7,11 @@ package de.eshg.statistics.aggregation; import static de.eshg.statistics.mapper.AttributeSelectionMapper.SEARCH_KEY_DELIMITER; +import de.eshg.lib.statistics.api.DataSourceSensitivity; import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.error.NotFoundException; import de.eshg.statistics.api.AttributeSelectionDto; +import de.eshg.statistics.api.datasource.AvailableDataSource; import de.eshg.statistics.api.filter.BooleanFilterParameterDto; import de.eshg.statistics.api.filter.DecimalRangeFilterParameterDto; import de.eshg.statistics.api.filter.DecimalValueFilterParameterDto; @@ -21,6 +23,7 @@ import de.eshg.statistics.api.filter.TextFilterParameterDto; import de.eshg.statistics.api.filter.ValueOptionFilterParameterDto; import de.eshg.statistics.mapper.AttributeSelectionMapper; import de.eshg.statistics.persistence.entity.AbstractAggregationResult; +import de.eshg.statistics.persistence.entity.StatisticsDataSensitivity; import de.eshg.statistics.persistence.entity.TableColumn; import java.time.Instant; import java.util.List; @@ -36,6 +39,60 @@ public class AggregationResultUtil { } } + public static void validateSameSensitivityPossible( + AbstractAggregationResult aggregationResult, List<AvailableDataSource> availableDataSources) { + checkAllDataSourcesExist(aggregationResult, availableDataSources); + List<AvailableDataSource> relevantAvailableDataSources = + getRelevantAvailableDataSources(aggregationResult, availableDataSources); + + StatisticsDataSensitivity statisticsDataSensitivity = aggregationResult.getDataSensitivity(); + if (statisticsDataSensitivity.equals(StatisticsDataSensitivity.ANONYMOUS) + && !DataSourceValidator.getCanBeAnonymized(relevantAvailableDataSources) + && !DataSourceValidator.getMostRestrictiveSensitivity(relevantAvailableDataSources) + .equals(DataSourceSensitivity.ANONYMOUS)) { + throw new BadRequestException("Data source is not anonymous and cannot be anonymized"); + } + if (statisticsDataSensitivity.equals(StatisticsDataSensitivity.INTERNAL_USAGE) + && !DataSourceValidator.getMostRestrictiveSensitivity(relevantAvailableDataSources) + .equals(DataSourceSensitivity.INTERNAL_USAGE)) { + throw new BadRequestException("Data source changed the sensitivity"); + } + if (statisticsDataSensitivity.equals(StatisticsDataSensitivity.SENSITIVE) + && !DataSourceValidator.getMostRestrictiveSensitivity(relevantAvailableDataSources) + .equals(DataSourceSensitivity.SENSITIVE)) { + throw new BadRequestException("Data source changed the sensitivity"); + } + } + + private static void checkAllDataSourcesExist( + AbstractAggregationResult aggregationResult, List<AvailableDataSource> availableDataSources) { + if (aggregationResult.getTableColumns().stream() + .anyMatch( + tableColumn -> + availableDataSources.stream() + .noneMatch( + availableDataSource -> + isSameDataSource(tableColumn, availableDataSource)))) { + throw new BadRequestException("At least one data source can not be found"); + } + } + + private static List<AvailableDataSource> getRelevantAvailableDataSources( + AbstractAggregationResult aggregationResult, List<AvailableDataSource> availableDataSources) { + return availableDataSources.stream() + .filter( + availableDataSource -> + aggregationResult.getTableColumns().stream() + .anyMatch(tableColumn -> isSameDataSource(tableColumn, availableDataSource))) + .toList(); + } + + private static boolean isSameDataSource( + TableColumn tableColumn, AvailableDataSource availableDataSource) { + return tableColumn.getDataSourceId().equals(availableDataSource.id()) + && tableColumn.getBusinessModuleName().equals(availableDataSource.businessModuleName()); + } + public static TableColumn getTableColumn( AttributeSelectionDto attributeSelection, AbstractAggregationResult aggregationResult) { if (attributeSelection == null) { diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisController.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisController.java index fbd687607814149351c2f486da9a65b802c829d3..d73d4c46635a12598b478cc1a99f9e8a6399aae0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisService.java index c1d034062f346167e6b68ef9aa63b34add4258a2..057d8662e6fb8b6b9c083cd678dea73b97b053ff 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/AnalysisService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -30,6 +30,7 @@ import de.eshg.statistics.api.chart.ScatterChartConfigurationDto; import de.eshg.statistics.api.diagram.DiagramDto; import de.eshg.statistics.api.diagram.UpdateDiagramRequest; import de.eshg.statistics.api.filter.TableColumnFilterParameter; +import de.eshg.statistics.config.StatisticsConfig; import de.eshg.statistics.mapper.AnalysisMapper; import de.eshg.statistics.mapper.FilterParameterMapper; import de.eshg.statistics.persistence.entity.AbstractAggregationResult; @@ -89,7 +90,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; import org.hibernate.Hibernate; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.domain.Specification; @@ -99,8 +99,8 @@ import org.springframework.util.CollectionUtils; @Service public class AnalysisService { - private static final String ANALYSIS_WITH_ID_NOT_FOUND = "Analysis with id '%s' not found"; - private static final String DIAGRAM_WITH_ID_NOT_FOUND = "Diagram with id '%s' not found"; + private static final String ANALYSIS_WITH_ID_NOT_FOUND = "Analysis with given id not found"; + private static final String DIAGRAM_WITH_ID_NOT_FOUND = "Diagram with given id not found"; private static final String PRIMARY_ATTRIBUTE = "primaryAttribute"; private static final String SECONDARY_ATTRIBUTE = "secondaryAttribute"; @@ -118,17 +118,13 @@ public class AnalysisService { AnalysisRepository analysisRepository, TableRowRepository tableRowRepository, DiagramRepository diagramRepository, - @Value("${eshg.statistics.diagramdata.pagesize:500}") int pageSizeForCollectionDiagramData) { + StatisticsConfig statisticsConfig) { this.evaluationService = evaluationService; this.geoShapeService = geoShapeService; this.analysisRepository = analysisRepository; this.tableRowRepository = tableRowRepository; this.diagramRepository = diagramRepository; - this.pageSizeForCollectionDiagramData = pageSizeForCollectionDiagramData; - if (this.pageSizeForCollectionDiagramData <= 0) { - throw new IllegalArgumentException( - "'eshg.statistics.diagramdata.pagesize' must be greater than 0"); - } + this.pageSizeForCollectionDiagramData = statisticsConfig.diagramData().pageSize(); } @Transactional(readOnly = true) @@ -136,7 +132,7 @@ public class AnalysisService { AbstractAggregationResult aggregationResult = getAnalysisInternal(analysisId).getAggregationResult(); if (evaluationService.accessNotAllowed(aggregationResult)) { - throw new NotFoundException(ANALYSIS_WITH_ID_NOT_FOUND.formatted(analysisId)); + throw new NotFoundException(ANALYSIS_WITH_ID_NOT_FOUND); } } @@ -145,7 +141,7 @@ public class AnalysisService { AbstractAggregationResult aggregationResult = getDiagramInternal(diagramId).getAnalysis().getAggregationResult(); if (evaluationService.accessNotAllowed(aggregationResult)) { - throw new NotFoundException(DIAGRAM_WITH_ID_NOT_FOUND.formatted(diagramId)); + throw new NotFoundException(DIAGRAM_WITH_ID_NOT_FOUND); } } @@ -573,7 +569,7 @@ public class AnalysisService { public Analysis getAnalysisInternal(UUID analysisId) { return analysisRepository .findByExternalId(analysisId) - .orElseThrow(() -> new NotFoundException(ANALYSIS_WITH_ID_NOT_FOUND.formatted(analysisId))); + .orElseThrow(() -> new NotFoundException(ANALYSIS_WITH_ID_NOT_FOUND)); } @Transactional @@ -1496,7 +1492,7 @@ public class AnalysisService { public Diagram getDiagramInternal(UUID diagramId) { return diagramRepository .findByExternalId(diagramId) - .orElseThrow(() -> new NotFoundException(DIAGRAM_WITH_ID_NOT_FOUND.formatted(diagramId))); + .orElseThrow(() -> new NotFoundException(DIAGRAM_WITH_ID_NOT_FOUND)); } @Transactional diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataAggregationService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataAggregationService.java index c943608898d92350a6076b02ece42bc20f6d424c..874bbfed31ceda682f00a968a5ecb294dc86b5d2 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataAggregationService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataAggregationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,6 +17,7 @@ import de.eshg.lib.aggregation.ClientResponse; import de.eshg.lib.auditlog.AuditLogger; import de.eshg.lib.statistics.api.Attribute; import de.eshg.lib.statistics.api.DataRow; +import de.eshg.lib.statistics.api.DataSourceSensitivity; import de.eshg.lib.statistics.api.DataTableHeader; import de.eshg.lib.statistics.api.GetSpecificDataRequest; import de.eshg.lib.statistics.api.GetSpecificDataResponse; @@ -27,6 +28,7 @@ import de.eshg.rest.service.error.ErrorResponseWithLocation; import de.eshg.statistics.api.datasource.BusinessDataAttribute; import de.eshg.statistics.api.datasource.DataSourceDto; import de.eshg.statistics.api.filter.NumericComparisonDto; +import de.eshg.statistics.config.StatisticsConfig; import de.eshg.statistics.mapper.AttributeSelectionMapper; import de.eshg.statistics.mapper.EvaluationMapper; import de.eshg.statistics.persistence.entity.AbstractAggregationResult; @@ -35,6 +37,7 @@ import de.eshg.statistics.persistence.entity.AggregationResultState; import de.eshg.statistics.persistence.entity.CellEntry; import de.eshg.statistics.persistence.entity.Evaluation; import de.eshg.statistics.persistence.entity.MinMaxNullUnknownValues; +import de.eshg.statistics.persistence.entity.StatisticsDataSensitivity; import de.eshg.statistics.persistence.entity.TableColumn; import de.eshg.statistics.persistence.entity.TableRow; import de.eshg.statistics.persistence.entity.ValueToMeaning; @@ -64,7 +67,6 @@ import java.util.UUID; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Service @@ -79,21 +81,16 @@ public class DataAggregationService { public DataAggregationService( BusinessModuleAggregationHelper businessModuleAggregationHelper, BaseStatisticsApi baseModuleStatisticsApi, - @Value("${eshg.statistics.businessmodule.pagesize:500}") - int businessModuleDataRequestPageSize, + StatisticsConfig statisticsConfig, TableRowRepository tableRowRepository, CellEntryRepository cellEntryRepository, AuditLogger auditLogger) { this.businessModuleAggregationHelper = businessModuleAggregationHelper; this.baseModuleStatisticsApi = baseModuleStatisticsApi; - this.businessModuleDataRequestPageSize = businessModuleDataRequestPageSize; + this.businessModuleDataRequestPageSize = statisticsConfig.businessModule().pageSize(); this.tableRowRepository = tableRowRepository; this.cellEntryRepository = cellEntryRepository; this.auditLogger = auditLogger; - if (this.businessModuleDataRequestPageSize <= 0) { - throw new IllegalArgumentException( - "'eshg.statistics.businessmodule.pagesize' must be greater than 0"); - } } public Evaluation createEvaluation( @@ -101,6 +98,7 @@ public class DataAggregationService { String name, Instant timeRangeStart, Instant timeRangeEnd, + DataSourceSensitivity sensitivity, boolean anonymized) { GetSpecificDataRequest request = new GetSpecificDataRequest( @@ -139,9 +137,13 @@ public class DataAggregationService { if (tableColumns.isEmpty()) { throw new BadRequestException("Evaluation has no valid fields"); } + StatisticsDataSensitivity statisticsDataSensitivity = + anonymized + ? StatisticsDataSensitivity.ANONYMOUS + : StatisticsDataSensitivity.valueOf(sensitivity.name()); Evaluation evaluation = new Evaluation(); - evaluation.setDataSensitivity(EvaluationMapper.mapToPersistence(anonymized)); + evaluation.setDataSensitivity(statisticsDataSensitivity); evaluation.setName(name); evaluation.setTimeRangeStart(timeRangeStart); evaluation.setTimeRangeEnd(timeRangeEnd); diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataPointHolder.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataPointHolder.java index d89138647564fde2741fd27b6ff729b983c08590..b9d65954edf445481fd81fb58e3142c8742d9909 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataPointHolder.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataPointHolder.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceAggregationService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceAggregationService.java index 2be1e85d7d52e2607b22a5799faf18824bb510cf..ae3e6d4bb9ef3d662f5b383997022f38fc7129c5 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceAggregationService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceAggregationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,12 +15,14 @@ import de.eshg.lib.aggregation.BusinessModuleClient; import de.eshg.lib.aggregation.ClientResponse; import de.eshg.lib.statistics.api.Attribute; import de.eshg.lib.statistics.api.DataSource; +import de.eshg.lib.statistics.api.DataSourceSensitivity; import de.eshg.lib.statistics.api.GetDataSourcesResponse; import de.eshg.statistics.api.datasource.AvailableDataSource; import de.eshg.statistics.api.datasource.BaseDataSourceAttribute; import de.eshg.statistics.api.datasource.BusinessDataSourceAttribute; import de.eshg.statistics.api.datasource.GetAvailableDataSourcesResponse; -import de.eshg.statistics.config.OriginalDataAccessConfig; +import de.eshg.statistics.config.StatisticsConfig; +import de.eshg.statistics.config.StatisticsConfig.BusinessModuleConfig; import de.eshg.statistics.mapper.EvaluationMapper; import java.util.Collection; import java.util.Comparator; @@ -34,15 +36,15 @@ public class DataSourceAggregationService { private final BusinessModuleAggregationHelper businessModuleAggregationHelper; private final BaseStatisticsApi baseModuleStatisticsApi; - private final OriginalDataAccessConfig originalDataAccessConfig; + private final BusinessModuleConfig businessModuleConfig; public DataSourceAggregationService( BusinessModuleAggregationHelper businessModuleAggregationHelper, BaseStatisticsApi baseModuleStatisticsApi, - OriginalDataAccessConfig originalDataAccessConfig) { + StatisticsConfig statisticsConfig) { this.businessModuleAggregationHelper = businessModuleAggregationHelper; this.baseModuleStatisticsApi = baseModuleStatisticsApi; - this.originalDataAccessConfig = originalDataAccessConfig; + this.businessModuleConfig = statisticsConfig.businessModule(); } public GetAvailableDataSourcesResponse getAvailableDataSources() { @@ -93,7 +95,9 @@ public class DataSourceAggregationService { List<BaseAvailableDataSource> baseAvailableDataSources) { return new AvailableDataSource( businessModule, - originalDataAccessConfig.originalDataAllowedForCurrentUser(businessModule), + isSensitiveDataAllowed( + dataSource.sensitivity(), + businessModuleConfig.sensitiveDataAllowedForCurrentUser(businessModule)), dataSource.id(), dataSource.name(), dataSource.sensitivity(), @@ -101,6 +105,12 @@ public class DataSourceAggregationService { mapAndExtendAttributes(dataSource.attributes(), baseAvailableDataSources)); } + public static boolean isSensitiveDataAllowed( + DataSourceSensitivity sensitivity, boolean sensitiveDataAllowedForBusinessModule) { + return DataSourceSensitivity.SENSITIVE.equals(sensitivity) + && sensitiveDataAllowedForBusinessModule; + } + private static List<BusinessDataSourceAttribute> mapAndExtendAttributes( List<Attribute> businessAttributes, List<BaseAvailableDataSource> baseAvailableDataSources) { return businessAttributes.stream() diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceController.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceController.java index c4ff50c325dda6cda1f503bd29c229ccc67823b8..9c85936d436a2cb8039bd709d4d364fd2f2ae42c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceValidator.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceValidator.java index 9c821fabff4540982524c2d61d0573699303ae0f..827eb4ff58a8ceed08f6c0e0d6e04080c2d017c6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceValidator.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DataSourceValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,7 @@ package de.eshg.statistics.aggregation; import de.cronn.commons.lang.StreamUtil; import de.eshg.lib.aggregation.BusinessModuleAggregationHelper; +import de.eshg.lib.statistics.api.DataSourceSensitivity; import de.eshg.rest.service.error.BadRequestException; import de.eshg.statistics.api.datasource.AvailableDataSource; import de.eshg.statistics.api.datasource.BaseDataSourceAttribute; @@ -224,4 +225,25 @@ public class DataSourceValidator { .map(BaseDataSourceAttribute::code) .toList(); } + + public static DataSourceSensitivity getMostRestrictiveSensitivity( + List<AvailableDataSource> availableDataSources) { + if (availableDataSources.stream() + .anyMatch( + availableDataSource -> + availableDataSource.sensitivity().equals(DataSourceSensitivity.SENSITIVE))) { + return DataSourceSensitivity.SENSITIVE; + } else if (availableDataSources.stream() + .anyMatch( + availableDataSource -> + availableDataSource.sensitivity().equals(DataSourceSensitivity.INTERNAL_USAGE))) { + return DataSourceSensitivity.INTERNAL_USAGE; + } else { + return DataSourceSensitivity.ANONYMOUS; + } + } + + public static boolean getCanBeAnonymized(List<AvailableDataSource> availableDataSources) { + return availableDataSources.stream().allMatch(AvailableDataSource::canBeAnonymized); + } } diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DiagramCreationService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DiagramCreationService.java index db4bbda85b45fe864cd11af7e56b552c35269a72..c44086c4d458f4a885114e0ad1f714416b1c349a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DiagramCreationService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/DiagramCreationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationController.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationController.java index 7ec25c792bf20f5d7a03369fccc266323cfdf95c..583db290d37e0189007485a1f53d00d50fa15435 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,7 +8,6 @@ package de.eshg.statistics.aggregation; import static de.eshg.statistics.aggregation.EvaluationController.BASE_URL; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; -import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.security.config.BaseUrls; import de.eshg.statistics.api.GetDetailPageInformationResponse; import de.eshg.statistics.api.completeness.GetCompletenessDataResponse; @@ -21,8 +20,6 @@ import de.eshg.statistics.api.evaluation.GetEvaluationsRequest; import de.eshg.statistics.api.evaluation.GetEvaluationsResponse; import de.eshg.statistics.api.evaluation.UpdateEvaluationTimeRangeRequest; import de.eshg.statistics.api.report.GetReportSeriesEntriesOfEvaluationResponse; -import de.eshg.statistics.config.StatisticsFeature; -import de.eshg.statistics.config.StatisticsFeatureToggle; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; @@ -47,29 +44,22 @@ public class EvaluationController { private final StatisticsExecutorService statisticsExecutorService; private final EvaluationExecution evaluationExecution; private final EvaluationCopyService evaluationCopyService; - private final StatisticsFeatureToggle featureToggle; public EvaluationController( EvaluationService evaluationService, StatisticsExecutorService statisticsExecutorService, EvaluationExecution evaluationExecution, - EvaluationCopyService evaluationCopyService, - StatisticsFeatureToggle featureToggle) { + EvaluationCopyService evaluationCopyService) { this.evaluationService = evaluationService; this.statisticsExecutorService = statisticsExecutorService; this.evaluationExecution = evaluationExecution; this.evaluationCopyService = evaluationCopyService; - this.featureToggle = featureToggle; } @PostExchange(accept = APPLICATION_JSON_VALUE) @ApiResponse(responseCode = "200", description = "The UUID of the evaluation") @Operation(summary = "Add evaluation") public UUID addEvaluation(@Valid @RequestBody AbstractAddEvaluationRequest addEvaluationRequest) { - if (!featureToggle.isNewFeatureEnabled(StatisticsFeature.FAKE_ANONYMIZATION) - && addEvaluationRequest.anonymized()) { - throw new BadRequestException("Only allowed without anonymization"); - } UUID evaluationId = evaluationService.addEvaluation(addEvaluationRequest); statisticsExecutorService.submit(() -> evaluationExecution.addEvaluation(evaluationId)); return evaluationId; diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationCopyService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationCopyService.java index ded7f92469a9e1953b81891bc9a5e1a85ea0732d..76bca1b134396a0f35b4d5217afe86b7fb0ecf0e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationCopyService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationCopyService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationExecution.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationExecution.java index 4d7051c2aadb107d02ff3725c65105157de6af8d..7f3179066f09ef4c96ea9c9e5615822fc7eed6d9 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationExecution.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationExecution.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationService.java index 80f2f23cc4431a0edafc641ce435fbca7446a57a..39c5f4868a6504cd69a0322f27b06340efe4c52f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/EvaluationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,7 @@ import static de.eshg.statistics.mapper.EvaluationMapper.mapSortKey; import de.eshg.base.user.api.UserDto; import de.eshg.domain.model.BaseEntity_; import de.eshg.lib.keycloak.EmployeePermissionRole; +import de.eshg.lib.statistics.api.DataSourceSensitivity; import de.eshg.lib.statistics.api.ValueType; import de.eshg.rest.service.error.BadRequestException; import de.eshg.rest.service.error.NotFoundException; @@ -25,6 +26,7 @@ import de.eshg.statistics.api.completeness.CompletenessOfAttribute; import de.eshg.statistics.api.completeness.CompletenessOfBaseAttribute; import de.eshg.statistics.api.completeness.CompletenessOfBusinessAttribute; import de.eshg.statistics.api.completeness.GetCompletenessDataResponse; +import de.eshg.statistics.api.datasource.AvailableDataSource; import de.eshg.statistics.api.datasource.BusinessDataAttribute; import de.eshg.statistics.api.datasource.DataSourceDto; import de.eshg.statistics.api.evaluation.AbstractAddEvaluationRequest; @@ -41,7 +43,10 @@ import de.eshg.statistics.api.evaluation.UpdateEvaluationNameRequest; import de.eshg.statistics.api.evaluation.UpdateEvaluationTimeRangeRequest; import de.eshg.statistics.api.report.GetReportSeriesEntriesOfEvaluationResponse; import de.eshg.statistics.api.report.ReportSeriesDto; -import de.eshg.statistics.config.OriginalDataAccessConfig; +import de.eshg.statistics.config.StatisticsConfig; +import de.eshg.statistics.config.StatisticsConfig.BusinessModuleConfig; +import de.eshg.statistics.config.StatisticsFeature; +import de.eshg.statistics.config.StatisticsFeatureToggle; import de.eshg.statistics.datatransfer.AnalysisTemplateData; import de.eshg.statistics.datatransfer.DiagramTemplateData; import de.eshg.statistics.datatransfer.EvaluationTemplateData; @@ -86,7 +91,6 @@ import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.Stream; import org.hibernate.Hibernate; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; @@ -98,29 +102,34 @@ import org.springframework.util.CollectionUtils; @Service public class EvaluationService extends AbstractAggregationResultService { - private static final String EVALUATION_WITH_ID_NOT_FOUND = "Evaluation with id '%s' not found"; + private static final String EVALUATION_WITH_ID_NOT_FOUND = "Evaluation with given id not found"; private final EvaluationRepository evaluationRepository; private final StatisticsUserService userService; private final EvaluationTemplateService evaluationTemplateService; + private final DataSourceAggregationService dataSourceAggregationService; private final DataSourceValidator dataSourceValidator; - private final OriginalDataAccessConfig originalDataAccessConfig; + private final BusinessModuleConfig businessModuleConfig; + private final StatisticsFeatureToggle statisticsFeatureToggle; public EvaluationService( DataAggregationService dataAggregationService, TableRowRepository tableRowRepository, - @Value("${eshg.statistics.tablerows.pagesize:500}") int tableRowPageSize, EvaluationRepository evaluationRepository, StatisticsUserService userService, EvaluationTemplateService evaluationTemplateService, + DataSourceAggregationService dataSourceAggregationService, DataSourceValidator dataSourceValidator, - OriginalDataAccessConfig originalDataAccessConfig) { - super(dataAggregationService, tableRowRepository, tableRowPageSize); + StatisticsConfig statisticsConfig, + StatisticsFeatureToggle statisticsFeatureToggle) { + super(dataAggregationService, tableRowRepository, statisticsConfig); this.evaluationRepository = evaluationRepository; this.userService = userService; this.evaluationTemplateService = evaluationTemplateService; + this.dataSourceAggregationService = dataSourceAggregationService; this.dataSourceValidator = dataSourceValidator; - this.originalDataAccessConfig = originalDataAccessConfig; + this.businessModuleConfig = statisticsConfig.businessModule(); + this.statisticsFeatureToggle = statisticsFeatureToggle; } @Override @@ -131,15 +140,14 @@ public class EvaluationService extends AbstractAggregationResultService { public Evaluation getEvaluationInternal(UUID evaluationId) { return evaluationRepository .findByExternalId(evaluationId) - .orElseThrow( - () -> new NotFoundException(EVALUATION_WITH_ID_NOT_FOUND.formatted(evaluationId))); + .orElseThrow(() -> new NotFoundException(EVALUATION_WITH_ID_NOT_FOUND)); } @Transactional(readOnly = true) public void checkPermissionForEvaluation(UUID evaluationId) { Evaluation evaluation = getEvaluationInternal(evaluationId); if (accessNotAllowed(evaluation)) { - throw new NotFoundException(EVALUATION_WITH_ID_NOT_FOUND.formatted(evaluationId)); + throw new NotFoundException(EVALUATION_WITH_ID_NOT_FOUND); } } @@ -152,7 +160,7 @@ public class EvaluationService extends AbstractAggregationResultService { return businessModules.stream() .anyMatch( businessModule -> - !originalDataAccessConfig.originalDataAllowedForCurrentUser(businessModule)); + !businessModuleConfig.sensitiveDataAllowedForCurrentUser(businessModule)); } else { return false; } @@ -197,17 +205,29 @@ public class EvaluationService extends AbstractAggregationResultService { EvaluationTemplateMapper.mapToDataSourceDto( evaluationTemplate.getDataSources().getFirst()); } + + List<AvailableDataSource> availableDataSources = + dataSourceValidator.validateDataSourcesAndGetRelevantAvailableDataSources( + List.of(dataSource)); + DataSourceSensitivity sensitivity = + DataSourceValidator.getMostRestrictiveSensitivity(availableDataSources); if (!anonymized - && !originalDataAccessConfig.originalDataAllowedForCurrentUser( + && sensitivity.equals(DataSourceSensitivity.SENSITIVE) + && !businessModuleConfig.sensitiveDataAllowedForCurrentUser( dataSource.businessModuleName())) { throw new BadRequestException( "Only anonymous evaluations allowed for data source '%s'".formatted(dataSource.id())); } - dataSourceValidator.validateDataSourcesAndGetRelevantAvailableDataSources(List.of(dataSource)); + if (anonymized + && !DataSourceValidator.getCanBeAnonymized(availableDataSources) + && !statisticsFeatureToggle.isNewFeatureEnabled(StatisticsFeature.FAKE_ANONYMIZATION)) { + throw new BadRequestException( + "Data source '%s' cannot be anonymized".formatted(dataSource.id())); + } Evaluation evaluation = dataAggregationService.createEvaluation( - dataSource, name, timeRangeStart, timeRangeEnd, anonymized); + dataSource, name, timeRangeStart, timeRangeEnd, sensitivity, anonymized); if (evaluationTemplate != null) { evaluationTemplate .getAnalysisTemplates() @@ -251,6 +271,8 @@ public class EvaluationService extends AbstractAggregationResultService { AggregationResultUtil.validateTimeRange( updateEvaluationTimeRangeRequest.timeRange().start(), updateEvaluationTimeRangeRequest.timeRange().end()); + AggregationResultUtil.validateSameSensitivityPossible( + evaluation, dataSourceAggregationService.getAvailableDataSources().availableDataSources()); evaluation.setTimeRangeStart(updateEvaluationTimeRangeRequest.timeRange().start()); evaluation.setTimeRangeEnd(updateEvaluationTimeRangeRequest.timeRange().end()); @@ -273,7 +295,7 @@ public class EvaluationService extends AbstractAggregationResultService { public GetEvaluationsResponse getEvaluations(GetEvaluationsRequest getEvaluationsRequest) { List<Specification<Evaluation>> specifications = new ArrayList<>(); GetEvaluationsFilterOptions filterOptions = getEvaluationsRequest.filterOptions(); - addAnonymizationSpecification(specifications, filterOptions); + addDataSensitivitySpecification(specifications, filterOptions); if (filterOptions != null) { addStatesSpecification(specifications, filterOptions.states()); addDataSourcesSpecification(specifications, filterOptions.dataSourceIds()); @@ -304,34 +326,48 @@ public class EvaluationService extends AbstractAggregationResultService { evaluation -> isTooMuchDataForExportFunction().apply(evaluation)); } - private void addAnonymizationSpecification( + private void addDataSensitivitySpecification( List<Specification<Evaluation>> specifications, GetEvaluationsFilterOptions filterOptions) { - if (filterOptions == null || filterOptions.anonymizationValue() == null) { + if (filterOptions == null || CollectionUtils.isEmpty(filterOptions.dataSensitivities())) { specifications.add( Specification.anyOf( - anonymousEvaluations(), - nonAnonymousEvaluations( - originalDataAccessConfig.getBusinessModulesOriginalDataAllowedForCurrentUser()))); + equalsDataSensitivitySpecification(StatisticsDataSensitivity.ANONYMOUS), + equalsDataSensitivitySpecification(StatisticsDataSensitivity.INTERNAL_USAGE), + sensitiveEvaluations( + businessModuleConfig.getBusinessModulesSensitiveDataAllowedForCurrentUser()))); } else { - if (Boolean.TRUE.equals(filterOptions.anonymizationValue())) { - specifications.add(anonymousEvaluations()); - } else { - specifications.add( - nonAnonymousEvaluations( - originalDataAccessConfig.getBusinessModulesOriginalDataAllowedForCurrentUser())); - } + List<Specification<Evaluation>> dataSensitivitySpecifications = new ArrayList<>(); + filterOptions + .dataSensitivities() + .forEach( + dataSensitivity -> { + switch (dataSensitivity) { + case ANONYMOUS -> + dataSensitivitySpecifications.add( + equalsDataSensitivitySpecification(StatisticsDataSensitivity.ANONYMOUS)); + case INTERNAL_USAGE -> + dataSensitivitySpecifications.add( + equalsDataSensitivitySpecification( + StatisticsDataSensitivity.INTERNAL_USAGE)); + case SENSITIVE -> + dataSensitivitySpecifications.add( + sensitiveEvaluations( + businessModuleConfig + .getBusinessModulesSensitiveDataAllowedForCurrentUser())); + } + }); + specifications.add(Specification.anyOf(dataSensitivitySpecifications)); } } - private Specification<Evaluation> anonymousEvaluations() { + private Specification<Evaluation> equalsDataSensitivitySpecification( + StatisticsDataSensitivity dataSensitivity) { return (root, query, criteriaBuilder) -> criteriaBuilder.equal( - root.get(AbstractAggregationResult_.DATA_SENSITIVITY), - StatisticsDataSensitivity.ANONYMOUS); + root.get(AbstractAggregationResult_.DATA_SENSITIVITY), dataSensitivity); } - private Specification<Evaluation> nonAnonymousEvaluations( - Set<String> allowedBusinessModuleNames) { + private Specification<Evaluation> sensitiveEvaluations(Set<String> allowedBusinessModuleNames) { return (root, query, criteriaBuilder) -> { Assert.notNull(query, "CriteriaQuery must not be null"); Subquery<TableColumn> subquery = query.subquery(TableColumn.class); @@ -351,19 +387,13 @@ public class EvaluationService extends AbstractAggregationResultService { subquery.where( criteriaBuilder.and(tableColumnMemberPredicate, businessModuleNotAllowedPredicate)); - Predicate internalPredicate = - criteriaBuilder.equal( - root.get(AbstractAggregationResult_.DATA_SENSITIVITY), - StatisticsDataSensitivity.INTERNAL_USAGE); Predicate sensitivePredicate = criteriaBuilder.equal( root.get(AbstractAggregationResult_.DATA_SENSITIVITY), StatisticsDataSensitivity.SENSITIVE); - return criteriaBuilder.or( - internalPredicate, - criteriaBuilder.and( - sensitivePredicate, criteriaBuilder.not(criteriaBuilder.exists(subquery)))); + return criteriaBuilder.and( + sensitivePredicate, criteriaBuilder.not(criteriaBuilder.exists(subquery))); }; } @@ -635,7 +665,7 @@ public class EvaluationService extends AbstractAggregationResultService { return new GetReportSeriesEntriesOfEvaluationResponse( evaluation.getExternalId(), evaluation.getName(), - evaluation.getDataSensitivity().equals(StatisticsDataSensitivity.ANONYMOUS), + EvaluationMapper.mapToApi(evaluation.getDataSensitivity()), reportSeriesDtos, resolvedUsers); } diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/InspectionSimulator.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/InspectionSimulator.java index 1afbc1b86a4f501ab2586f5c2ab69f1d7cd550a0..9a4e34122ab4566f4e736bc36ae6b51b1c88afa1 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/InspectionSimulator.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/InspectionSimulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportController.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportController.java index ed9061252ce4de6f4cd05b354dc680eadf9f098e..55c72cd99fbc05b0e6b9539386fd945d8925a8de 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportExecution.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportExecution.java index f8295c63330e37ed8649da05674475125c31877e..caa99471c86f57ecff037add76fadad6a2538774 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportExecution.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportExecution.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesController.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesController.java index d73420590c0c6c117174b1d00b5b89e2e5f6f05d..a2bc5f59bb7d8c5a4dec9c45f93adb80d0974294 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesExecution.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesExecution.java index 62946ea0a89e8b110393ec6ccb44069408053d09..09957dce2ba7eb66cd3f28ca884124acc4f3bcf3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesExecution.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesExecution.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesService.java index a60800647904b3505fd8af82b6aa2f0bdf8646b1..552f670e11d67a243235561cc795fb16ab5e43e4 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportSeriesService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -19,6 +19,7 @@ import de.eshg.statistics.api.report.AddManualReportSeriesRequest; import de.eshg.statistics.api.report.GetReportsFilterOptions; import de.eshg.statistics.api.report.GetReportsRequest; import de.eshg.statistics.api.report.GetReportsResponse; +import de.eshg.statistics.api.report.ReportDataSensitivity; import de.eshg.statistics.api.report.ReportSeriesDto; import de.eshg.statistics.api.report.ReportTypeDto; import de.eshg.statistics.api.report.UpdateReportSeriesRequest; @@ -36,6 +37,7 @@ import de.eshg.statistics.persistence.entity.report.ReportSeries_; import de.eshg.statistics.persistence.entity.report.ReportType; import de.eshg.statistics.persistence.entity.report.Report_; import de.eshg.statistics.persistence.repository.ReportSeriesRepository; +import jakarta.persistence.criteria.CriteriaQuery; import jakarta.persistence.criteria.Expression; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.Predicate; @@ -45,8 +47,10 @@ import java.time.Clock; import java.time.LocalDate; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; @@ -64,16 +68,19 @@ import org.springframework.util.CollectionUtils; public class ReportSeriesService { private final ReportSeriesRepository reportSeriesRepository; private final EvaluationService evaluationService; + private final DataSourceAggregationService dataSourceAggregationService; private final StatisticsUserService userService; private final Clock clock; public ReportSeriesService( ReportSeriesRepository reportSeriesRepository, EvaluationService evaluationService, + DataSourceAggregationService dataSourceAggregationService, StatisticsUserService userService, Clock clock) { this.reportSeriesRepository = reportSeriesRepository; this.evaluationService = evaluationService; + this.dataSourceAggregationService = dataSourceAggregationService; this.userService = userService; this.clock = clock; } @@ -92,6 +99,8 @@ public class ReportSeriesService { throw new BadRequestException("Reports are only allowed for non-sensitive evaluations"); } validateIsNotDeleting(evaluation); + AggregationResultUtil.validateSameSensitivityPossible( + evaluation, dataSourceAggregationService.getAvailableDataSources().availableDataSources()); ReportSeries reportSeries = switch (addReportSeriesRequest) { @@ -191,10 +200,7 @@ public class ReportSeriesService { private ReportSeries getReportSeriesInternal(UUID reportSeriesId) { return reportSeriesRepository .findByExternalId(reportSeriesId) - .orElseThrow( - () -> - new NotFoundException( - "Report series with id '%s' not found".formatted(reportSeriesId))); + .orElseThrow(() -> new NotFoundException("Report series with given id not found")); } @Transactional @@ -301,6 +307,10 @@ public class ReportSeriesService { addAtLeastOneCompletedReportSpecification(specifications); GetReportsFilterOptions filterOptions = getReportsRequest.filterOptions(); + List<ReportDataSensitivity> dataSensitivities = + Optional.ofNullable(getReportsRequest.filterOptions()) + .map(GetReportsFilterOptions::dataSensitivities) + .orElse(Collections.emptyList()); if (filterOptions != null) { addReportTypeSpecification(specifications, filterOptions.reportType()); addDataSourcesSpecification(specifications, filterOptions.dataSourceIds()); @@ -311,6 +321,7 @@ public class ReportSeriesService { OverviewSpecifications.<ReportSeries>nameSpecification( filterOptions.name(), AbstractAggregationResult_.NAME) .ifPresent(specifications::add); + addAtLeastOneDataSensitivityMatchSpecification(specifications, dataSensitivities); } Page<ReportSeries> relevantReportSeriesPage = @@ -324,7 +335,10 @@ public class ReportSeriesService { BaseEntity_.ID))); List<ReportSeriesDto> reportSeriesDtos = - relevantReportSeriesPage.get().map(this::mapReportSeriesForOverview).toList(); + relevantReportSeriesPage + .get() + .map(reportSeries -> mapReportSeriesForOverview(reportSeries, dataSensitivities)) + .toList(); Map<UUID, UserDto> resolvedUsers = userService.getResolvedUsers( @@ -339,7 +353,7 @@ public class ReportSeriesService { specifications.add( (root, query, criteriaBuilder) -> { - Assert.notNull(query, "CriteriaQuery must not be null"); + assertQuery(query); Subquery<Report> subquery = query.subquery(Report.class); Root<Report> reportRoot = subquery.from(Report.class); @@ -355,6 +369,10 @@ public class ReportSeriesService { }); } + private static void assertQuery(CriteriaQuery<?> query) { + Assert.notNull(query, "CriteriaQuery must not be null"); + } + private void addReportTypeSpecification( List<Specification<ReportSeries>> specifications, ReportTypeDto reportType) { if (reportType == null) { @@ -374,7 +392,7 @@ public class ReportSeriesService { } specifications.add( (root, query, criteriaBuilder) -> { - Assert.notNull(query, "CriteriaQuery must not be null"); + assertQuery(query); Join<ReportSeries, Evaluation> evaluationJoin = root.join(ReportSeries_.EVALUATION); Subquery<TableColumn> subquery = query.subquery(TableColumn.class); @@ -394,10 +412,43 @@ public class ReportSeriesService { }); } - private ReportSeriesDto mapReportSeriesForOverview(ReportSeries reportSeries) { + private void addAtLeastOneDataSensitivityMatchSpecification( + List<Specification<ReportSeries>> specifications, + List<ReportDataSensitivity> dataSensitivities) { + if (CollectionUtils.isEmpty(dataSensitivities)) { + return; + } + specifications.add( + (root, query, criteriaBuilder) -> { + assertQuery(query); + Subquery<Report> subquery = query.subquery(Report.class); + Root<Report> reportRoot = subquery.from(Report.class); + + subquery.select(reportRoot); + subquery.where( + criteriaBuilder.and( + reportRoot + .get(AbstractAggregationResult_.DATA_SENSITIVITY) + .in(dataSensitivities.stream().map(ReportMapper::mapToPersistence).toList()), + criteriaBuilder.equal(reportRoot.get(Report_.REPORT_SERIES), root))); + + return criteriaBuilder.exists(subquery); + }); + } + + private ReportSeriesDto mapReportSeriesForOverview( + ReportSeries reportSeries, List<ReportDataSensitivity> dataSensitivities) { Stream<Report> reportStream = reportSeries.getReports().stream() .filter(report -> report.getState().equals(AggregationResultState.COMPLETED)); + + if (!dataSensitivities.isEmpty()) { + reportStream = + reportStream.filter( + report -> + dataSensitivities.contains(ReportMapper.mapToApi(report.getDataSensitivity()))); + } + return ReportMapper.mapToApi( reportSeries, reportStream, diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportService.java index fb1fd9e6de62372de286497f11de333f2a68b8c5..7f6a6aca352b4053705aaa7a7da926ca1aca1892 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/ReportService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -22,6 +22,7 @@ import de.eshg.statistics.api.filter.TableColumnFilterParameter; import de.eshg.statistics.api.filter.TextFilterParameterDto; import de.eshg.statistics.api.filter.ValueOptionFilterParameterDto; import de.eshg.statistics.api.report.GetReportDetailPageResponse; +import de.eshg.statistics.config.StatisticsConfig; import de.eshg.statistics.mapper.AnalysisMapper; import de.eshg.statistics.mapper.EvaluationMapper; import de.eshg.statistics.mapper.FilterParameterMapper; @@ -56,7 +57,6 @@ import java.util.UUID; import org.hibernate.Hibernate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -73,13 +73,13 @@ public class ReportService extends AbstractAggregationResultService { public ReportService( DataAggregationService dataAggregationService, TableRowRepository tableRowRepository, - @Value("${eshg.statistics.tablerows.pagesize:500}") int tableRowPageSize, + StatisticsConfig statisticsConfig, ReportRepository reportRepository, ReportSeriesRepository reportSeriesRepository, StatisticsUserService userService, Clock clock, AnalysisService analysisService) { - super(dataAggregationService, tableRowRepository, tableRowPageSize); + super(dataAggregationService, tableRowRepository, statisticsConfig); this.reportRepository = reportRepository; this.reportSeriesRepository = reportSeriesRepository; this.userService = userService; @@ -95,8 +95,7 @@ public class ReportService extends AbstractAggregationResultService { public Report getReportInternal(UUID reportId) { return reportRepository .findByExternalId(reportId) - .orElseThrow( - () -> new NotFoundException("Report with id '%s' not found".formatted(reportId))); + .orElseThrow(() -> new NotFoundException("Report with given id not found")); } static Report createReport( @@ -121,7 +120,6 @@ public class ReportService extends AbstractAggregationResultService { ? AggregationResultPendingState.DATA_AGGREGATION : null); report.setExecutionDate(executionDate); - // TODO reevaluate data sensitivity from available data sources report.setDataSensitivity(evaluation.getDataSensitivity()); report.addTableColumns( @@ -158,7 +156,8 @@ public class ReportService extends AbstractAggregationResultService { resolvedUsers.get(reportSeriesUserId), resolvedUsers.get(report.getCreatedByUserId()), analyses, - ReportMapper.mapToReportTypeDto(report.getReportSeries().getReportType())); + ReportMapper.mapToReportTypeDto(report.getReportSeries().getReportType()), + ReportMapper.mapToApi(report.getDataSensitivity())); } public static void validateReportCompleted(Report report) { diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/SchoolEntrySimulator.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/SchoolEntrySimulator.java index d01c8fcc5912591b4c155203edfcdbc8298ab234..484fa88f99c5abc6a2b895f05982276074f2aabb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/SchoolEntrySimulator.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/SchoolEntrySimulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/StatisticsExecutorService.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/StatisticsExecutorService.java index ec078b2cbec00166f3af8c13a0a82468c288c8a6..dea87910bde3cd2cabb26f241da4b93eb722e176 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/StatisticsExecutorService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/StatisticsExecutorService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/TableRowSpecifications.java b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/TableRowSpecifications.java index 6ba2a431b82f0f033f219dab582437fc85bdd604..2b15f3aaf96e246a60d6e302e3cea5f508d5cd63 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/aggregation/TableRowSpecifications.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/aggregation/TableRowSpecifications.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/AddAnalysisRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/AddAnalysisRequest.java index efa3a4badf6d457724c820edb12776570b0f90db..63d24c51397d8cee60932071e8826920ecf1c34d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/AddAnalysisRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/AddAnalysisRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/AddDiagramRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/AddDiagramRequest.java index 9bca1b627f79ffc79c7642c9e109488ceb7de9e0..f015f5f4935b2cdbe41322195774f91ca9ec4bf6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/AddDiagramRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/AddDiagramRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisDto.java index e5e844c48baaca5f1455dc7967f795c63050c00f..bdc0006b30729d488ea682b8d8ceedff8b244dc1 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisWithDiagrams.java b/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisWithDiagrams.java index 8d921d3ae4119ffb7825a46d379385dd71bdae78..16edc354703a1fb60393d4f2be8ad54bba71c8c3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisWithDiagrams.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/AnalysisWithDiagrams.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/AttributeSelectionDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/AttributeSelectionDto.java index 7eead66974ec0cf01f5ba541b4a06db5a056a56b..028ed33ef06d8509ee119bacec39fc82e56ef405 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/AttributeSelectionDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/AttributeSelectionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/DateSpan.java b/backend/statistics/src/main/java/de/eshg/statistics/api/DateSpan.java index 4866eca8aaa8c3b9414a2df32d72ac42a8826576..1670249de9d4f650d62a3dfa115fc35736e7fe2e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/DateSpan.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/DateSpan.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/GetDetailPageInformationResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/GetDetailPageInformationResponse.java index 2805db7577d6c997487d0c51481d1772065e581f..9c6225678d2c7554edd855bc35536224f6a3067f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/GetDetailPageInformationResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/GetDetailPageInformationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/GetStatisticsFeatureTogglesResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/GetStatisticsFeatureTogglesResponse.java index 05e7904acbe6e189001b0f3c61dc1412a55fbca8..134e792a74581dac014611ea33e142904f96870f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/GetStatisticsFeatureTogglesResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/GetStatisticsFeatureTogglesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/RepositoryMetaInfo.java b/backend/statistics/src/main/java/de/eshg/statistics/api/RepositoryMetaInfo.java index 6ce22f8d0602e841ca70b3789154fafe142fe7e2..a6308506ed7063df93ff1877fe2d2a1f49b38bf7 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/RepositoryMetaInfo.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/RepositoryMetaInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/TableColumnHeader.java b/backend/statistics/src/main/java/de/eshg/statistics/api/TableColumnHeader.java index b67274da52476d259e02cb697847927e5339eab8..3b9d07c82ebd9714c75fd6cb90b8df473fdc55fd 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/TableColumnHeader.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/TableColumnHeader.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/TimeRange.java b/backend/statistics/src/main/java/de/eshg/statistics/api/TimeRange.java index 90dd355deb70b9266b61fbfa1fe68b43002bec97..f6d7d4ff15507e4082d2a8b88dbb35c61196f85a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/TimeRange.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/TimeRange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/UpdateAnalysisRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/UpdateAnalysisRequest.java index 62ee2aa7d7f96b4b702d2759fc451e54b6c606b0..197d146c449a05813cf828047cb08d005de20022 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/UpdateAnalysisRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/UpdateAnalysisRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/ValidTimeRange.java b/backend/statistics/src/main/java/de/eshg/statistics/api/ValidTimeRange.java index 0a90f4d489a3b3db81013e75b3941c62d1b0c952..499c81bc536c8d5addad13ffa1359a72378e5a7e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/ValidTimeRange.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/ValidTimeRange.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/AbstractTableColumnHeaderAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/AbstractTableColumnHeaderAttribute.java index f17d08a312b1a458ab6fd28867b35f320f2d4ea1..da4e160476e5b1d8e88f39708081268020acfe9d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/AbstractTableColumnHeaderAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/AbstractTableColumnHeaderAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/BooleanAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/BooleanAttribute.java index 1c5a4d426fe66de06abdfda5be1b1d30ed0da385..184883ce4364a1d37968aeecf6fb97b0f355fd4a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/BooleanAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/BooleanAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/CentralFileIdAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/CentralFileIdAttribute.java index 586e29b21fece24858ed5c00eeee8bc9355a93d0..dc014d7dfc851a1d994b7c33e81b0e056a2fbdee 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/CentralFileIdAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/CentralFileIdAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DateAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DateAttribute.java index c9ca1e397ca212830e5706af94be3a9b1b19a60b..d3ff37bc08c2e30acaba98ec008049bfc66a1f00 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DateAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DateAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DecimalAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DecimalAttribute.java index 1213e4dae3081ea118625ec6e9ebf70641f47712..df63393182081072abba3302675559a40177cc02 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DecimalAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/DecimalAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/IntegerAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/IntegerAttribute.java index 45b561ec5d3f25df282553ae1bd82aaa0c577098..cde2027d2fa9bb5873c57480ff725c861625119f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/IntegerAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/IntegerAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ProcedureIdAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ProcedureIdAttribute.java index fd85be3e317e74e7eb320693fa04bc382d05719d..9605bd2028a62afc4cf50ddec976f24f3394393e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ProcedureIdAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ProcedureIdAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/TextAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/TextAttribute.java index 690e6788ca876ea84922db2b4fba9e077381a845..04428b5f2f0bdd64fe7747104278ab8d5cfb2409 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/TextAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/TextAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueOption.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueOption.java index 8701a1c18fce230bc47a89c518cd2adc886223ee..4e11c049b354718097c96515e0956f564c8baadd 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueOption.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueOption.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueWithOptionsAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueWithOptionsAttribute.java index 4404cbdf0872c4bad6b74edb92258969ee19bb31..5e51c9b7a59510111b27f666f51bd3282a34c5bf 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueWithOptionsAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/attributes/ValueWithOptionsAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChartConfigurationDto.java index 022330e9329e4dfb37c20eb49c674ca7f3689997..bef44cee31667b8033fda7b123a7c6ee1dba61fa 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChoroplethMapConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChoroplethMapConfigurationDto.java index 1a61fa548be33f77c4335dc52b9d938b1f5832f5..5b195c4f1deaaed0ee15e0c4cab755a16554b98c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChoroplethMapConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/AddChoroplethMapConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BarChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BarChartConfigurationDto.java index 5bd01a335b67cf04950a4d586dfe436bbdbdd950..08eca943a550e4584571a1feadce5a2788ace531 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BarChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BarChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BinningModeDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BinningModeDto.java index 0922eb74d90a5f1113176945a7d66f1466ae3925..737da935bbca9e4a8e4a652436ce3933aefc757f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BinningModeDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/BinningModeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/CalculationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/CalculationDto.java index 409445f4f0ff3fc4273cf06b2c90239cbbb0c3c2..5a6a11798deb5542687b5d22c79619d020c61411 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/CalculationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/CalculationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChartConfigurationDto.java index bc587a0f20bbf2bb1a540d98a7478f354c678532..65ffcd937936618dd4d2044b1d706d6b5818f660 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChoroplethMapConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChoroplethMapConfigurationDto.java index c099a4cb37142c851d1e93fd1d12ec4777456042..a6bfc26c4c6d65d0ce7f4329a3765a0eef52eb07 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChoroplethMapConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ChoroplethMapConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/GroupingDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/GroupingDto.java index fe6de71448458cc74f98d930c3e6f68f7f4818fb..22c3b56920e23364fcd9b80bf482c21183704177 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/GroupingDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/GroupingDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/HistogramChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/HistogramChartConfigurationDto.java index a0a89d23c6c1640b562fb1feec6a1e26b56ec7e4..e5e0cad2d3c91718d25a8b05adb2b7698c958676 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/HistogramChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/HistogramChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/LineChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/LineChartConfigurationDto.java index 33520bf180479569254b51a85ec813d80e1c0fec..f5b275e31b4f5974a68301861ba2d6a038ea1c45 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/LineChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/LineChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/OrientationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/OrientationDto.java index 88c5424c112818e626b2035436018417b6b2be1d..19c119daf7dd9790e608c5bc8c517dddfd3994bb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/OrientationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/OrientationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PieChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PieChartConfigurationDto.java index e7583103a2960cc90dce8bed131cbb2c81a0e9ea..549a111f672a64290d20f00450cf066b30ae7686 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PieChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PieChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PointBasedChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PointBasedChartConfigurationDto.java index 514caf225d6297e26758ae73a1cc77a605f97696..9052971e105625e3d083291c0e0ca08f31df56bb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PointBasedChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/PointBasedChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/RangeDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/RangeDto.java index ff9e74806a287c09bb6fbd00e7f7a3ed50dd6853..febf044d6481b33f423e2b9c2af002f0605e6e48 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/RangeDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/RangeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScalingDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScalingDto.java index 0013b1d80650fb835c60aa79f592f82a1eb0629f..90345e7accf57b754fa9122813d5b82a50621ecf 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScalingDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScalingDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScatterChartConfigurationDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScatterChartConfigurationDto.java index 2648657b4db05eebfbf198a66f905cbbd029f14f..0c7469c65ff93b0fa2d5b4f15cc302e11e9a394d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScatterChartConfigurationDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/chart/ScatterChartConfigurationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfAttribute.java index 5775bd89d809be64c33fef0428b598022ab81ec6..51351ab63af4da311387e3b24ef607db14df5678 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBaseAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBaseAttribute.java index 7edb633a80f205079fe54973e81a2c1175a5b475..3af26c13a1edcbcc9fb46e3cef9be8ce244be2d8 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBaseAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBaseAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBusinessAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBusinessAttribute.java index 6535f82f4e8da69a09696c7e71268f5cd65f4ad3..bc980c5ed82a66ee53b08d88d51a17eee1886af1 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBusinessAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/CompletenessOfBusinessAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/GetCompletenessDataResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/GetCompletenessDataResponse.java index 6b1c77a654f35aa42394df3dd3a55d0c57a978bd..08d1e47df6397d92efa9a6fea39301cf3bcba5ac 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/GetCompletenessDataResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/completeness/GetCompletenessDataResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/AvailableDataSource.java b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/AvailableDataSource.java index 379c78138e2a49c8b0fc8df68af80070e38bc1f8..fc678b13171619e2faad41722b8519bf064e2fc3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/AvailableDataSource.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/AvailableDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,7 +14,7 @@ import java.util.UUID; public record AvailableDataSource( @NotNull String businessModuleName, - @NotNull boolean withoutAnonymizationAllowed, + @NotNull boolean sensitiveDataAllowed, @NotNull UUID id, @NotBlank String name, @NotNull DataSourceSensitivity sensitivity, diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BaseDataSourceAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BaseDataSourceAttribute.java index 7e71be1d0aa170f592b758ce0b3ea9569eb2ff82..d3b450677b71292e6382cc4df86411628167adc8 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BaseDataSourceAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BaseDataSourceAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataAttribute.java index 4b3cfd7c06681f5ced5d7d38cd492556f3108a16..38c649a2caabf86e4078efd55f007a029cf2f8e6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataSourceAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataSourceAttribute.java index 59b5d404534ad59b91faca3867a2220cfb865108..82d062773812173c230b31a2a257d4cb39f3098d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataSourceAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/BusinessDataSourceAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/DataSourceDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/DataSourceDto.java index b6949fbd3e7a48b4871537787bb3cb85e355f70c..f0a76c53acd3fb70b4095de2d126692ae33dcc6b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/DataSourceDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/DataSourceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/GetAvailableDataSourcesResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/GetAvailableDataSourcesResponse.java index 87c621abff9459f54e3d5d28a1d46d9a6fedb897..112e36cabe4953995f33d2045071a114a26b2bec 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/GetAvailableDataSourcesResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/datasource/GetAvailableDataSourcesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarChartDataDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarChartDataDto.java index a57334c5f4a2dfae49f8496d2654415984469d50..ed6d9ac55ab10c5bc62c12fbcf1c024dc383d349 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarChartDataDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarChartDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarGroupDataDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarGroupDataDto.java index ed67cbf8190cbef4ec2700c491073ff37e1031c6..92aab201d8e7dee77d06ada9b884b0435db1521f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarGroupDataDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/BarGroupDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ChoroplethMapDataDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ChoroplethMapDataDto.java index f01d6b79ba1f4fa4947fe18a9680f7a8b0057c28..45b52e9815da9c59306a92d485ce4056e6f098c6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ChoroplethMapDataDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ChoroplethMapDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointDto.java index c14f30141be454c43807a7b7c4661253cadc841c..f842857da6d1ff7bcacd82545c152012fc93a0ac 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointGroupDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointGroupDto.java index 28b1ff3ae67ff5abd25abd652777d756875e04ea..4492ff7e3e59c9e9a7946a013e814ed682ca9d28 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointGroupDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DataPointGroupDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDataDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDataDto.java index 826c8eddddfb609726cb95620089d35a80b581f0..ef183925ee78894884002c860a962c595004a7bb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDataDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDto.java index 95a1aeae3c755d45b68f5b62e08274e43dcaec53..ab0ac7fed424bf3b4304b0a4eb573b402a851199 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/DiagramDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramBinDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramBinDto.java index 166899bd57a8ab5dd1e0be313576a0e929cc2945..d86d4a7ceda5235496ba21490bc36462c6a28687 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramBinDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramBinDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataCategorizedDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataCategorizedDto.java index 56a530123a769a7ada1dbe163319a4915736c9e4..f89a2926ffc559db7252e0727ee429fc9197071d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataCategorizedDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataCategorizedDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataSimpleDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataSimpleDto.java index 4fd6cc17afe0e50cdb62b8198bd92269db55161b..1a71a9f40cc59cc9409b54cdb9f47712f2feaa3f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataSimpleDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramChartDataSimpleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataCategorizedDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataCategorizedDto.java index a1ff81f570573c4f605018878b4d04ef374d5347..cb3a8bf525a90fd2a4f1c2cd5e15f9db73d84c27 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataCategorizedDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataCategorizedDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataSimpleDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataSimpleDto.java index 2d064a7131c974f701fc42cc558a38845d351310..89629edfdc693d9473b359365c4df3a8224e5a8b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataSimpleDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/HistogramGroupDataSimpleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToCountDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToCountDto.java index f8c5fd0c4a4109869425a863d7bf99f64cac06f5..c4dbcd36032557bd6a3e03ed9d42ee29d9938d89 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToCountDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToCountDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToValueDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToValueDto.java index dbeba4fb39787c9728a62a2497fac4d066fc6e6b..d7ab6786d2b87276a7da9720a3eab24ad285b4fd 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToValueDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/KeyToValueDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataCategorizedDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataCategorizedDto.java index 072b640e9e0a92bb824763feb46419bff795fd94..85fde9f764a4bdaf854064b071f2308b3faa1e90 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataCategorizedDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataCategorizedDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataSimpleDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataSimpleDto.java index 614a17f1e42138c33f12939017fb8866bc2e46fb..d31674898d8cb68112aff6511ceb37b39fbcbae1 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataSimpleDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/LineChartDataSimpleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/PieChartDataDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/PieChartDataDto.java index e91c0838b58cceff09be4ea50491a31ec612447b..39a430ac9693648bb90ba083f5bdc240db1f7321 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/PieChartDataDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/PieChartDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataCategorizedDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataCategorizedDto.java index 0d57c380f1e0e52f89da01f574d5bd0b1ca9ded1..20adbb3d0753d3b13d2f8359571f382290f4b582 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataCategorizedDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataCategorizedDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataSimpleDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataSimpleDto.java index 7771302a1a6133c1f36100471aacb5cdddfa628e..8400e4eec955ef40256d181bdf86c20b8ff90084 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataSimpleDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/ScatterChartDataSimpleDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/TrendLineDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/TrendLineDto.java index 4e06c6864fe93976b11e50565e712cb0aea0ccc9..9bcbfaaf96a2f487f702d07d0364513730623b89 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/TrendLineDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/TrendLineDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/UpdateDiagramRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/UpdateDiagramRequest.java index 720603f874d49e30928e0b054f77531aeb653e0e..7a6357a565a8d0f8911b86cdb32cfa7e4a523f9f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/UpdateDiagramRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/diagram/UpdateDiagramRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractAddEvaluationRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractAddEvaluationRequest.java index d5b30302d8ce38b75c0811d0a5a9aec5b74f7aad..4901cf1caeef8287a82288cf918e3c3d95af797f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractAddEvaluationRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractAddEvaluationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractUpdateEvaluationRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractUpdateEvaluationRequest.java index 89ed6f2cd672502899bf2e0c1ea531ca67b9cd99..a46e87b7362ca6ff975eb9ae5fb7a882dd472d56 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractUpdateEvaluationRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AbstractUpdateEvaluationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithDataSourcesRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithDataSourcesRequest.java index d3c3d53c9d666206bbcd56f91554e89224e098d7..70ec700d25ab5163533ee9cf91c73a8c531f4dc3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithDataSourcesRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithDataSourcesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithTemplateRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithTemplateRequest.java index 3ef15c5393da5ad260bc07553a69754aeef1eb5c..842b9d2a6177689daa77c78c3eea0030f069d7d9 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithTemplateRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/AddEvaluationWithTemplateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/CloneEvaluationRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/CloneEvaluationRequest.java index 768b3ca3bec051e505ecf9e9118daea347d7e3ed..e282382f7e01b4bc21fdf974da28ce3c4b7c91ec 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/CloneEvaluationRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/CloneEvaluationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationDataSensitivity.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationDataSensitivity.java new file mode 100644 index 0000000000000000000000000000000000000000..bc1201cf4658a22bf25725894b1a3b3c44a8d04f --- /dev/null +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationDataSensitivity.java @@ -0,0 +1,12 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package de.eshg.statistics.api.evaluation; + +public enum EvaluationDataSensitivity { + ANONYMOUS, + INTERNAL_USAGE, + SENSITIVE +} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationInfo.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationInfo.java index 37ba2392f08bef87f78fe44808bdbc5e6fd00f2a..5426807c0a70a02f3a7d434bc2a8a3118327b497 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationInfo.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -21,5 +21,5 @@ public record EvaluationInfo( @NotNull Instant timeRangeStart, @NotNull Instant timeRangeEnd, @NotNull Instant createdAt, - @NotNull boolean anonymized, + @NotNull EvaluationDataSensitivity dataSensitivity, @NotNull boolean tooMuchDataForExport) {} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationSortKey.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationSortKey.java index 134d3a014dc2f495e4946f466e61e3527b2ab9a6..cc0a0608528619d39f808aef44be40e5649eca62 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationSortKey.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationStateDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationStateDto.java index eb0bb696cd70ca82aecc35968b19a0c88e7d68f8..fd8bddd57bc1233f7b24a65ffff12584a0061fec 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationStateDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/EvaluationStateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationRequest.java index 6f9c71953848de33633db984c795037c3eeea71a..be3eb1f5c8c3ad3fe65248be2fc563790edc67fe 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationResponse.java index 33b702517dfd9c0de673a665d72810ac86fc5fe3..9d7f9f0480770b81f49151876f86833b94bbd71d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsFilterOptions.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsFilterOptions.java index 1d783e3f179f2a6090b9b282dfc7c27c6313cc33..f52096a1b89109f87049fd9b55720cda7d1f7bd9 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsFilterOptions.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,7 +11,7 @@ import java.util.List; import java.util.UUID; public record GetEvaluationsFilterOptions( - Boolean anonymizationValue, + List<EvaluationDataSensitivity> dataSensitivities, String name, List<EvaluationStateDto> states, List<UUID> dataSourceIds, diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsRequest.java index 8f8bdd3081cd16896f284d995cc6f5b749a25ee0..fe7cf7f74410168ab6db9fe0f33af27cb13b0b5d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsResponse.java index 85f4f052801165c0a49f9eecf7003583fc25398b..7fb8cc92b1857aa8450f42e0c30c24a84d234d05 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/GetEvaluationsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationNameRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationNameRequest.java index d4008267a8587f239a4d4b3471abbd5f21135e41..2199ce5b9327b7862628b90e22aad0650ec47c11 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationNameRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationNameRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationTimeRangeRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationTimeRangeRequest.java index aa32fb5eb7fa9797dff2c757bc00de116eb75f22..95eb6634bab03b8be50cae62917a7df9c858932f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationTimeRangeRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluation/UpdateEvaluationTimeRangeRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AbstractAddEvaluationTemplateRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AbstractAddEvaluationTemplateRequest.java index c3b7a4cb490455ca81b734dd70b295cc3489e38f..1b5ba67eaaba5c1e91692b7300aa3f43022c8b65 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AbstractAddEvaluationTemplateRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AbstractAddEvaluationTemplateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateFromEvaluationRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateFromEvaluationRequest.java index 1a5c36046a58843535719c6c51add958a52e6a5e..5fd5971cf494dc928844cc10c36c90d9a3389b70 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateFromEvaluationRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateFromEvaluationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateToRepositoryRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateToRepositoryRequest.java index 9141067de65e93352a2a1078d7f0b8f8482b306a..15cbc08d1739c7b823229f632f86df53be25ff69 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateToRepositoryRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateToRepositoryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateWithDataSourcesRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateWithDataSourcesRequest.java index 44170a49562bb3e0ab184071432fe358c5a71da5..11d38cff36b82abc064caef964f0dea5964d6307 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateWithDataSourcesRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AddEvaluationTemplateWithDataSourcesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AnalysisInfo.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AnalysisInfo.java index 9c3b68f5e63ff6f8bb18f34d839474a4dd53558a..57f3613e321f43cd1fde88e113c29b0f3b0d2574 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AnalysisInfo.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/AnalysisInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BaseDataAttributeWithName.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BaseDataAttributeWithName.java index b4679600af4533be29cb4e307ebccc013dffd94b..0c1d3474f903a724f0670aceac392b239b524f50 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BaseDataAttributeWithName.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BaseDataAttributeWithName.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BusinessDataAttributeWithName.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BusinessDataAttributeWithName.java index 5a6c71e5ab217938f99cbbe9febb1e3eb62745a1..ecdef9adb7381a2ac639994022ffcec4e20b1244 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BusinessDataAttributeWithName.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/BusinessDataAttributeWithName.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/DataSourceWithAttributeNames.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/DataSourceWithAttributeNames.java index 201e8f5b31cd2142a17f3369bef69cff06977a66..038a14ec411e59dabeca0462a52fe9cd38eb14d4 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/DataSourceWithAttributeNames.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/DataSourceWithAttributeNames.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDetailsFromRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDetailsFromRepository.java index c1a227f9461278b4868f069cd445167013b068b0..be4727b2030535d47735f6618eace85e83318607 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDetailsFromRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDetailsFromRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDto.java index 621291ba0788fb1ccaff9e721aa306254b6c4e4c..5fce756f57276419999ca243b6694bd35d70f023 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateFromRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateFromRepository.java index fc23f0dcca0f6e3f52b0ab2b5fa7e6e776c6b401..af10ae46dc03967005862109678e0a78e7e8a27e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateFromRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateFromRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateInfoDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateInfoDto.java index ad8b96f579599f66645ba82f57549e8ec4de4f4e..0896e86b38764d419580c2701d1268d6dd057678 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateInfoDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateSortKey.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateSortKey.java index 8c9ba438b56db8fea78652d9fa9aa4b3a657bc2b..2d005b829f81c6ed29716885588b0e1173c3d220 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateSortKey.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/EvaluationTemplateSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/ExpectedEvaluationTemplateDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/ExpectedEvaluationTemplateDto.java index f54481c624c86560dd8645605ece17f9d8267892..7dc0992d2ccea89a1beb32aa78c63244d286cb44 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/ExpectedEvaluationTemplateDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/ExpectedEvaluationTemplateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetAllMinimalEvaluationTemplateInfosResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetAllMinimalEvaluationTemplateInfosResponse.java index c42ce8b672cb811af4ed4d7e9bc22d30603bf0e4..e406a3bbf35a0828d101f71f7b22e293f736723e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetAllMinimalEvaluationTemplateInfosResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetAllMinimalEvaluationTemplateInfosResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFilterOptions.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFilterOptions.java index 32277b55e8905ab39e9aba83d5a7bc9c8d83677a..c0af16fd9c603a13ea566a261edb5045dddc4754 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFilterOptions.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFromRepositoryResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFromRepositoryResponse.java index 06983f25e0570f9e5f031567887f409879f158c9..237ae5f275b1441e5652c0649173ebc960a20b42 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFromRepositoryResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesFromRepositoryResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesRequest.java index 21de1009de8d50922c2dbc7103f6c4ce5f55ddb2..332384cac86080843114bebfecdbfa5711a254d9 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesResponse.java index fd9ad1165adf8ccbe058ba11a8fe7607fe970b92..c3e55bf71791087b07aef2fdc2946520a9b0a041 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/GetEvaluationTemplatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/MinimalEvaluationTemplateInfo.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/MinimalEvaluationTemplateInfo.java index 149ffcb15222afd8df851482bcd2816674bdcba0..e7fc2c0b10968e7d538781572fb65676086ae13b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/MinimalEvaluationTemplateInfo.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/MinimalEvaluationTemplateInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/TemplateSensitivityInfo.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/TemplateSensitivityInfo.java index d27ee8c6722800acea0348498ae9ca5b88a2737a..e764ca36b0f5f8fb7fc616242d8f821d233a8fcc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/TemplateSensitivityInfo.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/TemplateSensitivityInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,6 +9,6 @@ import de.eshg.lib.statistics.api.DataSourceSensitivity; import jakarta.validation.constraints.NotNull; public record TemplateSensitivityInfo( - @NotNull boolean withoutAnonymizationAllowed, + @NotNull boolean sensitiveDataAllowed, DataSourceSensitivity sensitivity, @NotNull boolean canBeAnonymized) {} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/UpdateEvaluationTemplateRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/UpdateEvaluationTemplateRequest.java index 8340d15581ad791c8d583d1802a998d2a6016a6f..3b953dc251504c1ba2d0a43884aac8f3596dc09e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/UpdateEvaluationTemplateRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/evaluationtemplate/UpdateEvaluationTemplateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/BooleanFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/BooleanFilterParameterDto.java index 7848c33e77992df8d0f7b75acc6954b9d6d3961a..e1e6905e740993f68e4086a41c574b54e91b4143 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/BooleanFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/BooleanFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalRangeFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalRangeFilterParameterDto.java index 5863824f5726827e001a33c90f430d4d9ef6650c..bc2fdc39fcbb234f584524c0d62a62676814768c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalRangeFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalRangeFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalValueFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalValueFilterParameterDto.java index 5b4fae9e4bfe61417312ba7cb14b579bc49245d8..2f5fee686ae5c323697fc110b3cc0ba99b209d9c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalValueFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/DecimalValueFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerRangeFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerRangeFilterParameterDto.java index 44f89464b11599b4c51fe3e56859aef612dac6dc..0fa73111b0810edd9eaaf55aebfd7099622b29a0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerRangeFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerRangeFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerValueFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerValueFilterParameterDto.java index af3de029f6b1dc6b4343d78286f23612f997f545..92b6e3f819dfb81bbdf70581ee6abc00dfeb605c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerValueFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/IntegerValueFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NullFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NullFilterParameterDto.java index c69fb93a47a1fd3d5c7a622b37cf9bd44f062b67..faf2bc7993799f18b3b01ea49cc87d3c4bd62357 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NullFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NullFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NumericComparisonDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NumericComparisonDto.java index fc5166431a4cda23ae749186e9bb1eb01006fa37..f43c0586ffdd5745dd8d6575a2026dc110ba6971 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NumericComparisonDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/NumericComparisonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TableColumnFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TableColumnFilterParameter.java index a2932b86fb094582629083fae62460ce3b45b70d..309689ab46b6830880d26f15a777d0e5a9067dab 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TableColumnFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TableColumnFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TextFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TextFilterParameterDto.java index f290fabe612071a99ba481e12df0d5e94dde3177..9414a9b4d8d4c0209f6b10e5b5f74605ade80907 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TextFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/TextFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/ValueOptionFilterParameterDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/ValueOptionFilterParameterDto.java index 06af8a08ff1ff19f136c996693e3d4cd099ac785..2fdd7160774f483649884a7ba4c543ce68f47ac5 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filter/ValueOptionFilterParameterDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filter/ValueOptionFilterParameterDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/AddFilterTemplateRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/AddFilterTemplateRequest.java index 9d67de8bbeb62f2af5a204bacbf70a13c5f615ff..88a76419152ae224f0783e864b3c567ccb4e6c09 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/AddFilterTemplateRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/AddFilterTemplateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateDto.java index 0b1bb54ec223d1cb2124eefeda56eb773596f53a..54c2306c93bbcdcc7ddd6a8873e03dc89f6df008 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateIdAndName.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateIdAndName.java index 24a9a5230d4dcd3c09270ea7c9f849766b2cc5d9..a3ab97e4b06a66e7a4ef3e18ca9d2e7227df11dd 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateIdAndName.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/FilterTemplateIdAndName.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/GetFilterTemplatesForEvaluationResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/GetFilterTemplatesForEvaluationResponse.java index 241f983506846f8ddfec8610b17001286fa8db21..38d1b44ef5741672068e5ebe1fc2800abcf54cdd 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/GetFilterTemplatesForEvaluationResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/filtertemplate/GetFilterTemplatesForEvaluationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/AbstractGeoShapeChangeRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/AbstractGeoShapeChangeRequest.java index 83511e13ec47d00832f3011ff735d677d1761053..7d5f69b34abd8953a6df74d243f3662718227d47 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/AbstractGeoShapeChangeRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/AbstractGeoShapeChangeRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeStatusRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeStatusRequest.java index 126cf3517a89a987e095188b0aa2673302189968..e9341291d56f347b25effb2012b6f698c5fbcd2b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeStatusRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeStatusRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeTitleRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeTitleRequest.java index e5cc3e238024c75a6740ec412083873df6cb4e36..0b872209ebb82c439f64040b3b380784d37948f3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeTitleRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeChangeTitleRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeDto.java index 05d816f816c7a2ea9481a915736e19756fc0f0e3..dc1a2c7112e1cf5dba0cf412c866cb89fbb8f56e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeMetaInfo.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeMetaInfo.java index 6972c982c163aaa83622c09ab96899916aa2c542..edc2ff737b5d8a7be2fc08c7a4067b8d82363575 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeMetaInfo.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeMetaInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeSortKey.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeSortKey.java index 16624e6b12cade78e895495fa0042a1129ee6334..fe325c930bec79435e07ee7b16800ec424ef076a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeSortKey.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeStatusDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeStatusDto.java index cae75bbfa8c9e1384fedaea3ce2b0ac3faf5f98a..1afd030bd5b6f7f0b3a108acbd7106919bd6b764 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeStatusDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GeoShapeStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GetGeoShapesResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GetGeoShapesResponse.java index e9476a56d89f092631f8e423fdf34f80f5da90a1..89db75ce991c0ca309a3e9b0b6b849596f2584d2 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GetGeoShapesResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/geoshape/GetGeoShapesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/AbstractAddReportSeriesRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/AbstractAddReportSeriesRequest.java index dc1af6cc8444974a8c07004ec5d00c02fd801477..28f3506f02acd85bf0cc456b331249045ebb79fc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/AbstractAddReportSeriesRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/AbstractAddReportSeriesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddAutoReportSeriesRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddAutoReportSeriesRequest.java index 976b2e55a798242e6136e1e96faa16d7da429cd2..9e0ec42adc80c5507e6d07f1af4624d10b0a03ba 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddAutoReportSeriesRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddAutoReportSeriesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddManualReportSeriesRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddManualReportSeriesRequest.java index 9cd87e994e7f7dd03bb3d080164aff61a86da375..6c79034ef64dfac141c51e8dda0b1ba036cd97ee 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddManualReportSeriesRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/AddManualReportSeriesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/FrequencyDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/FrequencyDto.java index 4ee6a89733f6c0aca367f079bb6732410aac2f8b..2b24c11ad997072503f21d9f1f6a79b4bb0d41e0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/FrequencyDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/FrequencyDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportDetailPageResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportDetailPageResponse.java index 9384f9b2cb9c6c03a2c68c5014637a0b14d71008..fc869a4988c53bbf5f2428c139de92b8faa55ceb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportDetailPageResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportDetailPageResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -33,4 +33,5 @@ public record GetReportDetailPageResponse( @Valid UserDto userReportSeries, @Valid UserDto userReport, @NotNull @Valid List<AnalysisDto> analyses, - @NotNull ReportTypeDto reportType) {} + @NotNull ReportTypeDto reportType, + @NotNull ReportDataSensitivity dataSensitivity) {} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportSeriesEntriesOfEvaluationResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportSeriesEntriesOfEvaluationResponse.java index 142b2a5891bd7acde79ba4b6c41958bf7c6b8527..131e0362f821704d1dc04327ec64cb6ea627a6f9 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportSeriesEntriesOfEvaluationResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportSeriesEntriesOfEvaluationResponse.java @@ -1,11 +1,12 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ package de.eshg.statistics.api.report; import de.eshg.base.user.api.UserDto; +import de.eshg.statistics.api.evaluation.EvaluationDataSensitivity; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -16,6 +17,6 @@ import java.util.UUID; public record GetReportSeriesEntriesOfEvaluationResponse( @NotNull UUID evaluationId, @NotBlank String evaluationName, - @NotNull boolean anonymized, + @NotNull EvaluationDataSensitivity dataSensitivity, @NotNull @Valid List<ReportSeriesDto> reportSeriesEntries, @NotNull @Valid Map<UUID, UserDto> resolvedUsers) {} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsFilterOptions.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsFilterOptions.java index d534fccd632a69abfd0de01153de749301bcd874..aa12a07383311dc060829aa0b77e3af8ddd0b772 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsFilterOptions.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsFilterOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,4 +15,5 @@ public record GetReportsFilterOptions( ReportTypeDto reportType, List<UUID> dataSourceIds, @Valid DateSpan start, - @Valid DateSpan end) {} + @Valid DateSpan end, + List<ReportDataSensitivity> dataSensitivities) {} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsRequest.java index 45ee89599415ae6c07c90da915f3f6064a8730fb..ad3b56eda016446f27f7c8bac1eb37eebc2e0d20 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsResponse.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsResponse.java index 344f484dcf8d2bb21df52f5c36364e7509dee325..ded6a4e73f869ff937d5f09179c1080f477b35ff 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsResponse.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/GetReportsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportDataSensitivity.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportDataSensitivity.java new file mode 100644 index 0000000000000000000000000000000000000000..8349678d7e2dfb6a35eabbbeead93988faa54f3f --- /dev/null +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportDataSensitivity.java @@ -0,0 +1,11 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package de.eshg.statistics.api.report; + +public enum ReportDataSensitivity { + ANONYMOUS, + INTERNAL_USAGE +} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportInfoDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportInfoDto.java index d375ef678e186b8798e76fa27ff3fb8e9dc9489b..2f2cf1b6aed7548496bf9f0bdee5ee1c71fd4724 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportInfoDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportInfoDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -22,4 +22,5 @@ public record ReportInfoDto( @NotNull ReportStateDto state, @NotNull LocalDate executionDate, @Min(0) Long totalNumberOfElements, - @NotNull boolean tooMuchDataForExport) {} + @NotNull boolean tooMuchDataForExport, + @NotNull ReportDataSensitivity dataSensitivity) {} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportSeriesDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportSeriesDto.java index f834e60d7e8a9abff3dc1be4855f28535c1f0ecf..39565f8b0df01f0ece922dd1da50915e2f1d3219 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportSeriesDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportSeriesDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportStateDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportStateDto.java index 1171ad3751e5b466fe441cf74c9099cbc4cf7246..e57b10147cce2eb1b3bb54803becdbb1b8bbc8bc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportStateDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportStateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportTypeDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportTypeDto.java index 7590acdad956a90a52bb8f1c2d6a6ee18b20c836..0a993bad8657d0fb7813f7c7e905bfc1b7883b1b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportTypeDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportingPeriodDto.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportingPeriodDto.java index 60c0965685e1793c79b1f3a1b7d7afbda5e6afa8..dddd7cd233519dfb4a60030424532c4210accffa 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportingPeriodDto.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/ReportingPeriodDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/api/report/UpdateReportSeriesRequest.java b/backend/statistics/src/main/java/de/eshg/statistics/api/report/UpdateReportSeriesRequest.java index f40b7ee98e266e2ab55d3f3abc6bacd345f77741..947515678e5b7d295e1eaa99d73dec950e616611 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/api/report/UpdateReportSeriesRequest.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/api/report/UpdateReportSeriesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/RepoMapper.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/RepoMapper.java index eca93d1fef939a4d186213675fd24d1cd1306e64..8a86461c104c166d264218f6a7efddf2b327fc7d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/RepoMapper.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/RepoMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryController.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryController.java index d67811bf8c53eaaf756c167d6951f58fa006b8e1..2081851faebbe1776ed16ba9e49fc42305269f51 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryService.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryService.java index 4c14dbce5a1917bef4ec9430e5c18e858fb1d3c9..3d7be8c917911e74cf160ea1e108b61177bfe7ef 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/StatisticsCentralRepositoryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/RepoAttributeSelection.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/RepoAttributeSelection.java index b4b18c08ab45b4c40d96990b1cda26d985a7c251..db4b6ebbbe799b2db1f43c5893cac0a8f96403bf 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/RepoAttributeSelection.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/RepoAttributeSelection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoBarChart.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoBarChart.java index 2cd63d8571a47c41831ed200bb8af8797b19586d..3dcc5ca5354758d26230e98e8be0496bb2608405 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoBarChart.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoBarChart.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChartConfiguration.java index a31449dfe9769e979d4ae0808ae89f04f9124d3b..9e4e9ff56526f1f7ad23267b9c86e83484b8295a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChoroplethMap.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChoroplethMap.java index f37d298e575b074a491b7d650363fa76cc4f4e9d..2b1b718070fe2f9a51c959c55f28fb9b10fc1cdc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChoroplethMap.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoChoroplethMap.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoHistogramChart.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoHistogramChart.java index ec87cf4f97446e76a77bd9e027b742cfd6e537a2..512706414e4cd5f8efee886999b32447f554327c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoHistogramChart.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoHistogramChart.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoLineChart.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoLineChart.java index a97e10d4e480adb2c28a674c2055bcb4a7bef737..50b8cd6033d4e9835c3d89efa24547153787d158 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoLineChart.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoLineChart.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoPieChart.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoPieChart.java index 211aa4316df53cb1fcb21e313c5627b004b10646..fafb9d5231fa244a0a5a914420361d624491efff 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoPieChart.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoPieChart.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoScatterChart.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoScatterChart.java index 25a9841d253c3be1c384c8b3cc52fc5deaf626e1..5706048ad5738fd6c195d204b07dfd3b3a806d5e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoScatterChart.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/chartconfiguration/RepoScatterChart.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoAnalysisTemplate.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoAnalysisTemplate.java index 4e83826600ddfb681eb9021ace24c0934a97d09c..a98683c98947d9a772c8504855f654218d6c17ad 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoAnalysisTemplate.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoAnalysisTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBaseDataAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBaseDataAttribute.java index 2060b259bee234d9bd53a9ba50cd5d28f242f111..80cd693daecdd99b344e935b634152bbb4a9b8cb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBaseDataAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBaseDataAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBusinessDataAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBusinessDataAttribute.java index a81c67ad8a8945f97a7edeb60034edcc2270faab..972b3164719a60abb399cc96d9bf9bd058efb94d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBusinessDataAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoBusinessDataAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDataSource.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDataSource.java index 63b101da123be455316f304ea1fff58a7a454a66..ea0dd63d0fd71fe8e92fab3876eb102d389b47e7 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDataSource.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDiagramTemplate.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDiagramTemplate.java index 9afeaf02eb0052e07418fb238451a1c029cdb3d1..c79891f784cc00c3bd3e97142efb44b2eeb00aab 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDiagramTemplate.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoDiagramTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoEvaluationTemplate.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoEvaluationTemplate.java index 80d66c4924022354497562e14cd0759923bc69a9..c0843fe106a9d1db7692bb7496e82032eafb38ea 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoEvaluationTemplate.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/evaluationtemplate/RepoEvaluationTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoBooleanFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoBooleanFilter.java index 7cb29f3c819bd0a9c3f537ce64c0d65f74f86457..059f7063162eed13a58ec553efeb855ae9726029 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoBooleanFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoBooleanFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalRangeFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalRangeFilter.java index b2c103953420b585cfefd7912daa68c27635fc39..344a1f2908d8463070b7e57992083fa6eb1d759f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalRangeFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalRangeFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalValueFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalValueFilter.java index 2f041c6c78c47cd9cb952470c44a62a4be3f2216..6fd5da46c8c9f883a06272abe3d554e73779d836 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalValueFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoDecimalValueFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoFilter.java index bb141f19d6cd4e9bd64504dad38193b21fa773dc..8dfc5aeb82e3d9698a985334b70e187179dbf663 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerRangeFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerRangeFilter.java index 3b19edd15ebca8ffaf6fccd1e7f2c4562edd2175..0f9a800666700484982c9dc86daf120b44797e6c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerRangeFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerRangeFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerValueFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerValueFilter.java index 3876df92e6f86100646241286f3e670f73fa6a18..130050f3738ad1e742611d75634506a6100e64c6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerValueFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoIntegerValueFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNullFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNullFilter.java index 939737393c586784b26696f9eea8fbf9c7b72a9c..104a44a12b4439057204267f39d63bfc533217e0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNullFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNullFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNumericComparison.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNumericComparison.java index 5d07612363868c55f36923f3a493ad8f08490653..e3bf408537eb80ce2bf0f8c136cb2f16e61db478 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNumericComparison.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoNumericComparison.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoTextFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoTextFilter.java index 5be1c24b576ef1e6b5451d5f87960ba05674ac54..afd37b6fd4bf25680d0f1307a5e35191e13af237 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoTextFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoTextFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoValueOptionFilter.java b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoValueOptionFilter.java index 8012a690012a0552c3d67f614f1f5eca776eeb9f..2f1542210cf3627a556a73eeccc2d824029828d5 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoValueOptionFilter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/centralrepository/dto/filter/RepoValueOptionFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/config/AutoReportSeriesConfig.java b/backend/statistics/src/main/java/de/eshg/statistics/config/AutoReportSeriesConfig.java index 538506b5166274d1c1f3ec5b23f8ebce1025c5de..c6dcab82f73bdca623750c50ee393b6d2a004340 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/config/AutoReportSeriesConfig.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/config/AutoReportSeriesConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/config/OriginalDataAccessConfig.java b/backend/statistics/src/main/java/de/eshg/statistics/config/OriginalDataAccessConfig.java deleted file mode 100644 index e4b90087fc105efa179789341948fdc50e4ed9d9..0000000000000000000000000000000000000000 --- a/backend/statistics/src/main/java/de/eshg/statistics/config/OriginalDataAccessConfig.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -package de.eshg.statistics.config; - -import de.eshg.lib.keycloak.EmployeePermissionRole; -import de.eshg.rest.service.security.CurrentUserHelper; -import jakarta.validation.constraints.NotBlank; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.validation.annotation.Validated; - -@Validated -@ConfigurationProperties(prefix = "eshg.statistics.businessmodule") -public class OriginalDataAccessConfig { - private static final Logger log = LoggerFactory.getLogger(OriginalDataAccessConfig.class); - - private List<OriginalDataPermission> originalDataPermissions = Collections.emptyList(); - - public Set<String> getBusinessModulesOriginalDataAllowedForCurrentUser() { - Set<String> allBusinessModules = - originalDataPermissions.stream() - .map(OriginalDataPermission::getBusinessModule) - .collect(Collectors.toSet()); - - return allBusinessModules.stream() - .filter(this::originalDataAllowedForCurrentUser) - .collect(Collectors.toSet()); - } - - public boolean originalDataAllowedForCurrentUser(String businessModuleName) { - List<EmployeePermissionRole> permissionRoles = - getPermissionRolesForOriginalData(businessModuleName); - return !permissionRoles.isEmpty() - && permissionRoles.stream().allMatch(CurrentUserHelper::currentUserHasRole); - } - - private List<EmployeePermissionRole> getPermissionRolesForOriginalData( - String businessModuleName) { - return originalDataPermissions.stream() - .filter( - originalDataEntry -> businessModuleName.equals(originalDataEntry.getBusinessModule())) - .map(OriginalDataAccessConfig::mapPermissionRole) - .toList(); - } - - private static EmployeePermissionRole mapPermissionRole( - OriginalDataPermission originalDataPermission) { - try { - return EmployeePermissionRole.valueOf(originalDataPermission.getPermission()); - } catch (IllegalArgumentException ignored) { - log.error("Invalid permission role configured: {}", originalDataPermission.getPermission()); - return null; - } - } - - public void setOriginalDataPermissions(List<OriginalDataPermission> originalDataPermissions) { - this.originalDataPermissions = originalDataPermissions; - } - - public static class OriginalDataPermission { - @NotBlank private String businessModule; - @NotBlank private String permission; - - public String getBusinessModule() { - return businessModule; - } - - public void setBusinessModule(String businessModule) { - this.businessModule = businessModule; - } - - public String getPermission() { - return permission; - } - - public void setPermission(String permission) { - this.permission = permission; - } - } -} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsAuditLogConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsAuditLogConfiguration.java index a631d9292e7acb6f23d546a529c9eaa09d07c77a..1e26f5b3ab2a2eff29ddad56230f583535ac0aee 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsAuditLogConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsConfig.java b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..fa769650a0f16261216a0a9ed128929595f4d228 --- /dev/null +++ b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsConfig.java @@ -0,0 +1,62 @@ +/* + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package de.eshg.statistics.config; + +import de.cronn.commons.lang.StreamUtil; +import de.eshg.lib.common.BusinessModule; +import de.eshg.lib.keycloak.EmployeePermissionRole; +import de.eshg.rest.service.security.CurrentUserHelper; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; +import java.util.Map; +import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.bind.DefaultValue; +import org.springframework.validation.annotation.Validated; + +@Validated +@ConfigurationProperties(prefix = "eshg.statistics", ignoreUnknownFields = false) +public record StatisticsConfig( + @NotNull @Valid BusinessModuleConfig businessModule, + @DefaultValue @Valid DiagramDataConfig diagramData, + @DefaultValue @Valid TableRowsConfig tableRows) { + + private static final Logger log = LoggerFactory.getLogger(StatisticsConfig.class); + + public record BusinessModuleConfig( + @NotEmpty Map<BusinessModule, EmployeePermissionRole> sensitiveDataPermissions, + @Positive @DefaultValue("500") int pageSize) { + + public BusinessModuleConfig { + log.debug("sensitiveDataPermissions: {}", sensitiveDataPermissions); + } + + public Set<String> getBusinessModulesSensitiveDataAllowedForCurrentUser() { + return sensitiveDataPermissions.entrySet().stream() + .filter(entry -> currentUserHasRole(entry.getValue())) + .map(entry -> entry.getKey().name()) + .collect(StreamUtil.toLinkedHashSet()); + } + + public boolean sensitiveDataAllowedForCurrentUser(String businessModuleName) { + BusinessModule businessModule = BusinessModule.valueOf(businessModuleName); + EmployeePermissionRole permissionRole = sensitiveDataPermissions.get(businessModule); + return currentUserHasRole(permissionRole); + } + + private boolean currentUserHasRole(EmployeePermissionRole permissionRole) { + return permissionRole != null && CurrentUserHelper.currentUserHasRole(permissionRole); + } + } + + public record DiagramDataConfig(@Positive @DefaultValue("500") int pageSize) {} + + public record TableRowsConfig(@Positive @DefaultValue("500") int pageSize) {} +} diff --git a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeature.java b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeature.java index fc3bdf76a34b22df4b4f070bb3ecef04df6ef9de..e31b5031256e028e5e097bcc415c62d0727e1148 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeature.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeatureToggle.java b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeatureToggle.java index cef195b698ac4c26fe7ed5ea6451ca950d415bb6..550a39a1db1dace9101b79dfdfc61f0fa741d594 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeatureToggle.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsFeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsInternalSecurityConfig.java b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsInternalSecurityConfig.java index 4bb7600a1c7fe9cba159b5740c51fc56f71688fe..32ce864faa35808ce1a9ce89b2a121488b314c4c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsInternalSecurityConfig.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/config/StatisticsInternalSecurityConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/AnalysisTemplateData.java b/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/AnalysisTemplateData.java index 0e5fcdbb5c3f25c423bd10db33bf563b47ab6c49..669d6f024d02834f8571e0a938053d4e753b3b3c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/AnalysisTemplateData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/AnalysisTemplateData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/DiagramTemplateData.java b/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/DiagramTemplateData.java index a4613254cea1b925ccb1ce4f79594445b45d06ec..0c0b1b6fdfdee0f19901b57b52e7c90ee7306e96 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/DiagramTemplateData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/DiagramTemplateData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/EvaluationTemplateData.java b/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/EvaluationTemplateData.java index 823213da1ee0f410da4f3e9e2a0ef1a5dc981be7..c130a55231280649ba362f50384e9f7152466297 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/EvaluationTemplateData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/datatransfer/EvaluationTemplateData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/exception/IncompleteDeletionException.java b/backend/statistics/src/main/java/de/eshg/statistics/exception/IncompleteDeletionException.java index e29231ad2ca051a3ddc6d84249df6b2b04839e13..b84dad3d9c638cebe712ef175d858c1ef0f3ebca 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/exception/IncompleteDeletionException.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/exception/IncompleteDeletionException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/exception/InvalidDataSourceException.java b/backend/statistics/src/main/java/de/eshg/statistics/exception/InvalidDataSourceException.java index 480f07e020c9d54311dadf57912ae298396a3260..1dbd9a2b3696296122c0dca9432a9a016faf66d4 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/exception/InvalidDataSourceException.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/exception/InvalidDataSourceException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/AggregationResultExportService.java b/backend/statistics/src/main/java/de/eshg/statistics/export/AggregationResultExportService.java index 1957f77839d08d8725af51e03efe2b8aa8b6e7ec..1e116bb59b5d31bab5eb0bc9c744d2b1d2f228b0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/AggregationResultExportService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/AggregationResultExportService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/BarChartDataExporter.java b/backend/statistics/src/main/java/de/eshg/statistics/export/BarChartDataExporter.java index 7b893f72005410879ff4b276f77b94a70a432044..6442ce48b9b02332c10ad3a5bd509f856df68d90 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/BarChartDataExporter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/BarChartDataExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/ChoroplethMapDataExporter.java b/backend/statistics/src/main/java/de/eshg/statistics/export/ChoroplethMapDataExporter.java index e5f1170cfb2b191cb8adf0556c31b59a0213215a..a310ed3afff9fb61061dfda7909e5c113a06a9d7 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/ChoroplethMapDataExporter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/ChoroplethMapDataExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportController.java b/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportController.java index 456cac83b8f5ec2a330ea11dab8e0d1909933e1b..390948d927bc520babaace30195ce3977056bec0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportUtil.java b/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportUtil.java index d9aa07367a2863ebec7b5a5d6fce06d50cb6e24a..31e35738177c0a254d77c4b30fe2527c370c007b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportUtil.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/DataExportUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,7 @@ package de.eshg.statistics.export; import de.eshg.statistics.mapper.EvaluationMapper; import de.eshg.statistics.persistence.entity.AbstractAggregationResult; +import de.eshg.statistics.persistence.entity.StatisticsDataSensitivity; import de.eshg.statistics.persistence.entity.TableColumn; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; @@ -21,6 +22,10 @@ import org.apache.poi.ss.util.CellRangeAddress; public class DataExportUtil { private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy").withZone(ZoneOffset.UTC); + private static final String DISCLAIMER_INTERNAL_USAGE = + "Interner Gebrauch: Der Datensatz enthält personenbezogene Daten und ist daher nur für den internen Gebrauch vorgesehen."; + private static final String DISCLAIMER_ANONYMOUS = + "Anonym: Der Datensatz ist anonym und daher für die Verwendung über das Gesundheitsamt hinaus geeignet."; static final String SENSITIVE_DATA_ERROR = "Data exports are only allowed for non-sensitive evaluations"; @@ -67,6 +72,12 @@ public class DataExportUtil { "Datensätze ausgewertet", evaluatedDataAmount); } + addMetadataRow( + sheet, + cellStyle, + rowCounter.getAndIncrement(), + "Verwendung", + getDisclaimer(aggregationResult.getDataSensitivity())); } static void addMetadataRow( @@ -105,4 +116,14 @@ public class DataExportUtil { static String getAttributeName(TableColumn tableColumn, boolean withUnit) { return EvaluationMapper.getAttributeDisplayName(tableColumn, withUnit); } + + private static String getDisclaimer(StatisticsDataSensitivity dataSensitivity) { + return switch (dataSensitivity) { + case ANONYMOUS -> DISCLAIMER_ANONYMOUS; + case INTERNAL_USAGE -> DISCLAIMER_INTERNAL_USAGE; + default -> + throw new IllegalStateException( + "Data sensitivity not allowed for export: " + dataSensitivity); + }; + } } diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/DiagramExportService.java b/backend/statistics/src/main/java/de/eshg/statistics/export/DiagramExportService.java index 147005963e1428fbbafde7b05e1e648834877816..fed2d5c1904f2f26ea80b30abd4cc27d57bce7f3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/DiagramExportService.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/DiagramExportService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/HistogramChartDataExporter.java b/backend/statistics/src/main/java/de/eshg/statistics/export/HistogramChartDataExporter.java index 3bfcc7511765a5dcceb003d30dbc19ae4c90c87b..609d6dba4998a7cc2eb5152e82e9374926f94fce 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/HistogramChartDataExporter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/HistogramChartDataExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/PieChartDataExporter.java b/backend/statistics/src/main/java/de/eshg/statistics/export/PieChartDataExporter.java index b44421c70e81281a2523c7fa7956694e0e74ef65..1cb2a86d4afcc718f693a04ede70f00f557351a9 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/PieChartDataExporter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/PieChartDataExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/PointBasedChartDataExporter.java b/backend/statistics/src/main/java/de/eshg/statistics/export/PointBasedChartDataExporter.java index 8ffb876593254525a9ac47b3b3c3089c31df26f6..7c9008898bd47af0c62054df94190a409fad903a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/PointBasedChartDataExporter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/PointBasedChartDataExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/export/TwoAttributesChartDataExporter.java b/backend/statistics/src/main/java/de/eshg/statistics/export/TwoAttributesChartDataExporter.java index 9476f7e71e4dfdaa8fb69aed16148e4893b29faa..ccb8b97fb9f8a843680adb974307fde884c78e9c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/export/TwoAttributesChartDataExporter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/export/TwoAttributesChartDataExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/mapper/AnalysisMapper.java b/backend/statistics/src/main/java/de/eshg/statistics/mapper/AnalysisMapper.java index 606be773cb123ee2cd0370cf0bd9dc5c5c87f3e5..4aeb01706b068efcf6c217e3b7e973d3016bb228 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/mapper/AnalysisMapper.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/mapper/AnalysisMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/mapper/AttributeSelectionMapper.java b/backend/statistics/src/main/java/de/eshg/statistics/mapper/AttributeSelectionMapper.java index 79e38f2a5066e49e559ae8f8ed7ad7c1bc963c46..b62fa92fc6ec9f8e7056bef46341c318b241fe05 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/mapper/AttributeSelectionMapper.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/mapper/AttributeSelectionMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationMapper.java b/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationMapper.java index 0a97cca395174c9670cd9593f51e99652ad1a13f..de4bd2babed6d1d73fde3e12f2b36b2dbd8803ec 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationMapper.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -21,6 +21,7 @@ import de.eshg.statistics.api.attributes.ProcedureIdAttribute; import de.eshg.statistics.api.attributes.TextAttribute; import de.eshg.statistics.api.attributes.ValueOption; import de.eshg.statistics.api.attributes.ValueWithOptionsAttribute; +import de.eshg.statistics.api.evaluation.EvaluationDataSensitivity; import de.eshg.statistics.api.evaluation.EvaluationInfo; import de.eshg.statistics.api.evaluation.EvaluationSortKey; import de.eshg.statistics.api.evaluation.EvaluationStateDto; @@ -235,7 +236,7 @@ public class EvaluationMapper { evaluation.getTimeRangeStart(), evaluation.getTimeRangeEnd(), evaluation.getCreatedAt(), - mapToAnonymized(evaluation.getDataSensitivity()), + mapToApi(evaluation.getDataSensitivity()), isTooMuchDataForExport); } @@ -252,14 +253,8 @@ public class EvaluationMapper { return EvaluationStateDto.valueOf(aggregationResultState.name()); } - // TODO do a proper mapping after api changes ISSUE-6899 are done - private static boolean mapToAnonymized(StatisticsDataSensitivity dataSensitivity) { - return StatisticsDataSensitivity.ANONYMOUS.equals(dataSensitivity); - } - - // TODO do a proper mapping after api changes ISSUE-6899 are done - public static StatisticsDataSensitivity mapToPersistence(boolean anonymized) { - return anonymized ? StatisticsDataSensitivity.ANONYMOUS : StatisticsDataSensitivity.SENSITIVE; + public static EvaluationDataSensitivity mapToApi(StatisticsDataSensitivity dataSensitivity) { + return EvaluationDataSensitivity.valueOf(dataSensitivity.name()); } public static List<AggregationResultState> mapToAggregationResultStates( diff --git a/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationTemplateMapper.java b/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationTemplateMapper.java index b274c792ee57b6249c2508d3280b1f490fd7e4e7..b6020ecf39d4ab2967c03ca82ef4a1caa95c7307 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationTemplateMapper.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/mapper/EvaluationTemplateMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,6 +8,7 @@ package de.eshg.statistics.mapper; import de.eshg.base.user.api.UserDto; import de.eshg.lib.statistics.api.DataSourceSensitivity; import de.eshg.rest.service.error.BadRequestException; +import de.eshg.statistics.aggregation.DataSourceAggregationService; import de.eshg.statistics.api.chart.BarChartConfigurationDto; import de.eshg.statistics.api.chart.ChoroplethMapConfigurationDto; import de.eshg.statistics.api.chart.HistogramChartConfigurationDto; @@ -242,7 +243,7 @@ public class EvaluationTemplateMapper { public static EvaluationTemplateInfoDto mapToInfo( EvaluationTemplate evaluationTemplate, - Predicate<EvaluationTemplate> withoutAnonymizationAllowedPredicate, + Predicate<EvaluationTemplate> sensitiveDataAllowedForBusinessModulePredicate, Function<EvaluationTemplate, DataSourceSensitivity> dataSourceSensitivityFunction, Predicate<EvaluationTemplate> canBeAnonymizedPredicate) { List<String> dataSourceNames = @@ -253,12 +254,15 @@ public class EvaluationTemplateMapper { .sorted() .toList(); + DataSourceSensitivity sensitivity = dataSourceSensitivityFunction.apply(evaluationTemplate); return new EvaluationTemplateInfoDto( evaluationTemplate.getExternalId(), evaluationTemplate.getName(), new TemplateSensitivityInfo( - withoutAnonymizationAllowedPredicate.test(evaluationTemplate), - dataSourceSensitivityFunction.apply(evaluationTemplate), + DataSourceAggregationService.isSensitiveDataAllowed( + sensitivity, + sensitiveDataAllowedForBusinessModulePredicate.test(evaluationTemplate)), + sensitivity, canBeAnonymizedPredicate.test(evaluationTemplate)), dataSourceNames, evaluationTemplate.getAnalysisCount(), @@ -275,9 +279,9 @@ public class EvaluationTemplateMapper { public static EvaluationTemplateDto mapToApi( EvaluationTemplate evaluationTemplate, - Predicate<EvaluationTemplate> withoutAnonymizationAllowedPredicate, - Function<EvaluationTemplate, DataSourceSensitivity> dataSourceSensitivityFunction, - Predicate<EvaluationTemplate> canBeAnonymizedPredicate, + boolean sensitiveDataAllowedForBusinessModule, + DataSourceSensitivity sensitivity, + boolean canBeAnonymized, UserDto user) { List<DataSourceWithAttributeNames> dataSources = mapToAttributesWithNames(evaluationTemplate.getDataSources()); @@ -287,9 +291,10 @@ public class EvaluationTemplateMapper { evaluationTemplate.getName(), evaluationTemplate.getDescription(), new TemplateSensitivityInfo( - withoutAnonymizationAllowedPredicate.test(evaluationTemplate), - dataSourceSensitivityFunction.apply(evaluationTemplate), - canBeAnonymizedPredicate.test(evaluationTemplate)), + DataSourceAggregationService.isSensitiveDataAllowed( + sensitivity, sensitiveDataAllowedForBusinessModule), + sensitivity, + canBeAnonymized), dataSources, mapToAnalysisInfos(evaluationTemplate.getAnalysisTemplates()), user, diff --git a/backend/statistics/src/main/java/de/eshg/statistics/mapper/FilterParameterMapper.java b/backend/statistics/src/main/java/de/eshg/statistics/mapper/FilterParameterMapper.java index 731219713df02b3232a7c6a481b728f001b2013e..c47efdc0c84d8dd0b57a726e43a96528101230d3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/mapper/FilterParameterMapper.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/mapper/FilterParameterMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/mapper/ReportMapper.java b/backend/statistics/src/main/java/de/eshg/statistics/mapper/ReportMapper.java index 20a567786fac1f85c914965c5367aa663f3f8d94..4be049896485b605f1073dfe678c9534865c38f5 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/mapper/ReportMapper.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/mapper/ReportMapper.java @@ -1,17 +1,19 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ package de.eshg.statistics.mapper; import de.eshg.statistics.api.report.FrequencyDto; +import de.eshg.statistics.api.report.ReportDataSensitivity; import de.eshg.statistics.api.report.ReportInfoDto; import de.eshg.statistics.api.report.ReportSeriesDto; import de.eshg.statistics.api.report.ReportStateDto; import de.eshg.statistics.api.report.ReportTypeDto; import de.eshg.statistics.api.report.ReportingPeriodDto; import de.eshg.statistics.persistence.entity.AggregationResultState; +import de.eshg.statistics.persistence.entity.StatisticsDataSensitivity; import de.eshg.statistics.persistence.entity.report.Frequency; import de.eshg.statistics.persistence.entity.report.Report; import de.eshg.statistics.persistence.entity.report.ReportSeries; @@ -78,7 +80,8 @@ public class ReportMapper { report.getState().equals(AggregationResultState.COMPLETED) ? report.getNumberOfTableRows() : null, - isTooMuchDataForExport); + isTooMuchDataForExport, + ReportMapper.mapToApi(report.getDataSensitivity())); } private static ReportStateDto mapToReportStateDto(AggregationResultState state) { @@ -96,4 +99,12 @@ public class ReportMapper { public static ReportingPeriod mapToReportingPeriod(ReportingPeriodDto reportingPeriod) { return ReportingPeriod.valueOf(reportingPeriod.name()); } + + public static StatisticsDataSensitivity mapToPersistence(ReportDataSensitivity dataSensitivity) { + return StatisticsDataSensitivity.valueOf(dataSensitivity.name()); + } + + public static ReportDataSensitivity mapToApi(StatisticsDataSensitivity dataSensitivity) { + return ReportDataSensitivity.valueOf(dataSensitivity.name()); + } } diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractAggregationResult.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractAggregationResult.java index ea99a560ae1faa7c690a7de4bd7e61e91bc09d2a..c278eea5c7748fee412d1c9b638e839f84f42efa 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractAggregationResult.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractAggregationResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractFilterParameter.java index e1d04a830852185677aa9f00e8669f95ae723b99..476a5153f34e8ef15379fa53f67a4eec9d3970c6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AbstractFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultPendingState.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultPendingState.java index bbfd56e97da631a479b01eea7c64212ae02bc061..5e04796b53934b75069f2a02b147f7193ad5876e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultPendingState.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultPendingState.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultState.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultState.java index c7153633f54745e82c74e4cf551dd97a220e2060..77d38f5a5f0c93b426f570c44576b433ab6e4db7 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultState.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AggregationResultState.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Analysis.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Analysis.java index 8590181715a0cc8c2bbbee87546fe234b4275021..f466324c191b0c8b971d96c6ce2101ada2687027 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Analysis.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Analysis.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AttributeSelection.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AttributeSelection.java index 4fe1f826e5ad045d709d205a63c9a65d1836e79a..ec3ae115c176ccad84b1b6eef81cc4e32be7da2e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AttributeSelection.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/AttributeSelection.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/CellEntry.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/CellEntry.java index 9a7f74c1d97b860f38b9cc7a82decabc52d9eec6..116c8f00738d103e4a25aedc032560bb1e883ed4 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/CellEntry.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/CellEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ChartConfiguration.java index d752c5a2c991505c1c9c6736b7281357d2a23fd5..ecb333e02e45ac5c800b46e460823fb21a5101f3 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Diagram.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Diagram.java index 89ee11b7deaeccc407f20a6025a1014d4abb10d8..a1422571a4833eb8c1beb612e69a0d55002dfdaa 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Diagram.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Diagram.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Evaluation.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Evaluation.java index ed639664f395ba5b978c589abd9271cf5126fe92..024fed4b869da8efeb2738d0d80e493a5f590fcc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Evaluation.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/Evaluation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/FilterTemplate.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/FilterTemplate.java index 376bdce95d7fa763903a512070a95e97722ba062..d6be3176650bbbfdae8cd2bf1f2a9b2927cf8347 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/FilterTemplate.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/FilterTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShape.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShape.java index d82d669d42fa1e9ed66c15089ed855898785a92d..36bf6b3195d23df3d4e13e6f316e01eb426edb35 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShape.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShape.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShapeStatus.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShapeStatus.java index 7c882e1a40dd5a00e32b540315b0a26bef317c20..cc7a36d4a3b9fed67a1fec9f9d08c9efeb3bb013 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShapeStatus.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/GeoShapeStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/MinMaxNullUnknownValues.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/MinMaxNullUnknownValues.java index 96d81f6a78b837524214ba83dc7d0cb3cf69a64e..a41ffbbf15ca0ed843bba4047f6c2ed552a690a7 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/MinMaxNullUnknownValues.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/MinMaxNullUnknownValues.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/StatisticsDataSensitivity.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/StatisticsDataSensitivity.java index 12d82506a1f2b64145b6f636f5f9fe1327161a04..a511ce05d95cc0db811795ff7b48c052cdc6ec51 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/StatisticsDataSensitivity.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/StatisticsDataSensitivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableColumn.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableColumn.java index cedcf0fcdf5f7c5cf4886615621e261e775879ed..f178be5d780da120c39be537a96d3bdcf429fc4f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableColumn.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableRow.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableRow.java index 14154404062294cfc6bddc0fe86ff7d4f3876938..ffb67ba3c06a512b6d2705a2fc068d8f9dc645c5 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableRow.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/TableRow.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ValueToMeaning.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ValueToMeaning.java index bd21d722ebd4f4bee9d9f5b1139b70ba3c0b67e1..f765eace266b12e8781db3d2f371edc916a6fca1 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ValueToMeaning.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/ValueToMeaning.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BarChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BarChartConfiguration.java index ddd8fde077ab6ffca9c214afaca69db64c83aaae..9bd32eddfc1ddd11e943aba98b67db2389938c19 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BarChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BarChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BinningMode.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BinningMode.java index 81409c72878998a727b6dd4668983db4c8464299..df723b55f46c6817f42b84abbb465f934dd342db 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BinningMode.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/BinningMode.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Calculation.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Calculation.java index 455e33607e643c5cb6c215e1ed0c0c1bd530e58c..170a3217abafc11c0ae249a31471fba3da7c5c0b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Calculation.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Calculation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ChoroplethMapConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ChoroplethMapConfiguration.java index 189e337928231bb27c362560afe163aefb2123b9..0e16bb1a56a759c086f60fc115eeb8e16132aa3c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ChoroplethMapConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ChoroplethMapConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/GroupingType.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/GroupingType.java index 8f1e00477c52d75bbb1fd56b2cc42c630f218293..f12fb1ead1d056545cff648e4bf84456fcde653a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/GroupingType.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/GroupingType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramBin.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramBin.java index ac5a3e7c6c6eea413a013f5ee54bf46c08289ba3..5dcd200fe9e349f45d07b9a6587f5af9917951b1 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramBin.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramBin.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramChartConfiguration.java index d4202ec58e122505c61307d613db2c381167f7ca..afb249046c99c0216c127ca68f3e07750db30bd0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/HistogramChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/LineChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/LineChartConfiguration.java index b4c775e343748ee14c940ee96d474d69d61014d2..e648aa6aa1c0569b0462351200758bae44863382 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/LineChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/LineChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Orientation.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Orientation.java index 2634bbba14a1e1bc1512d333be75a587c1de5d09..d74aa8e5c16b6d247096b462f178f43fffb628ab 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Orientation.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Orientation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PieChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PieChartConfiguration.java index ab0ab2b4738e51235b0d2d341d9f62b49366475d..2fef6e4b5c36b31ef8a7457cdfec344643e4d629 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PieChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PieChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PointBasedChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PointBasedChartConfiguration.java index 896573282f2331c1c856965a140846a298be02fc..73e69ed7dac19b895a708b2c40cb1baa840a04eb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PointBasedChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/PointBasedChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Range.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Range.java index 746759a1a2193a8a68504ecd2067978df193c0d0..abfbde42e4016577c4f088071d635752cea1cfe7 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Range.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Range.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Scaling.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Scaling.java index eec43c0c88fb787c3524fa214fde94db23829101..44a9a19c28854de77db81678349588294caff469 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Scaling.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/Scaling.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ScatterChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ScatterChartConfiguration.java index 66aaae6212821a847644bf628e2c52b6c76fada0..de8bd838cb46ff2f72942203d9bb1e9f603010e8 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ScatterChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/ScatterChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/TwoAttributesChartConfiguration.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/TwoAttributesChartConfiguration.java index cbfc9a1b48c0bcefcd75cea564352c86f5ba2ea4..f1f94d6ba7f0146bf326a5bb11dd2448448a75a8 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/TwoAttributesChartConfiguration.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/chart/TwoAttributesChartConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarChartData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarChartData.java index 224459dbe4f7dd839d9159942c794548803a3ebb..b4705b0896dcea5ddf65660edf093cf5f38e65fb 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarChartData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarChartData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarGroupData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarGroupData.java index 628925aff764e2d12c9ee49557641bfb289c72bd..5ac88cbd085fdd80bd7c23f5159bfacaf8b3c3fc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarGroupData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/BarGroupData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/ChoroplethMapData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/ChoroplethMapData.java index 85628dbf70dd277e2090926e91f7b713f6fd0fb0..bd1805a3104e122cdabd1330408e34226a5d96bd 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/ChoroplethMapData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/ChoroplethMapData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPoint.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPoint.java index d1527dfd94dbf604930c77034d2a251f8141a533..46ddc1db2239645aa54ea2bbeaf2852b744f2a9c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPoint.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPointGroup.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPointGroup.java index 9c29f58727de36a9c5108adeaa850b32a3ad3b6f..c359df59a32d76d06ed1d209ea55908ae6393aad 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPointGroup.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DataPointGroup.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DiagramData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DiagramData.java index e41d5b5336670f8eea5ff5a43d56ec775bd4e24d..8d98cf9b4d81a9bc0e1aff6b746c0ae954239463 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DiagramData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/DiagramData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramChartData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramChartData.java index 7b5fe6e92f405d167c0c88fffd57a4ed9283bd9d..f904592ae29f4a5532492856a658306b7dc4097f 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramChartData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramChartData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramGroupData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramGroupData.java index 343181d67ab0559bc81aa5396749d1681bc90904..8804d498c6980bf0c5344e61082c91c4f0a5f3e6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramGroupData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/HistogramGroupData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToCount.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToCount.java index e73ba2e37278086164b71b47137d91367044a1bd..4d0255030748f414c18048b0bbfb1dc7fdbee093 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToCount.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToCount.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToValue.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToValue.java index 2f37b29a36ee8c01615a5d2a6961ccfc223c794b..ed98dc96df68ff15fac9ffcc8892567ed1263773 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToValue.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/KeyToValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/LineOrScatterChartData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/LineOrScatterChartData.java index 3d7ea2d3b8f47f542cc7ed688309bbf850c8173c..766becb9ad09d39424ed86cdd5ed48c2417b0222 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/LineOrScatterChartData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/LineOrScatterChartData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/PieChartData.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/PieChartData.java index 9a9f3db965b76501fd7bc106b1c5917bc246cf5e..479c7d9c5845b1b7961559a1723eea0ebc01bf06 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/PieChartData.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/PieChartData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/TrendLine.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/TrendLine.java index 23bdefc2ad8e857eccc01a44919eb7866694294f..4f24e1d2554ebafda0441716d90f5938e0d6219c 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/TrendLine.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/diagramdata/TrendLine.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/BooleanEntry.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/BooleanEntry.java index c2b363e1c39d7b3c0039ed6a25bad484d2ded4b8..6ccded2bc951c4b3b7046ea6057e2330806cdd2a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/BooleanEntry.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/BooleanEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DateEntry.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DateEntry.java index 6dd7b2096312f181430abde05ae4750cb250bde1..3d70cff6a304e40f2fc3629e1c76d248e3ebaa41 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DateEntry.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DateEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DecimalEntry.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DecimalEntry.java index a4b4b8c94edd9e2983acc58c86437eb144ad813e..ef09af2cd447517e1632e56e2d77b977e8e0d3bc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DecimalEntry.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/DecimalEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/IntegerEntry.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/IntegerEntry.java index 984000a60c565973a4c23c155c28c30de4fc888d..6ad04d6d86d46ce9a6f339209145da57a43a519a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/IntegerEntry.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/IntegerEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/TextEntry.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/TextEntry.java index 9276fed37db3b609b1b0f93e31896eb478fe1938..7ec396471dd3906d1c300dc8ba08c703a0ccd2a4 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/TextEntry.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/TextEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/UuidEntry.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/UuidEntry.java index 91ec6473f379687e5fde400cb27ea4538b4a3513..559ccd0903859bf05e74aade33d3678e309a7eea 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/UuidEntry.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/entry/UuidEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/AnalysisTemplate.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/AnalysisTemplate.java index d200875dc1c8dfb96b5cc2e67854aff3b067419d..9c3892c63911a5dee3c4ed2f429b880d9e5e68f6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/AnalysisTemplate.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/AnalysisTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/BaseDataAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/BaseDataAttribute.java index 6e2ebabe818086d8cf6f9670adaab9b41b163d5b..19e0e88fd975e1fc2bed45dd91c6dc3bd0c0fd2a 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/BaseDataAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/BaseDataAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataAttribute.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataAttribute.java index cac9ce76882c271e673a66d2fece7d78ecfc93c3..9baaa1ffcec647d01c2b14a606601456c20c3e52 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataAttribute.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataAttribute.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataSource.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataSource.java index fdbe07b64a2fb43da2970d7b53afb4dd06ad6204..ef698698706c3d28bd8483bd9bdd079293e86ded 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataSource.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DataSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DiagramTemplate.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DiagramTemplate.java index 5ed01fbc7428fba1c11173f4a2f1a8157b67ab43..d4500fcf2fb43b4cd9cff97a5b7c04ade7fb8dd6 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DiagramTemplate.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/DiagramTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/EvaluationTemplate.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/EvaluationTemplate.java index 9cf3be2e65c2602d0e73cfbd555960bfecd24879..89e8b681fe217cf07ec6a67f25dc827a4700c0cc 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/EvaluationTemplate.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/evaluationtemplate/EvaluationTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/BooleanFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/BooleanFilterParameter.java index 533e4ac4ef9b7b77e33887cec205a3e0396d5d83..d95bc095dadfa146205830b2746f567c52f17452 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/BooleanFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/BooleanFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalRangeFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalRangeFilterParameter.java index 5725f603dc21e59283bdedf3ae20df3671d03bb5..81bd4fc11c73913c15bdc16bad3ded7c012cb961 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalRangeFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalRangeFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalValueFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalValueFilterParameter.java index 89e0ec31a198540e32e5bb61eee17de10d8872e5..188f09c06d460fa0b11e6e19761cbf0f9567dc7b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalValueFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/DecimalValueFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerRangeFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerRangeFilterParameter.java index c69866b20225f96eade04a149d0b6e7dcafd1aff..05bc6a51545ca08c6c97d476567960d3839250f1 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerRangeFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerRangeFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerValueFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerValueFilterParameter.java index 40051bbf3c9bf6e346ab2d093f0f1de106e23362..b986f8d745fee33c999c9d776540f8ac66b5f0bf 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerValueFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/IntegerValueFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NullFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NullFilterParameter.java index 90b2d900ececea2c14e4c20832d54133e8620ad5..238d6cc03869876a44f40841a7ae9231119b037d 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NullFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NullFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NumericComparison.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NumericComparison.java index 7ccff4a55a714a4726616df0a86b2591b691333f..aef287c81bd06398f3fe5e85ca4d99d738eae67e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NumericComparison.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/NumericComparison.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/TextFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/TextFilterParameter.java index e30a5ed58ae47183c43f915523ff4ee605d14f58..8cd330fefb3b856fc7b008a9be62d5e52f57ade5 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/TextFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/TextFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/ValueOptionFilterParameter.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/ValueOptionFilterParameter.java index 3bf56f773275aaf93f0fcf67bfc34dd77fe23659..2abed5ccf4108c0d9cd2dff8be899fcccfc78ebf 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/ValueOptionFilterParameter.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/filter/ValueOptionFilterParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Frequency.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Frequency.java index 3aa8a99fcfe99bfc33fe18a35d090a01c1ead514..4246108df72b7ccd75c59fa8893f1f1514b8a0f2 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Frequency.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Frequency.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Report.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Report.java index 038920c9e1588bf1e9c9eeb9268ec5911e4c77d9..481c3733c98de320a41d657d2e1a2929f5b5de47 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Report.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/Report.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportSeries.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportSeries.java index 3b3207f24e83b843ed2eb74c0a15f3b4a86c7a2f..60f6aae49c3ca9e16ff487656fcb21d980e4f861 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportSeries.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportSeries.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportType.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportType.java index f4ecd3065b8de0c76276a2b2f4ecf2c41309e525..523d0669ca3cd42c85a8b531cc97866270ea381b 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportType.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportingPeriod.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportingPeriod.java index 7032f1fe245ac76a404ffe20ae877b23b5ca8348..d935677477d7d856951e5886ebbaea6a40aecbec 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportingPeriod.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/entity/report/ReportingPeriod.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/AnalysisRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/AnalysisRepository.java index e7d31f6e4314d96d2164e1c9897d784a6512c877..074632f8f16617e40cc93009d89dd342dd6a74d0 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/AnalysisRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/AnalysisRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/CellEntryRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/CellEntryRepository.java index 173e4b300b7f9776a38cf35f62e6ce44aa3510d5..7637090c67c6a7118aebbdfaae35a2b144b262ab 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/CellEntryRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/CellEntryRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/DiagramRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/DiagramRepository.java index 8343364fd96b911fd0f802d858ba749a8a9799ce..f447876900e53b000440c1f32b9d873b3b6c7973 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/DiagramRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/DiagramRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationRepository.java index 6713cdfaaa690657ccb5000d0482dfa460eb4057..f00f1ed6433730dc2cef0defa2c8e8625404077e 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationTemplateRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationTemplateRepository.java index 5d0ae249de924f280cd6d44fd6042f5b22737557..9da2d6b1d9b508aeb11c534e34a10e5dbbf5d535 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationTemplateRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/EvaluationTemplateRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/FilterTemplateRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/FilterTemplateRepository.java index aae0a54566909e2a33720a0b5a7961138e289374..1d697fd3117ae12c8abb43b8755a534dbc3ce836 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/FilterTemplateRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/FilterTemplateRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/GeoShapeRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/GeoShapeRepository.java index 4729f728adbe02e368ebf89e0fd94dc9ff32bdc1..32079de185f1d97ac1cdd28afb852c2594acd713 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/GeoShapeRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/GeoShapeRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportRepository.java index 1135552d98b9fb7a6a85aa47294dd3304318d53c..9733b52f7525e09faa536f76014d7e41c8f85c21 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportSeriesRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportSeriesRepository.java index d343fc3b1dc71fa31fd1dc9e456dd665f3235bce..46e113b992ac57c1f3b861c2a731285f5362bfef 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportSeriesRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/ReportSeriesRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/TableRowRepository.java b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/TableRowRepository.java index b3e81d12e1d61bb956d5d32297f0cca4ca57add2..f4c17b7ce7e5781c93f5a7adfd9f309251d05324 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/TableRowRepository.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/persistence/repository/TableRowRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsPopulator.java b/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsPopulator.java index e51d8e9aae19e830dc4e605d1e9d492c91744c78..2d0bbc81cb43f61f52288a451e5a522a9fb09fcf 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsPopulator.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -60,6 +60,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.UUID; import org.springframework.stereotype.Component; @@ -79,7 +80,7 @@ public class StatisticsPopulator { private final ReportSeriesController reportSeriesController; private final EvaluationTemplateController evaluationTemplateController; private final FilterTemplateController filterTemplateController; - private final TestHelperClock testHelperClock; + private final Optional<TestHelperClock> optionalTestHelperClock; public StatisticsPopulator( EvaluationController evaluationController, @@ -87,13 +88,13 @@ public class StatisticsPopulator { ReportSeriesController reportSeriesController, EvaluationTemplateController evaluationTemplateController, FilterTemplateController filterTemplateController, - TestHelperClock testHelperClock) { + Optional<TestHelperClock> optionalTestHelperClock) { this.evaluationController = evaluationController; this.analysisController = analysisController; this.reportSeriesController = reportSeriesController; this.evaluationTemplateController = evaluationTemplateController; this.filterTemplateController = filterTemplateController; - this.testHelperClock = testHelperClock; + this.optionalTestHelperClock = optionalTestHelperClock; } public UUID addEvaluationSchoolEntry(boolean anonymized) { @@ -147,7 +148,8 @@ public class StatisticsPopulator { "populated template", evaluationId)); - testHelperClock.changeToDate(LocalDate.of(2023, 12, 1)); + optionalTestHelperClock.ifPresent( + testHelperClock -> testHelperClock.changeToDate(LocalDate.of(2023, 12, 1))); reportSeriesController.addReportSeries( new AddAutoReportSeriesRequest( evaluationId, @@ -156,7 +158,8 @@ public class StatisticsPopulator { 1, FrequencyDto.PER_MONTH, ReportingPeriodDto.MONTH)); - testHelperClock.changeToDate(LocalDate.of(2024, 1, 1)); + optionalTestHelperClock.ifPresent( + testHelperClock -> testHelperClock.changeToDate(LocalDate.of(2024, 1, 1))); reportSeriesController.addReportSeries( new AddManualReportSeriesRequest( evaluationId, diff --git a/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsTestHelperController.java b/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsTestHelperController.java index 5a545ee9943724dd6c136e4ece1d3827570f7543..c483a3300d981fdc06fea3602dc2eed60a5b60c4 100644 --- a/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsTestHelperController.java +++ b/backend/statistics/src/main/java/de/eshg/statistics/testhelper/StatisticsTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/statistics/src/main/resources/application.properties b/backend/statistics/src/main/resources/application.properties index fd5798b998decb40f57e9ab38ba2f4e3f480cbdc..4418894ed122e5dc863b8e8c08550d029e0b94f1 100644 --- a/backend/statistics/src/main/resources/application.properties +++ b/backend/statistics/src/main/resources/application.properties @@ -17,8 +17,7 @@ spring.security.oauth2.client.registration.module-client.client-id=system-statis spring.security.oauth2.client.registration.module-client.client-secret=password spring.security.oauth2.client.provider.eshg-keycloak.token-uri=${eshg.keycloak.internal.url}/realms/eshg/protocol/openid-connect/token -eshg.statistics.businessmodule.original-data-permissions[0].business-module=SCHOOL_ENTRY -eshg.statistics.businessmodule.original-data-permissions[0].permission=SCHOOL_ENTRY_ADMIN +eshg.statistics.business-module.sensitive-data-permissions[SCHOOL_ENTRY]=SCHOOL_ENTRY_ADMIN +eshg.statistics.business-module.sensitive-data-permissions[INSPECTION]=INSPECTION_PROCEDURE_EDIT -eshg.statistics.businessmodule.original-data-permissions[1].business-module=INSPECTION -eshg.statistics.businessmodule.original-data-permissions[1].permission=INSPECTION_PROCEDURE_EDIT +logging.level.de.eshg.statistics=DEBUG diff --git a/backend/statistics/src/main/resources/migrations/0001_initial.xml b/backend/statistics/src/main/resources/migrations/0001_initial.xml index e9338a020fc11e6887c6919af4ac5d259ec3b628..58961d1374ed7cf9842dcd56c32800421a118025 100644 --- a/backend/statistics/src/main/resources/migrations/0001_initial.xml +++ b/backend/statistics/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0002_add_diagram_with_filters.xml b/backend/statistics/src/main/resources/migrations/0002_add_diagram_with_filters.xml index 12816bd03a18ffd3a11758fbe97e86b292347cff..30e4a2132e888fccd81fdd21c7b218f9e4cd276a 100644 --- a/backend/statistics/src/main/resources/migrations/0002_add_diagram_with_filters.xml +++ b/backend/statistics/src/main/resources/migrations/0002_add_diagram_with_filters.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0003_add_bar_chart_diagram_data.xml b/backend/statistics/src/main/resources/migrations/0003_add_bar_chart_diagram_data.xml index 039c69bd301ff2e2c66b12e690cbb0e814477e90..f60458d7faf2730082c01896fab59233c9abc15c 100644 --- a/backend/statistics/src/main/resources/migrations/0003_add_bar_chart_diagram_data.xml +++ b/backend/statistics/src/main/resources/migrations/0003_add_bar_chart_diagram_data.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0004_add_geo_shapes.xml b/backend/statistics/src/main/resources/migrations/0004_add_geo_shapes.xml index c8f99cae63b59377d2a27c2ffb537b12135e7ee6..76123244a2683404f0007d951a273ab5c928c8ed 100644 --- a/backend/statistics/src/main/resources/migrations/0004_add_geo_shapes.xml +++ b/backend/statistics/src/main/resources/migrations/0004_add_geo_shapes.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0005_add_pie_chart_diagram_data.xml b/backend/statistics/src/main/resources/migrations/0005_add_pie_chart_diagram_data.xml index 41d12137a1f45e1fbf23d9e216acd67be5e67ac6..5a09b74a13b098f078f2d5bb703b1320b2f63a0d 100644 --- a/backend/statistics/src/main/resources/migrations/0005_add_pie_chart_diagram_data.xml +++ b/backend/statistics/src/main/resources/migrations/0005_add_pie_chart_diagram_data.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0006_add_histogram_bins.xml b/backend/statistics/src/main/resources/migrations/0006_add_histogram_bins.xml index a21bbbfe4767fb9e14975cc53c4c31cbe99faf0b..63e6e2275679e407e617b54d729be8611c51e889 100644 --- a/backend/statistics/src/main/resources/migrations/0006_add_histogram_bins.xml +++ b/backend/statistics/src/main/resources/migrations/0006_add_histogram_bins.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0007_add_histogram_chart_diagram_data.xml b/backend/statistics/src/main/resources/migrations/0007_add_histogram_chart_diagram_data.xml index d8fb267beddf2f0b2064bbc709eda65466dcf654..43402175a27fc736f82d5270ec14528051ace5f2 100644 --- a/backend/statistics/src/main/resources/migrations/0007_add_histogram_chart_diagram_data.xml +++ b/backend/statistics/src/main/resources/migrations/0007_add_histogram_chart_diagram_data.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0008_introduce_pgenums.xml b/backend/statistics/src/main/resources/migrations/0008_introduce_pgenums.xml index 27dfcd3a83b05e39d29370aff15571c8115872d6..e7bb5526fd773221fe0004d820bf4f0db79ec258 100644 --- a/backend/statistics/src/main/resources/migrations/0008_introduce_pgenums.xml +++ b/backend/statistics/src/main/resources/migrations/0008_introduce_pgenums.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0009_add_choropleth_map_configuration.xml b/backend/statistics/src/main/resources/migrations/0009_add_choropleth_map_configuration.xml index 0ee72784f01ac47170cdcb3d4f8084f6db42a579..ed385b1951af07fbc782b1f65dea7963ebdcde0d 100644 --- a/backend/statistics/src/main/resources/migrations/0009_add_choropleth_map_configuration.xml +++ b/backend/statistics/src/main/resources/migrations/0009_add_choropleth_map_configuration.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0010_add_choropleth_map_diagram_data.xml b/backend/statistics/src/main/resources/migrations/0010_add_choropleth_map_diagram_data.xml index 40420525c02faad3ff82abd8557a09702f45bad7..0d244e144800df501f327aeaba7030c2ceeb0b28 100644 --- a/backend/statistics/src/main/resources/migrations/0010_add_choropleth_map_diagram_data.xml +++ b/backend/statistics/src/main/resources/migrations/0010_add_choropleth_map_diagram_data.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0011_adjust_entity_relations.xml b/backend/statistics/src/main/resources/migrations/0011_adjust_entity_relations.xml index c90a086258b1875ff46d5323e98f3b2fcfca00fa..9b77b4f9ec2fda9eab11c7a4198831927bd2cb59 100644 --- a/backend/statistics/src/main/resources/migrations/0011_adjust_entity_relations.xml +++ b/backend/statistics/src/main/resources/migrations/0011_adjust_entity_relations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0012_add_filter_templates.xml b/backend/statistics/src/main/resources/migrations/0012_add_filter_templates.xml index bb999fbeff9ba501406fd269776d895e1b9c84ab..5ead39f3b3e7eefac6779b74cb92c3dfe3a81d2f 100644 --- a/backend/statistics/src/main/resources/migrations/0012_add_filter_templates.xml +++ b/backend/statistics/src/main/resources/migrations/0012_add_filter_templates.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0013_add_search_key.xml b/backend/statistics/src/main/resources/migrations/0013_add_search_key.xml index affb2e2b3d8eca94ab1fa61764487e9e845ea549..98a3eba7812293edafda9d95dbce95c7e5763501 100644 --- a/backend/statistics/src/main/resources/migrations/0013_add_search_key.xml +++ b/backend/statistics/src/main/resources/migrations/0013_add_search_key.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0014_indices_for_many_to_one_relations.xml b/backend/statistics/src/main/resources/migrations/0014_indices_for_many_to_one_relations.xml index 67a4956bc971eee550b90a911a14ad80ef8c489e..832c66ca59019bb9d23ff27e687c5626eee8f1b4 100644 --- a/backend/statistics/src/main/resources/migrations/0014_indices_for_many_to_one_relations.xml +++ b/backend/statistics/src/main/resources/migrations/0014_indices_for_many_to_one_relations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0015_add_line_or_scatter_chart_data.xml b/backend/statistics/src/main/resources/migrations/0015_add_line_or_scatter_chart_data.xml index b2ce3b1ea25fec1d0a501858912dec7b27d9456e..42537ecc7591bedc320cbcbf300d47ca185b0f1e 100644 --- a/backend/statistics/src/main/resources/migrations/0015_add_line_or_scatter_chart_data.xml +++ b/backend/statistics/src/main/resources/migrations/0015_add_line_or_scatter_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0016_add_aggregation_result_state.xml b/backend/statistics/src/main/resources/migrations/0016_add_aggregation_result_state.xml index 61857a372858715530cc4e9be88ff4ef89d8b7e3..26e6b63ebcce303bae0ab8c02a0b2f3b1b983e22 100644 --- a/backend/statistics/src/main/resources/migrations/0016_add_aggregation_result_state.xml +++ b/backend/statistics/src/main/resources/migrations/0016_add_aggregation_result_state.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0017_add_aggregation_result_pending_state.xml b/backend/statistics/src/main/resources/migrations/0017_add_aggregation_result_pending_state.xml index 710c7f0cd1fd0485ec809af25feb42af553c335c..e509ad4fd8d10ef664d77c99d7ff90448997bca8 100644 --- a/backend/statistics/src/main/resources/migrations/0017_add_aggregation_result_pending_state.xml +++ b/backend/statistics/src/main/resources/migrations/0017_add_aggregation_result_pending_state.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0018_introduce_abstract_aggregation_result.xml b/backend/statistics/src/main/resources/migrations/0018_introduce_abstract_aggregation_result.xml index e065193793697941b7287187a448c9c8a04739c0..3de006ae0131c5a6ffcf3c29265c517ab114c565 100644 --- a/backend/statistics/src/main/resources/migrations/0018_introduce_abstract_aggregation_result.xml +++ b/backend/statistics/src/main/resources/migrations/0018_introduce_abstract_aggregation_result.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0019_add_copy_statistic_enums.xml b/backend/statistics/src/main/resources/migrations/0019_add_copy_statistic_enums.xml index 43ecc12627b269a8736e26c4b239cd1d383f9d1d..7602c93e4a37f31abf6f21ac7ae10f966cf6ec66 100644 --- a/backend/statistics/src/main/resources/migrations/0019_add_copy_statistic_enums.xml +++ b/backend/statistics/src/main/resources/migrations/0019_add_copy_statistic_enums.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0020_introduce_reports.xml b/backend/statistics/src/main/resources/migrations/0020_introduce_reports.xml index b963fe065226187c5ee5c4c047e8512cc49e7351..6d196ab8e3d54b2cd0ed42cb5ae9052ec7891ae7 100644 --- a/backend/statistics/src/main/resources/migrations/0020_introduce_reports.xml +++ b/backend/statistics/src/main/resources/migrations/0020_introduce_reports.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0021_cell_entry_indexes.xml b/backend/statistics/src/main/resources/migrations/0021_cell_entry_indexes.xml index fa593b1a68320d56b6eb5854f82e17070b2b6e66..f247c4dde60ef926e077229a505939746a908788 100644 --- a/backend/statistics/src/main/resources/migrations/0021_cell_entry_indexes.xml +++ b/backend/statistics/src/main/resources/migrations/0021_cell_entry_indexes.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0022_auto_report_series.xml b/backend/statistics/src/main/resources/migrations/0022_auto_report_series.xml index cd0ce8cc4e5a2ff389382414613b1ce636be1223..0e7a3b0d7308633a00458c9615daf3e4bae8098e 100644 --- a/backend/statistics/src/main/resources/migrations/0022_auto_report_series.xml +++ b/backend/statistics/src/main/resources/migrations/0022_auto_report_series.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0023_tablerow_cellentry_sequences.xml b/backend/statistics/src/main/resources/migrations/0023_tablerow_cellentry_sequences.xml index c023d17346a618cea08774483a6a901f659bbbb4..b1a73db3d11c94ef2b15cc9d8e0b16e80dc4250c 100644 --- a/backend/statistics/src/main/resources/migrations/0023_tablerow_cellentry_sequences.xml +++ b/backend/statistics/src/main/resources/migrations/0023_tablerow_cellentry_sequences.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0024_rename_to_evaluation_template.xml b/backend/statistics/src/main/resources/migrations/0024_rename_to_evaluation_template.xml index b77227422abbdbbd422e2c16381347150fcf2475..75682c16862d5488965882959902a72be45db6ee 100644 --- a/backend/statistics/src/main/resources/migrations/0024_rename_to_evaluation_template.xml +++ b/backend/statistics/src/main/resources/migrations/0024_rename_to_evaluation_template.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0025_add_table_rows_removal_state.xml b/backend/statistics/src/main/resources/migrations/0025_add_table_rows_removal_state.xml index f0f309b1354c4724efe54a104221d9b2dd3825fc..00e337020fa4dffe49fa7928f64c2b4ea21f2c29 100644 --- a/backend/statistics/src/main/resources/migrations/0025_add_table_rows_removal_state.xml +++ b/backend/statistics/src/main/resources/migrations/0025_add_table_rows_removal_state.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0026_enhance_evaluation_templates.xml b/backend/statistics/src/main/resources/migrations/0026_enhance_evaluation_templates.xml index c8fd6a04a8fd5614f4bae3e6b6dd67c719b8bc5a..1e676742061704da33f664d1a19457c65aa1ac71 100644 --- a/backend/statistics/src/main/resources/migrations/0026_enhance_evaluation_templates.xml +++ b/backend/statistics/src/main/resources/migrations/0026_enhance_evaluation_templates.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0027_refactor_aggregation_result_states.xml b/backend/statistics/src/main/resources/migrations/0027_refactor_aggregation_result_states.xml index edc1ce78d071faed004b025f0230d4a9c71c3d16..c0368db707ebfa72828a7ae273546a0f52a2099c 100644 --- a/backend/statistics/src/main/resources/migrations/0027_refactor_aggregation_result_states.xml +++ b/backend/statistics/src/main/resources/migrations/0027_refactor_aggregation_result_states.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0028_add_deleting_aggregation_result_state.xml b/backend/statistics/src/main/resources/migrations/0028_add_deleting_aggregation_result_state.xml index 3a24067d8835c1468033b37fa145545a2e88c1a4..931414203b5f936e8bdef644da2b86a1b692cb5c 100644 --- a/backend/statistics/src/main/resources/migrations/0028_add_deleting_aggregation_result_state.xml +++ b/backend/statistics/src/main/resources/migrations/0028_add_deleting_aggregation_result_state.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0029_execution_date_mandatory.xml b/backend/statistics/src/main/resources/migrations/0029_execution_date_mandatory.xml index e8cd3c6436eed6df1a368197a6ef5282a81075d4..09814c5080a482f1b5d8652e01f819431dfc92c9 100644 --- a/backend/statistics/src/main/resources/migrations/0029_execution_date_mandatory.xml +++ b/backend/statistics/src/main/resources/migrations/0029_execution_date_mandatory.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0030_add_attribute_names_to_evaluation_templates.xml b/backend/statistics/src/main/resources/migrations/0030_add_attribute_names_to_evaluation_templates.xml index 1b71d82f13f6582326b1db7d8a8e240014f51d5d..14ee68d2a269be60eed88c68d0aaef8fa6b23cd3 100644 --- a/backend/statistics/src/main/resources/migrations/0030_add_attribute_names_to_evaluation_templates.xml +++ b/backend/statistics/src/main/resources/migrations/0030_add_attribute_names_to_evaluation_templates.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0031_add_description_and_count_to_evaluation_template.xml b/backend/statistics/src/main/resources/migrations/0031_add_description_and_count_to_evaluation_template.xml index f2d06bb7296994c199c6feb89d1e1d806994653b..2875e8486d929567946a74ca995d06895adb12b5 100644 --- a/backend/statistics/src/main/resources/migrations/0031_add_description_and_count_to_evaluation_template.xml +++ b/backend/statistics/src/main/resources/migrations/0031_add_description_and_count_to_evaluation_template.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0032_add_anonymized_flag.xml b/backend/statistics/src/main/resources/migrations/0032_add_anonymized_flag.xml index 99e7b72549374d17000fae9491b32d6b26908c61..eb6cff4c988a80bea9cadb5472818425c0cf50f8 100644 --- a/backend/statistics/src/main/resources/migrations/0032_add_anonymized_flag.xml +++ b/backend/statistics/src/main/resources/migrations/0032_add_anonymized_flag.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0033_remove_central_file_ids.xml b/backend/statistics/src/main/resources/migrations/0033_remove_central_file_ids.xml index 42389f3b4d2c38978e1c103f0bd37a7f2a1d2f43..f29d52a8068f3643321a59eea26661bd18186326 100644 --- a/backend/statistics/src/main/resources/migrations/0033_remove_central_file_ids.xml +++ b/backend/statistics/src/main/resources/migrations/0033_remove_central_file_ids.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0034_unique_active_series.xml b/backend/statistics/src/main/resources/migrations/0034_unique_active_series.xml index 90656f744bf05529c1409033abccd4abbab871b8..c4e903fac6ae2d44224675224fdaf8fe34349adb 100644 --- a/backend/statistics/src/main/resources/migrations/0034_unique_active_series.xml +++ b/backend/statistics/src/main/resources/migrations/0034_unique_active_series.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0035_unique_planned_report.xml b/backend/statistics/src/main/resources/migrations/0035_unique_planned_report.xml index 8e2c27210936b80b34f8d10fdb8f7d329e570ae8..abd2318d627ec6236d348422e71a7ea6a605f6ad 100644 --- a/backend/statistics/src/main/resources/migrations/0035_unique_planned_report.xml +++ b/backend/statistics/src/main/resources/migrations/0035_unique_planned_report.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0036_rename_evaluation_to_analysis.xml b/backend/statistics/src/main/resources/migrations/0036_rename_evaluation_to_analysis.xml index 815fb613667416292fe044f575e24b09a821ce26..603ab6a7f2d70ca0932621363facb639e6a9ba57 100644 --- a/backend/statistics/src/main/resources/migrations/0036_rename_evaluation_to_analysis.xml +++ b/backend/statistics/src/main/resources/migrations/0036_rename_evaluation_to_analysis.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0037_drop_default_revision_entity_created_by_not_null_contraint.xml b/backend/statistics/src/main/resources/migrations/0037_drop_default_revision_entity_created_by_not_null_contraint.xml index e8aea69ff64f4ff75cc6341e75b344fda49d0556..41a85378db34dd7b959cf3b96f690b4ed0450d27 100644 --- a/backend/statistics/src/main/resources/migrations/0037_drop_default_revision_entity_created_by_not_null_contraint.xml +++ b/backend/statistics/src/main/resources/migrations/0037_drop_default_revision_entity_created_by_not_null_contraint.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0038_rename_statistic_to_evaluation.xml b/backend/statistics/src/main/resources/migrations/0038_rename_statistic_to_evaluation.xml index 171b59f44be274f503acbb7b041e25f99e6f1c96..d7f396d29f49b9fca700423f274f7666dbd03da4 100644 --- a/backend/statistics/src/main/resources/migrations/0038_rename_statistic_to_evaluation.xml +++ b/backend/statistics/src/main/resources/migrations/0038_rename_statistic_to_evaluation.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0039_use_lib_scheduling.xml b/backend/statistics/src/main/resources/migrations/0039_use_lib_scheduling.xml index 0cfe42e4d3ef11a0200904806d70e2dbf32d541c..d72433ba611d3a814108843d691e5a48c701a124 100644 --- a/backend/statistics/src/main/resources/migrations/0039_use_lib_scheduling.xml +++ b/backend/statistics/src/main/resources/migrations/0039_use_lib_scheduling.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/0040_replace_anonymized_with_data_sensitivity.xml b/backend/statistics/src/main/resources/migrations/0040_replace_anonymized_with_data_sensitivity.xml index ab678105847395f085481984dcb310e2847688c3..7c0c3220820a2aadb2d3107740c744b32ba7ff0d 100644 --- a/backend/statistics/src/main/resources/migrations/0040_replace_anonymized_with_data_sensitivity.xml +++ b/backend/statistics/src/main/resources/migrations/0040_replace_anonymized_with_data_sensitivity.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/statistics/src/main/resources/migrations/changelog.xml b/backend/statistics/src/main/resources/migrations/changelog.xml index 5c00ea3b36f64770a1fb1ce7f1cc1bfe4e0511c4..de4a13066658ee443b506627bd9afb19644bae0b 100644 --- a/backend/statistics/src/main/resources/migrations/changelog.xml +++ b/backend/statistics/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/openApi.yaml b/backend/sti-protection/openApi.yaml index 15b2d143ae41b6a9cf3a2a5f4c4a53c0a8c7a612..4a2748789ca1d154ef96f6bc0fd1eabc4749b399 100644 --- a/backend/sti-protection/openApi.yaml +++ b/backend/sti-protection/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 @@ -1047,6 +1047,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -2360,9 +2379,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -2381,10 +2399,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -2517,6 +2532,7 @@ components: - HIV_STI_CONSULTATION - SEX_WORK - RESULTS_REVIEW + - OFFICIAL_MEDICAL_SERVICE AppointmentTypeConfig: type: object properties: @@ -2691,80 +2707,33 @@ components: required: - businessProcedure - inclusionStatus - Concern: - type: string - enum: - - HIV_STI_CONSULTATION - - SEX_WORK - ConcreteFileDto: + CheckFileStateUsageRequest: type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: - type: string - format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: + properties: + fileStatesIds: + type: array + items: type: string format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' + maxItems: 2147483647 + minItems: 1 required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: + - fileStatesIds + CheckFileStateUsageResponse: type: object - discriminator: - propertyName: '@type' properties: - '@type': - type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: - type: string - format: uuid + inUse: + type: array + items: + type: string + format: uuid required: - - '@type' + - inUse + Concern: + type: string + enum: + - HIV_STI_CONSULTATION + - SEX_WORK ContactDetails: type: object properties: @@ -3694,32 +3663,10 @@ components: - FEMALE - MALE example: "['FEMALE','DIVERSE']" - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -4387,7 +4334,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -4627,18 +4574,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -4802,7 +4742,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -5177,7 +5117,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/AppointmentService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/AppointmentService.java index 257c8321ff5d79f1cfbc35da5f382091ea472103..5ec3e8384a01e14f4f224573977ab4048511ee19 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/AppointmentService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/AppointmentService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationController.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationController.java index a047aeb19e18c833651bef45492ddea2dd9880db..15e093a16883ad2cf267a8afefe18d9f19af71b5 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationController.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationService.java index 66327b6f5fafb824742959f00ce02f8a0810d5a7..501a567999f2020b8ee84a6649e1662c12b0cd58 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/ExaminationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryController.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryController.java index 0914899bb458c072c1ca89381aa639ff82c9e221..afbf5833f74ede68ddd7881e3b02a8b58b5b9f91 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryController.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryDocumentController.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryDocumentController.java index 2c6057bfb1ba40da2ae4c150069e8f34bd6608e7..00a7ed79b4b09f50c40885617b389e11a6ef4798 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryDocumentController.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryDocumentController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryService.java index 4d132e8e735ec3fa14424a2738f47836407a0fc7..700a93bfdb0f0ea5514ed5884d49195dad4c7029 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/MedicalHistoryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/OverdueProceduresNotifier.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/OverdueProceduresNotifier.java index d25c48df33c979769040fe6026cd65dea5942506..889c1d444dcacba7b940a91dc7ac03a9d8b74f36 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/OverdueProceduresNotifier.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/OverdueProceduresNotifier.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionApplication.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionApplication.java index 70c3714be1e98aaee9969cf2bc22ffbe3f129f69..8abb000d46a212311b05c3d55dc42e277648f10e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionApplication.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureController.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureController.java index f6dd572466b38be38fee5800758147f1956387f3..10400137d15f09c8e8b1e0688e7f4aa015af7aa8 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureController.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureDeletionService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureDeletionService.java index ec3ba32e7516988073fe2bb93cb0486964d65d65..ca936c6d8ac8b7a6be405e220990056f760574af 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureDeletionService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureDeletionService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureService.java index 7c843d5b83757226b6456dae9b31a461be914993..3136ea89a34c7834447ed11b590d864d0836d04d 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/StiProtectionProcedureService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -60,7 +60,6 @@ import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.JoinType; import jakarta.persistence.criteria.Path; import jakarta.persistence.criteria.Root; -import jakarta.validation.Valid; import java.time.Clock; import java.time.Instant; import java.util.List; @@ -227,11 +226,11 @@ public class StiProtectionProcedureService { .orElseThrow( () -> new NotFoundException( - "%s with UUID %s not found" - .formatted(StiProtectionProcedure.class.getSimpleName(), procedureId))); + "%s with given UUID not found" + .formatted(StiProtectionProcedure.class.getSimpleName()))); } - public void updatePersonDetails(UUID procedureId, @Valid UpdatePersonDetailsRequest request) { + public void updatePersonDetails(UUID procedureId, UpdatePersonDetailsRequest request) { StiProtectionProcedure procedure = findProcedureByExternalId(procedureId); Person person = procedure.getPerson(); diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomController.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomController.java index 918493d2a95fd7b3244e96e4f668b4bd27773d01..4dadb76f32ddc25261517a818d8a282ca503aec3 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomController.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomService.java index b7c62ab4b181cbebc3102ead1a75a503bcfc3bbc..d602fb45fef12b6d39fae8be581e7c480e7ce4ce 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/WaitingRoomService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/annotations/ProcedureStatusTransition.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/annotations/ProcedureStatusTransition.java index 29aa419186f5b6bd980d5d8f646733ca240365b3..fce099f724633875ca3d53b047fccf5b7e7b63ad 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/annotations/ProcedureStatusTransition.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/annotations/ProcedureStatusTransition.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentBookingTypeDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentBookingTypeDto.java index 1296076676f20039ea1c5c8b09c5f20536b1c7ec..02910f6c4592175ccb6ba194e29656f30ae2104f 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentBookingTypeDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentBookingTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentHistoryEntryDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentHistoryEntryDto.java index dd02eb9f35591681d596313d885b2be4ae713321..0fca728fd0d1cf4ab6034506d15d43d19d82c898 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentHistoryEntryDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentHistoryEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentStatusDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentStatusDto.java index a95fb3d6b7639610c7bf40c9a06e9b10f091f036..809eb6287c8ee5b74ddc85addbc3e16f015f98e6 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentStatusDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/AppointmentStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/ConcernDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/ConcernDto.java index aa16cb6aa5be5a89c4ae87de986e7ff510aca69b..cb1efa1c4d61b43f0fcbdf4d2e9bfaa9fffecd59 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/ConcernDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/ConcernDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateAppointmentRequest.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateAppointmentRequest.java index 156f3580c0ccb8958a67ba43f076da85c3b3cca5..71928379a0b5d29b4f27bc9e23c4ad78b1984400 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateAppointmentRequest.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateAppointmentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureRequest.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureRequest.java index bc59e952b4d5ff3eb3f7dc3e968ea61728ab64ca..fed36deb59d8260d2c4d65577f18f248295058d1 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureRequest.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureResponse.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureResponse.java index 0fe3ff9a1b730914cce66cf7a811df07834b8f48..d2779c113e11e69c957d6a2a26ba642a43969be6 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureResponse.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/CreateProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresPaginationOptions.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresPaginationOptions.java index 84b09a53d1b2d20885dbbb672a716bef91264aca..fcfc73a49c6e924e35fc83a0edf42e2865af6790 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresPaginationOptions.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresPaginationOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresResponse.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresResponse.java index ef2459c949399aaff8ab29d0bb6f5b454a3a7748..dcc077a3fd4e174473eccb352b971213d75c1c91 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresResponse.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortByDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortByDto.java index 7c45053a723c3fc34e9ec12cccfcb2964aaffc1b..0d029cb5cd388f7886a20cc3c48cf2be5c000f18 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortByDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortByDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOptions.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOptions.java index 4a533dede6bc42e6e209bd4c75d658df4f83de4e..f5edcc1725169506eee216fbe90b45f08a8fa987 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOptions.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOrderDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOrderDto.java index 80a1ced823916193678b4693073fbb2363f01181..2ead1229ee726785c7092481019541b4fd1691b1 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOrderDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/GetStiProtectionProceduresSortOrderDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/PersonDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/PersonDto.java index ddaeb6123e8a37989e2eef9b2469e51cde2fae26..24fb11b3b9e44a21bbd3f9abc15c483dfbdc0964 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/PersonDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/PersonDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureDto.java index 12bedc9f5510ded4f9ab1213f20072bc801bd0c7..6b47923392afa30876e6c43a1712d294e5c681a4 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureOverviewDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureOverviewDto.java index d371451335322d31285eb8a4249335613bf3e841..50041482928888826babbb6078640e658f2dfa15 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureOverviewDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedureOverviewDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationRequest.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationRequest.java index 9058087ce34212019f047c770bc6af09955fd8e7..fa270fdaa791e0f4ec6b6ac23e3332a99fd7c95f 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationRequest.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationResponse.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationResponse.java index 70789a3a4c36131e52dcd1363dcca518f5bd0f01..13bbb864612aabc3fc0fa1a92c652fd2ac4e9834 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationResponse.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/StiProtectionProcedurePopulationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdateAppointmentRequest.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdateAppointmentRequest.java index 07e82dd625074e1c57ba65161855f166aca7bee5..4b9ec21857762c369457f91cd51c5ecaf56a11cf 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdateAppointmentRequest.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdateAppointmentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdatePersonDetailsRequest.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdatePersonDetailsRequest.java index 21e106c2fe79a585e88675f8822389f3d50cefa8..816a7a8ac38fa18cc18dc74491efed100eabe80b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdatePersonDetailsRequest.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/UpdatePersonDetailsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/VerifyAnonymousUserPinRequest.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/VerifyAnonymousUserPinRequest.java index caf03e88a4ee7613f638dd977d48984ae93b0a52..95df2d9eb3e3499e29c392f2b1ba5e6bbbf4c9ce 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/VerifyAnonymousUserPinRequest.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/VerifyAnonymousUserPinRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/HepatitisLaboratoryTestDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/HepatitisLaboratoryTestDto.java index f15e6fa0ab15be861d857d911d0e34d366c4e3c7..b061c155086281f61af3e0f5bf5fc741ba46572e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/HepatitisLaboratoryTestDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/HepatitisLaboratoryTestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestDto.java index 01f914ae3f5f652276a4788037051a9530dcc080..2531d0b63ca3b3d2c8175b67b42d17a5bc6dd3c0 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestExaminationDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestExaminationDto.java index fd754ce7d1370cba4985d800345a3c67b071c993..72839a5584fc92eb47fa17daec03ca3052b3911a 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestExaminationDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestSamplesDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestSamplesDto.java index 8b329c01277be7612d611e0af93ade21733d1488..3c170acaab30eba23ba9c321f10b15debdd06426 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestSamplesDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/LaboratoryTestSamplesDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestDataDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestDataDto.java index c1c00338e4d390f489a03d698157d0d9d0d6681b..16dd1f63617bf55f7d60a56fab4d2f0215ba71ec 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestDataDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestDataDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestExaminationDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestExaminationDto.java index 2ff5a5dbbf31de4c27f7852b02901daec0249d76..d3ef37fae5b0c2c29a13ef9467bcf16dfd9fb3a4 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestExaminationDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/examination/RapidTestExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/CreateMedicalHistoryRequest.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/CreateMedicalHistoryRequest.java index d42728f5aafe3ac46b0f9ad58352d67fc9460356..c3fbe4dab0090887a23931ff4d940de9dc7f8cd1 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/CreateMedicalHistoryRequest.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/CreateMedicalHistoryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/DiseaseTypeDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/DiseaseTypeDto.java index 5cb11441b969f884a4acbdce060b121d0d56c421..e98ecb7eceb9ca77472bb25cefe2132c2b7059b7 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/DiseaseTypeDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/DiseaseTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ExaminationDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ExaminationDto.java index 3c552e9ceed0c40fa2d8d766f3d90faab0201357..b38d26bf5b340127230e1a307b690db544ca057b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ExaminationDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ExaminationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/MedicalHistoryDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/MedicalHistoryDto.java index 74bcf8af4fb8bdfb250c003dfa8e4c6b0da0f1b6..892303d25b80ed8206dbd1f23a4acb2bcebc6a39 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/MedicalHistoryDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/MedicalHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PartnerRiskFactorDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PartnerRiskFactorDto.java index 282202150d68b4e0b76306f8c1958d8fbf11af90..2551e528f23053ff784d8e6accaea30c60bc9bf6 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PartnerRiskFactorDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PartnerRiskFactorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreventionDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreventionDto.java index adcdf0750472b1ba5ce578a4889acfc589e702f9..ff38e0d1d8e1afb9af4e4ccefb884676cc3eabb7 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreventionDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreventionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreviousIllnessDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreviousIllnessDto.java index a760c85744f95ed7efc3d16b2aa645ee2212c039..c936bc7a28a329a9473e07d717ff1e86451dee0b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreviousIllnessDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/PreviousIllnessDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ProtectionMethodDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ProtectionMethodDto.java index 0ee3d7500dd67556f72f28ec221f4d94089d6a49..734e5dc5b03ffa20de834487249fd61d7dfb13c7 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ProtectionMethodDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/ProtectionMethodDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RelationshipModelDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RelationshipModelDto.java index e04995f6be6669c2b0ec1519572dd0b2b76a183d..361bb009ff936d7c815812c8dd30ad2ab09979c8 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RelationshipModelDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RelationshipModelDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityDto.java index 69b7a52eeb750ed611519ffdb2108dafaf1be994..368c6e67864ac128984e60e34f1e88b3438cda3a 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityTypeDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityTypeDto.java index 62d2047711cee646355976d0f521c75c3f8b3180..e062fb074edd233a023680ccf1de486eb70c35d0 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityTypeDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskActivityTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskContactDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskContactDto.java index 21a3cbf051a1ce4cea85e67eae8360d1102a3ad0..4eded28ffd5a37e67b600647f43134aee79e2264 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskContactDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskContactDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskFactorDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskFactorDto.java index 7900bc8e0d18512caf82a901d317fc3e91e915f6..070bb915fad371219d606c4a885ad410eb7bee62 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskFactorDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/RiskFactorDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SafeSexPracticeDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SafeSexPracticeDto.java index eca8a254759d1bfd48bd6719280ca88155124b38..b1af6695c91b33bfe9d5bec354f40f4531cc51d8 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SafeSexPracticeDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SafeSexPracticeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkLocationDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkLocationDto.java index 0576446c55e8dc3e5d68396febde39c745aa1253..692d380e951e371972579cc2c5cf5a7be6444f84 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkLocationDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkLocationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkMedicalHistoryDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkMedicalHistoryDto.java index 2e4509aac182f2b6b9d2fe67453c04da3eceeef7..6142389f33392363b78573664715dc34f745c3fb 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkMedicalHistoryDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkMedicalHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkRiskContactDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkRiskContactDto.java index 4790cb147f2033e28258fafbe0a778ea10b5d56a..8a6836577c4c297218aaf246a58f655724d60977 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkRiskContactDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexWorkRiskContactDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexualOrientationDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexualOrientationDto.java index 33fa28cb29ca9a16d6a0db0b20e45626615b526c..006d82cf47cbe49b1504cce11070e2ee30a5a734 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexualOrientationDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/SexualOrientationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/StiConsultationMedicalHistoryDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/StiConsultationMedicalHistoryDto.java index b4e0db343560f0fa2f69b15f29ac12dc72471558..456b74b950db313b89d62cd018b5b578ab388ecc 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/StiConsultationMedicalHistoryDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/StiConsultationMedicalHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/VaccinationDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/VaccinationDto.java index 12d63d73777fb95304f3c789465bc37141419674..a4d7ce019143ddf41cd694d05ab4cbffaf9e7271 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/VaccinationDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/medicalhistory/VaccinationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/GetWaitingRoomProceduresResponse.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/GetWaitingRoomProceduresResponse.java index b5afd273e4b299ef98e7d4b2d5239d153e74f420..f7d194b0c909611ec1220e40be5f0e8aff7e279d 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/GetWaitingRoomProceduresResponse.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/GetWaitingRoomProceduresResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomDto.java index 1af2d952c21b9a53a1ba032c63a8c38c39db9cf8..d83525e3f6ad82c0e8af41a33e52435528dd0f9c 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedureDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedureDto.java index 5dab87e4a53ab8e80893ffc71d9bb7806786b83d..82e940fdd11a0ff2b7f26e9b590dac27b846bd0b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedureDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedureDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedurePaginationAndSortParameters.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedurePaginationAndSortParameters.java index d24dc1f422665f3176ac67a2d5727cbdcc30d2c3..9d61c836dee9d6859a47952b2b78919b9e21990e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedurePaginationAndSortParameters.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomProcedurePaginationAndSortParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomSortKey.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomSortKey.java index 9121601db9ddaf34685426d6ab3350aedce5076b..e5e959bcb7c8c262135323b934c275302aaa9d2a 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomSortKey.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingRoomSortKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingStatusDto.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingStatusDto.java index 16ef24cc595eac1685d9eae160f57be0e9f04120..f30bb57b37a70cae036379fa28d26b1dfdb5fd8a 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingStatusDto.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/api/waitingroom/WaitingStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/aspect/ProtectedProcedureAspect.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/aspect/ProtectedProcedureAspect.java index 3e0da0761b51d75e6b58920b236ee1851235185f..8c9e83301c355dd866ae4dc6b73bf50a8e68ac59 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/aspect/ProtectedProcedureAspect.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/aspect/ProtectedProcedureAspect.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/calendar/StiProtectionEventMetadataService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/calendar/StiProtectionEventMetadataService.java index 6085c876b2a3d10391c94c736e7e34e07f42ee3d..1f7da303ddf67f2a662487f7481971482b91ceea 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/calendar/StiProtectionEventMetadataService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/calendar/StiProtectionEventMetadataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/DateTimeConstants.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/DateTimeConstants.java index fefb9f34b93acb192baaa30c225db4e1983b09a0..aea8043310f56d5cc3cd5ed66c459226d895fd3a 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/DateTimeConstants.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/DateTimeConstants.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAppointmentBlockConfiguration.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAppointmentBlockConfiguration.java index 52fcd2a77efb4458f1d5bd39482bb9035cf76a38..cf0c38eaaab5763f0880ed171ec7a35e85b6a367 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAppointmentBlockConfiguration.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAppointmentBlockConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAuditLogConfiguration.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAuditLogConfiguration.java index 739dbd9091e6450283970edb05a825efb70cc684..42f846d1d1fc8b886bb3bdaeaf490ef6819fab91 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAuditLogConfiguration.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionNotificationConfiguration.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionNotificationConfiguration.java index a2e19c91d5f94a43097bbec55f7ee2a408d55659..550afc9383a7bad14554959a875701b7aac6382e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionNotificationConfiguration.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionNotificationConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionProcedureConfiguration.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionProcedureConfiguration.java index 2ad7d561b4d9bfc8bdac3d1f5624fc91bc97cb23..7b7faaa3ee4f99bfc9337b450048064a028760a1 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionProcedureConfiguration.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/config/StiProtectionProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentHistoryMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentHistoryMapper.java index e72b1868dd6aa9854eed6070163326a4b28ffe83..6c06957dff4f8b73de8f9853860404aee1674800 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentHistoryMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentHistoryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentMapper.java index ec69652f449c9698c3550c9de168a7a53ea2de4d..28e27b91cb1381d3ab66488d42010cff8a713f5e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentStatusMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentStatusMapper.java index 672f32b745e7dedf25c9bd7492ccd273755c7728..e53ef8204eb7209ec6051f2307c3b3f7ee51d1b0 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentStatusMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/AppointmentStatusMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/ConcernMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/ConcernMapper.java index e88b266f230b21c86820388fb3b719d2c36848bd..d9ec53897f854fb95dbd4cfaa2a860c6a961afe1 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/ConcernMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/ConcernMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/GenderMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/GenderMapper.java index 086ffa664647c8bc56bee140af4e8e6b8bd6edd7..616b296ef37e9642a73552035c2783266b96c949 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/GenderMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/GenderMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/PersonMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/PersonMapper.java index 54cf6abf7c44fc68f22744ef816dbfeb939ce28e..dfdcef1f45fa9642adb867fcb2752e3549769ea0 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/PersonMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/PersonMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/StiProtectionProcedureMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/StiProtectionProcedureMapper.java index f31927411d5853a87179250a738e588fe9c6e9b2..0b9906a36294240f894427490e54fe6cc87d0bd4 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/StiProtectionProcedureMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/StiProtectionProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryExaminationMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryExaminationMapper.java index e37f89ab9b0eba3ae15c0fefd084a074b333d25e..ff4750772efaad38a72c62ba3e10907b087694c4 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryExaminationMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryExaminationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryTestDataMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryTestDataMapper.java index cf4e404ea5a1cee543c75dd85dbd119b08afac25..b1528208558a0eb0804e0a6ee519df04228ff84c 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryTestDataMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/LaboratoryTestDataMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestDataMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestDataMapper.java index 248d6c7ed61b78001b9f08767a495554f97b17a9..cd46143835f5c6fb1a535df4707ce025ac40bc63 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestDataMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestDataMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestExaminationMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestExaminationMapper.java index e1544d711e59077a8cacf0dc77e5412972fce21c..6e024e08ab80b2bb1586053530b037ff717caad2 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestExaminationMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/examination/RapidTestExaminationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ExaminationMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ExaminationMapper.java index 5cf0ff72e5e30d0063f7d7b79c6adbbb195a0d9c..6f5df9225517ebce168eb6d2a9e171d32bd3ed67 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ExaminationMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ExaminationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/MedicalHistoryMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/MedicalHistoryMapper.java index 8dd13b00ace57cbaf1c3986017b2210e66a0b25e..e7020bb551ca92b8c187b0de4a0ad632ff53e298 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/MedicalHistoryMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/MedicalHistoryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PartnerRiskFactorMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PartnerRiskFactorMapper.java index ec3e71df6e603b97e8415f12b7bc2506c88f3c43..4583fe3f1d2964978db4356be0455d8c89a202c6 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PartnerRiskFactorMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PartnerRiskFactorMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreventionMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreventionMapper.java index bcedd37228800ada7e29a790da59a3c7ee168e32..f57dbc2d033f83422b0feb8d7ec0e1a946f2aeed 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreventionMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreventionMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreviousIllnessMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreviousIllnessMapper.java index e07d493c19bf9e8cddd7bfcf96506f64a821cdc8..ee1a8193635480da59b2eecef752b8225883e654 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreviousIllnessMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/PreviousIllnessMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ProtectionMethodMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ProtectionMethodMapper.java index 05f62929088731acf1cf2019695d16f6ca9bb0f0..7a3348e24b6123a9ad385bde2980293bd84dedb5 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ProtectionMethodMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/ProtectionMethodMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RelationshipModelMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RelationshipModelMapper.java index d3f6fb817087363b9c6f5801f0020507f76e0263..05587519148a1dfa6d58c14e969801ba55b5adb7 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RelationshipModelMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RelationshipModelMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskContactMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskContactMapper.java index 4b7eda7d25ce460d7256b19aa7dbfc7cf75e59a1..c00ad6fe2e63e2c5ecbdb51444caed19a49ab028 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskContactMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskContactMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskFactorMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskFactorMapper.java index 9d5fd3e00d1d2cd2c08fc89beff72a4e48b7920a..22e776b03dca26d3400adab705c1e410ef2074ea 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskFactorMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/RiskFactorMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SafeSexPracticeMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SafeSexPracticeMapper.java index 0a14c28b5fdc0e9a1cf6493182f2ac8fe3a5c453..2e653729997996f86421720601053ee29ab58623 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SafeSexPracticeMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SafeSexPracticeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkLocationMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkLocationMapper.java index 165cf64671d742d0a217d6a88a4a2f215b9de6b4..f79eedbd143a8b7a99bfdc7daf9edb0113fba38c 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkLocationMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkLocationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkRiskContactMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkRiskContactMapper.java index 97f01fbe8e9a435352f91a55e37490e59f77503c..bbd02aa3a0d36026a59d9114877ba2e47e6b54ff 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkRiskContactMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexWorkRiskContactMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexualOrientationMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexualOrientationMapper.java index a8c9d9a920676ecca1d57211d78b76d0b2178a58..cb7ed7678dc439ef018c997c00beb96c31047552 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexualOrientationMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/SexualOrientationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/VaccinationMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/VaccinationMapper.java index 6bc81e7668ec74682d23a12a0e9bdfc4b1eeff2a..df85aae8f5b00aef7234edb64a706ae2f253dc60 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/VaccinationMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/medicalhistory/VaccinationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomMapper.java index 4107a95b81892e90fced3b0ebb7ec9102a430625..3811363324d677435047df61fba170625acb865b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomProcedureMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomProcedureMapper.java index 23e3baa4ccf61761816701440fe9803be04ea971..45fdec60355c75997d0198b038e1ff33e83a8ef2 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomProcedureMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingRoomProcedureMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingStatusMapper.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingStatusMapper.java index f154be0cc0e5c35b835c1ecd56217bb6ddd7ae01..4461b5db399215ceaa51cd7b823a001a07f0691e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingStatusMapper.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/mapper/waitingroom/WaitingStatusMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocument.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocument.java index 496fe939eeac401968b50786743d93bf0477faf7..4e16d040008ffffee25888005e1b5279b317e68e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocument.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocument.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocumentService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocumentService.java index f6c898b1b2d891a3b500b1ef7512563e7523ee1b..311ae928897d343214a1a1231f86709425e6aaca 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocumentService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/AnonymousIdentificationDocumentService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/ConsultationAppointment.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/ConsultationAppointment.java index 0d89c943c4fe926754b2ad61afcdd575c0a492c2..cc837fd280409b25102b89712f8067b90a918f17 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/ConsultationAppointment.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/ConsultationAppointment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/Department.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/Department.java index 806924dbc1c6361d7ffd0308b4a8a5b347a81e9f..ee57d4f2b1c53726f9e6d7b4119a55bf57360f58 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/Department.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/Department.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentParameters.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentParameters.java index 778a16a4e7b39c00a0718aeff96749bcceb8b229..4d6ced458e485ead56de9229bc4eee9266999541 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentParameters.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentSender.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentSender.java index f31c04c5c9258c75621729b56d96f643a03aed80..e5662e0d0954d8f3920b184aa244fcea1d481abd 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentSender.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/pdf/identification/DocumentSender.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/anonymoususer/AnonymousUserClient.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/anonymoususer/AnonymousUserClient.java index b4618528ee559081ff44cee5f598db7afcef25f7..f63b74502c600253f542749e5c146aae247a26a7 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/anonymoususer/AnonymousUserClient.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/anonymoususer/AnonymousUserClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentBookingType.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentBookingType.java index fcedb8fa54367580f7aa9801e0271d209be5c1bc..9d0a7521e03d6be0df8f1a1eb04acb87f64e4a18 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentBookingType.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentBookingType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentData.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentData.java index 7f2ace461cb51cd665079195ea41da7a9b7f3872..8e90e5a85b84b7e152dc179a110f1f11c2adad99 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentData.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/AppointmentData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/ResultPage.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/ResultPage.java index ac3cdb9e9ba11e34ce141daab66c110ea3e3f24d..bcb1a2c66d680adf1450a40264b532b7005b4151 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/ResultPage.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/ResultPage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/StiProtectionProcedureData.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/StiProtectionProcedureData.java index a5936a1217e519021431a19b57de8c01e006e430..7e31eba871b905fe1b69cc70a9bd1eccb481d559 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/StiProtectionProcedureData.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/data/StiProtectionProcedureData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentHistoryEntry.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentHistoryEntry.java index a411a91fb05d3e35f74290adc55e182a394a94ff..d5575b8d6cc89a71ce5ebda514f73bda6b181e62 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentHistoryEntry.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentHistoryEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentStatus.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentStatus.java index 33a78837b3a9d52914c58e3218bd4ef64665137e..9545d025710d24e551fd175416486aeec5bf4c86 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentStatus.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/AppointmentStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Concern.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Concern.java index 76dd6d55f96ff039e9ac7160a1b5e28484bc1fe5..c30d042ee57e3742b8ae676d9058b1ed89230b15 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Concern.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Concern.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Facility.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Facility.java index 70bfada3b591b27a33bf38d5d506fbff67ff5c9d..69eb30af7e8f2e64d8590c9779de4b91dd9903aa 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Facility.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Gender.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Gender.java index d9922052ac2f25902548f475beb68f1aa45489ce..704fdada6b25b3545c47d81674a71a277248ce75 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Gender.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Gender.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Person.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Person.java index 77b156c84aa0ec497cd688dbf5377c37d6080141..f2d13d541831b2e73e65ef8fa94e9992dcebc735 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Person.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedure.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedure.java index 0cd8c7a8ddc6a992cb3e20144f542d0f5372cced..c38f76b8c3115db97d234623962ada43691d9790 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedure.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedure.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedureRepository.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedureRepository.java index 7e16fac40b3a2637dc8b129aa4fdd690fec6dbbd..7143dd2250f46bb0358e47cf43df5a69e029b734 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedureRepository.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionProcedureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionSystemProgressEntryType.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionSystemProgressEntryType.java index d53f78ea8ac440f3b9fd8cf5ea7fe63da7190189..f47239fc4a41f8af41c7b82fed315d1422d19b03 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionSystemProgressEntryType.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionSystemProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTask.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTask.java index 2e0ee942ff576bc7eed5876b913e9065510e5f94..eee241c4001a53bfc9d709c9e760b1d2063ca60b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTask.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTaskRepository.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTaskRepository.java index ffe4775b7ab905ca01116c83c637bb14ccc31e37..67a042506db10bc8ef2d04290612999b76687cbf 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTaskRepository.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/StiProtectionTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/UserDefinedAppointment.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/UserDefinedAppointment.java index fd541603de3d298719bc033543dc63aba05baf87..8c3931dafdc3630b57335d7e4ac8e7968731d9f2 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/UserDefinedAppointment.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/UserDefinedAppointment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/HepatitisLaboratoryTestData.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/HepatitisLaboratoryTestData.java index 9834658c333e279ea9d673b39d02182545241e5e..fefde34df4126b95c3538b60e17c6ab33f6030da 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/HepatitisLaboratoryTestData.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/HepatitisLaboratoryTestData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestData.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestData.java index bbea108fe9f876f5a521b79045102624d237c9ec..a899ee71dab9296d23ec1ecfd5ca040cc684559a 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestData.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestExamination.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestExamination.java index 8a6142382a88291842bd9d529190bb05dbedd672..282566cc3ef9cc183e6a0c29a35ed94a0c17209e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestExamination.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestExamination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestSamplesData.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestSamplesData.java index fd29ae5e5cf3cc4f42dfc710b009f7d9c38733ea..dba76b2054bc157bedbe97f6b1447d5215f07c45 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestSamplesData.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/LaboratoryTestSamplesData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestData.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestData.java index 078b1128b4546af345069b214685ecac249daa70..b0d4c08ae9740c64a6bf7e9bc0336634f5ae95eb 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestData.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestExamination.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestExamination.java index b187ff3cd9a4a5e4bb87eb67a306e1bd9ddea6dd..5cdab2991f15d5be7ce5c8e212cad261bd4b9339 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestExamination.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/examination/RapidTestExamination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/DiseaseType.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/DiseaseType.java index 3b2477be75574548e71995d641d982bd1063a138..fbec3a97282cef99a1cd1014f470e95a7f870fbb 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/DiseaseType.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/DiseaseType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Examination.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Examination.java index e143675264c1047a667d675a20c688ea6f90cec4..4ac2401796f8b87e609bb7607179c7ccc90d58a6 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Examination.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Examination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/MedicalHistory.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/MedicalHistory.java index 9bde885d169e59a201a404854933ee829ba6dd03..d9dbb50f4919297002330f8796770be2a0dfddac 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/MedicalHistory.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/MedicalHistory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PartnerRiskFactor.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PartnerRiskFactor.java index e9bc8d0889293d341fda1b9651fe48b2f6c389dd..438ce275b6e6f53bbcbb38041647b9c9d511c08b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PartnerRiskFactor.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PartnerRiskFactor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Prevention.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Prevention.java index 2db00ff8199f120a40976fc1b15669af453534bf..acfb63a5cd4352862850ad761e90aa269998fbac 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Prevention.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Prevention.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PreviousIllness.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PreviousIllness.java index c0e476719a0d12be131bf4b045a2778927001758..07fa3e1c01d375abce4e74c8d396c937bb086c1e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PreviousIllness.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/PreviousIllness.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/ProtectionMethod.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/ProtectionMethod.java index 13b5a1b74eac9daec932b646e2cde07fefa109a7..e42f92afa3925a9c1c77bbe02d0e3b0d5edbc0c4 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/ProtectionMethod.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/ProtectionMethod.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RelationshipModel.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RelationshipModel.java index dd5bffd03613ea01a941cdf2c8dca966969d9000..8bc9a07f8b35405c6111ee16f70ff4278f52fc8b 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RelationshipModel.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RelationshipModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivity.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivity.java index 10979a4f602cea7e0351e8d9aafe29be54afb5ed..1eab51f6068f9c49e1cb4b05e557a488306d0fe2 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivity.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivityType.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivityType.java index 5373de6ee7228ca54e650d177a6abbd617a709da..bcdf10934f147c90d994c3cfeeeb71efad165117 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivityType.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskActivityType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskContact.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskContact.java index bed79e470a4668f023b818574bb036fe287b5e6e..d544cfe52f6c91e572cb74442cbd198315f522cd 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskContact.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskContact.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskFactor.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskFactor.java index 7f4dd7a714a824aae7255e7a3ed58080746333cc..c6f71e44a82cf929e09a03be0ddd3571f8c51593 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskFactor.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/RiskFactor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SafeSexPractice.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SafeSexPractice.java index ad2b4b087edb6760f16711f3c3d8cda82a27989c..a324a28738f80770ef6ccc8e7d76331f39e2ec9a 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SafeSexPractice.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SafeSexPractice.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkLocation.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkLocation.java index cdcb98f214e98476354a3a672912c7ed456c68c7..7d34e0184c18bc0e221bb60bf27ea3d5ad20b6ab 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkLocation.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkLocation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkMedicalHistory.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkMedicalHistory.java index 3f92e214e0caf8a6e5a5c7bca6dbd3a4513cc460..efbbd368a241512bcd369b304eb69de165d4da92 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkMedicalHistory.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkMedicalHistory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkRiskContact.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkRiskContact.java index 674949ec29924db32c52e46316ed2f01f79bf8ea..6c19f135112b03067637fcda6130324f48d005a9 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkRiskContact.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexWorkRiskContact.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexualOrientation.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexualOrientation.java index 5c24f677f418d772ebf456d2c03891b2222a7294..96c64401f7268dc133d359e39fd6524de5abd24d 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexualOrientation.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/SexualOrientation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/StiConsultationMedicalHistory.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/StiConsultationMedicalHistory.java index 487e23a465f1cbec855a929c8e4d9f79369990a4..0d9d0ef8fe551074313664ab7591b4b9f41349c9 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/StiConsultationMedicalHistory.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/StiConsultationMedicalHistory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Vaccination.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Vaccination.java index 6e8231cdbc615f5277e189bd14836c830a64c620..888c1b0d65190876f862389565602542040d7b52 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Vaccination.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/medicalhistory/Vaccination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoom.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoom.java index 4277ee1c060edc006cc16e6a8f67c4454beacba5..24a8c7321dfb51e88322dc6f42ef4ddd04d84023 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoom.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoom.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoomSpecification.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoomSpecification.java index df25fa2f094c744997508dfa476f4158fc2de55d..890632d38205bda503aa25cb6156c99bdcd91a49 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoomSpecification.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingRoomSpecification.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingStatus.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingStatus.java index ff1dda47d838242cc65bfc041556f186ec95ef2d..59e41b480b807c4d20a1ea792f1730366df3ce87 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingStatus.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/persistence/db/waitingroom/WaitingStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionPopulator.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionPopulator.java index 579e6be9c3d76fb63ae255c188abc37eb5b46928..cf343710c1acf59539c5766b9184c099f8f75018 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionPopulator.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionPopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperController.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperController.java index 6c30049c01c66729ec885721d9214c21b6ed1c19..204191f1d5aab7b5a0ea80c733ba8e63caca4773 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperController.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperService.java b/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperService.java index a9c1b9543668b20c2ec78dc33f3095226bb5df19..5099c5c44f49d37e208f3916024a7b5fbd01842e 100644 --- a/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperService.java +++ b/backend/sti-protection/src/main/java/de/eshg/stiprotection/testhelper/StiProtectionTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/sti-protection/src/main/resources/migrations/0001_initial.xml b/backend/sti-protection/src/main/resources/migrations/0001_initial.xml index efbf747731b573c03a2e1fc1997cd0360434fb33..1f574fda4a149865c254723c2b51bfd187cd4c81 100644 --- a/backend/sti-protection/src/main/resources/migrations/0001_initial.xml +++ b/backend/sti-protection/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0002_introduce_procedure_file_type.xml b/backend/sti-protection/src/main/resources/migrations/0002_introduce_procedure_file_type.xml index 3d2ff852f8a210fcc2ace287ad738d5c7e526762..ad7833ca400d260edd5d0d37c3f7d27acdc87123 100644 --- a/backend/sti-protection/src/main/resources/migrations/0002_introduce_procedure_file_type.xml +++ b/backend/sti-protection/src/main/resources/migrations/0002_introduce_procedure_file_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0003_rename_country_code_dto.xml b/backend/sti-protection/src/main/resources/migrations/0003_rename_country_code_dto.xml index b89c3980f219c6700a885f784616583a36c2d454..9d4caf69a2eea4c157da9226faa26ddcac35fa98 100644 --- a/backend/sti-protection/src/main/resources/migrations/0003_rename_country_code_dto.xml +++ b/backend/sti-protection/src/main/resources/migrations/0003_rename_country_code_dto.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0004_add_medical_registry_procedure_types.xml b/backend/sti-protection/src/main/resources/migrations/0004_add_medical_registry_procedure_types.xml index 21b419fae25d7dc24f7b51eda6325688211b2b1a..f3564c33df47a27379b995555c627d46bbadc90f 100644 --- a/backend/sti-protection/src/main/resources/migrations/0004_add_medical_registry_procedure_types.xml +++ b/backend/sti-protection/src/main/resources/migrations/0004_add_medical_registry_procedure_types.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0005_medical_histories.xml b/backend/sti-protection/src/main/resources/migrations/0005_medical_histories.xml index e32f4af56a440473ad6563f2145db6015fe975af..7f2c0480a9c5774150281e8b330939c7dcf950bc 100644 --- a/backend/sti-protection/src/main/resources/migrations/0005_medical_histories.xml +++ b/backend/sti-protection/src/main/resources/migrations/0005_medical_histories.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0006_remove_key_document_type_enum.xml b/backend/sti-protection/src/main/resources/migrations/0006_remove_key_document_type_enum.xml index 9c8360be7cc7efa4de7e20d752461bc68d6acb6d..16dfcfcd1825c953fab9fbc0f95a67c2707b83ec 100644 --- a/backend/sti-protection/src/main/resources/migrations/0006_remove_key_document_type_enum.xml +++ b/backend/sti-protection/src/main/resources/migrations/0006_remove_key_document_type_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0007_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml b/backend/sti-protection/src/main/resources/migrations/0007_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml index 96375e47f8db1d7bfb615060bb3ffe38809e105e..0b495386302328bee469b00fef5aaf9ba6b7741d 100644 --- a/backend/sti-protection/src/main/resources/migrations/0007_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml +++ b/backend/sti-protection/src/main/resources/migrations/0007_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0008_add_system_progress_entry_keydocument.xml b/backend/sti-protection/src/main/resources/migrations/0008_add_system_progress_entry_keydocument.xml index 2ef4593b8cc84a692bf38a8c8d741a0af8224b3d..30799d700f6432f3f4778e733e0ed08e89f866e9 100644 --- a/backend/sti-protection/src/main/resources/migrations/0008_add_system_progress_entry_keydocument.xml +++ b/backend/sti-protection/src/main/resources/migrations/0008_add_system_progress_entry_keydocument.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0009_add_calendar_event_id.xml b/backend/sti-protection/src/main/resources/migrations/0009_add_calendar_event_id.xml index c7bf5b8dbc6125fa18929d15fa3c47439feb559f..def2b848810c182a19df1ca11ed6b71eae3a076f 100644 --- a/backend/sti-protection/src/main/resources/migrations/0009_add_calendar_event_id.xml +++ b/backend/sti-protection/src/main/resources/migrations/0009_add_calendar_event_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0010_cemetery_sequence.xml b/backend/sti-protection/src/main/resources/migrations/0010_cemetery_sequence.xml index 1b1ac8a9f7841c1b969399b3ea3a2152de988545..36c73b1535f2d137edd009560dd6f537443b42c6 100644 --- a/backend/sti-protection/src/main/resources/migrations/0010_cemetery_sequence.xml +++ b/backend/sti-protection/src/main/resources/migrations/0010_cemetery_sequence.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0011_shedlock.xml b/backend/sti-protection/src/main/resources/migrations/0011_shedlock.xml index 92cc4ff3423bca3ce328fae0edfece963a1cf82c..1a9bb6576a544cb2669160e998f3e8740a995f99 100644 --- a/backend/sti-protection/src/main/resources/migrations/0011_shedlock.xml +++ b/backend/sti-protection/src/main/resources/migrations/0011_shedlock.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0012_add_waiting_room.xml b/backend/sti-protection/src/main/resources/migrations/0012_add_waiting_room.xml index ecda42383f6c22f982c1c93b6ce15aa52a962016..df26946161f3be1cc7fe0dca4ff7b484ce91c80d 100644 --- a/backend/sti-protection/src/main/resources/migrations/0012_add_waiting_room.xml +++ b/backend/sti-protection/src/main/resources/migrations/0012_add_waiting_room.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0013_extend_medical_histories.xml b/backend/sti-protection/src/main/resources/migrations/0013_extend_medical_histories.xml index f915d3cc0b0d2be5a6c25b8e2240043c3a801736..b08f8be5b90efca1967618632263f9b405adc9e9 100644 --- a/backend/sti-protection/src/main/resources/migrations/0013_extend_medical_histories.xml +++ b/backend/sti-protection/src/main/resources/migrations/0013_extend_medical_histories.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0014_move_subject_and_message_text_to_mail_metadata.xml b/backend/sti-protection/src/main/resources/migrations/0014_move_subject_and_message_text_to_mail_metadata.xml index 609846864d70853f0ad803232dc97d5ff9a9ad21..18aab2df5ffb8b18fd3357efdaac519c7f1f67fa 100644 --- a/backend/sti-protection/src/main/resources/migrations/0014_move_subject_and_message_text_to_mail_metadata.xml +++ b/backend/sti-protection/src/main/resources/migrations/0014_move_subject_and_message_text_to_mail_metadata.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0015_add_gdpr_validation_task.xml b/backend/sti-protection/src/main/resources/migrations/0015_add_gdpr_validation_task.xml index fc254c7a0cef19d9122400cacc88b542d426fc90..31212fd52882108afe16d4c39a9c9610504dfde4 100644 --- a/backend/sti-protection/src/main/resources/migrations/0015_add_gdpr_validation_task.xml +++ b/backend/sti-protection/src/main/resources/migrations/0015_add_gdpr_validation_task.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0016_add_started_at.xml b/backend/sti-protection/src/main/resources/migrations/0016_add_started_at.xml index 0f98e184b53908a01e63db5f92e631d4fd4592b1..59cb9daf4eac2c0771081989353c32cc1d9e71c0 100644 --- a/backend/sti-protection/src/main/resources/migrations/0016_add_started_at.xml +++ b/backend/sti-protection/src/main/resources/migrations/0016_add_started_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0017_drop_not_null_constraints.xml b/backend/sti-protection/src/main/resources/migrations/0017_drop_not_null_constraints.xml index b92fba35ff4d66ae69d156bd3e46749c5d62b5fb..4f2a1cc940601660bd27dc22186a19eb031cdcb9 100644 --- a/backend/sti-protection/src/main/resources/migrations/0017_drop_not_null_constraints.xml +++ b/backend/sti-protection/src/main/resources/migrations/0017_drop_not_null_constraints.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0018_rename_gdpr_validation_task_procedure_id.xml b/backend/sti-protection/src/main/resources/migrations/0018_rename_gdpr_validation_task_procedure_id.xml index 040274eb82c783e118781ac8e754679df317f107..5afddf78e56eb23c9463cdaced0c7e0b3a5abd5c 100644 --- a/backend/sti-protection/src/main/resources/migrations/0018_rename_gdpr_validation_task_procedure_id.xml +++ b/backend/sti-protection/src/main/resources/migrations/0018_rename_gdpr_validation_task_procedure_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0019_add_download_package_table.xml b/backend/sti-protection/src/main/resources/migrations/0019_add_download_package_table.xml index 8560d84aae548c983f547b6c851d84e42216b0f7..086f58c7652d882ac8850835a0b95d795930ca05 100644 --- a/backend/sti-protection/src/main/resources/migrations/0019_add_download_package_table.xml +++ b/backend/sti-protection/src/main/resources/migrations/0019_add_download_package_table.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0020_add_anonymous_user_id.xml b/backend/sti-protection/src/main/resources/migrations/0020_add_anonymous_user_id.xml index 55c06329b845a566f727887a3468a9794e4c51ee..71c5f59c31cbe673595a45f6ab191d07960eeadc 100644 --- a/backend/sti-protection/src/main/resources/migrations/0020_add_anonymous_user_id.xml +++ b/backend/sti-protection/src/main/resources/migrations/0020_add_anonymous_user_id.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0021_add_appointment_history.xml b/backend/sti-protection/src/main/resources/migrations/0021_add_appointment_history.xml index 9a7282861691f476afca1b7d7f53031a936bc2e9..49eee60ea9f08a9f6cae394c4d8487011bb4b956 100644 --- a/backend/sti-protection/src/main/resources/migrations/0021_add_appointment_history.xml +++ b/backend/sti-protection/src/main/resources/migrations/0021_add_appointment_history.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0022_add_rapid_test_examination.xml b/backend/sti-protection/src/main/resources/migrations/0022_add_rapid_test_examination.xml index b3a761899e102874aaf22fafc3a81d6a27979e8a..7eaa1f30fba401959f2e2cd5201ee9c3b39393e9 100644 --- a/backend/sti-protection/src/main/resources/migrations/0022_add_rapid_test_examination.xml +++ b/backend/sti-protection/src/main/resources/migrations/0022_add_rapid_test_examination.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0023_refactor_medical_history.xml b/backend/sti-protection/src/main/resources/migrations/0023_refactor_medical_history.xml index 355ce4d6add8db65baab1663a4758d7f4e858655..cc9ed04764bcd882c7f560842bcdf9df809141d6 100644 --- a/backend/sti-protection/src/main/resources/migrations/0023_refactor_medical_history.xml +++ b/backend/sti-protection/src/main/resources/migrations/0023_refactor_medical_history.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0024_add_dental_as_procedure_type.xml b/backend/sti-protection/src/main/resources/migrations/0024_add_dental_as_procedure_type.xml index 201ab3f220c53292400c6945a5dd186737ff4599..9e66f1fa5a7e3fadc58fe0075fae6d92bc49ea35 100644 --- a/backend/sti-protection/src/main/resources/migrations/0024_add_dental_as_procedure_type.xml +++ b/backend/sti-protection/src/main/resources/migrations/0024_add_dental_as_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0025_add_official_medical_service_procedure_type.xml b/backend/sti-protection/src/main/resources/migrations/0025_add_official_medical_service_procedure_type.xml index 7fd09d7b854c71702f3adf21137071d7616efc44..9a0c1d59061925c0af3e98a9bb1ec64cf7f27cc6 100644 --- a/backend/sti-protection/src/main/resources/migrations/0025_add_official_medical_service_procedure_type.xml +++ b/backend/sti-protection/src/main/resources/migrations/0025_add_official_medical_service_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0026_add_mail_to_simple_notification.xml b/backend/sti-protection/src/main/resources/migrations/0026_add_mail_to_simple_notification.xml index fac1e8c0036aec60fb08e41e88a1ec6c94b83255..66dda3fa042f9bb27851690710263211d1facece 100644 --- a/backend/sti-protection/src/main/resources/migrations/0026_add_mail_to_simple_notification.xml +++ b/backend/sti-protection/src/main/resources/migrations/0026_add_mail_to_simple_notification.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0027_add_laboratory_test_examination.xml b/backend/sti-protection/src/main/resources/migrations/0027_add_laboratory_test_examination.xml index 61a21cbea997ef4c95f1a6c47022f56d38ec303e..f8629633f5c234af653bfeed0270de1f69780292 100644 --- a/backend/sti-protection/src/main/resources/migrations/0027_add_laboratory_test_examination.xml +++ b/backend/sti-protection/src/main/resources/migrations/0027_add_laboratory_test_examination.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/sti-protection/src/main/resources/migrations/0028_invert_inbox_procedure_relationships.xml b/backend/sti-protection/src/main/resources/migrations/0028_invert_inbox_procedure_relationships.xml new file mode 100644 index 0000000000000000000000000000000000000000..b477ebeeca47e0bf2add3bba8e686b2b119f5646 --- /dev/null +++ b/backend/sti-protection/src/main/resources/migrations/0028_invert_inbox_procedure_relationships.xml @@ -0,0 +1,72 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733835693519-1"> + <addColumn tableName="inbox_procedure"> + <column name="contact_details_id" type="BIGINT"/> + </addColumn> + <sql> + UPDATE inbox_procedure + SET contact_details_id=contact_details.id FROM contact_details + WHERE contact_details.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="contact_details_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="contact_details_id" + constraintName="inbox_procedure_contact_details_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_contact_details" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" referencedTableName="contact_details" + validate="true"/> + + <dropForeignKeyConstraint baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure"/> + <dropUniqueConstraint + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + <dropColumn columnName="inbox_procedure_id" tableName="contact_details"/> + </changeSet> + <changeSet author="GA-Lotse" id="1733835693519-2"> + <addColumn tableName="inbox_procedure"> + <column name="inbox_progress_entry_id" type="BIGINT"/> + </addColumn> + + <sql> + UPDATE inbox_procedure + SET inbox_progress_entry_id=inbox_progress_entry.id FROM inbox_progress_entry + WHERE inbox_progress_entry.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="inbox_progress_entry_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="inbox_progress_entry_id" + constraintName="inbox_procedure_inbox_progress_entry_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="inbox_progress_entry_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_inbox_progress_entry" + deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="inbox_progress_entry" validate="true"/> + + <dropForeignKeyConstraint baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure"/> + <dropUniqueConstraint + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + <dropColumn columnName="inbox_procedure_id" + tableName="inbox_progress_entry"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/sti-protection/src/main/resources/migrations/0029_add_official_medical_service_appointment_type.xml b/backend/sti-protection/src/main/resources/migrations/0029_add_official_medical_service_appointment_type.xml new file mode 100644 index 0000000000000000000000000000000000000000..4bf76bf151a22f771007246c08d140be9d4653d5 --- /dev/null +++ b/backend/sti-protection/src/main/resources/migrations/0029_add_official_medical_service_appointment_type.xml @@ -0,0 +1,11 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733919766166-1"> + <ext:addPostgresEnumValues enumTypeName="appointmenttype" valuesToAdd="OFFICIAL_MEDICAL_SERVICE"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/sti-protection/src/main/resources/migrations/changelog.xml b/backend/sti-protection/src/main/resources/migrations/changelog.xml index e3ce1251dd629dbaa4b359744b4a6f541b6904ab..11030802a204d95e082fc836880188d87bf2bba1 100644 --- a/backend/sti-protection/src/main/resources/migrations/changelog.xml +++ b/backend/sti-protection/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 cronn GmbH + Copyright 2025 cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> @@ -38,5 +38,7 @@ file="migrations/0025_add_official_medical_service_procedure_type.xml"/> <include file="migrations/0026_add_mail_to_simple_notification.xml"/> <include file="migrations/0027_add_laboratory_test_examination.xml"/> + <include file="migrations/0028_invert_inbox_procedure_relationships.xml"/> + <include file="migrations/0029_add_official_medical_service_appointment_type.xml"/> </databaseChangeLog> diff --git a/backend/sti-protection/src/main/resources/templates/identification/anon-ident.css b/backend/sti-protection/src/main/resources/templates/identification/anon-ident.css index c7f7a558ac1fd27df85d8d57fa249e6a42bf4e0c..5ba6ea7b636e227a876028002ecf67351f9f3cb7 100644 --- a/backend/sti-protection/src/main/resources/templates/identification/anon-ident.css +++ b/backend/sti-protection/src/main/resources/templates/identification/anon-ident.css @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/synapse/Dockerfile b/backend/synapse/Dockerfile index a3e8f243aa5aa7fc7cd80a2cf1693712d99ab7f7..11b714355d674a8aec99e8ceb3e4445c4c1e5c4c 100644 --- a/backend/synapse/Dockerfile +++ b/backend/synapse/Dockerfile @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 FROM matrixdotorg/synapse:v1.114.0@sha256:0983d976eaaed08af558b8ce720caa89340124146e0c6e49042c9072acff7919 diff --git a/backend/synapse/resources/entrypoint.sh b/backend/synapse/resources/entrypoint.sh index e5a21246d6b2013a9dfc39e2a893cf01b14cb0a3..15a428dcfc78388f7ac8cf6bf3746cbeee487e1c 100644 --- a/backend/synapse/resources/entrypoint.sh +++ b/backend/synapse/resources/entrypoint.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 diff --git a/backend/synapse/resources/generate-homeserver-config.py b/backend/synapse/resources/generate-homeserver-config.py index 25bdabeb9914bc9b2e9f42b494794442abd6ec76..9224b42347e25ccc6b7deb45ab7dae36025fb654 100644 --- a/backend/synapse/resources/generate-homeserver-config.py +++ b/backend/synapse/resources/generate-homeserver-config.py @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: Apache-2.0 from jwcrypto import jwk diff --git a/backend/test-commons/src/main/java/de/eshg/AuthorizationTest.java b/backend/test-commons/src/main/java/de/eshg/AuthorizationTest.java index e27ac1d6ebab9b5c74507e5f21f7a87de27b57de..db730ffa3a128f568fe6b897b20d253238be3327 100644 --- a/backend/test-commons/src/main/java/de/eshg/AuthorizationTest.java +++ b/backend/test-commons/src/main/java/de/eshg/AuthorizationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/OpenApiTest.java b/backend/test-commons/src/main/java/de/eshg/OpenApiTest.java index 600947d35b3253c4ef18b04d4257c5acb22bc830..422ce53e18d9752ac3434a0777e005827b3ea416 100644 --- a/backend/test-commons/src/main/java/de/eshg/OpenApiTest.java +++ b/backend/test-commons/src/main/java/de/eshg/OpenApiTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/SchemaTest.java b/backend/test-commons/src/main/java/de/eshg/SchemaTest.java index 00ce3f8f40dfee6ea78b1f1d0b6ff3c6b6127aec..e0c12be81d9bedf9931731ec4bbdaa745b5f7aad 100644 --- a/backend/test-commons/src/main/java/de/eshg/SchemaTest.java +++ b/backend/test-commons/src/main/java/de/eshg/SchemaTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/AuditLogTraits.java b/backend/test-commons/src/main/java/de/eshg/base/AuditLogTraits.java index c892decb87090e1a2a1880dfa080d7bf036688d4..64b0e2037a21d3b16631748b7275bc6e4896e334 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/AuditLogTraits.java +++ b/backend/test-commons/src/main/java/de/eshg/base/AuditLogTraits.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/BaseTest.java b/backend/test-commons/src/main/java/de/eshg/base/BaseTest.java index 69f52be128b213ede102eca3315d8c5c1d1d23d1..33b0bce810acbdf041a697029049b66fafb76764 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/BaseTest.java +++ b/backend/test-commons/src/main/java/de/eshg/base/BaseTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/CompletionServiceForTests.java b/backend/test-commons/src/main/java/de/eshg/base/CompletionServiceForTests.java index 05dff2993b627f9d7aa03e31a82027d6cd13091a..23f4f0449b961078d4d237d22de7889fccdd9a5f 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/CompletionServiceForTests.java +++ b/backend/test-commons/src/main/java/de/eshg/base/CompletionServiceForTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/PathUtil.java b/backend/test-commons/src/main/java/de/eshg/base/PathUtil.java index cbc0acb0d65336e90037a49eda8f0b1971ea4824..f256e684abc4a29bd9b17e06c51cece0eea5af8e 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/PathUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/base/PathUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/PostgresContainerConstants.java b/backend/test-commons/src/main/java/de/eshg/base/PostgresContainerConstants.java index cf693b7078d4ccabc4c6eb3d5b7d0254b3f8c8b1..56e6a4e5ea8bebe4cab9911a9628ca337d6c54d1 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/PostgresContainerConstants.java +++ b/backend/test-commons/src/main/java/de/eshg/base/PostgresContainerConstants.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/PostgresSchemaDumpUtil.java b/backend/test-commons/src/main/java/de/eshg/base/PostgresSchemaDumpUtil.java index a9a4b3c896e6091bbe1a67db340e76f4a9bdab7f..c4424e712feec9c321a123ef022fcf1fbfe477ae 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/PostgresSchemaDumpUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/base/PostgresSchemaDumpUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/StaticLogDirExtension.java b/backend/test-commons/src/main/java/de/eshg/base/StaticLogDirExtension.java index 691ce3e8d39eb354783cc16d344dfffa5924eab9..d74d6d79e9551c56e6f7666ff105e0bb3c41413e 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/StaticLogDirExtension.java +++ b/backend/test-commons/src/main/java/de/eshg/base/StaticLogDirExtension.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/TempDirUtil.java b/backend/test-commons/src/main/java/de/eshg/base/TempDirUtil.java index 33512e4521b4a49eb1860ee1cb17a878587868ad..ca6ac15b33e3215882cbf771e254c16f95b176b4 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/TempDirUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/base/TempDirUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/TestContainersUtil.java b/backend/test-commons/src/main/java/de/eshg/base/TestContainersUtil.java index 2e9054d83cfbc9fbbb4fc638af9aff28afd07ef6..2c3b78d1837d2d07d3ef0c9db8e26ef53fe8581f 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/TestContainersUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/base/TestContainersUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/ValidationFilenameHelper.java b/backend/test-commons/src/main/java/de/eshg/base/ValidationFilenameHelper.java index 79ee9ddb0165f3e824bafad09d0a84075aac6f9d..71e27851293121291d403852862cac404e75d2b7 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/ValidationFilenameHelper.java +++ b/backend/test-commons/src/main/java/de/eshg/base/ValidationFilenameHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/ZipUtil.java b/backend/test-commons/src/main/java/de/eshg/base/ZipUtil.java index 273e8a6c171a91a04ec54ecdfc9031bafe4aced3..a6277ebf1bb817977c06930efa2ae17b74c85f81 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/ZipUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/base/ZipUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestTraits.java b/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestTraits.java index 7785ceea01963e97a313f4f9190a07c7171713b0..63fdd04969a946e601a6a91367f95c2aca3e7534 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestTraits.java +++ b/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestTraits.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestUtil.java b/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestUtil.java index 8ca46db5e4e29decd7b4294886fe6b67a770a73c..86393d76ed312887217db235d9c15d0bbbd36a9d 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/base/auth/AuthorizationTestUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/logging/CapturedLoggingTraits.java b/backend/test-commons/src/main/java/de/eshg/base/logging/CapturedLoggingTraits.java index a56f0c92e93cb049c7e3f24681592d9ac33c6538..d4e2e8138f2bba780d4a484090d6377098ae8f0e 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/logging/CapturedLoggingTraits.java +++ b/backend/test-commons/src/main/java/de/eshg/base/logging/CapturedLoggingTraits.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/logging/CapturingAppender.java b/backend/test-commons/src/main/java/de/eshg/base/logging/CapturingAppender.java index 879c15f67a4c10430054e1882232640cf3009c4c..c21412d389480328ea9cc78923b358214058eb50 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/logging/CapturingAppender.java +++ b/backend/test-commons/src/main/java/de/eshg/base/logging/CapturingAppender.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/logging/EventFilter.java b/backend/test-commons/src/main/java/de/eshg/base/logging/EventFilter.java index 10d4060e0aa1e1deb551972b1d214b4e50e7640a..6c97363da8a0bbf420747203558eebd31c792ba7 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/logging/EventFilter.java +++ b/backend/test-commons/src/main/java/de/eshg/base/logging/EventFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingLoggingEvent.java b/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingLoggingEvent.java index fe650f0c9caeec9c6ff601dfbe3be0f05b80ea29..955b8804219268093da669aaa76cd6278af96bbf 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingLoggingEvent.java +++ b/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingLoggingEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingOptions.java b/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingOptions.java index 868477ec0d404a27c1415d02e9c195a3ad593723..1ead0325c5957a5f2c4874555731201773d78044 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingOptions.java +++ b/backend/test-commons/src/main/java/de/eshg/base/logging/RenderingOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/query_validation/CapturedQuery.java b/backend/test-commons/src/main/java/de/eshg/base/query_validation/CapturedQuery.java index 2ed7b1bd374f639b20c230000b78e3782ae0e34d..498586acd28e1fd508e7b157565ba6cbd495c08b 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/query_validation/CapturedQuery.java +++ b/backend/test-commons/src/main/java/de/eshg/base/query_validation/CapturedQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryAndParamsCapturingListener.java b/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryAndParamsCapturingListener.java index 5fcb256aac34b7132669d43d43cbeb66c1e13ba7..93e665191f5544a302688052321a20ebf2791d09 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryAndParamsCapturingListener.java +++ b/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryAndParamsCapturingListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryValidationTraits.java b/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryValidationTraits.java index 975d6a14e6f0d3422140ecb95d4a8d00d0251447..e95b92596a7028e360392c8c81a834735a07c6bb 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryValidationTraits.java +++ b/backend/test-commons/src/main/java/de/eshg/base/query_validation/QueryValidationTraits.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/spring/ApplicationContextCreationWatcher.java b/backend/test-commons/src/main/java/de/eshg/base/spring/ApplicationContextCreationWatcher.java index 9968d6ccfc2f0e0e8e15093c2d90b8143bd06bb1..35dea40b4783ee1b3de5c8d221abe6a7066511cd 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/spring/ApplicationContextCreationWatcher.java +++ b/backend/test-commons/src/main/java/de/eshg/base/spring/ApplicationContextCreationWatcher.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/spring/AuthenticationTraits.java b/backend/test-commons/src/main/java/de/eshg/base/spring/AuthenticationTraits.java index 138bfc3d8127ab2129b4f6dc074e10b2966499d5..9c278fc459ad80ff331a37d2321c250feecbe519 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/spring/AuthenticationTraits.java +++ b/backend/test-commons/src/main/java/de/eshg/base/spring/AuthenticationTraits.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/spring/BaseSpringTest.java b/backend/test-commons/src/main/java/de/eshg/base/spring/BaseSpringTest.java index 18293239e19e2f1859e41ce5f193e227320e9b74..baa9c70f58f67adc2ca6720ba1bff7d5fee5bb0f 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/spring/BaseSpringTest.java +++ b/backend/test-commons/src/main/java/de/eshg/base/spring/BaseSpringTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/spring/ConfigurationPropertiesBindExceptionUtil.java b/backend/test-commons/src/main/java/de/eshg/base/spring/ConfigurationPropertiesBindExceptionUtil.java index 449e7800653da5b6a27fa932f8c781d5607f6164..04b4c881012e41c5f09e5829d1233eeabc39e85e 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/spring/ConfigurationPropertiesBindExceptionUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/base/spring/ConfigurationPropertiesBindExceptionUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/spring/ResponseEntityValidationFileAssertionTraits.java b/backend/test-commons/src/main/java/de/eshg/base/spring/ResponseEntityValidationFileAssertionTraits.java index 8871da1b0835c73938dd3342f5b9c4543c42bba2..839045dd96ecb801490b7fc02b987dd1563e8778 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/spring/ResponseEntityValidationFileAssertionTraits.java +++ b/backend/test-commons/src/main/java/de/eshg/base/spring/ResponseEntityValidationFileAssertionTraits.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/spring/SkipResetsBeforeEachTest.java b/backend/test-commons/src/main/java/de/eshg/base/spring/SkipResetsBeforeEachTest.java index 6eebbdc1fd97687ebcfc6ed9e69270ce15b9820e..a7c1af19635197d71dc67e98d2d90380f95aaa6f 100644 --- a/backend/test-commons/src/main/java/de/eshg/base/spring/SkipResetsBeforeEachTest.java +++ b/backend/test-commons/src/main/java/de/eshg/base/spring/SkipResetsBeforeEachTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/base/spring/ZipAssertionTraits.java b/backend/test-commons/src/main/java/de/eshg/base/spring/ZipAssertionTraits.java deleted file mode 100644 index 68f62266e0b8aae624d6aeda3342d73c6e10e2b3..0000000000000000000000000000000000000000 --- a/backend/test-commons/src/main/java/de/eshg/base/spring/ZipAssertionTraits.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -package de.eshg.base.spring; - -import de.cronn.assertions.validationfile.FileExtensions; -import de.cronn.assertions.validationfile.junit5.JUnit5ValidationFileAssertions; -import de.cronn.assertions.validationfile.normalization.ValidationNormalizer; -import java.io.IOException; -import java.io.InputStream; -import java.util.StringJoiner; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; -import org.springframework.core.io.Resource; - -public interface ZipAssertionTraits extends JUnit5ValidationFileAssertions { - - default void assertZipWithFile(Resource zipFile, ValidationNormalizer normalizer) - throws IOException { - StringJoiner joiner = new StringJoiner(System.lineSeparator()); - try (InputStream inputStream = zipFile.getInputStream(); - ZipInputStream zipInputStream = new ZipInputStream(inputStream)) { - ZipEntry zipEntry; - while ((zipEntry = zipInputStream.getNextEntry()) != null) { - joiner.add(zipEntry.getName()); - } - } - assertWithFileWithSuffix(joiner.toString(), normalizer, "zip", FileExtensions.TXT); - } - - default void assertZipWithFile(Resource zipFile) throws IOException { - assertZipWithFile(zipFile, null); - } -} diff --git a/backend/test-commons/src/main/java/de/eshg/normalization/SimpleContentLengthReplacement.java b/backend/test-commons/src/main/java/de/eshg/normalization/SimpleContentLengthReplacement.java index b66c363a8cc1f27c1138fc43d34ade80759d5528..3f88f79d0c05ff99a7d3ad16e5a1356613990026 100644 --- a/backend/test-commons/src/main/java/de/eshg/normalization/SimpleContentLengthReplacement.java +++ b/backend/test-commons/src/main/java/de/eshg/normalization/SimpleContentLengthReplacement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/normalization/SimpleUUIDReplacement.java b/backend/test-commons/src/main/java/de/eshg/normalization/SimpleUUIDReplacement.java index 84a3a4c38782d28d90d103e166424f878d8608d8..fe832851843509b2c9c02757b6ee56e9a58391f2 100644 --- a/backend/test-commons/src/main/java/de/eshg/normalization/SimpleUUIDReplacement.java +++ b/backend/test-commons/src/main/java/de/eshg/normalization/SimpleUUIDReplacement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/normalization/UuidNormalizer.java b/backend/test-commons/src/main/java/de/eshg/normalization/UuidNormalizer.java index db4a5ccb52487eb7ee71eb7b3519fabc69af57d3..41509903c3f4532e26e040c7d23449d1c012ebf2 100644 --- a/backend/test-commons/src/main/java/de/eshg/normalization/UuidNormalizer.java +++ b/backend/test-commons/src/main/java/de/eshg/normalization/UuidNormalizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/rest/RestHelper.java b/backend/test-commons/src/main/java/de/eshg/rest/RestHelper.java index 683310d375c99ea611f1c954caf90010801d2173..ea9d35a0781e2589328f940b086ecc565e66031d 100644 --- a/backend/test-commons/src/main/java/de/eshg/rest/RestHelper.java +++ b/backend/test-commons/src/main/java/de/eshg/rest/RestHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/x509/CertificateTestUtil.java b/backend/test-commons/src/main/java/de/eshg/x509/CertificateTestUtil.java index 595445d8b0e430a8b905eb932936edfc1dd6e103..584c6d8594a121c6d28d6b72cb4042f8a642739a 100644 --- a/backend/test-commons/src/main/java/de/eshg/x509/CertificateTestUtil.java +++ b/backend/test-commons/src/main/java/de/eshg/x509/CertificateTestUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-commons/src/main/java/de/eshg/x509/KeyStoreInfo.java b/backend/test-commons/src/main/java/de/eshg/x509/KeyStoreInfo.java index 510b9ac4ca5bca1648134adf3f4a2bbe7aa2b8a2..c6c7aa35a084c9a35fa3c9da5e9ec1d07243d9e0 100644 --- a/backend/test-commons/src/main/java/de/eshg/x509/KeyStoreInfo.java +++ b/backend/test-commons/src/main/java/de/eshg/x509/KeyStoreInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/AccessToken.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/AccessToken.java index 336363c18700539f68f97a1c925f8de82f668f99..f32b920e532e6d9dc942abefb0d38bb1d07f54a3 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/AccessToken.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/AccessToken.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/LoginProvider.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/LoginProvider.java index 7780734e703553e9312b26b9dbe7bd92701921b2..cd4e379ad75c81209b4281062bc83fab6d5c4e3c 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/LoginProvider.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/LoginProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/TestHelperApi.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/TestHelperApi.java index be3dc710a4bfdfd84ee700a9b936e1d75f27c5ff..e89bd866ddf597fe7486e0a95e206fa302e39a9c 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/TestHelperApi.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/TestHelperApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/DefaultPopulationResponse.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/DefaultPopulationResponse.java index e94633e703571334fa2fbecf7aac1ac6d5811673..b3ed380d87330c3c37048b663ca0ba03cf3e65ec 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/DefaultPopulationResponse.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/DefaultPopulationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/PopulationRequest.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/PopulationRequest.java index 2ed133004b1d91ce6cc9bcdb5eb69181b8825d8f..432fb32058eb15f66b637fa7709ec9278c3c6c24 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/PopulationRequest.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/PopulationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/RealmDto.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/RealmDto.java index 00cd6ce394697f19d4d52b930dfa7c16966a740e..7a24d82145f391c7a121d12a8f956a5c6f031552 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/RealmDto.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/RealmDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperDatabaseConnectionDetailsResponse.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperDatabaseConnectionDetailsResponse.java index 22e1b43478c7ca8067a8a391adeba8c868066e28..d878d61e23d09e69d55ec2b481d9ab8973d57ec4 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperDatabaseConnectionDetailsResponse.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperDatabaseConnectionDetailsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginAsCitizenAccessCodeUserRequest.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginAsCitizenAccessCodeUserRequest.java index f0bc30e7b20cf3ceba128f56cdca506e02f624b0..6b9bab9adc5f9aa683541a2855728917ac259ac0 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginAsCitizenAccessCodeUserRequest.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginAsCitizenAccessCodeUserRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginRequest.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginRequest.java index 118e4de7e0de1e42e78bf24f8a19677f3afa2d20..8eea24073efae2019d4e8762a76bea66ddfb0243 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginRequest.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/api/TestHelperLoginRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockSetRequest.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockSetRequest.java index a6b71c7101dcd48f1e59533e771547124a514490..9b3e013b0dfeeb0f042897133a4fef86c12daeea 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockSetRequest.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockSetRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockUpdateResponse.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockUpdateResponse.java index d58ded770637719130ce6352e2f821c04cd90e8e..8ce15b9e18195c12f4fac9b86e3f44a824595175 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockUpdateResponse.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockUpdateResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockWindForwardRequest.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockWindForwardRequest.java index 75285763e6af08d1c17c00e92520b63a0c733b91..72c7c8f8c3060f56e8dfa290b7a71226e44d5d11 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockWindForwardRequest.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/clock/TestHelperClockWindForwardRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/AddBarrierTestHelperResponse.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/AddBarrierTestHelperResponse.java index f87295888a3b00f1f9d6b29b0d9d59b7b1156fdb..e3e316d7b6a3a1e0e49a0c9e775661062d625a58 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/AddBarrierTestHelperResponse.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/AddBarrierTestHelperResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/HttpMethod.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/HttpMethod.java index 57e70abc2735608604f6fe44186c1206d3bbfd94..be233c9c8329af688e751d5b34b4400679c0b082 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/HttpMethod.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/HttpMethod.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InsertRequestInterceptionTestHelperRequest.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InsertRequestInterceptionTestHelperRequest.java index 31de22e78be26d7d63b67de7b3da3b4b8fa4b103..235878d4adab5e4acfe51bc6d25ab3ad244dfe16 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InsertRequestInterceptionTestHelperRequest.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InsertRequestInterceptionTestHelperRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InterceptionType.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InterceptionType.java index 97ed23bc47c0a938243a0851b80a3c8c15d43b57..7eb87bbfea79187c80fd9cc512482224eeb6cd55 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InterceptionType.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/InterceptionType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/TestHelperInterceptionRequestFilter.java b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/TestHelperInterceptionRequestFilter.java index 6b4128a0c86c3a3fca22c8a8350f7333edc18177..40df8a755f867778d36affed2d551058c125cd58 100644 --- a/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/TestHelperInterceptionRequestFilter.java +++ b/backend/test-helper-commons-api/src/main/java/de/eshg/testhelper/interception/TestHelperInterceptionRequestFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnDevEnvironment.java b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnDevEnvironment.java index 1587aa3386d0ad5a12f5fb5f1b34ff2188c79dad..d2b2ee5fe2af007e41e83ae84214d97bab6f333b 100644 --- a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnDevEnvironment.java +++ b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnDevEnvironment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnLocalEnvironment.java b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnLocalEnvironment.java index 2a4a407215ad5f32c0fc2e65f4c80f79df3565f1..b77f7020b8ea310c754546e14df8d6c0c0e5e685 100644 --- a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnLocalEnvironment.java +++ b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnLocalEnvironment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnProdEnvironment.java b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnProdEnvironment.java index 1c3c2d2c51c5c902fceb818024ff22de982c71eb..2fe2bd60d389af9bcda7e9e34d9946fd5ee4b59a 100644 --- a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnProdEnvironment.java +++ b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnProdEnvironment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnTestHelperEnabled.java b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnTestHelperEnabled.java index efcb76b61d62dc3e6806a1061c5912a531cec7aa..af049d9f90a9e6a58fad074e4abb143f3f01738b 100644 --- a/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnTestHelperEnabled.java +++ b/backend/test-helper-commons-spring/src/main/java/de/eshg/testhelper/ConditionalOnTestHelperEnabled.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DatabaseResetHelper.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DatabaseResetHelper.java index 3f6270449748b35995cfdeda56255c6ed42e142e..3a3f34a4b1e048c037d4d79ad7d309585a436101 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DatabaseResetHelper.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DatabaseResetHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DefaultTestHelperService.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DefaultTestHelperService.java index 482e97c850585eb9d1316099245410eff1b4b031..0069e193e6771bac545c5a3fd1240e7094244260 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DefaultTestHelperService.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/DefaultTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/FeatureToggle.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/FeatureToggle.java index 69cb92f6affff77a45b143bd965196e1df3add24..8410708c6124739ca0080a4f9ec3368cee769a54 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/FeatureToggle.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/FeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ProfileAutoConfiguration.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ProfileAutoConfiguration.java index 8a15d9238598e147641c935e82dbfe39783f443e..f178d0a856db79345588e94a01ce0dd257a21b4e 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ProfileAutoConfiguration.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ProfileAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ResettableProperties.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ResettableProperties.java index 642c79ea586a62860078736f7e5f7dac3878d135..18a074a6cdbb3a5a4c214d8eb52fb38c14cf5d9e 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ResettableProperties.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/ResettableProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/SnapshotUtil.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/SnapshotUtil.java index ce40049c5dd7f166a2cc503969bf3ef052994a1b..7b04b9711038bfdcdf396e9a81db4170a26a87a3 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/SnapshotUtil.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/SnapshotUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperAutoConfiguration.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperAutoConfiguration.java index 6a6144a34f1948034747a2803f4b4ff1b6bd2628..1bc2a85dd011217ddbed16d81961ccbd15f11a51 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperAutoConfiguration.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperClock.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperClock.java index 7352289dd104b84ac8edefe7533a8f4079925ccb..b83c8ddd8384babc8426616a33d9141aee17f2b1 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperClock.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperClock.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperController.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperController.java index ee3d364e6338162b9a3e7a74aad08de3361451f1..a3f011199411aac49ad212226a8296c2445eea44 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperController.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperControllerAutoConfiguration.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperControllerAutoConfiguration.java index 2616df378e557692437d8574904b71fb79eea756..c380c810b9c102cad8c840f9d19e1eea4d3019e3 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperControllerAutoConfiguration.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperControllerAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperService.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperService.java index 37e90f8b38a1c38aad9ea6bb359ef38eea424113..9ebbe2b3838dfbbb9942addf4a9a522ed308772b 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperService.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperWithDatabaseService.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperWithDatabaseService.java index 0aa5dc003093997cc99a9879b68b71d7dbbb1b97..b8cc51080a97ffea1058ba6c567a048b881973a5 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperWithDatabaseService.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/TestHelperWithDatabaseService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentAutoConfiguration.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentAutoConfiguration.java index 908013f7b8f76ad5d09d89f66477dfbe4805eeac..e33fc0119826d259a01d72ec6d23497a19735609 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentAutoConfiguration.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentConfig.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentConfig.java index 07429dbf9c36d143893b552a1d6f3d46599871b3..fe33f4ecd99a1f2e5b42dbac38c070e96685da34 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentConfig.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentType.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentType.java index 04bf8038b0b9c638bfc227bbda4f2aaa0c7d40a6..4d1bcd1213536cab1db21759f6e3d85ff1269fc7 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentType.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/environment/EnvironmentType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/Interception.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/Interception.java index c519ebd69c4d062ab773020f7546cfa0b4694c46..114bf5945cbd5f65df431628129629da58889635 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/Interception.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/Interception.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionAwaitBarrier.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionAwaitBarrier.java index f6823a649cb898461a0310fb05d9da4faefc6576..f50b5bdb770b942e4ce2748f1f5515cb8cbc9ea3 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionAwaitBarrier.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionAwaitBarrier.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionOverwriteResponse.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionOverwriteResponse.java index 1ac55d1c4cbbaf5c4ef3bd591f7852b251b79330..d8dfbb6f9390a7aa32e746fa1b1ee38b0e1237b6 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionOverwriteResponse.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/InterceptionOverwriteResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/TestRequestInterceptor.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/TestRequestInterceptor.java index e1726ad57497101410cd9376e170fec72af12bfa..6e339de54a75cfcf1019b5d16415933c7d501fa0 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/TestRequestInterceptor.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/interception/TestRequestInterceptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/BasePopulator.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/BasePopulator.java index 6eb3ff0890eafde3fa7361d297de53a5919959c4..dc45a85310e5a4ec748df6d470858f47ddf8157f 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/BasePopulator.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/BasePopulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/ListWithTotalNumber.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/ListWithTotalNumber.java index d99606e814f98850cc1ae1d69ead5c07c9bd60e0..4781fd80570471bbe97a31477508f26a0dea72ae 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/ListWithTotalNumber.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/ListWithTotalNumber.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulateWithAccessTokenHelper.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulateWithAccessTokenHelper.java index 158875b76ebc308e3e127d23a551a33398781d74..b792ea46a58d86acde62eae7136da543fba253cb 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulateWithAccessTokenHelper.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulateWithAccessTokenHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulationProperties.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulationProperties.java index bd4c381d123dd3624a0aded324ad7062a02f9e0d..5ef415955408ff22a73eb5cb01ac84130fb65998 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulationProperties.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulationProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorAutoConfiguration.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorAutoConfiguration.java index a29c421832f27ed76a3f9ebc32bf3909472dea79..717511cdecfeefbdaa78f03d7cba72bcca4f6719 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorAutoConfiguration.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorComponent.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorComponent.java index d2d104209792d96c04ab88c51718dc69173e53ac..44b9e55a4ccc909cd38ee499edff9258b0cdf02b 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorComponent.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/PopulatorComponent.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/RequestContextFaker.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/RequestContextFaker.java index 673419d04380d8529c57c23b5b37e30a6f02aaba..cd51a316524f33cdac284ff18257def89d8c018c 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/RequestContextFaker.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/population/RequestContextFaker.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationFaker.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationFaker.java index 5cfe27f1cc78ad0b14e50a871d78a4aa1188fa1c..7ae28a3c2066a22500c702c674a9d95ad65a01d3 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationFaker.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationFaker.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationSupport.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationSupport.java index d3c2c541f307d73ad222560c2012aac18fec3e74..a68c4176fa929bc570770492c03a3655487a1533 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationSupport.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/AuthenticationSupport.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/JwtAuthenticationTokenFactory.java b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/JwtAuthenticationTokenFactory.java index 4f44c6f72f00e3128d549508da6cf0168c5c4859..acf651f0397f40d27407897fa008a19a48c57823 100644 --- a/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/JwtAuthenticationTokenFactory.java +++ b/backend/test-helper-commons/src/main/java/de/eshg/testhelper/security/JwtAuthenticationTokenFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/travel-medicine/openApi.yaml b/backend/travel-medicine/openApi.yaml index 659210174fba64d6b2b89b58ebb020a7a7e7252d..d0a0ba9382dd05a59711119848a03483e1022bc3 100644 --- a/backend/travel-medicine/openApi.yaml +++ b/backend/travel-medicine/openApi.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 SCOOP Software GmbH, cronn GmbH +# Copyright 2025 SCOOP Software GmbH, cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only openapi: 3.0.1 @@ -1874,6 +1874,25 @@ paths: summary: Get recent procedures for user tags: - Procedure + /procedures/check-file-state-usage: + post: + operationId: checkFileStateUsage + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CheckFileStateUsageRequest" + required: true + responses: + "200": + content: + '*/*': + schema: + $ref: "#/components/schemas/CheckFileStateUsageResponse" + description: OK + summary: Identify which file state IDs are still used by active procedures. + tags: + - Procedure /procedures/recent: get: operationId: getRecentProcedures @@ -3487,9 +3506,8 @@ components: - $ref: "#/components/schemas/AbstractFileReference" - type: object properties: - attachedToMail: + '@type': type: string - format: uuid createdAt: type: string format: date-time @@ -3508,10 +3526,7 @@ components: modifiedAt: type: string format: date-time - - type: object - properties: - '@type': - type: string + - $ref: "#/components/schemas/ApprovalRequestEntity" discriminator: propertyName: '@type' required: @@ -3703,6 +3718,7 @@ components: - HIV_STI_CONSULTATION - SEX_WORK - RESULTS_REVIEW + - OFFICIAL_MEDICAL_SERVICE AppointmentTypeConfig: type: object properties: @@ -3917,86 +3933,39 @@ components: type: string enum: - HEALTH_INSURANCE - CitizenPortalCredentials: + CheckFileStateUsageRequest: type: object properties: - accessCode: - type: string - dateOfBirth: - type: string - format: date - required: - - accessCode - - dateOfBirth - ConcreteFileDto: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - - type: object - properties: - attachedToMail: - type: string - format: uuid - createdAt: - type: string - format: date-time - createdBy: + fileStatesIds: + type: array + items: type: string format: uuid - deletable: - type: boolean - deleted: - type: boolean - fileId: + maxItems: 2147483647 + minItems: 1 + required: + - fileStatesIds + CheckFileStateUsageResponse: + type: object + properties: + inUse: + type: array + items: type: string format: uuid - fileName: - type: string - fileSizeBytes: - type: integer - format: int32 - fileType: - $ref: "#/components/schemas/FileType" - locked: - type: boolean - modifiedAt: - type: string - format: date-time - - $ref: "#/components/schemas/ApprovalRequestEntity" - discriminator: - propertyName: '@type' required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt - ConcreteFileOrFileReference: + - inUse + CitizenPortalCredentials: type: object - discriminator: - propertyName: '@type' properties: - '@type': + accessCode: type: string - deletable: - type: boolean - deleted: - type: boolean - fileId: + dateOfBirth: type: string - format: uuid + format: date required: - - '@type' + - accessCode + - dateOfBirth ContactDetails: type: object properties: @@ -4918,32 +4887,10 @@ components: - DIVERSE - FEMALE - MALE - GenericFile: - type: object - allOf: - - $ref: "#/components/schemas/AbstractFile" - - type: object - properties: - '@type': - type: string - discriminator: - propertyName: '@type' - required: - - '@type' - - createdAt - - deletable - - deleted - - fileId - - fileName - - fileSizeBytes - - fileType - - locked - - modifiedAt GenericFileReference: type: object allOf: - $ref: "#/components/schemas/AbstractFileReference" - - $ref: "#/components/schemas/ConcreteFileOrFileReference" - type: object properties: '@type': @@ -5863,7 +5810,7 @@ components: Image: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -6181,18 +6128,11 @@ components: Mail: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': type: string - attachments: - type: array - items: - oneOf: - - $ref: "#/components/schemas/Image" - - $ref: "#/components/schemas/Mail" - - $ref: "#/components/schemas/Pdf" metaData: $ref: "#/components/schemas/MailMetaData" removedInvalidAttachments: @@ -6629,7 +6569,7 @@ components: Pdf: type: object allOf: - - $ref: "#/components/schemas/ConcreteFileDto" + - $ref: "#/components/schemas/AbstractFile" - type: object properties: '@type': @@ -7322,7 +7262,10 @@ components: type: object properties: file: - $ref: "#/components/schemas/GenericFile" + oneOf: + - $ref: "#/components/schemas/Image" + - $ref: "#/components/schemas/Mail" + - $ref: "#/components/schemas/Pdf" progressEntryId: type: string format: uuid diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineApplication.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineApplication.java index 71c205d5355f92f3ac59409e0719c8fdc72b1c22..7ade01af6ee58f86adf2dbec55264a5f3e38d6e0 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineApplication.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineApplication.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAppointmentBlockConfiguration.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAppointmentBlockConfiguration.java index 568bb323f810a607ff54ab8b8c3678d7b573ccac..ecead4798f8ee63bd29aa23e247c537456f724ca 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAppointmentBlockConfiguration.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAppointmentBlockConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAuditLogConfiguration.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAuditLogConfiguration.java index ecb81a91a013e9210ea884a6ff9e4b14661ffcb2..4961cd9afb48f2e3d217827d7b10cfeb6d87e471 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAuditLogConfiguration.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineAuditLogConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineNotificationConfiguration.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineNotificationConfiguration.java index 224d106724639d817532c7ebf6c600a13a035977..d0c32ccb8df9d0ba6f793fff9300b49c92ba3482 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineNotificationConfiguration.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineNotificationConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineProcedureConfiguration.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineProcedureConfiguration.java index 3807fe5dc448b0e6585ad7be943973dabaffb85c..5c50d8bf6b5d9208e00822705517109549cb1527 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineProcedureConfiguration.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/TravelMedicineProcedureConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateMapper.java index 07a307d1d21428ade33b43ac5c751869ea8ea1d5..ab8e94d32c275acd13c95988d983d09ee109752a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateService.java index cb7fb0345e0a1fc6b1a188a287d89d3401e96d79..544585f0b9b92238e819037507a831f80438af56 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/CertificateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/HealthInsuranceCertificatePdfParameters.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/HealthInsuranceCertificatePdfParameters.java index 1230cf5fc5813cadfe8ec2f627f3231ec900fcd7..f9c8c73ffbfa52c23a298df1ac32d484f0833d39 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/HealthInsuranceCertificatePdfParameters.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/HealthInsuranceCertificatePdfParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/PdfServiceParameters.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/PdfServiceParameters.java index 77767c6138f60994e9e64f3f256fb69a7156ee0e..b1568156e19e583aa59bb358a9cd6037aa53639b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/PdfServiceParameters.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/PdfServiceParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateDto.java index 501fc5865ea2f0d10d54e7a516b4b7b8069b9db7..463c3c74fc4aa7aa8a0b1dcd1f1a7df35b502b76 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateTypeDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateTypeDto.java index 90742b952c94824449443b08c313815cd7578b1c..2d0ff865bb1b656c7c72c4b6e6a23152123c299a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateTypeDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/CertificateTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/GetCertificatesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/GetCertificatesResponse.java index 164c54adfb1bb507fa112847c8989d1b01db249b..897a95822ff865bee028b1a7fb78edabfa740eca 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/GetCertificatesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/GetCertificatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/PostPutCertificateRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/PostPutCertificateRequest.java index 78b595c7ab54a6c6ad2adbb0726a94d4a8830741..a706d444f90c7ffeaba8e12e6e0fb03c71f62300 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/PostPutCertificateRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/api/PostPutCertificateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/Certificate.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/Certificate.java index 45954d18336a3d17da2c141712b895fde9acce76..64f1e969d7625146c4514b95e773f76dab4b5b4c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/Certificate.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/Certificate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateRepository.java index 9ca440a2421150d835333d13c72530d0a9e15374..b22a45cdceb7e84bc50311c2fdda70361f5fa783 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateType.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateType.java index d02a346447724b133fb7bba5ab475cb416560286..949d95ae47bdb340358de54f7cd92e27c778ab97 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateType.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/certificate/persistence/entity/CertificateType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/CitizenAuthController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/CitizenAuthController.java index 250c65bfc3d137f18382c7fdcfa3c38129f859a2..b0f095c3a124f2002372f5670ffcb590ce70a833 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/CitizenAuthController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/CitizenAuthController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/api/PatchInformationStatementRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/api/PatchInformationStatementRequest.java index 7a7e870f5139979a21e5d2efa8763b7f603ecc47..d3b01d5b502d04f2d176d6a79b9328b73734e5a8 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/api/PatchInformationStatementRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenauth/api/PatchInformationStatementRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/CitizenPublicController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/CitizenPublicController.java index 8094af2e9eb46a414d500fa2ecd89c4163aff9a8..89164560429ae4c4f0253d2afaf093cfdeba003b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/CitizenPublicController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/CitizenPublicController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoProperties.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoProperties.java index 2a719ff516623692d55582c84b17629bed039219..7478762ee3f4535d90999b3510b0ae1dbb67273e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoProperties.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoService.java index 8d033297897a065d2dea33d0569547dde56ba459..5272c8660fe1c20ef7b5a27612cb32dc25bdfa28 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/DepartmentInfoService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/OpeningHoursProperties.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/OpeningHoursProperties.java index b18c8685d3947d6cc5c96c63ec126bf6b773db7f..b970cfd3f2f5eeb6a523dee9a7041bb88f483286 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/OpeningHoursProperties.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/OpeningHoursProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/GetOpeningHoursResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/GetOpeningHoursResponse.java index 9a768d595a059338c7456bdc93c8418c54c8cd93..5d3a9858e3a654907e91cc67bb65073f022c3380 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/GetOpeningHoursResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/GetOpeningHoursResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/PostCitizenVaccinationConsultationRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/PostCitizenVaccinationConsultationRequest.java index 5ccda16639dffee7baf3053af45f61a0c8194707..9d204faa556ae54ff15be8b7c44b45f7641a5a18 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/PostCitizenVaccinationConsultationRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/citizenpublic/api/PostCitizenVaccinationConsultationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseController.java index 9c5331ffe2ec019917450be556a5ffe1e5d9ecba..ba50e7aaf4a9bc2d57ae0f978ceac3a00e1d0ded 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseMapper.java index 014814af133b75a37efa1e3407976830a4267c1e..8b5e520a929da748df03fb86a2ae6ef1f26f2b3e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseService.java index c13f5d0475ae2da57c7756d5887d755d253c42e3..24d0d5a5f0e3fff764e66a457da991cbd2401f79 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/DiseaseService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/DiseaseDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/DiseaseDto.java index 12790dd10ba70ca2a192018cbd7f00deb0eaae98..3b09ec440767908230e11286546a25796835fba1 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/DiseaseDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/DiseaseDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/GetDiseasesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/GetDiseasesResponse.java index da047164bd0913efc37a64b96f0bb22409e92a97..5ac35e65db01eae2b72b330b95a9e3692475e97c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/GetDiseasesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/GetDiseasesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/PostPutDiseaseRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/PostPutDiseaseRequest.java index 1ba8fe4e5811f76fc6827a2987bdda9a5d8cb41a..903bbd3cd9d5e684b455e78cab405fee6792be9b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/PostPutDiseaseRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/api/PostPutDiseaseRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/Disease.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/Disease.java index 87af270fa749dabd74e18cfd8bff9904ca1cdf22..917f9bc9a24ae29f65f24d58ce903095b1ba5632 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/Disease.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/Disease.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/DiseaseRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/DiseaseRepository.java index 57fd5bd10f4c1548990550f186b3e8c11d75502b..2e0ac37b26d1c320075dcef556cf578fb814d654 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/DiseaseRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/disease/persistence/entity/DiseaseRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentDtoHelper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentDtoHelper.java index 8bc260447865b589fdddb7392b8440cfad529bf7..47d5b62589e08d1de9eaa9a37be4ea95af7e05c6 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentDtoHelper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentDtoHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentModifier.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentModifier.java index 73b584b899a510fae940696fe628d081df210f56..37cf86b58680bb76ee5668a154033ee5e6222f62 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentModifier.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/DocumentModifier.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/TemplateToDocumentMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/TemplateToDocumentMapper.java index 0156630cad37c8ecbd795e0388aba055beed43dc..0277dbe77ae040d78dc077ceaaa4623b4f79f1fb 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/TemplateToDocumentMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/TemplateToDocumentMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentAnamnesisQuestionDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentAnamnesisQuestionDto.java index 6fb6f06515271a5f3fe72adf9b1b21f76c9ba12b..9a50224e7455d7fc96e2573ca037a10f1b33fcf5 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentAnamnesisQuestionDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentAnamnesisQuestionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentConfirmationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentConfirmationDto.java index ee2b88fcd6df73a84dbf95dd4dabd719eeb7b801..aa3f1ef346bc8fe874cf70762ad37dbf46bd390c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentConfirmationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentConfirmationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentContentDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentContentDto.java index 6f3bfc8278bf632065b967e90a605255cd2af3ac..32d285b357641da45aac2a6aade90043f585db04 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentContentDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentContentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionDto.java index 0b240c20ab2f156082420252791f88cadf010b03..a750e9762047062e6443c85affbfe1329f4da726 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionElementDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionElementDto.java index 21d48c7c2ed2e10f54b4165e6ca66ecf1a0ca273..369ce4fccdca1932160149d34f1fdcd1f0b39233 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionElementDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSectionElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementMultiSelectDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementMultiSelectDto.java index 02abea1bd7e46eeefa262f4d6f2247143c5544e0..f7fc40a436f7706cde8bb489151e8f7bbd31a835 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementMultiSelectDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementMultiSelectDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementTextDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementTextDto.java index 3488d7ab6d8d8afd3f3ee725d78ab953c1f3c9cc..fd9d13cd69fbda4952f7dbcb90a80ddc9075fe11 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementTextDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentSubElementTextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentTextBlockDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentTextBlockDto.java index 47ec68ec46136541df59e7ea97d11dab0ec5651b..9adbcf12b0f0ac986cff7bf69d64565e8accc63f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentTextBlockDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/api/DocumentTextBlockDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementFactory.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementFactory.java index a50447e700152dc9e795f6093a6cd23e4a0e285f..5e340f4e8a484374f44824d9e4e08cc0ccace224 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementFactory.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementMapper.java index c1d54bd924d661bf3b7c5d840b8a9d621bb452dc..d60c5bf4bcb1e3df19df573fcd7f29d38a35ffa0 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementPdfParameters.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementPdfParameters.java index 7170d4becb746eb4d2808679cd05a59ade678210..38299ecbb764b3ea292ec0792b997f5d17ebb535 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementPdfParameters.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementPdfParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementService.java index 31d1fa326cef26299d130e858f0fe9d3ee742e2f..a31c55786bed3aea90865af2043cb1e7b096f944 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/InformationStatementService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -193,8 +193,7 @@ public class InformationStatementService { InformationStatementTemplate template = informationStatementTemplateRepository .findById(templateID) - .orElseThrow( - () -> new NotFoundException("No such template: " + templateID)); + .orElseThrow(() -> new NotFoundException("No such template")); if (template.getState() != InformationStatementTemplateState.FINAL) throw new BadRequestException( "The template can't be used until it's in its FINAL state."); diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/api/InformationStatementDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/api/InformationStatementDto.java index 011cab0663ba1756c9f54253d7a9e90da68d80a8..3095295a74666782855012b983abe69a37de75aa 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/api/InformationStatementDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/api/InformationStatementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/InformationStatementRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/InformationStatementRepository.java index 46bc72bc98bfd438c2c2835d820294452b49ca55..957399024737d11636756e458586c63873b8fdcd 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/InformationStatementRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/InformationStatementRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/entity/InformationStatement.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/entity/InformationStatement.java index 3903c63247d4a0baaebf51f9cf4a98fc3d13dc78..bb650c70cac514ae377a3e645b25b801f4ee3c6a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/entity/InformationStatement.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/informationstatement/persistence/entity/InformationStatement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryController.java index cf49ef0e661d85e0c6af52b4fd5b30dad4a56e11..3ba6c7ea25e69cd2a711fdcfa34b29acd33a40eb 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryFactory.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryFactory.java index 5a7879e6cdad74906557913c5f4abc707429282d..9ceded6daeb1843189c32d1683ebd3f8f2f34789 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryFactory.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryMapper.java index 80ddd1fe1e5a40fb6e03d1970e8dc0c322cad9fd..1ae334cd67c7a423f4cb83a271cc20adba812888 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryPdfParameters.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryPdfParameters.java index e94accf93b07c2b2893cf6bf63ab7be524b5a0a3..e267c80aeae679be68a767c5a218264dee36ae03 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryPdfParameters.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryPdfParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryService.java index 40cfe6eaa718053520608933216028553818ec70..18369fb85d56bc3c4ba00ecdcd773b87b7a3e9cc 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/MedicalHistoryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -115,8 +115,7 @@ public class MedicalHistoryService { vaccinationConsultation.getProcedureSteps().stream() .filter(ps -> ps.getMedicalHistory().getId().equals(medicalHistoryId)) .findFirst() - .orElseThrow( - () -> new NotFoundException("Medical history not found: " + medicalHistoryId)); + .orElseThrow(() -> new NotFoundException("Medical history with given id not found")); MedicalHistory medicalHistory = procedureStep.getMedicalHistory(); medicalHistory.setNote(patchMedicalHistoryRequest.note()); diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/MedicalHistoryDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/MedicalHistoryDto.java index abd39e870cceda79ad210002b9df18e2f2fb19bc..bd059001baf4bde96bf0cbfa2fe522646ba8be8e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/MedicalHistoryDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/MedicalHistoryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/PatchMedicalHistoryRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/PatchMedicalHistoryRequest.java index 4c8cf29a1b1b66cabcf5acb22a18997842c02ee3..5c3631d2c0290e3e8b6676f401dc81b68f1c420d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/PatchMedicalHistoryRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/api/PatchMedicalHistoryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/MedicalHistoryRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/MedicalHistoryRepository.java index 00438c0d95e7241c43e68a7dc58ad9c5e75b0f98..ff0ca58b95494ad822bee3c3f7ffb3dc393376c1 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/MedicalHistoryRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/MedicalHistoryRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/entity/MedicalHistory.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/entity/MedicalHistory.java index c253e987efc77ec94cf920e18c941dca03f9fbd5..fad930d791206603be456dcc58fe75177954480d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/entity/MedicalHistory.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/document/medicalhistory/persistence/entity/MedicalHistory.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/eventmetadata/TravelMedicineEventMetadataService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/eventmetadata/TravelMedicineEventMetadataService.java index 1b355ccd40100dba1d5ba9fe1c04e5aae1236605..3242a0017e9747e26a9e769e8038906edf2eabeb 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/eventmetadata/TravelMedicineEventMetadataService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/eventmetadata/TravelMedicineEventMetadataService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeature.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeature.java index 22ad76a4ccf3483311eb46b22a5011774a716364..2aad8f467a2e1a01fd9c3f654798889a4570af2e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeature.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureToggle.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureToggle.java index 095e41cc9ebf3f8d58afd025d89beced116c521c..a2d02a4ebcc6b6758fc6fd9704dda640a2788142 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureToggle.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureToggle.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureTogglesPublicController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureTogglesPublicController.java index d1403a9b61757c2109e1dfb00b62457d39801752..9b16ac5729e66fc608ef14e9d7624e7652d4c785 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureTogglesPublicController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/TravelMedicineFeatureTogglesPublicController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/api/GetTravelMedicineFeatureTogglesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/api/GetTravelMedicineFeatureTogglesResponse.java index a330f3ad4334bbc1d4cd19bd71cf2e4622feeac7..c90c4721dd6e7b06925c33cf9da0725dde2219b2 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/api/GetTravelMedicineFeatureTogglesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/featuretoggle/api/GetTravelMedicineFeatureTogglesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/MailClient.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/MailClient.java index e94848e8252a31b35e27165949ba72df90582a0c..54f73a051a61fa9d35325372e58396bdf8864e48 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/MailClient.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/MailClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationProperties.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationProperties.java index b24922b5e0122c7eb5c330123f9e201fba27e39f..72e974a0394855c7f6fd5b8c1bab5a07d47c82a8 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationProperties.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationService.java index 854d2a7d5f6048ad1ddfed61fb7927b3b48a8cf6..1763cc80f3b14ad72ec60a4c6c54cfb8362a5770 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationText.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationText.java index 5ad942dcb78f33ab268db7dacd86225837d315e5..de189ebec19468a427804015a6e46e06a2f635b8 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationText.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/notification/NotificationText.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateController.java index e115c710f19f7d2d20c2f3ffc9b4027846a190fa..09ad175bc08d9f36439730219a0852409f353551 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateMapper.java index 5f5b23f33aaa67209c25b48cffbb4ca68ba3cd98..fe4cd8e94346981210ec0509a24de555ed2c6e8d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateService.java index 3d7c94f9d1d3ee2946a883c3921b203a2b7c7292..b1764fc8439639acfead54f6b51e603c8809bfde 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/OtherServiceTemplateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/GetOtherServiceTemplatesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/GetOtherServiceTemplatesResponse.java index 7b9f60528ff3dff3205b990998603a668cecdf1b..b4e41fa3dec3d80c84d0582a9efa7b46cad9fb51 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/GetOtherServiceTemplatesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/GetOtherServiceTemplatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/OtherServiceTemplateDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/OtherServiceTemplateDto.java index 63bde3561ea838285cf7130a8868ed7d4103fe10..386cb8f420abc16497c7a42de9a44bedb41a7fcf 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/OtherServiceTemplateDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/OtherServiceTemplateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/PostPutOtherServiceTemplateRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/PostPutOtherServiceTemplateRequest.java index 1103a316c849f437bae4e85b0c8ac0a448aa1b73..4b41dcd7b3a4fdc9d919e6ac82d97096ae5c77de 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/PostPutOtherServiceTemplateRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/api/PostPutOtherServiceTemplateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplate.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplate.java index 2e7304a19125662d6747d6907fb178ecf96255c1..eb012e8832b89d84087fd309299cd94154de059f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplate.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplateRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplateRepository.java index 7255630346a51718af89e7cf3f2dd72215da3052..4c32e411f41f9bd68df4d96c127774c02002090a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplateRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/otherservicetemplate/persistence/entity/OtherServiceTemplateRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/HashAlgorithm.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/HashAlgorithm.java index 0c19b6fe5ad925fd12c0ae9123610d367a78b825..f9d29433c51ad0ccdd12ac7e5afb80e463bd0fcd 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/HashAlgorithm.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/HashAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/SignatureValidator.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/SignatureValidator.java index 5e21458b14a9fb1b8d4ff6898e665cfab9489f30..dddbac249eb433375309cff5f36f339a5e70e7f6 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/SignatureValidator.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/SignatureValidator.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/SignatureRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/SignatureRepository.java index 90e9c7a81b17c6a4044e853faedc63171e18d556..3ef0a945da68ea273c358800662d673be8365061 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/SignatureRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/SignatureRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/entity/TravelMedicineSignature.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/entity/TravelMedicineSignature.java index 1994d1d531ef5ac5eec8585df22a31fa9eee9020..679406098ec6a6e98579170d09ce4caf0fb33229 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/entity/TravelMedicineSignature.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/signature/persistence/entity/TravelMedicineSignature.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateAnamnesisQuestionDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateAnamnesisQuestionDto.java index 35d345f665c15e78fbb816ba0dc1017c77a38c0d..6f86797b9d3ceadd1c04055163b8b02e4a6bd93b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateAnamnesisQuestionDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateAnamnesisQuestionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateConfirmationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateConfirmationDto.java index 1798607eda2388d8445fe6e87f5af6995f9dd60f..fe1ea4f18bf9e09f805ae35243c9f4b7fb6941bc 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateConfirmationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateConfirmationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateContentDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateContentDto.java index 6dc0338aeb9b0adc10a868ac37dd0ebf816a40f3..4ea778e4e34d4cad614880636cf4dd70cc59572f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateContentDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateContentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionDto.java index 01493fb7f3cb7e2fb469229f5e365a2d1170a855..da5b19d2927f0cbe444f1fc17b6136280890245c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionElementDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionElementDto.java index 6d9ee618c429838f6382f21bf1160faa1ce8ff60..0d29795fb29927dff433604767ef9b25e8ee5dce 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionElementDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSectionElementDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementMultiSelectDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementMultiSelectDto.java index 8551303ebc56ec4a1a476af9fbef9f07d7fc933e..775faa55a9c32d45f04675a6462d3cef68b63a76 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementMultiSelectDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementMultiSelectDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementTextDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementTextDto.java index ea61b72d27b9a4450b54c93ffdb13f82572d4b9b..d2b0a6a7e1a9115ada2ad0bba8f3258e5aa449b4 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementTextDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateSubElementTextDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateTextBlockDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateTextBlockDto.java index 9ba4c93a345f5e94908142b3625fa35014421a10..d2854310b32f1dd8d2f308a9fcc251dbf012e8f6 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateTextBlockDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/api/TemplateTextBlockDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateController.java index 2bc3779545c4f1101eef7bbd077354562b72374f..d907ef76a1527479b307faad6a9085e140dfa483 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateMapper.java index 559d0a07498bf569d41f69ebfff314e325b6e844..0fcd23c6143e17544f812a2e6d50503a99e3ca59 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateService.java index 5a07152d83c59c7cbb5caf228b2b5bf8f7c1f638..44448e28b76d6f31fd33b0ab111f02f8116f083c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/InformationStatementTemplateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -108,7 +108,7 @@ public class InformationStatementTemplateService { public void deleteInformationStatementTemplate(UUID id) { if (!informationStatementTemplateRepository.existsById(id)) { - throw new NotFoundException("Information Statement Template not found: " + id); + throw new NotFoundException("Information Statement Template not found"); } informationStatementTemplateRepository.deleteById(id); diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/GetInformationStatementTemplatesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/GetInformationStatementTemplatesResponse.java index 37f053844617f214dcd0680421b5580f00f1a1ec..9a40987c059931844ffad5f6a0c234e7a82ff7f3 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/GetInformationStatementTemplatesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/GetInformationStatementTemplatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateDto.java index 4f83701a669def9c687b88e184c1c582684f3cd2..1531c605a3f44bdb8a17a0c7c319dd7e45a289da 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateRequest.java index 35b0be203c7cab890d6a18403df99205f077c0da..3bbc87ccc2cf8dc153d0b0e202c9a6e065d686dc 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateStateDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateStateDto.java index acad030c9307db3ca6e1cd56e710f50ccd65faec..b97b71544f6a084a86944586a07966f16e778533 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateStateDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/api/InformationStatementTemplateStateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplate.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplate.java index 7364f1cd42cceb08055a3d26d80f680f28a68e90..6a198554ce1847d3ea56fee72c38c8481ac58822 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplate.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateRepository.java index ec14d005ac4a38dde80121e96eae10c3628e49a2..df659851121511bb28110e989fca23867c40f93f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateState.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateState.java index dcc7e59bce590facde96c0c4e97be9de5f7bb981..f5faa6ce41161b5de18a146cd166a30daf6b5549 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateState.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/informationstatementtemplate/persistence/entity/InformationStatementTemplateState.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateController.java index e4938944b9dea300adf32ebc00b07c2bb8012b66..f5d060994c7c91cce3d9ba42e0365be58338279c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateMapper.java index 3ce07b229c0b25b44d80742d349fee049c880d2f..6ea829cfb5a746f9efc2db7720f2e9e8a90b9ef4 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateService.java index c990dc6b1ce659200d4da84db58c0fb86b89fe49..c7fcbed56247581d101e3bcaacaa051cb4d5351d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/MedicalHistoryTemplateService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -79,7 +79,7 @@ public class MedicalHistoryTemplateService { public void deleteMedicalHistoryTemplate(UUID id) { if (!medicalHistoryTemplateRepository.existsById(id)) { - throw new NotFoundException("Medical History Template not found: " + id); + throw new NotFoundException("Medical History Template not found"); } medicalHistoryTemplateRepository.deleteById(id); diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/GetMedicalHistoryTemplatesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/GetMedicalHistoryTemplatesResponse.java index 6cfa3733ac069b9ba25d869b35cf139a106ccfb4..62aa860dabf9d6e96ece21cd1ebbe948dd182f98 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/GetMedicalHistoryTemplatesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/GetMedicalHistoryTemplatesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateDto.java index 4231f08bed1170c0d9d61f0ee17ed40480807c39..7ebf3b8a59dfe35ecd4aa27cf33b5d144491faf7 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateStateDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateStateDto.java index 4238f4e1d8c80e44add9059ac83797f9424c4da9..176a3b6563737cb8627154608ae25013f64e4eb5 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateStateDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/MedicalHistoryTemplateStateDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PatchMedicalHistoryTemplateFlagRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PatchMedicalHistoryTemplateFlagRequest.java index 1a02f0bde212c0a02fdd3554609c3877b24aa25b..a8a4defef07e9788f0a2c2968edde6866a14e642 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PatchMedicalHistoryTemplateFlagRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PatchMedicalHistoryTemplateFlagRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PostPutMedicalHistoryTemplateRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PostPutMedicalHistoryTemplateRequest.java index 0de86a0eec6e29ea22c541947f68a046314b965d..0e799c9de678d690a74e7e2316e0a32ea47166af 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PostPutMedicalHistoryTemplateRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/api/PostPutMedicalHistoryTemplateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/CreateMedicalHistoryTemplateTask.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/CreateMedicalHistoryTemplateTask.java index 1d2dc73c5bec6299d678fae3330f46ce8976b9e8..f1ea24ff9ef4810f747844f4f6fb39d6233cf6ad 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/CreateMedicalHistoryTemplateTask.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/CreateMedicalHistoryTemplateTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplate.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplate.java index 103a69eb03e8657d917b8d584f8ff2b82128f6b6..b58aed5c3b68e351ee521fb044f1020511dfb8c2 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplate.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplate.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateRepository.java index 19ff767fa24e04550ccc3d27e040187ae4d94383..2b08e95d649087ae041091cd9097875b980f35a2 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateState.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateState.java index e25ba1c8b22ead4bf8d2600145e529913d72ceb5..9e9aeb477d5348fbebc853b99114afceb9b4cac8 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateState.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/template/medicalhistorytemplate/persistence/entity/MedicalHistoryTemplateState.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestHelperUtil.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestHelperUtil.java index e000eda321713b26b8ae01a074da8a92666650b9..84905c2ef04683a75779e84ffdd4945cca8ef7c4 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestHelperUtil.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestHelperUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateAdministrativeService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateAdministrativeService.java index b75919d7e20c0430430626315a48610ca6fe5d77..34f17a80dd1e93fe84fdf6abd775dc517520d955 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateAdministrativeService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateAdministrativeService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateProcedureService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateProcedureService.java index 3e17159515ce96649c6744701c09fea7d0c89bc8..adb279027c34cb12131affd9357ca8f274b0215e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateProcedureService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TestPopulateProcedureService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperController.java index 2e1f94db327e72e4111a1605fe8fa232b0c924b9..344fcddfde501d4579896b431dcc7110e102072a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperService.java index 3c61f96174c5502e2d705a7a32190b1a0d823dd6..0c2f4dfbf5ccbbc6232d7aa19bb50d2cd7ba7e49 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/TravelMedicineTestHelperService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CertificatePopulationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CertificatePopulationDto.java index 2c4da103cd53ed4e49f69f6494699294e9caf400..054fe63238559b3f61cf428b5246b3e4ef00913e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CertificatePopulationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CertificatePopulationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CitizenPortalCredentialsDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CitizenPortalCredentialsDto.java index fad3784ff26d670b425dce01959623930f167627..b02fd1a54ba317ab878b2a5c05790a6cef587dde 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CitizenPortalCredentialsDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/CitizenPortalCredentialsDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InformationStatementPopulationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InformationStatementPopulationDto.java index d88319c0e3ded9428e07ecbc544a550bc5dae43a..41fe2a7c22842e96e69295b739ef2d381d27e5a5 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InformationStatementPopulationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InformationStatementPopulationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InitialStepPopulationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InitialStepPopulationDto.java index 6026fe981626b932b7b6235181699cac3d5e8998..4094e61890359713623dcf49e3a0b38f4c5a96c0 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InitialStepPopulationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/InitialStepPopulationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/OtherServicePopulationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/OtherServicePopulationDto.java index 57b6b68c292a97955e264b771f93e9da1656385a..3c4df0f3e8fd4f59d7ad1321952074135d47fc82 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/OtherServicePopulationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/OtherServicePopulationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateAdministrativeResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateAdministrativeResponse.java index 256514ee1b50bc4219863ce53b6ee9d4ca14f4fd..34579c8aa5f21d9b641d1b54353d72b23a420003 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateAdministrativeResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateAdministrativeResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureRequest.java index 8d54f6c14f50f3cd7b1ca8ded330b441c56317ae..e291847daab00adfdcf1ff43293d133e348abb1b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureResponse.java index 6a49a23361eb3a22802ae8c8cc4f1f257f04571f..3b63374d601c6795e6929d24b105cbe97109dd74 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/PostPopulateProcedureResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/ProcedureStepPopulationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/ProcedureStepPopulationDto.java index ebee778b18b459f0665fd575a6a7c697d58b3943..8d946276c1102ec540ac90477e41c3b8be2aa3c7 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/ProcedureStepPopulationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/ProcedureStepPopulationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/VaccinationPopulationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/VaccinationPopulationDto.java index fb8314a1b245dffcfcded12e4e11f5260a00817d..9e794c0deda7c4b9508ec631e0728155443cff61 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/VaccinationPopulationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/testhelper/api/VaccinationPopulationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/MappingUtil.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/MappingUtil.java index 0ac5356adbc14bb61b8cb8b7aabd8bb75ec4c83f..5b41408126d4023fa0bd6c7c7aca88dc7cdf9b57 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/MappingUtil.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/MappingUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/TravelMedicineProgressEntryType.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/TravelMedicineProgressEntryType.java index 7fa6ab746625f87b46e62e279a72e59b140ff4af..24250c9f8c15670f50b18ef14f9d9aee41f7a2cf 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/TravelMedicineProgressEntryType.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/TravelMedicineProgressEntryType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/Validators.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/Validators.java index 4822a7db5d9200b912bd326694cdbadd0ac94668..01308554849caa2e1f5454f40c30186ba271d9b1 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/Validators.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/util/Validators.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentBookingTypeMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentBookingTypeMapper.java index 3aa1e5dc51be85ecab49056506b0fd75dee75e8b..35bbeab313390c98e7c7d1f63a362b2818664011 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentBookingTypeMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentBookingTypeMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentDetailsMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentDetailsMapper.java index e4f31808a095bd228983caf1d0792d3ac657446e..aa54f76a0884a5a5fd9de95700f189c617a992e0 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentDetailsMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentDetailsMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentOverviewMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentOverviewMapper.java index f2d06fed564362926f6e76d6b2b0bcb64079d5be..46c5b2cf9c016f43d7251fbb8366e08bd4032620 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentOverviewMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentOverviewMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentService.java index 7644d3ca2c44af1b8416d83f1ade74a2ee6755a7..cede33e9baef4505a2c566c3a817c0837a83cbe1 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/AppointmentService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/CitizenAccessCodeUserClient.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/CitizenAccessCodeUserClient.java index 86c7e649d10cbed11240a360a18344a059230e43..0a37429896de52c569aa1c9b2c6673dbcc1e6b4d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/CitizenAccessCodeUserClient.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/CitizenAccessCodeUserClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/InformationStatementSummaryMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/InformationStatementSummaryMapper.java index c42093ae11a8a819cba40cfc45d7be6e646db1cf..e783ca64f2b97997f0c3703458487ffdc4189ba6 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/InformationStatementSummaryMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/InformationStatementSummaryMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/OtherServiceMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/OtherServiceMapper.java index 0f52e2025c229bf21a0876e71af3906d9006e92b..9ba33ab079b9b21ff96f209bbab6cbc21d185993 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/OtherServiceMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/OtherServiceMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/PersonClient.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/PersonClient.java index aabc1ee84fe502e94e53f6ac91d78dde28cfdb53..6c0ca06e4e9dacddd75598902baca9da83a0a661 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/PersonClient.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/PersonClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureAccessor.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureAccessor.java index 8da0d7289caa9fb213d13dcc9822492d43603318..5cec7aa12cb6d5f0694a3d6e8644aa69a8903b0f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureAccessor.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureAccessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -118,8 +118,7 @@ public class ProcedureAccessor { final VaccinationConsultation vaccinationConsultation = vaccinationConsultationRepository .findByExternalId(procedureId) - .orElseThrow( - () -> new NotFoundException("Vaccination consultation not found: " + procedureId)); + .orElseThrow(() -> new NotFoundException("Vaccination consultation not found")); if (procedureChecks != null) { procedureChecks.forEach(c -> c.applyCheck(vaccinationConsultation)); } @@ -150,19 +149,13 @@ public class ProcedureAccessor { final ProcedureStep procedureStep = procedureStepRepository .findById(procedureStepId) - .orElseThrow( - () -> new NotFoundException("Procedure step not found: " + procedureStepId)); + .orElseThrow(() -> new NotFoundException("Procedure step not found")); VaccinationConsultation vaccinationConsultation = procedureStep.getVaccinationConsultation(); if (procedureId != null) { if (!vaccinationConsultation.getExternalId().equals(procedureId)) { - throw new NotFoundException( - "The procedure step " - + procedureStepId - + " is not part of the procedure " - + procedureId - + "."); + throw new NotFoundException("The given procedure step is not part of the procedure."); } } @@ -182,14 +175,13 @@ public class ProcedureAccessor { final VcService service = serviceRepository .findById(serviceId) - .orElseThrow(() -> new NotFoundException("Service not found: " + serviceId)); + .orElseThrow(() -> new NotFoundException("Service not found.")); VaccinationConsultation vaccinationConsultation = service.getVaccinationConsultation(); if (procedureId != null) { if (!vaccinationConsultation.getExternalId().equals(procedureId)) { - throw new NotFoundException( - "The service " + serviceId + " is not part of the procedure " + procedureId + "."); + throw new NotFoundException("The given service is not part of the procedure."); } } @@ -209,18 +201,13 @@ public class ProcedureAccessor { final Vaccination vaccination = vaccinationRepository .findById(vaccinationId) - .orElseThrow(() -> new NotFoundException("Vaccination not found: " + vaccinationId)); + .orElseThrow(() -> new NotFoundException("Vaccination not found.")); VaccinationConsultation vaccinationConsultation = vaccination.getVaccinationConsultation(); if (procedureId != null) { if (!vaccinationConsultation.getExternalId().equals(procedureId)) { - throw new NotFoundException( - "The vaccination " - + vaccinationId - + " is not part of the procedure " - + procedureId - + "."); + throw new NotFoundException("The given vaccination is not part of the procedure."); } } @@ -240,18 +227,13 @@ public class ProcedureAccessor { final OtherService otherService = otherServiceRepository .findById(otherServiceId) - .orElseThrow(() -> new NotFoundException("Other service not found: " + otherServiceId)); + .orElseThrow(() -> new NotFoundException("Other service not found")); VaccinationConsultation vaccinationConsultation = otherService.getVaccinationConsultation(); if (procedureId != null) { if (!vaccinationConsultation.getExternalId().equals(procedureId)) { - throw new NotFoundException( - "The other service " - + otherServiceId - + " is not part of the procedure " - + procedureId - + "."); + throw new NotFoundException("The given other service is not part of the procedure."); } } @@ -271,8 +253,7 @@ public class ProcedureAccessor { final MedicalHistory medicalHistory = medicalHistoryRepository .findById(medicalHistoryId) - .orElseThrow( - () -> new NotFoundException("Medical history not found: " + medicalHistoryId)); + .orElseThrow(() -> new NotFoundException("Medical history not found.")); VaccinationConsultation vaccinationConsultation = medicalHistoryRepository @@ -280,18 +261,11 @@ public class ProcedureAccessor { .orElseThrow( () -> new NotFoundException( - "The medical history " - + medicalHistoryId - + " doesn't belong to any procedure.")); + "The given medical history doesn't belong to any procedure.")); if (procedureId != null) { if (!vaccinationConsultation.getExternalId().equals(procedureId)) { - throw new NotFoundException( - "The medical history " - + medicalHistoryId - + " is not part of the procedure " - + procedureId - + "."); + throw new NotFoundException("The medical history is not part of the procedure."); } } @@ -312,19 +286,14 @@ public class ProcedureAccessor { final Certificate certificate = certificateRepository .findById(certificateId) - .orElseThrow(() -> new NotFoundException("Certificate not found: " + certificateId)); + .orElseThrow(() -> new NotFoundException("Certificate not found")); VaccinationConsultation vaccinationConsultation = certificate.getProcedureStep().getVaccinationConsultation(); if (procedureId != null) { if (!vaccinationConsultation.getExternalId().equals(procedureId)) { - throw new NotFoundException( - "The Certificate " - + certificateId - + " is not part of the procedure " - + procedureId - + "."); + throw new NotFoundException("The given Certificate is not part of the procedure."); } } @@ -344,22 +313,14 @@ public class ProcedureAccessor { final InformationStatement informationStatement = informationStatementRepository .findById(informationStatementId) - .orElseThrow( - () -> - new NotFoundException( - "InformationStatement not found: " + informationStatementId)); + .orElseThrow(() -> new NotFoundException("InformationStatement not found")); VaccinationConsultation vaccinationConsultation = informationStatement.getVaccinationConsultation(); if (procedureId != null) { if (!vaccinationConsultation.getExternalId().equals(procedureId)) { - throw new NotFoundException( - "The Information Statement " - + informationStatementId - + " is not part of the procedure " - + procedureId - + "."); + throw new NotFoundException("The Information Statement is not part of the procedure."); } } diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepController.java index daab59531f0dbbf093a764055df64e7e505aacde..288fd6ee8a74e18214e8be5090096fcddbcb12f6 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepService.java index 356dfe9bdce6dd4d22821cad654083823b279d6a..65ef52bccfde25b56c74c23fea151e10f30840b8 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProcedureStepService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProgressEntryService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProgressEntryService.java index d8fe190608ec1e6558b9332565900f0f9fbfd514..c4425339f0a5f4c6a4a8004a596ab4c67e28a411 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProgressEntryService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/ProgressEntryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/SearchVaccinationConsultationFilterAndMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/SearchVaccinationConsultationFilterAndMapper.java index f9caf5d7d0122e3e71bd9dba00164b78d1913876..8bee8b75f084dc86ece6bbe88ea8278c293486ed 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/SearchVaccinationConsultationFilterAndMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/SearchVaccinationConsultationFilterAndMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/UserDefinedAppointmentMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/UserDefinedAppointmentMapper.java index 7dff87112daa4aa39677fb08b17fa39df90bca28..e442ab32aedbbcf79d3ade89d6100595c7a0c044 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/UserDefinedAppointmentMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/UserDefinedAppointmentMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationController.java index 04de322b9a2199256c36183d76099aafe172455f..b7d352b037b29f749590e773f617d6ac1fb52cbd 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationDetailsMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationDetailsMapper.java index 02d086b4584a372f16a7c6e1ae5d9de92b72a385..dcb937d20f012156e93bb470d2d526c99d1530a8 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationDetailsMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationDetailsMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationMapper.java index d7069c008062d1706e905725244932074b83092f..9a4348e9c536d2bb2257f5bd45af67ddf00b6a74 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationService.java index 90a85a3850810ec4ad0d83fe149cb0e81390eb88..9df4f04b0ebfc92cacf48a687e77e2ac3c8e3fbe 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationConsultationService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -672,7 +672,7 @@ public class VaccinationConsultationService { private VcService retrieveService(UUID serviceId) { return serviceRepository .findById(serviceId) - .orElseThrow(() -> new NotFoundException("Service not found: " + serviceId)); + .orElseThrow(() -> new NotFoundException("Service not found")); } private boolean procedureHasPlannedServices(UUID procedureId) { diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationMapper.java index d7b80bb13a245646741b2b25ac0cefd6f250c16c..3336ab0d1e6e28954f18befbd7276b98c9636da0 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VaccinationMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VcServiceService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VcServiceService.java index 299dc108440e758222b4cd1c44b20df333be0f89..1201e1bc44284ec7526e2a4f2c1a36246d8bde65 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VcServiceService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/VcServiceService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppliedServiceDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppliedServiceDto.java index 0179811288e0ad989e221e7f20620b29f8660e2e..bf9fcc30ccd8f7926e436abafcf8df898582b80e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppliedServiceDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppliedServiceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentBookingTypeDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentBookingTypeDto.java index 0dfd8d5baf4e24267559c57a003c8685fe4ddd4d..263aeab30b97a1e9c6e0b212ed6ef8d50771316d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentBookingTypeDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentBookingTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentOverviewEntryDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentOverviewEntryDto.java index 2f725dc4215b0c5dca41457321b9c7f085567d55..631b5962bc9081fb965480fa34ebac109651a33b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentOverviewEntryDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentOverviewEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentSummaryDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentSummaryDto.java index c924534e59f8aaeaf80f149f5b608e9974f87fde..236ce4a402bbb301a75ba03acd93848de49cf9f3 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentSummaryDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AppointmentSummaryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AssignableServiceDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AssignableServiceDto.java index 176fa00a8e97fa4a986be8b89f7f96e24797a448..eeb6f12d335081436d1465419f47ad5203652f09 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AssignableServiceDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/AssignableServiceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/CreatedByUserTypeDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/CreatedByUserTypeDto.java index 7389ca5db9fff9bdb9da00e872a6e890d26c6687..a28bcc2e48a3fb561a3c12f9fb0b206831301f77 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/CreatedByUserTypeDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/CreatedByUserTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentDetailsResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentDetailsResponse.java index 73529a2ae27f8ae444c70568a8aaa4217558a7bd..e1b9bc8c88a2edf4b03a84e4d43b7b24b2ff7a39 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentDetailsResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentDetailsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentOverviewResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentOverviewResponse.java index 2402186f072eceb3b1ff25d88a4ae3809eb37ab5..4abc8fe2262b234bbc7f24a2e6433e6260f75ecb 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentOverviewResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAppointmentOverviewResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAssignableServicesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAssignableServicesResponse.java index cdf6ef6d7c7dcb9c8ddab9cdfc4285878e4cab91..1118a1cd0831b9f0dd33866bd35f25ea4a5a2a11 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAssignableServicesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAssignableServicesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAvailableAppointmentsResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAvailableAppointmentsResponse.java index 134c71c254be5503c762b4467e6057d46d9b9480..b2e5d6b2cd7fd695150f70034249d379c150b019 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAvailableAppointmentsResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetAvailableAppointmentsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetCitizenAppointmentOverviewResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetCitizenAppointmentOverviewResponse.java index c1fcd7bedb33932079435aff5ba4c49d327d87a4..97c848f0546172a6ac82feef3a1a5a046b49f94b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetCitizenAppointmentOverviewResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetCitizenAppointmentOverviewResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetInformationStatementsResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetInformationStatementsResponse.java index c5dc381b3fd26de3ba9112a1b96909a790aa40bc..4eb1176232e49e69e357e31d8f600a1bf47522c1 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetInformationStatementsResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetInformationStatementsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetMedicalHistoriesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetMedicalHistoriesResponse.java index fed72b22848c46911691f533994cbc479cad4bf1..d0ef8a16a608fb0c6e07649814605c0c18aa100d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetMedicalHistoriesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetMedicalHistoriesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetProcedureStepServicesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetProcedureStepServicesResponse.java index 8db21182ee82ef01a1a420a565d25b88d3d86f7a..4c1932227635c7f281776d1687cf7fd956dd1869 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetProcedureStepServicesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetProcedureStepServicesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetStepsWithAppliedServicesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetStepsWithAppliedServicesResponse.java index 50113723a5df2f284de23ed82603e9bc2e9d2c46..45ea69e31f608879c275850cbcba089fcdda7d52 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetStepsWithAppliedServicesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetStepsWithAppliedServicesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetVaccinationConsultationDetailsResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetVaccinationConsultationDetailsResponse.java index fae23ac084cb563032cf48e3677240c7aa1cbc6e..319d4c01d98786f16c8efa5062c6c988b78b9586 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetVaccinationConsultationDetailsResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/GetVaccinationConsultationDetailsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/InformationStatementSummaryDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/InformationStatementSummaryDto.java index d5b8bc8a7f2c93145059e7c049cf6a49033b92b5..11a2e0d9c6b32f5e5b8792a58be9158f25100b16 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/InformationStatementSummaryDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/InformationStatementSummaryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/OtherServiceDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/OtherServiceDto.java index 73e9f1e83b21a0ecd4ce19fcbf65b748222e7a56..6d0800125ed291515b54c418d9f8da3c48287db9 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/OtherServiceDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/OtherServiceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAcceptDraftRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAcceptDraftRequest.java index fd5b3cf0f05398d5b0d80e9238e65ecc51f16111..843073a4145f73ea82c797e0af1b5b854475a9c0 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAcceptDraftRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAcceptDraftRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAppointmentRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAppointmentRequest.java index f6d6e471a16ed5397bc64d01756273ccb9924fa5..0dceec6a48baa1971d369083abafbbfcbecea074 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAppointmentRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchAppointmentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchEarliestDateRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchEarliestDateRequest.java index 44b5478dfaee93c8f668edd4079887240dcbc3e1..d280878d5f60ddda1052ce5fcde5e2dc78d49c43 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchEarliestDateRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchEarliestDateRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchOtherServiceRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchOtherServiceRequest.java index d175c513a332163fcdb894262e47c6abd71dc497..3995ff503be0a6c76faf5b61849ee57f81b96757 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchOtherServiceRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchOtherServiceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchServiceAssignmentRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchServiceAssignmentRequest.java index 7b92b0ee6a89945f2c40d0112cf0eb932866b430..e282a7fbb463208e6b968a58d756822b060d7d83 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchServiceAssignmentRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchServiceAssignmentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationPatientRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationPatientRequest.java index af7f2d95760c44e7d3a2bcf0310b9b7b84d1eaa5..51d5f2364cc70a4b6b79e95202be4d9826f0e526 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationPatientRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationPatientRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationTravelDetailsRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationTravelDetailsRequest.java index 5899291c1a36f8dae21619f6e28c23adabda0b31..7a05374d756dea113925cea6500516ca048d13c7 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationTravelDetailsRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationConsultationTravelDetailsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationRequest.java index 846ed9a80aebec7f95fb059886b1029c4e9ec4cd..5e7114dc3ffb085949670ffb382582c619a42a51 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatchVaccinationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatientDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatientDto.java index a462f1ea8fba0a97f0b0aa2ffae04ec02119fab5..83ffb07c55ba9464cc3ea59d64b678720c5c2c27 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatientDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PatientDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonAddressDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonAddressDto.java index e1125f0ccf266fda030ce9858d79707b393463e7..ef4382a8b31b53db0dfea2635f89ea08a7fc0843 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonAddressDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonAddressDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonSyncDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonSyncDto.java index f7ca38962b8bfa62d02b381c91da5b7033af15bc..1e3bbfb42f22c245f7989a8133cdc64e91d3a73b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonSyncDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PersonSyncDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostInformationStatementsRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostInformationStatementsRequest.java index c1524682e55a89cb4ecccf1e94a4ff1144ba93d5..7b28a2bcfe871dc2f513b707f8cec2b8ed82c1e6 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostInformationStatementsRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostInformationStatementsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServiceRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServiceRequest.java index d5405edaab773e5fb11857c925561bc55d11389b..b40f8fa5107f8442d5461c17db5cca036c6ca8fe 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServiceRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServiceRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServicesRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServicesRequest.java index 4637fcdd1324da72acffd11e562cbbd04f39910f..1e078ff16e53956cd637a373d92bbb807a74d228 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServicesRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostOtherServicesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostProcedureStepRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostProcedureStepRequest.java index f248b3efe1410aa28e03fa1bebfff9424bf61a26..3acd1d9cceb6870d77788216d5e19a263ec2e81a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostProcedureStepRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostProcedureStepRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostServicesRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostServicesRequest.java index dcfe2892e81c11eed2b770351e8f16d7eef799d1..af1b659ee17ca6f8a17781e78acf3ffdb9af5d27 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostServicesRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostServicesRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostUserDefinedAppointmentRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostUserDefinedAppointmentRequest.java index f73c088e1b12f5d2bf76689486568bc0e71924f5..e784e9042d089beb2f22bc119799c1767320f56e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostUserDefinedAppointmentRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostUserDefinedAppointmentRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationConsultationRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationConsultationRequest.java index 41e5ffc066d006983919bd3d2756d0f71da56398..da7e28693ccdc9aaf54212623eed8ca0584ff90b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationConsultationRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationConsultationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationRequest.java index ef35f08bf32a7af8b8774c788a2faa17bcfaeb1f..f249e96582ca5f5d0fe0a35fa389fa0feb2ef549 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationsRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationsRequest.java index 0917ba9453be8c9fe3ef117e9d1d85a01f212c43..0797e1e9dcccd34331658d0f304d89e97ccfe58f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationsRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/PostVaccinationsRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ProcedureStepServiceDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ProcedureStepServiceDto.java index 6a0f47e11db486f0f973e8d402883a770fec9429..8ded9619faf11572dee3da6bb2aa898534b2084c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ProcedureStepServiceDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ProcedureStepServiceDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SearchVaccinationConsultationResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SearchVaccinationConsultationResponse.java index cfbc388ed2b8f999acc9b79b83d05bc54e13c6bc..896ac6dba2d9e21b43d437581ab15d68de76df82 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SearchVaccinationConsultationResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SearchVaccinationConsultationResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanEntryDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanEntryDto.java index 2ad83e4af2d5af94044881c3cb981b5b890ccbee..ac221a3f32b22886db467ab1e3201707d72a0496 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanEntryDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanEntryDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanGroupDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanGroupDto.java index 7f71db95b4e91a93c0bd2c16ec20775aca634953..f79b27110b02143212e3a93210c12dafe5cdbcaf 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanGroupDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServicePlanGroupDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServiceStatusDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServiceStatusDto.java index c959160f26882992d8ce478ae835d3340354432a..aab38cab5151b533ccd36c6862f98b3c5dbdb80a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServiceStatusDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/ServiceStatusDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/StepWithAppliedServicesDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/StepWithAppliedServicesDto.java index e990d72c1b79d073cecba9cf04fd70783be4bd82..81ccd3ddfde92e1cfaaa0ce8be1e4721ad2fa6b0 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/StepWithAppliedServicesDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/StepWithAppliedServicesDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SyncPersonRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SyncPersonRequest.java index db27f18b31cb371154b1bf090bf9259a703c8d42..5a1181ad3cd4097a0727a6464d60160415a9e4ff 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SyncPersonRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/SyncPersonRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelInformationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelInformationDto.java index 3bdb5b2c01112ed7c4e70427ddb263d354561f14..3d87eba012a0b852f78d008cda784f17d8d1529a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelInformationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelInformationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTimeUnitDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTimeUnitDto.java index fd6eb0a27236411c74616c2469d033c5314e07de..3a07b443457fefd969d3beb16b6a96469e7c14db 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTimeUnitDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTimeUnitDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTypeDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTypeDto.java index 7b60aff9fe7a7b24c0387688b4c25809a3258018..a762b8d0a940737ad175ef6ea9653f969faa1fb5 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTypeDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/TravelTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/UserDefinedAppointmentDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/UserDefinedAppointmentDto.java index 14b11d5a9d8913ea26292b02dfa65f491e825ef7..6a8af765c2c379f897c76f4818de6bd533accd35 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/UserDefinedAppointmentDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/UserDefinedAppointmentDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationConsultationSearchDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationConsultationSearchDto.java index e6553d10e304a7118de0c6e84ff9f2dc1c2082e8..b8d02233a429e1195acd3f346a6bb755c2701b97 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationConsultationSearchDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationConsultationSearchDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationDto.java index 4e5758988c00b9412be72694ad6989744f4815fd..ec0f1a98bef5cad3969c3f5f9a5a898dd523b470 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationTypeDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationTypeDto.java index de9bc7d1595d2bcfa4324cf46af7022b5fc0b919..6edd898a0020c7286377ec9e00fe4c8b830ee92b 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationTypeDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/api/VaccinationTypeDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/AppointmentOverviewEntry.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/AppointmentOverviewEntry.java index 06691a5df86f3d4d581f78a997a785d0e4e44382..797827bc29ff4866c2eebd082b5d6f34f34e8027 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/AppointmentOverviewEntry.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/AppointmentOverviewEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/CreatedByUserType.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/CreatedByUserType.java index a4c74e35b94b9a8228227be3467a96aa4b771a3e..95c0547831f7bdd35004cfbe70987ab38a704eab 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/CreatedByUserType.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/CreatedByUserType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Facility.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Facility.java index 9441722dd59a8f3751a8a33fcaaf7196bdd0983c..5ceb23decc05f48e1a7a674666f9a44129216256 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Facility.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Facility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherService.java index 603878c1aa510c39ab6112293743b5d2663eb0c5..04751e9acfac057bf586f1a8fac640f124af8082 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherServiceRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherServiceRepository.java index e9e462e011afccdfc7f3913aceef7425ce5131d3..5df82b11b58324e64f32496e551c8751b871ae17 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherServiceRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/OtherServiceRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Person.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Person.java index 86fdfa22092753875b07f14818a43028917e79db..8157826c4c88a557f3489afcd4d676511a0b504d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Person.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/PersonRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/PersonRepository.java index ac4580f4f1988e89dafced9083a62d6ca72ac3ad..845c6145039e2f68d679a8f415833e6e88e3bf6e 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/PersonRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/PersonRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStep.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStep.java index 756d4f783d04930dbfe593e6183a516e562c6e29..265b2f98ccfe5da70c47ca7dfadf546778139da8 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStep.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStep.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStepRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStepRepository.java index 1f6ba56582bae49520f6c6f0311cfaaae540a54e..c52a87772a08c6d0c6c64d8b1d9fd9451e3239ad 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStepRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ProcedureStepRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServicePlanEntry.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServicePlanEntry.java index 5fbce0b5bc66d658cac95a521598f455ed2c3a65..187637e2ca1649ff77cac86b29ff36edfb3c2410 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServicePlanEntry.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServicePlanEntry.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceRepository.java index 6f4ec327456d304c24528259a65a2a4520735b5a..afebd237f6d484922e2683b4d7dea2e2018e2bfc 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceStatus.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceStatus.java index c8f3bef3a4c933a7da3e4b9544d0122076791a05..54f5291c7bf916319ae01bdd3ea7336cdfd5e920 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceStatus.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/ServiceStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelTimeUnit.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelTimeUnit.java index 4243b2e65ec92c2c69bae3e4b499ac62829435d4..dfcc11ef30ab4696e1bd46583c9b93cd0bc5f9ae 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelTimeUnit.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelTimeUnit.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelType.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelType.java index 1b89563b1df9da162239b44c7a14daa0bf3cf980..bfb0ef7a1d0a753840628fb1d51926d5db5db0e3 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelType.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/TravelType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointment.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointment.java index ecddc2bcf72ec4a7f8b8a49d4b206c06a8e82090..d7af65d782f6acea7213010b3257f2443f3d3546 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointment.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointment.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointmentRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointmentRepository.java index 798a8a9dabaee79ea218ee9814942de7347ddf8c..59c91e2388459edab6cab189372cff7bbe8b2fa9 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointmentRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/UserDefinedAppointmentRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Vaccination.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Vaccination.java index 3ed2889bf8200f7953b0f49a726a891539f860b9..4e54d1fedd17b651f0c167151ecfe9f6946f5769 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Vaccination.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/Vaccination.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultation.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultation.java index a32e97b42367931065ca8bb3c81dfb63dd6e7f7b..71effc748af3525152bd9ad8dd3a06b5248ecbd4 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultation.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultation.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationRepository.java index 5a4539aea5e2095b96bdd046fd146cc757db1341..4b01518de3d2e06adc3f9cd3a49ce52198f81f30 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationSearch.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationSearch.java index 722cca2db6e512ddaf7ed9340a198c6f3becbefb..aacaf0ad9159ae58274168591b4558d49d491f22 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationSearch.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationSearch.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTask.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTask.java index 250701e342a4511ac40ba5f7755e81a330a49069..b82cb00877c9051ec656cfabd79c394db8721b26 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTask.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTaskRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTaskRepository.java index d46b00feb6ab334c3812da9b72de9aaa74118414..d732ee19b6b1467294a4ad030d400d6fa33f6451 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTaskRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationConsultationTaskRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationRepository.java index c0ff6e97bb406fae00ac49014cea5d1ef5f73445..d1ee6197230799a10b5bd654a6eb886b290f2356 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationType.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationType.java index 5513617349df6453c7c8393604bda66743cea80d..82d91076c5ff28d3da7fdc6075de942803a2806c 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationType.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VaccinationType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VcService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VcService.java index 58b0046ec4da02e984b879dca33b3ea3901436b0..986b10eb8bb1a822d8f69ad3ae93a9b6cdcabb5a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VcService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccinationconsultation/persistence/entity/VcService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/UnusedBaseInventoryVaccineController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/UnusedBaseInventoryVaccineController.java index d20b6a654f89f1001fca2e17158da7491d39be03..d367303371314c5ce712552f91b8251485b9dacd 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/UnusedBaseInventoryVaccineController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/UnusedBaseInventoryVaccineController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineController.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineController.java index 4c421a28fcb880b140b57362ebd999e25da6acc7..6dd8b81f34a91ecae213d802e5cc070c62f95e1f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineController.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineController.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineMapper.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineMapper.java index 50cb4a4f15f19f95d12c8d55f91f2521798390fd..e277bc2035845c889d0f0765fa563216c5452932 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineMapper.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineService.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineService.java index 71a88d009ed730b05689e465cfe7eb46e1e8039b..6666b194ef88b95b8690d69160b22596daa782bd 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineService.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/VaccineService.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -80,7 +80,7 @@ public class VaccineService { private Disease retrieveDiseaseFromRepo(UUID diseaseId) { return diseaseRepository .findById(diseaseId) - .orElseThrow(() -> new BadRequestException("No such disease: " + diseaseId)); + .orElseThrow(() -> new BadRequestException("No such disease")); } public VaccineDto getOneVaccine(UUID id) { @@ -169,7 +169,7 @@ public class VaccineService { Vaccine vaccine = vaccineRepository .findById(id) - .orElseThrow(() -> new NotFoundException("Vaccine not found: " + id)); + .orElseThrow(() -> new NotFoundException("Vaccine not found")); vaccineRepository.delete(vaccine); } diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetInventoryVaccinesWithoutRmbiVaccineResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetInventoryVaccinesWithoutRmbiVaccineResponse.java index 4c5dd7a30b8853b0c5790be2b2a727ecb50ccc52..420a7c198da47f5d9e886aacbf763baa4c08d7b2 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetInventoryVaccinesWithoutRmbiVaccineResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetInventoryVaccinesWithoutRmbiVaccineResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetVaccinesResponse.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetVaccinesResponse.java index ca5d72e0f60427cf7fe1350b42d821ade3511630..e7a75261d15830957c5af8a4fede37dbd2c1e50a 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetVaccinesResponse.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/GetVaccinesResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/InventoryVaccineWithoutRmbiVaccine.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/InventoryVaccineWithoutRmbiVaccine.java index 98f3a502cdb2e858874acb47d556a70ddbd288d1..5ae06a649e54d3ec86c8f88f8aa542cb6bbc762d 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/InventoryVaccineWithoutRmbiVaccine.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/InventoryVaccineWithoutRmbiVaccine.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/PostPutVaccineRequest.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/PostPutVaccineRequest.java index f72232482047c2641d52cbb7785e6ea29ee8bf57..86141d944e1c6c67fd4a568b13b567727f93bbb6 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/PostPutVaccineRequest.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/PostPutVaccineRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/VaccineDto.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/VaccineDto.java index a1dbb3a05187c4ec28ef1c077277b61bf331a073..910bbd424550dd9317fdfc8c823409388700013f 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/VaccineDto.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/api/VaccineDto.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/Vaccine.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/Vaccine.java index da2f5bfc7f86836d122465b05b08a4b551473f4c..2d284c5370c3c1cb0f2b9c556b1e7606e62e3a86 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/Vaccine.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/Vaccine.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/VaccineRepository.java b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/VaccineRepository.java index 22ec1a2cafb2c46a548897e44ed9f0261b780cfb..4fe8d2bfd961c44ef349fea2ba8aa8dfe6bc1c03 100644 --- a/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/VaccineRepository.java +++ b/backend/travel-medicine/src/main/java/de/eshg/travelmedicine/vaccine/persistence/entity/VaccineRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/backend/travel-medicine/src/main/resources/migrations/0001_initial.xml b/backend/travel-medicine/src/main/resources/migrations/0001_initial.xml index 1843293d5597a514e8fb3940d9dac1be63316851..fc3e0cd42acfff3440573a9b632c3f6aa1e62d7d 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0001_initial.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0001_initial.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0002_introduce_pgenums.xml b/backend/travel-medicine/src/main/resources/migrations/0002_introduce_pgenums.xml index 65cc9ad79a03cb3db415d30e58066e421e3abfbc..7bc2c01de731c7137f08368461587611c9062be9 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0002_introduce_pgenums.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0002_introduce_pgenums.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0003_add_mail_sent_fields.xml b/backend/travel-medicine/src/main/resources/migrations/0003_add_mail_sent_fields.xml index 30888be2a19e96351b1fdcff6f2a231aad0b1ea3..f0ef7408031482df26b16f091f34acc5f609fe75 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0003_add_mail_sent_fields.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0003_add_mail_sent_fields.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0004_rename_tables.xml b/backend/travel-medicine/src/main/resources/migrations/0004_rename_tables.xml index ec9da5fd76bbe31def6db9b94ed6a39c32f35231..4a50a2f60ffb7897075e9f9209ab019804cf884e 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0004_rename_tables.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0004_rename_tables.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0005_indices_for_many_to_one_relations.xml b/backend/travel-medicine/src/main/resources/migrations/0005_indices_for_many_to_one_relations.xml index 517e947b754afec2683d04a2eeb18fa573d91848..58ab12a22b99555b89e22eb415ae62f29ae2ebe9 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0005_indices_for_many_to_one_relations.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0005_indices_for_many_to_one_relations.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0006_inbox_procedure_add_closed_at.xml b/backend/travel-medicine/src/main/resources/migrations/0006_inbox_procedure_add_closed_at.xml index 86faa84ccd17aaf221371caf5d5d66a5d5dbbd49..0211e5d659fbb98b0c13ecd6f79aeca5717de770 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0006_inbox_procedure_add_closed_at.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0006_inbox_procedure_add_closed_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0007_procedure_id_not_optional.xml b/backend/travel-medicine/src/main/resources/migrations/0007_procedure_id_not_optional.xml index 758d4d4041fec71e95d3cb9cace1c6b8913a45d7..a77df82306e096fa59fea6fc37ebed14618535aa 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0007_procedure_id_not_optional.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0007_procedure_id_not_optional.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0008_vaccines_add_current_batch_id.xml b/backend/travel-medicine/src/main/resources/migrations/0008_vaccines_add_current_batch_id.xml index 14abf07ac6d3e54be35e3faeedc8cb72bcb479bb..476d7f93ee008c7d3e2779e7e5001953803d23ec 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0008_vaccines_add_current_batch_id.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0008_vaccines_add_current_batch_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml b/backend/travel-medicine/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml index acd74fdc2923fac0e47c322e87a0bb6230169f65..65510a446c87c6d491e116448dfdffbda6c785c7 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0009_add_deletable_boolean_to_files.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0010_remove_procedure_result.xml b/backend/travel-medicine/src/main/resources/migrations/0010_remove_procedure_result.xml index 88ad5c64c45e8b5403876d934db9aa3367f46877..b77f7695f10f4c5603749dac72301b6bad0a30b7 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0010_remove_procedure_result.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0010_remove_procedure_result.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0011_remove_procedure_type_2.xml b/backend/travel-medicine/src/main/resources/migrations/0011_remove_procedure_type_2.xml index 74dda10caf59f73fb7d646e75f6a09b2f7ad33c2..9f272a81a90fbcd107160c920b5662f978ff9ae9 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0011_remove_procedure_type_2.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0011_remove_procedure_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0012_remove_task_type_2.xml b/backend/travel-medicine/src/main/resources/migrations/0012_remove_task_type_2.xml index d3701f37e0a3a6250feb982d381add06a3b1dca6..9c87061067dba16524fab6f0c885e5beee15023b 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0012_remove_task_type_2.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0012_remove_task_type_2.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0013_update_trigger_type.xml b/backend/travel-medicine/src/main/resources/migrations/0013_update_trigger_type.xml index f1c989072e836275de6ae0b8b868138538ac4f57..0474822eb8298bf3190720a66279429851d99d0a 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0013_update_trigger_type.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0013_update_trigger_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0014_add_physician_mfa_to_service.xml b/backend/travel-medicine/src/main/resources/migrations/0014_add_physician_mfa_to_service.xml index 9cc464c2c0a18579064ae082476c83e728fe4942..43ead9667e2c08a8fd9ef6ba7094d397d549ce4a 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0014_add_physician_mfa_to_service.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0014_add_physician_mfa_to_service.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0015_add_citizen_user_id_to_procedure.xml b/backend/travel-medicine/src/main/resources/migrations/0015_add_citizen_user_id_to_procedure.xml index 256a86287f46971fd0fc5d564737f983327b0fae..4b45ab7fbd799fed6e122acf18429d51993c1359 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0015_add_citizen_user_id_to_procedure.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0015_add_citizen_user_id_to_procedure.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0016_add_sti_protection_procedure_lib_enum_values.xml b/backend/travel-medicine/src/main/resources/migrations/0016_add_sti_protection_procedure_lib_enum_values.xml index a7bfad84d9f727fa7800f04e3e8ee7ae1f78d7db..77a38c05d71f48a209c1b2944eb9ba71eb7d96a4 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0016_add_sti_protection_procedure_lib_enum_values.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0016_add_sti_protection_procedure_lib_enum_values.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0017_add_information_statement_editor.xml b/backend/travel-medicine/src/main/resources/migrations/0017_add_information_statement_editor.xml index 37eb5975f8e4dc1fb28c1ca4984a76305c5bc375..09a564455d1b50ae625ed1b0992d9b34d146074a 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0017_add_information_statement_editor.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0017_add_information_statement_editor.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0018_central_file_state_id_unique_index.xml b/backend/travel-medicine/src/main/resources/migrations/0018_central_file_state_id_unique_index.xml index 8ec44ab0e7c3d81aa737ffa09b558cc4cebccc70..4a5ffa48ed373ec11f716ce21f7022d5bb4f0e81 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0018_central_file_state_id_unique_index.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0018_central_file_state_id_unique_index.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0019_add_cemetery.xml b/backend/travel-medicine/src/main/resources/migrations/0019_add_cemetery.xml index be1213ff54e75dcc9c0ab4e228d562ba19b9544b..9ef1da60ee27119baa6cd47006dcf0e85794a516 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0019_add_cemetery.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0019_add_cemetery.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0020_remove_progress_entry_delete.xml b/backend/travel-medicine/src/main/resources/migrations/0020_remove_progress_entry_delete.xml index 0d7288c8518d423ff5f86636e81b8d6da8001aff..b931e475f7be29f257c32675ad1798e2dfdcf28d 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0020_remove_progress_entry_delete.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0020_remove_progress_entry_delete.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0021_appointment_block_location.xml b/backend/travel-medicine/src/main/resources/migrations/0021_appointment_block_location.xml index ff8d8e9698f3990d31faba2ec2630a6a002e8bd6..7c2d1b3e1f7d86b860bc474d91006161ea346e28 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0021_appointment_block_location.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0021_appointment_block_location.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0022_disease_add_visible_to_citizen_portal.xml b/backend/travel-medicine/src/main/resources/migrations/0022_disease_add_visible_to_citizen_portal.xml index e2bf9dc820894713dd82bfbb56daa147493f8bca..7bff4872e0024dc25cc2ce9ab4e22e79ec384a93 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0022_disease_add_visible_to_citizen_portal.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0022_disease_add_visible_to_citizen_portal.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0023_add_procedure_exported_at.xml b/backend/travel-medicine/src/main/resources/migrations/0023_add_procedure_exported_at.xml index 0674b44a93a9f4644ee25e0031d636858ffe016b..89166e4f01dc2761a9e01b4ffcd89e27359e9778 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0023_add_procedure_exported_at.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0023_add_procedure_exported_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0024_add_consultant_to_appointment_blocks.xml b/backend/travel-medicine/src/main/resources/migrations/0024_add_consultant_to_appointment_blocks.xml index fd960266eb67a9a8a9def61bea886252dc843ffd..4c127075cf22a58a6416e1fd05a894623c51d89b 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0024_add_consultant_to_appointment_blocks.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0024_add_consultant_to_appointment_blocks.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0025_procedure_sequences.xml b/backend/travel-medicine/src/main/resources/migrations/0025_procedure_sequences.xml index c965c1f42db245596a0be0be6dfe6e63393addab..a92c13bd6ff9d6325b0b2862ae6274d9929a50f7 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0025_procedure_sequences.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0025_procedure_sequences.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0026_add_citizen_has_answered.xml b/backend/travel-medicine/src/main/resources/migrations/0026_add_citizen_has_answered.xml index f5aa82f3f903b70c7890a97d6430f8403bc87479..c687a4f6b317a3c61821e76905f699b5d56c65df 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0026_add_citizen_has_answered.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0026_add_citizen_has_answered.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0027_add_cancelled_to_uda.xml b/backend/travel-medicine/src/main/resources/migrations/0027_add_cancelled_to_uda.xml index cb5919897a320ad0fab50592e5b75523ea459e82..a6c2b336a3aa0be2f3ae528284b22d2b9e673ebf 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0027_add_cancelled_to_uda.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0027_add_cancelled_to_uda.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0028_change_information_statement_template.xml b/backend/travel-medicine/src/main/resources/migrations/0028_change_information_statement_template.xml index e162669359d8674623ad26073f1093a04268aff5..9a70d0b9b729e63ca11c8201bce006923bc318d5 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0028_change_information_statement_template.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0028_change_information_statement_template.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0029_add_bookings_remaining_to_ps.xml b/backend/travel-medicine/src/main/resources/migrations/0029_add_bookings_remaining_to_ps.xml index ceceecf0c8e9fb9a3ab598d66f4f595d8798899d..168440d4839f0ad147704e64bf558f2bb0a8111c 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0029_add_bookings_remaining_to_ps.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0029_add_bookings_remaining_to_ps.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0030_introduce_procedure_file_type.xml b/backend/travel-medicine/src/main/resources/migrations/0030_introduce_procedure_file_type.xml index 1ee443742022cab1b3e38135b6c079d9640c427d..6e7ae5b0a05a900e9f7b2aee6a4b690edc815bdb 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0030_introduce_procedure_file_type.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0030_introduce_procedure_file_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0031_add_medical_registry_procedure_types.xml b/backend/travel-medicine/src/main/resources/migrations/0031_add_medical_registry_procedure_types.xml index dde1c1bfc40db6601c41caad99a0221b31eb6e11..a67e1fa58e8d8f4521bfcc03bbde7998e53c33f8 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0031_add_medical_registry_procedure_types.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0031_add_medical_registry_procedure_types.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0032_remove_key_document_type_enum.xml b/backend/travel-medicine/src/main/resources/migrations/0032_remove_key_document_type_enum.xml index d34ae35a11cd835c8844cb4ef782d44cfa6a528e..95ca32291319aade823ad61561362e0adbe9d3bd 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0032_remove_key_document_type_enum.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0032_remove_key_document_type_enum.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0033_set_earliest_date_to_ps.xml b/backend/travel-medicine/src/main/resources/migrations/0033_set_earliest_date_to_ps.xml index 479c94a25e10d167e7a7ab1bca7d5305994a8dc5..5a0e131be624cebe867cef44fa3e07ffa53f4219 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0033_set_earliest_date_to_ps.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0033_set_earliest_date_to_ps.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0034_add_citizen_has_answered_to_infostmt.xml b/backend/travel-medicine/src/main/resources/migrations/0034_add_citizen_has_answered_to_infostmt.xml index d98a275631742d3ab283d2a5b8453d815de78d45..26b0e107ff55b92cc9f0867193e386bc2ab5d0bb 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0034_add_citizen_has_answered_to_infostmt.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0034_add_citizen_has_answered_to_infostmt.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0035_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml b/backend/travel-medicine/src/main/resources/migrations/0035_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml index 978c19bd6d35556b29575363f715654833eca9c0..85ad26748733f5fc99f9b032cbeecc737406ab43 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0035_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0035_make_file_and_manual_progress_entry_owning_side_of_approval_requests.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0036_delete_templates_and_documents.xml b/backend/travel-medicine/src/main/resources/migrations/0036_delete_templates_and_documents.xml index 7f41d52cd7b7806793fa121f7d4e3a675a5ab359..68ef7d4c3ae4171df593a957045f063ddff2ce67 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0036_delete_templates_and_documents.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0036_delete_templates_and_documents.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0037_add_system_progress_entry_keydocument.xml b/backend/travel-medicine/src/main/resources/migrations/0037_add_system_progress_entry_keydocument.xml index eb3ee2ff16658f4999e1b3860400b086744e5438..aaffffba9665b8ed5dfa4c35258e8772d4e41c2c 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0037_add_system_progress_entry_keydocument.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0037_add_system_progress_entry_keydocument.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0038_cemetery_sequence.xml b/backend/travel-medicine/src/main/resources/migrations/0038_cemetery_sequence.xml index 01650cd8bd384560bc94aed495930c2705ed6bc5..ba43e4463b438b74d8dec2e84e15023d8f6a298e 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0038_cemetery_sequence.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0038_cemetery_sequence.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0039_move_subject_and_message_text_to_mail_metadata.xml b/backend/travel-medicine/src/main/resources/migrations/0039_move_subject_and_message_text_to_mail_metadata.xml index 23264627157b19b5e49589bcd3f2b568e3e7c739..2ce3a8d0edc3b1a426dc692a0bd5bca0099fdac6 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0039_move_subject_and_message_text_to_mail_metadata.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0039_move_subject_and_message_text_to_mail_metadata.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0040_add_gdpr_validation_task.xml b/backend/travel-medicine/src/main/resources/migrations/0040_add_gdpr_validation_task.xml index 4cf74a39ccd237a79046388760c85a9b17628e04..7de2b348acba87c5912a82ffca7018e28cad8453 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0040_add_gdpr_validation_task.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0040_add_gdpr_validation_task.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0041_add_started_at.xml b/backend/travel-medicine/src/main/resources/migrations/0041_add_started_at.xml index 11e111c3ca0890ecc9fe44036a8f429cae9a1e56..f0ea5584716f257b9e33407dcb2503051c52d45a 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0041_add_started_at.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0041_add_started_at.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0042_add_default_batch_id.xml b/backend/travel-medicine/src/main/resources/migrations/0042_add_default_batch_id.xml index edd7aa840c5dfb29dc0d42bac1f576974adeaf9d..c61240efe1542b2926c128a8fe1f3b5a46c8231d 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0042_add_default_batch_id.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0042_add_default_batch_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0043_drop_not_null_constraints.xml b/backend/travel-medicine/src/main/resources/migrations/0043_drop_not_null_constraints.xml index cfc48f437ed678adbb70489b64f758a6264baae7..1dad5e91aefac48e499309ae1cd780f9ec3cd211 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0043_drop_not_null_constraints.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0043_drop_not_null_constraints.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0044_rename_gdpr_validation_task_procedure_id.xml b/backend/travel-medicine/src/main/resources/migrations/0044_rename_gdpr_validation_task_procedure_id.xml index 90a6c736938cf799bdaaa91088cb5fe3307d2427..ef4f90e4d9ec59e03f51626d72e76ec66b250653 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0044_rename_gdpr_validation_task_procedure_id.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0044_rename_gdpr_validation_task_procedure_id.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0045_add_download_package_table.xml b/backend/travel-medicine/src/main/resources/migrations/0045_add_download_package_table.xml index 75a64a5c66efe4bc23ac72b44b9fd5b0bfcdd7c1..b72aaecb333c294ecedeaba3618ba903941402c5 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0045_add_download_package_table.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0045_add_download_package_table.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0046_add_tm_signature.xml b/backend/travel-medicine/src/main/resources/migrations/0046_add_tm_signature.xml index c7b4775a1fdc536eb54024e00be4f7382c72c0ac..4f4a45840c9744a72e7ce9d3cb2a571b7ec85c90 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0046_add_tm_signature.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0046_add_tm_signature.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0047_add_dental_as_procedure_type.xml b/backend/travel-medicine/src/main/resources/migrations/0047_add_dental_as_procedure_type.xml index 503fe799e583e0a6a550d8d5d0e562a362cf6cef..4bc204c74204a2fded98dafebdbefd09710a517c 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0047_add_dental_as_procedure_type.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0047_add_dental_as_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0048_add_official_medical_service_procedure_type.xml b/backend/travel-medicine/src/main/resources/migrations/0048_add_official_medical_service_procedure_type.xml index f0ae86bf36ca016cc6e59e63861ad860de07ac90..489facca80afb5e184a1d01dd22729d11a7824d7 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0048_add_official_medical_service_procedure_type.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0048_add_official_medical_service_procedure_type.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0049_add_mail_to_simple_notification.xml b/backend/travel-medicine/src/main/resources/migrations/0049_add_mail_to_simple_notification.xml index 88b05b75e5fb83c0f7164a67b26a5c1484f09405..b7bde614551ebad265cd219ad75fc17fc819eb4b 100644 --- a/backend/travel-medicine/src/main/resources/migrations/0049_add_mail_to_simple_notification.xml +++ b/backend/travel-medicine/src/main/resources/migrations/0049_add_mail_to_simple_notification.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> diff --git a/backend/travel-medicine/src/main/resources/migrations/0050_invert_inbox_procedure_relationships.xml b/backend/travel-medicine/src/main/resources/migrations/0050_invert_inbox_procedure_relationships.xml new file mode 100644 index 0000000000000000000000000000000000000000..ecefebd991d62c86eebd250af1033808aa77d02a --- /dev/null +++ b/backend/travel-medicine/src/main/resources/migrations/0050_invert_inbox_procedure_relationships.xml @@ -0,0 +1,72 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 SCOOP Software GmbH, cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733835693519-1"> + <addColumn tableName="inbox_procedure"> + <column name="contact_details_id" type="BIGINT"/> + </addColumn> + <sql> + UPDATE inbox_procedure + SET contact_details_id=contact_details.id FROM contact_details + WHERE contact_details.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="contact_details_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="contact_details_id" + constraintName="inbox_procedure_contact_details_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="contact_details_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_contact_details" deferrable="false" + initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" + referencedColumnNames="id" referencedTableName="contact_details" + validate="true"/> + + <dropForeignKeyConstraint baseTableName="contact_details" + constraintName="fk_contact_details_inbox_procedure"/> + <dropUniqueConstraint + constraintName="contact_details_inbox_procedure_id_key" + tableName="contact_details"/> + <dropColumn columnName="inbox_procedure_id" tableName="contact_details"/> + </changeSet> + <changeSet author="GA-Lotse" id="1733835693519-2"> + <addColumn tableName="inbox_procedure"> + <column name="inbox_progress_entry_id" type="BIGINT"/> + </addColumn> + + <sql> + UPDATE inbox_procedure + SET inbox_progress_entry_id=inbox_progress_entry.id FROM inbox_progress_entry + WHERE inbox_progress_entry.inbox_procedure_id = inbox_procedure.id; + </sql> + + <addNotNullConstraint columnDataType="bigint" + columnName="inbox_progress_entry_id" tableName="inbox_procedure" + validate="true"/> + <addUniqueConstraint columnNames="inbox_progress_entry_id" + constraintName="inbox_procedure_inbox_progress_entry_id_key" + tableName="inbox_procedure"/> + <addForeignKeyConstraint baseColumnNames="inbox_progress_entry_id" + baseTableName="inbox_procedure" + constraintName="fk_inbox_procedure_inbox_progress_entry" + deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" + onUpdate="NO ACTION" referencedColumnNames="id" + referencedTableName="inbox_progress_entry" validate="true"/> + + <dropForeignKeyConstraint baseTableName="inbox_progress_entry" + constraintName="fk_inbox_progress_entry_inbox_procedure"/> + <dropUniqueConstraint + constraintName="inbox_progress_entry_inbox_procedure_id_key" + tableName="inbox_progress_entry"/> + <dropColumn columnName="inbox_procedure_id" + tableName="inbox_progress_entry"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/travel-medicine/src/main/resources/migrations/0051_add_official_medical_service_appointment_type.xml b/backend/travel-medicine/src/main/resources/migrations/0051_add_official_medical_service_appointment_type.xml new file mode 100644 index 0000000000000000000000000000000000000000..22e7a6265fd74eefe5edd98d6e42f9f4892e9990 --- /dev/null +++ b/backend/travel-medicine/src/main/resources/migrations/0051_add_official_medical_service_appointment_type.xml @@ -0,0 +1,11 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<!-- + Copyright 2025 SCOOP Software GmbH, cronn GmbH + SPDX-License-Identifier: AGPL-3.0-only +--> + +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <changeSet author="GA-Lotse" id="1733919874856-1"> + <ext:addPostgresEnumValues enumTypeName="appointmenttype" valuesToAdd="OFFICIAL_MEDICAL_SERVICE"/> + </changeSet> +</databaseChangeLog> diff --git a/backend/travel-medicine/src/main/resources/migrations/changelog.xml b/backend/travel-medicine/src/main/resources/migrations/changelog.xml index d99d8e284e5a6c797e0f67a236e6bac39e694d82..4cfc618dacb6399649c2ddfb4a2eedc913d958f2 100644 --- a/backend/travel-medicine/src/main/resources/migrations/changelog.xml +++ b/backend/travel-medicine/src/main/resources/migrations/changelog.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <!-- - Copyright 2024 SCOOP Software GmbH, cronn GmbH + Copyright 2025 SCOOP Software GmbH, cronn GmbH SPDX-License-Identifier: AGPL-3.0-only --> @@ -61,5 +61,7 @@ <include file="migrations/0048_add_official_medical_service_procedure_type.xml"/> <include file="migrations/0049_add_mail_to_simple_notification.xml"/> + <include file="migrations/0050_invert_inbox_procedure_relationships.xml"/> + <include file="migrations/0051_add_official_medical_service_appointment_type.xml"/> </databaseChangeLog> diff --git a/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.css b/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.css index 467e9dec5ce24157d2d639857076f138c21528fa..a6078d6624de8ed184b7153cb14dae4145002126 100644 --- a/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.css +++ b/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.css @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,7 +15,7 @@ @bottom-right { content: "Seite " counter(page) " von " counter(pages); - font-family: Poppins, serif; + font-family: serif; font-size: 9px; border-top: darkgray solid 1px; vertical-align: top; @@ -27,7 +27,7 @@ footer { position: running(--var-footerRunning); font-size: 9px; - font-family: Poppins, serif; + font-family: serif; } img { diff --git a/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.ftlx b/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.ftlx index 0547d205f1b74f175d887539577846c215b98159..28ec5715563b494013ae3dec8b9f4a75146124ea 100644 --- a/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.ftlx +++ b/backend/travel-medicine/src/main/resources/pdf_templates/certificate_for_health_insurance_template.ftlx @@ -6,10 +6,8 @@ <head> <link rel="stylesheet" type="text/css" href="certificate_for_health_insurance_template.css"/> - <link href='https://fonts.googleapis.com/css?family=Poppins' - rel='stylesheet'/> </head> - <body style=" font-family: Poppins, serif;"> + <body style=" font-family: serif;"> <img src="data:${departmentLogo.contentType};base64,${departmentLogo.contentAsBase64}"/> diff --git a/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.css b/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.css index 46a59f7ba9d5746f3c4cc6000de1aeb6f36b69f7..f70fba30f31b8d03ff9da4987712da49cd8cd4e8 100644 --- a/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.css +++ b/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.css @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,7 +17,7 @@ @bottom-right { content: "Seite " counter(page) " von " counter(pages); - font-family: Poppins, serif; + font-family: serif; font-size: 11px; border-top: darkgray solid 1px; vertical-align: top; @@ -30,7 +30,7 @@ footer { position: running(--var-footerRunning); font-size: 9px; - font-family: Poppins, serif; + font-family: serif; } .logo { diff --git a/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.ftlx b/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.ftlx index 716cd26d6502dc07db97d15f4ffaeeaeb22edefd..9201911ce9cda083947b12ac99619bf217015fe0 100644 --- a/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.ftlx +++ b/backend/travel-medicine/src/main/resources/pdf_templates/information_statement_pdf_template.ftlx @@ -6,10 +6,8 @@ <head> <link rel="stylesheet" type="text/css" href="information_statement_pdf_template.css"/> - <link href='https://fonts.googleapis.com/css?family=Poppins' - rel='stylesheet'/> </head> - <body style="font-family: Poppins, serif;"> + <body style="font-family: serif;"> <img class="logo" src="data:${departmentLogo.contentType};base64,${departmentLogo.contentAsBase64}"/> <footer> diff --git a/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.css b/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.css index 6183aa68769677258ba7e3eb346d7a5bea06d3e2..98f128905193e8e68826795e1183a2604eb39220 100644 --- a/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.css +++ b/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.css @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,7 +17,7 @@ @bottom-right { content: "Seite " counter(page) " von " counter(pages); - font-family: Poppins, serif; + font-family: serif; font-size: 11px; border-top: darkgray solid 1px; vertical-align: top; @@ -30,7 +30,7 @@ footer { position: running(--var-footerRunning); font-size: 9px; - font-family: Poppins, serif; + font-family: serif; } img { diff --git a/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.ftlx b/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.ftlx index 56f82c0e7dd82498327b999d1f2c9acd0075886a..96bb3d8f8e19d488ceb183e148658bfb4d4657b6 100644 --- a/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.ftlx +++ b/backend/travel-medicine/src/main/resources/pdf_templates/medical_history_pdf_template.ftlx @@ -6,10 +6,8 @@ <head> <link rel="stylesheet" type="text/css" href="medical_history_pdf_template.css"/> - <link href='https://fonts.googleapis.com/css?family=Poppins' - rel='stylesheet'/> </head> - <body style="font-family: Poppins, serif;"> + <body style="font-family: serif;"> <img src="data:${departmentLogo.contentType};base64,${departmentLogo.contentAsBase64}"/> <footer> diff --git a/backend/util-commons/src/main/java/de/eshg/base/util/ClassNameUtil.java b/backend/util-commons/src/main/java/de/eshg/base/util/ClassNameUtil.java index 85e5dafb289353b60af1d9e4a518e5839d92ddbe..fc0d8c09735399692f2e75f2683536e4246f26f9 100644 --- a/backend/util-commons/src/main/java/de/eshg/base/util/ClassNameUtil.java +++ b/backend/util-commons/src/main/java/de/eshg/base/util/ClassNameUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/util-commons/src/main/java/de/eshg/base/util/CollectionUtils.java b/backend/util-commons/src/main/java/de/eshg/base/util/CollectionUtils.java index c0c0fd9be8439bc3c51b3f29549c752493133b44..cfca7eef60f834f735df11429253b22b53974266 100644 --- a/backend/util-commons/src/main/java/de/eshg/base/util/CollectionUtils.java +++ b/backend/util-commons/src/main/java/de/eshg/base/util/CollectionUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/util-commons/src/main/java/de/eshg/base/util/PaginationUtil.java b/backend/util-commons/src/main/java/de/eshg/base/util/PaginationUtil.java index 2f59e3728ecd3dccca6edd925dff357015ee6d88..df6d3b08596d156fca448c979f06c637bf897243 100644 --- a/backend/util-commons/src/main/java/de/eshg/base/util/PaginationUtil.java +++ b/backend/util-commons/src/main/java/de/eshg/base/util/PaginationUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/backend/util-commons/src/main/java/de/eshg/servicedirectory/util/X509Utils.java b/backend/util-commons/src/main/java/de/eshg/servicedirectory/util/X509Utils.java index a449bf9dfd5d92ab845577888edadf684fc082c4..0880bf45821cce0dc34d24c1d81a300b82e71907 100644 --- a/backend/util-commons/src/main/java/de/eshg/servicedirectory/util/X509Utils.java +++ b/backend/util-commons/src/main/java/de/eshg/servicedirectory/util/X509Utils.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/buildSrc/src/main/groovy/de/eshg/frontend/FindUnusedValidationFiles.groovy b/buildSrc/src/main/groovy/de/eshg/frontend/FindUnusedValidationFiles.groovy index e5a3ca39626653c01648af175866e4351346cce3..fbc7767790fbe68ecfad99306f4bac5acf1e1a65 100644 --- a/buildSrc/src/main/groovy/de/eshg/frontend/FindUnusedValidationFiles.groovy +++ b/buildSrc/src/main/groovy/de/eshg/frontend/FindUnusedValidationFiles.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg.frontend diff --git a/buildSrc/src/main/groovy/de/eshg/frontend/IncludesAndExcludes.groovy b/buildSrc/src/main/groovy/de/eshg/frontend/IncludesAndExcludes.groovy index 5f5f9f0125c380f4ab7bdca8cec702f17a8e4834..55017f4dae3dbcef7776c26c6bd6d3a308eab4fe 100644 --- a/buildSrc/src/main/groovy/de/eshg/frontend/IncludesAndExcludes.groovy +++ b/buildSrc/src/main/groovy/de/eshg/frontend/IncludesAndExcludes.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg.frontend; diff --git a/buildSrc/src/main/groovy/de/eshg/frontend/K6Task.groovy b/buildSrc/src/main/groovy/de/eshg/frontend/K6Task.groovy index 698fb6deeb1ad90d496a4dac1494a301fcf1da33..648c1273ab22ea87553e2e6be93f696bfcb30124 100644 --- a/buildSrc/src/main/groovy/de/eshg/frontend/K6Task.groovy +++ b/buildSrc/src/main/groovy/de/eshg/frontend/K6Task.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg.frontend diff --git a/buildSrc/src/main/groovy/de/eshg/frontend/OpenapiGeneratorPluginConfiguration.groovy b/buildSrc/src/main/groovy/de/eshg/frontend/OpenapiGeneratorPluginConfiguration.groovy index f8776b7bf3c7a9b13cef02b3019cecccc33866a6..25f2f809f92684981076065765960841f0c8f3d6 100644 --- a/buildSrc/src/main/groovy/de/eshg/frontend/OpenapiGeneratorPluginConfiguration.groovy +++ b/buildSrc/src/main/groovy/de/eshg/frontend/OpenapiGeneratorPluginConfiguration.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg.frontend diff --git a/buildSrc/src/main/groovy/de/eshg/frontend/PlaywrightTask.groovy b/buildSrc/src/main/groovy/de/eshg/frontend/PlaywrightTask.groovy index 1180117fc9cd6202c4a65866dfc49bf166cfda7c..5feb4ea860a6599127083918ae68a94d830e4710 100644 --- a/buildSrc/src/main/groovy/de/eshg/frontend/PlaywrightTask.groovy +++ b/buildSrc/src/main/groovy/de/eshg/frontend/PlaywrightTask.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg.frontend diff --git a/buildSrc/src/main/groovy/de/eshg/frontend/TypescriptDefaults.groovy b/buildSrc/src/main/groovy/de/eshg/frontend/TypescriptDefaults.groovy index 879253634ee6d2749a9bcc5f6b46d5b8e289434f..de5ee7c11699b760fb1b78b8ecfeb74d310fdad3 100644 --- a/buildSrc/src/main/groovy/de/eshg/frontend/TypescriptDefaults.groovy +++ b/buildSrc/src/main/groovy/de/eshg/frontend/TypescriptDefaults.groovy @@ -1,4 +1,4 @@ -// Copyright 2024 cronn GmbH +// Copyright 2025 cronn GmbH // SPDX-License-Identifier: Apache-2.0 package de.eshg.frontend diff --git a/citizen-portal-api/build.gradle b/citizen-portal-api/build.gradle index 881a9d64a6f543fd698e38570100001d70766189..1ee07f34891d4fc35d0710e3e3d8b2c639871c3d 100644 --- a/citizen-portal-api/build.gradle +++ b/citizen-portal-api/build.gradle @@ -11,5 +11,6 @@ openapiGenerator { 'schoolEntry' : backendDir.file('school-entry/openApi.yaml'), // TODO: use separate OpenAPI specification for citizen-portal 'travelMedicine' : backendDir.file('travel-medicine/openApi.yaml'), // TODO: use separate OpenAPI specification for citizen-portal 'officialMedicalService' : backendDir.file('official-medical-service/openApi.yaml'), // TODO: use separate OpenAPI specification for citizen-portal + 'medicalRegistry' : backendDir.file('medical-registry/openApi.yaml'), // TODO: use separate OpenAPI specification for citizen-portal ] } diff --git a/citizen-portal/.env b/citizen-portal/.env index 80ae49c6472956a80c1402dfe11d42115a9c0ace..9dd7512f72c23ef9989171330992db301d9b789a 100644 --- a/citizen-portal/.env +++ b/citizen-portal/.env @@ -1,8 +1,11 @@ +PUBLIC_ENVIRONMENT_TYPE=local + PUBLIC_FRONTEND_URL=http://localhost:4001 PUBLIC_BASE_BACKEND_URL=http://localhost:4001/api/base PUBLIC_MEASLES_PROTECTION_BACKEND_URL=http://localhost:4001/api/measles-protection PUBLIC_SCHOOL_ENTRY_BACKEND_URL=http://localhost:4001/api/school-entry PUBLIC_TRAVEL_MEDICINE_BACKEND_URL=http://localhost:4001/api/travel-medicine PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL=http://localhost:4001/api/official-medical-service +PUBLIC_MEDICAL_REGISTRY_BACKEND_URL=http://localhost:4001/api/medical-registry MARKDOWN_PAGE_DIRECTORY=frankfurt diff --git a/citizen-portal/eslint.config.js b/citizen-portal/eslint.config.js index 6ea4e843e8ff7c783f329db30993e249dfd16dc0..f867195be390d84ad154e61ffcba9025ab270d93 100644 --- a/citizen-portal/eslint.config.js +++ b/citizen-portal/eslint.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/next-env.d.ts b/citizen-portal/next-env.d.ts index 6c649663a07151130911a753ea2756bf97c04ac6..f808af5860ce4e8cbbdd1125b1d912126c26c404 100644 --- a/citizen-portal/next-env.d.ts +++ b/citizen-portal/next-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/next.config.js b/citizen-portal/next.config.js index 32207040bebcf6f159655ee660e0f900b5568d65..be70b61b01df10877c4887fad7a72378adfd9de8 100644 --- a/citizen-portal/next.config.js +++ b/citizen-portal/next.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/amtsaerztlicherdienst/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/amtsaerztlicherdienst/page.tsx index 90fd1a630f5bf5dfc32f31fe9c36d1e25f4b18b4..0f663fcfb691e59807cc2cede1aecb3077d0e3ef 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/amtsaerztlicherdienst/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/amtsaerztlicherdienst/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/berufskartei/meldeformular/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/berufskartei/meldeformular/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..cfdb123e9d982bcff70b4524d1a96272e3474be5 --- /dev/null +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/berufskartei/meldeformular/page.tsx @@ -0,0 +1,33 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { useState } from "react"; + +import { ProfessionalRegistrationForm } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm"; +import { ProfessionalRegistrationFormSuccessPage } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationFormSuccessPage"; +import { PageContent } from "@/lib/shared/components/layout/PageContent"; +import { PageLayout } from "@/lib/shared/components/layout/page"; + +export default function MedicalRegistryCreateProcedurePage() { + const [showSuccessPage, setShowSuccessPage] = useState(false); + + return ( + <PageLayout> + <PageContent> + {!showSuccessPage ? ( + <ProfessionalRegistrationForm + setShowSuccessPage={setShowSuccessPage} + /> + ) : ( + <ProfessionalRegistrationFormSuccessPage + setShowSuccessPage={setShowSuccessPage} + /> + )} + </PageContent> + </PageLayout> + ); +} diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/berufskartei/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/berufskartei/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..9592469c116ebe519788ce0145e4c1ab8b42504b --- /dev/null +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/berufskartei/page.tsx @@ -0,0 +1,29 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { HomeContent } from "@/lib/businessModules/medicalRegistry/pages/home/HomeContent"; +import { HomeSidePanel } from "@/lib/businessModules/medicalRegistry/pages/home/HomeSidePanel"; +import { useTranslation } from "@/lib/i18n/client"; +import { PageContent } from "@/lib/shared/components/layout/PageContent"; +import { TwoColumnGrid } from "@/lib/shared/components/layout/grid"; +import { PageLayout, PageTitle } from "@/lib/shared/components/layout/page"; + +export default function MedicalRegistryCreateProcedurePage() { + const { t } = useTranslation(["medicalRegistry/overview"]); + + return ( + <PageLayout> + <PageContent> + <PageTitle>{t("pageTitle")}</PageTitle> + <TwoColumnGrid + content={<HomeContent />} + sidePanel={<HomeSidePanel />} + /> + </PageContent> + </PageLayout> + ); +} diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/page.tsx index b1c83849bf1ae7d5a3ff6119f2143a8f8cbedab0..dd7d7bcaad261efa23040c867c75fca62be570af 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/elternfragebogen/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/elternfragebogen/page.tsx index 8a2a9a6802cb3e01e3a7ff3ae3ed3658aa269224..722ba06042557e007b85ff517cafc2e29ae8254b 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/elternfragebogen/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/elternfragebogen/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/page.tsx index 2090bf5ec74924678d2e15ea209818e59278e105..ba22ae12a59dc493de6908d97b5e8bcd371933b6 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/termin-verschieben/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/termin-verschieben/page.tsx index bf52097958220339f453b57ea9cd1b750f89f1f5..37ca45393a864f4be7c17d6409331a703861e25e 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/termin-verschieben/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/einschulungsuntersuchung/termin/termin-verschieben/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/anamnese/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/anamnese/page.tsx index f32fdd6972a24fc3fc04f8ffcdb874cd2bdada92..537565d952a430fb65e018ed601a0d1480fe1277 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/anamnese/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/anamnese/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/aufklaerungsbogen/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/aufklaerungsbogen/page.tsx index a9d3ef04fb519b01d7ba96b7a4d2ee7336cf967e..2d93f09d02a568d5ca7e6169f1cad7a1eb15736d 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/aufklaerungsbogen/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/aufklaerungsbogen/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/buchen/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/buchen/page.tsx index 2ffca7016f6ecf67256750f0a1ad4e2331bb27d2..ccf878a9e09df3d5641adda13fe6abc5b8e49ef2 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/buchen/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/buchen/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/page.tsx index e4086d4f3ce80d415e25fce0cd321cccdca85bb6..c3b8d1ec43254fde480f897ffef0f0c248e57e37 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/page.tsx index 51b06d6961beff714c9d2fb2d7f2c4951a858221..536c85bb1fe2ef916b2cdb0601cf66dc3af832e8 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/meine-termine/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/page.tsx index a305588e4ec1616e94d79a67986d882af9cc3ebb..47047de71696f37333bfe602d42b0c0f4a0b55dc 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/termin/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/termin/page.tsx index 73769a0dbf1ac1c9fd000c36ae4e591b9bdec113..ff42c2a5ad0e845bc93eb56dd20a35969f1522e1 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/termin/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/impfberatung/termin/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(privatpersonen)/page.tsx b/citizen-portal/src/app/[lang]/(privatpersonen)/page.tsx index 3dd12ad4b84a082c4dc3b3b5285e90e8effd7b34..2628b6c60981d181327044e4dd40e10a9f0be421 100644 --- a/citizen-portal/src/app/[lang]/(privatpersonen)/page.tsx +++ b/citizen-portal/src/app/[lang]/(privatpersonen)/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(static)/barrierefreiheit/page.tsx b/citizen-portal/src/app/[lang]/(static)/barrierefreiheit/page.tsx index 255e9602d6289807eaebf3befa191b6f3e20a41c..4a763c71fd20f84c7f5cd0a78f0691e2ec8b5d1e 100644 --- a/citizen-portal/src/app/[lang]/(static)/barrierefreiheit/page.tsx +++ b/citizen-portal/src/app/[lang]/(static)/barrierefreiheit/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(static)/datenschutz/page.tsx b/citizen-portal/src/app/[lang]/(static)/datenschutz/page.tsx index 3573e8eddabe68d8e9f3225c53fb5c0498f5d1a3..70e787b0048607cf129021d92a8a389d9ddce7bb 100644 --- a/citizen-portal/src/app/[lang]/(static)/datenschutz/page.tsx +++ b/citizen-portal/src/app/[lang]/(static)/datenschutz/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(static)/impressum/page.tsx b/citizen-portal/src/app/[lang]/(static)/impressum/page.tsx index 1059ea230c837b08826e5079e98ad4146b4ff6be..5bc118217babfb470e95fe66ec0eacf9c94d0de1 100644 --- a/citizen-portal/src/app/[lang]/(static)/impressum/page.tsx +++ b/citizen-portal/src/app/[lang]/(static)/impressum/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(static)/kontakt/page.tsx b/citizen-portal/src/app/[lang]/(static)/kontakt/page.tsx index aedd72d5e9572f814a5158a8ac827b8a77f8d85a..da28945918122e63f9fbb986e1fb4ccb1098eb47 100644 --- a/citizen-portal/src/app/[lang]/(static)/kontakt/page.tsx +++ b/citizen-portal/src/app/[lang]/(static)/kontakt/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/(static)/nutzungshinweise/page.tsx b/citizen-portal/src/app/[lang]/(static)/nutzungshinweise/page.tsx index a717ff30938a7d79e7844167a7587115cba6488f..8bc55aac698b47e43f072b8809239d5235338006 100644 --- a/citizen-portal/src/app/[lang]/(static)/nutzungshinweise/page.tsx +++ b/citizen-portal/src/app/[lang]/(static)/nutzungshinweise/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/error.tsx b/citizen-portal/src/app/[lang]/error.tsx index c6c8ce9bc5dce76b18d1da338c2de2cc75507743..438d8a8f1d4e3f1137b8101fd01308a80a01d1e6 100644 --- a/citizen-portal/src/app/[lang]/error.tsx +++ b/citizen-portal/src/app/[lang]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/layout.tsx b/citizen-portal/src/app/[lang]/layout.tsx index 7a8e3eae9a981ea28feaec0e6066fe1341e459ec..38a2a642d058ce6b135389bd9bb79983b56a5020 100644 --- a/citizen-portal/src/app/[lang]/layout.tsx +++ b/citizen-portal/src/app/[lang]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/loading.tsx b/citizen-portal/src/app/[lang]/loading.tsx index 9b6f86c576a77979e3713a413d4497ac04466199..41094a24f9fdb0c0e309108b01b4b377aa316d41 100644 --- a/citizen-portal/src/app/[lang]/loading.tsx +++ b/citizen-portal/src/app/[lang]/loading.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/playground/alert/page.tsx b/citizen-portal/src/app/[lang]/playground/alert/page.tsx index 4f6c308dd05e1613c8be1d53184c59e09761ff4d..6b49bfe0ec69f4f095f73d707e9557a7e7c5eb40 100644 --- a/citizen-portal/src/app/[lang]/playground/alert/page.tsx +++ b/citizen-portal/src/app/[lang]/playground/alert/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/playground/page.tsx b/citizen-portal/src/app/[lang]/playground/page.tsx index c9a5305753e35dfb607bbf93dc8628a962d2a230..cb5192f4bdfc7b8fc86f339ac8347fd26912dc8e 100644 --- a/citizen-portal/src/app/[lang]/playground/page.tsx +++ b/citizen-portal/src/app/[lang]/playground/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/playground/snackbar/page.tsx b/citizen-portal/src/app/[lang]/playground/snackbar/page.tsx index a3a452aca770c639160cb38817e46ca5ee448668..28443dce61948b48ba66e9d26ce528060a3df295 100644 --- a/citizen-portal/src/app/[lang]/playground/snackbar/page.tsx +++ b/citizen-portal/src/app/[lang]/playground/snackbar/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/unternehmen/masernschutz/meldeformular/page.tsx b/citizen-portal/src/app/[lang]/unternehmen/masernschutz/meldeformular/page.tsx index 8fc02b0dcde1f5e06b93859ae03a4979ad5f721c..a06cd89e37dfdba54df009d00787c7cddabfbffb 100644 --- a/citizen-portal/src/app/[lang]/unternehmen/masernschutz/meldeformular/page.tsx +++ b/citizen-portal/src/app/[lang]/unternehmen/masernschutz/meldeformular/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/unternehmen/masernschutz/page.tsx b/citizen-portal/src/app/[lang]/unternehmen/masernschutz/page.tsx index 9792c4441a8c04398bdd787de321f744521f4237..a291de05a77e9eff224a6e6f997eaa5464cb2fa2 100644 --- a/citizen-portal/src/app/[lang]/unternehmen/masernschutz/page.tsx +++ b/citizen-portal/src/app/[lang]/unternehmen/masernschutz/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/[lang]/unternehmen/page.tsx b/citizen-portal/src/app/[lang]/unternehmen/page.tsx index bde6d2cbf75d814c527956d8436525c61e72d2d3..9f7ea65ff21b342dacc6eca42e3dbf7f0390419c 100644 --- a/citizen-portal/src/app/[lang]/unternehmen/page.tsx +++ b/citizen-portal/src/app/[lang]/unternehmen/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/layout.tsx b/citizen-portal/src/app/layout.tsx index c00c7b5b4d7322db7a3289421764e9ee87d330be..da90d1b7b1107de08fa17f54c49230849a807de6 100644 --- a/citizen-portal/src/app/layout.tsx +++ b/citizen-portal/src/app/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/loading.template.tsx b/citizen-portal/src/app/loading.template.tsx index 011b2bd067d0cc9de9d595105bbdaa0c4434231c..4e28ca3100d6b7a1ce2303dc421041bca3811a8d 100644 --- a/citizen-portal/src/app/loading.template.tsx +++ b/citizen-portal/src/app/loading.template.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/app/not-found.tsx b/citizen-portal/src/app/not-found.tsx index 8190299609a6e8b9b4ec3666138e446bd4b4ca1d..ab0d70a12ef81caca853ebcd19de0ce98bae6ea8 100644 --- a/citizen-portal/src/app/not-found.tsx +++ b/citizen-portal/src/app/not-found.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/env/client.js b/citizen-portal/src/env/client.js index acc6fb241103e942e011da44204f12220f3804dd..5981034063c70e1d6a91ad8bbf1a9ece25299efb 100644 --- a/citizen-portal/src/env/client.js +++ b/citizen-portal/src/env/client.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/env/server.js b/citizen-portal/src/env/server.js index b3bc5f2d34f0e1e60307f01d3473db794577cce3..c1a6ed614dde4ddcefd902a4372f94a1345845bf 100644 --- a/citizen-portal/src/env/server.js +++ b/citizen-portal/src/env/server.js @@ -1,13 +1,20 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ // @ts-check -import { object, optional, parse, picklist, pipe, string, url } from "valibot"; +import { + environmentTypeSchema, + nodeEnvSchema, + urlSchema, +} from "@eshg/lib-portal/schemas/environment"; +import { object, optional, parse, string } from "valibot"; /* * Environment Variables exposed to the Server (Node.js) + * + * Environment variables exposed to the Client using a React Context should be prefixed with PUBLIC_ to avoid leaking sensitive data. */ const schema = object({ /** @@ -15,16 +22,19 @@ const schema = object({ * Next.js automatically assigns `development` when running the next dev command, * or `production` for all other commands. */ - NODE_ENV: picklist(["development", "production"]), + NODE_ENV: nodeEnvSchema, + + PUBLIC_ENVIRONMENT_TYPE: environmentTypeSchema, PORT: optional(string(), "3001"), - PUBLIC_FRONTEND_URL: pipe(string(), url()), - PUBLIC_BASE_BACKEND_URL: pipe(string(), url()), - PUBLIC_MEASLES_PROTECTION_BACKEND_URL: pipe(string(), url()), - PUBLIC_SCHOOL_ENTRY_BACKEND_URL: pipe(string(), url()), - PUBLIC_TRAVEL_MEDICINE_BACKEND_URL: pipe(string(), url()), - PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL: pipe(string(), url()), + PUBLIC_FRONTEND_URL: urlSchema, + PUBLIC_BASE_BACKEND_URL: urlSchema, + PUBLIC_MEASLES_PROTECTION_BACKEND_URL: urlSchema, + PUBLIC_SCHOOL_ENTRY_BACKEND_URL: urlSchema, + PUBLIC_TRAVEL_MEDICINE_BACKEND_URL: urlSchema, + PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL: urlSchema, + PUBLIC_MEDICAL_REGISTRY_BACKEND_URL: urlSchema, MARKDOWN_PAGE_DIRECTORY: string(), }); diff --git a/citizen-portal/src/lib/baseModule/components/ContactInformation.tsx b/citizen-portal/src/lib/baseModule/components/ContactInformation.tsx index 8b0d8e15b00569e2b8f05fa88cb0fc49bac19264..83c19e138891a1f125141c11123a30c12970b4fa 100644 --- a/citizen-portal/src/lib/baseModule/components/ContactInformation.tsx +++ b/citizen-portal/src/lib/baseModule/components/ContactInformation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/MarkdownPage.tsx b/citizen-portal/src/lib/baseModule/components/MarkdownPage.tsx index 67d2007fa27073510692b666dffce459cd79c70a..9f856afbbb19e72d316dc1d9815e927dd7a1ebfd 100644 --- a/citizen-portal/src/lib/baseModule/components/MarkdownPage.tsx +++ b/citizen-portal/src/lib/baseModule/components/MarkdownPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/AppLayout.tsx b/citizen-portal/src/lib/baseModule/components/layout/AppLayout.tsx index 3a8d053cf402dc42607049ee2b6130c95b1af6b2..4e92d860d1695277dde35f7b4a4890e56681ce31 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/AppLayout.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/AppLayout.tsx @@ -1,19 +1,24 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ /* eslint @next/next/no-head-element: 0 */ import { ApiProvider } from "@eshg/lib-portal/api/ApiProvider"; +import { EnvironmentTypeProvider } from "@eshg/lib-portal/components/EnvironmentTypeProvider"; import { QueryBoundary } from "@eshg/lib-portal/components/boundaries/QueryBoundary"; +import { ConfirmationDialogProvider } from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; import { SnackbarProvider } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { PropsWithChildren } from "react"; +import { env } from "@/env/server"; import { MainLayout } from "@/lib/baseModule/components/layout/MainLayout"; import { ThemeProvider } from "@/lib/baseModule/theme/ThemeProvider"; import { I18nProvider } from "@/lib/i18n/I18nProvider"; import { API_CONFIGURATION } from "@/lib/shared/api/config"; import { CitizenSnackbar } from "@/lib/shared/components/CitizenSnackbar"; +import { CitizenPortalErrorModal } from "@/lib/shared/components/boundaries/CitizenPortalErrorModal"; +import { CitizenPortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/CitizenPortalConfirmationDialog"; import { NavigationProvider } from "@/lib/shared/components/navigationProvider/NavigationProvider"; export function AppLayout({ @@ -39,15 +44,24 @@ export function AppLayout({ </noscript> <I18nProvider lang={lang}> <ThemeProvider> - <SnackbarProvider snackbar={CitizenSnackbar}> - <NavigationProvider> - <ApiProvider configuration={API_CONFIGURATION}> - <QueryBoundary> - <MainLayout>{children}</MainLayout> - </QueryBoundary> - </ApiProvider> - </NavigationProvider> - </SnackbarProvider> + <EnvironmentTypeProvider + environmentType={env.PUBLIC_ENVIRONMENT_TYPE} + > + <SnackbarProvider snackbar={CitizenSnackbar}> + <NavigationProvider> + <ApiProvider configuration={API_CONFIGURATION}> + <ConfirmationDialogProvider + component={CitizenPortalConfirmationDialog} + errorModal={CitizenPortalErrorModal} + > + <QueryBoundary> + <MainLayout>{children}</MainLayout> + </QueryBoundary> + </ConfirmationDialogProvider> + </ApiProvider> + </NavigationProvider> + </SnackbarProvider> + </EnvironmentTypeProvider> </ThemeProvider> </I18nProvider> </body> diff --git a/citizen-portal/src/lib/baseModule/components/layout/Footer.tsx b/citizen-portal/src/lib/baseModule/components/layout/Footer.tsx index b21ce6ce2dff8ec11c21fcde4164e0b001e5e3ed..4b5b18b6fbbf443f8598e51492978a5a6bf7dcf7 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/Footer.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/Footer.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/MainLayout.tsx b/citizen-portal/src/lib/baseModule/components/layout/MainLayout.tsx index 1fc6dcebbc4297ff40e4e9b7e4817de87648c07e..aff5bb6d6f4f69850af3c85ac04d60174220ab29 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/MainLayout.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/MainLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/NavigationMenu.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/NavigationMenu.tsx index b7566d7e46328110260a5f415324f0378fcf8bcc..e976b486a641c8f63f881351218adc1b73498d65 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/NavigationMenu.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/NavigationMenu.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/Header.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/Header.tsx index c3bf3f65a74ded73d54130f68f1ced01f2bc3000..92e318b96e116ab610deac6015057137f2317774 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/Header.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/Header.tsx @@ -1,18 +1,19 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; +import { EnvironmentIndicator } from "@eshg/lib-portal/components/EnvironmentIndicator"; import { Box, Stack, styled } from "@mui/joy"; import { MainMenu } from "@/lib/baseModule/components/layout/navigationMenu/header/MainMenu"; import { NavMenu } from "@/lib/baseModule/components/layout/navigationMenu/header/NavMenu"; import { + appBarHeightDesktop, + appBarHeightMobile, contentMarginMobile, - headerHeightDesktop, - headerHeightMobile, } from "@/lib/baseModule/components/layout/sizes"; import { NavigationProps } from "@/lib/baseModule/components/layout/types"; import { byBreakpoint } from "@/lib/shared/breakpoints"; @@ -32,45 +33,51 @@ export function Header(props: NavigationProps) { position="sticky" top={0} zIndex="header" - height={byBreakpoint({ - mobile: headerHeightMobile, - desktop: headerHeightDesktop, - })} display="flex" - justifyContent="center" - boxSizing="content-box" - sx={(theme) => ({ - background: byBreakpoint({ - mobile: theme.palette.common.white, - desktop: `linear-gradient(180deg, ${theme.palette.background.body} 50%, ${theme.palette.background.surface} 50%)`, - }), - })} + flexDirection="column" > - <ResponsiveContainer - display={byBreakpoint({ mobile: "none", desktop: "flex" })} - flexDirection="row" - gap={3} - alignItems="center" + <EnvironmentIndicator /> + <Box + height={byBreakpoint({ + mobile: appBarHeightMobile, + desktop: appBarHeightDesktop, + })} + display="flex" + justifyContent="center" + boxSizing="content-box" + sx={(theme) => ({ + background: byBreakpoint({ + mobile: theme.palette.common.white, + desktop: `linear-gradient(180deg, ${theme.palette.background.body} 50%, ${theme.palette.background.surface} 50%)`, + }), + })} > - <HeaderLogo /> - <Stack flex={1} height={headerHeightDesktop}> - <MainMenu userType={props.userType} /> - <NavMenu navigationItems={props.navigationItems} /> - </Stack> - </ResponsiveContainer> - <ResponsiveContainer - flex={1} - flexDirection="row" - justifyContent="space-between" - paddingBlock={contentMarginMobile.topBottom} - paddingInline={contentMarginMobile.leftRight} - display={byBreakpoint({ mobile: "flex", desktop: "none" })} - > - <HeaderLogo /> - <Stack flexDirection="row" gap={1}> - <MenuButton {...props} /> - </Stack> - </ResponsiveContainer> + <ResponsiveContainer + display={byBreakpoint({ mobile: "none", desktop: "flex" })} + flexDirection="row" + gap={3} + alignItems="center" + > + <HeaderLogo /> + <Stack flex={1} height={appBarHeightDesktop}> + <MainMenu userType={props.userType} /> + <NavMenu navigationItems={props.navigationItems} /> + </Stack> + </ResponsiveContainer> + <ResponsiveContainer + flex={1} + flexDirection="row" + justifyContent="space-between" + paddingBlock={contentMarginMobile.topBottom} + paddingInline={contentMarginMobile.leftRight} + display={byBreakpoint({ mobile: "flex", desktop: "none" })} + > + <HeaderLogo /> + <Stack flexDirection="row" gap={1}> + <MenuButton {...props} /> + </Stack> + </ResponsiveContainer> + </Box> </Box> ); } diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HeaderLogo.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HeaderLogo.tsx index 66bd5feaad9b45eee16b4ee78ec5a1b094cc96cb..15c5958578833ba00defc98d6094e49dd3798954 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HeaderLogo.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HeaderLogo.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HelpButton.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HelpButton.tsx index e86e7023cf9eec0abef206238aed59bdf79e5b9c..855cd034bce3055086cfed82c3b90f656b1a82ef 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HelpButton.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/HelpButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/LoginButton.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/LoginButton.tsx index 143980ba78e79b40cf82027edc9a7f1a0d839835..204d59acdd9437874138082a259bbfd83ada2883 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/LoginButton.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/LoginButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MainMenu.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MainMenu.tsx index 7beed9e692b8dd522fb38268b0d1357224352897..c69ba0af43374362592a6a745e10e027bd7e9c3a 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MainMenu.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MainMenu.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MenuButton.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MenuButton.tsx index f6227ffe4b48ed8bb0fcadb67cfc4dd1b8236102..45c6c6848895f93dea15b8418158f8d7e302a9a8 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MenuButton.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/MenuButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/NavMenu.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/NavMenu.tsx index e9892fd23a17c5f784583017a72921c1f33ee202..65bb1f2e61e8b52c224cd0204761104695c037f5 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/NavMenu.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/NavMenu.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/PageSwitchButtons.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/PageSwitchButtons.tsx index c97d51f621f5e41f1e71073dbb0bfedfa222a55a..eb2ec7f850db2ac76803be9ea81fde083256ef49 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/PageSwitchButtons.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/PageSwitchButtons.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/VerticalAlignedButton.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/VerticalAlignedButton.tsx index cceb5869ad51562c8366eea546bf08bb50171c6b..37291d70c7e03928bae610831441361dcf87cc3d 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/VerticalAlignedButton.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/header/VerticalAlignedButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/isItemSelected.ts b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/isItemSelected.ts index 1eb054abf047cfddfcefed409940d83c5f6d2e68..f58df8fb07f5b734c65a16234655f026fc43b172 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/isItemSelected.ts +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/isItemSelected.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationItem.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationItem.tsx index 1116f34ba6493a41421e0b1f7c64092de23ad92f..ccfb1a8d4dd9e89197ff658e75a751c148218ff8 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationItem.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationList.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationList.tsx index 5abea738a3526020990083be26b68f8faf583628..026dc044c762c49bc61de61d9c75b096a64f5249 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationList.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/NavigationList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/SideNavigation.tsx b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/SideNavigation.tsx index 0b637cb58bd7cdde91a4b3cc0b18bdd246f3fd13..64ec1be726ea44fa01bb83cca703d950d690a6b1 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/SideNavigation.tsx +++ b/citizen-portal/src/lib/baseModule/components/layout/navigationMenu/sideNavigation/SideNavigation.tsx @@ -1,17 +1,18 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { Drawer, Stack } from "@mui/joy"; -import { headerHeightMobile } from "@/lib/baseModule/components/layout/sizes"; import { NavigationProps } from "@/lib/baseModule/components/layout/types"; import { byBreakpoint } from "@/lib/shared/breakpoints"; +import { useHeaderHeights } from "@/lib/shared/components/layout/useHeaderHeights"; import { NavigationList } from "./NavigationList"; export function SideNavigation(props: NavigationProps) { + const { headerHeightMobile } = useHeaderHeights(); return ( <Drawer open={props.navigationState.type !== "closed"} diff --git a/citizen-portal/src/lib/baseModule/components/layout/sizes.ts b/citizen-portal/src/lib/baseModule/components/layout/sizes.ts index 3949d21a511baef93cf40262d53e6a9b31607a4f..1aea98bee2aea27a1a5a2511f02fa9640c69e2f3 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/sizes.ts +++ b/citizen-portal/src/lib/baseModule/components/layout/sizes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,11 +8,8 @@ export interface ContentMargin { leftRight: number; } -export const headerHeightMobile = "4.75rem"; // 76px -export const headerHeightDesktop = "9rem"; // 144px - -export const bannerHeightMobile = "7.75rem"; // 124px -export const bannerHeightDesktop = "20rem"; // 320px +export const appBarHeightMobile = "4.75rem"; // 76px +export const appBarHeightDesktop = "9rem"; // 144px export const maxContentWidthDesktop = "1232px"; export const contentMarginDesktop: ContentMargin = { diff --git a/citizen-portal/src/lib/baseModule/components/layout/types.ts b/citizen-portal/src/lib/baseModule/components/layout/types.ts index 1e3f940a313f16d8f5c0724b5100e50cd3a77b03..964faaa728465d5f144a281e73cfee5b0f6e821b 100644 --- a/citizen-portal/src/lib/baseModule/components/layout/types.ts +++ b/citizen-portal/src/lib/baseModule/components/layout/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/locales/de/translation.json b/citizen-portal/src/lib/baseModule/locales/de/translation.json index ef8fc4da9ccbd056c37ec93d836f205300564399..76fc86337e86b61ab5bba3b19082aa92347d862f 100644 --- a/citizen-portal/src/lib/baseModule/locales/de/translation.json +++ b/citizen-portal/src/lib/baseModule/locales/de/translation.json @@ -49,5 +49,19 @@ "dr": "Dr.", "prof": "Prof.", "prof_dr": "Prof. Dr." + }, + "confirmationDialog": { + "title": "Änderung speichern?", + "description": "Möchten Sie die Änderung wirklich speichern?", + "confirmLabel": "Speichern", + "cancelLabel": "Abbrechen" + }, + "cancelDialog": { + "title": "Änderungen verwerfen?", + "description": "Möchten Sie die Änderungen wirklich verwerfen?", + "confirmLabel": "Verwerfen" + }, + "error": { + "title": "Fehler beim Laden" } } diff --git a/citizen-portal/src/lib/baseModule/locales/en/translation.json b/citizen-portal/src/lib/baseModule/locales/en/translation.json index 5a65feac672b82867ccc1895e28b676497669f97..976bb8ce1c834a2b6ab7a0828a692bae69a228be 100644 --- a/citizen-portal/src/lib/baseModule/locales/en/translation.json +++ b/citizen-portal/src/lib/baseModule/locales/en/translation.json @@ -49,5 +49,19 @@ "dr": "Dr.", "prof": "Prof.", "prof_dr": "Prof. Dr." + }, + "confirmationDialog": { + "title": "Save changes?", + "description": "Are you sure you want to save all changes?", + "confirmLabel": "Save", + "cancelLabel": "Cancel" + }, + "cancelDialog": { + "title": "Discard changes?", + "description": "Are you sure you want to discard all changes?", + "confirmLabel": "Discard" + }, + "error": { + "title": "Error loading" } } diff --git a/citizen-portal/src/lib/baseModule/locales/index.ts b/citizen-portal/src/lib/baseModule/locales/index.ts index 183a5c86d369783d86314d1f290aaf6fd6fedca8..b6733acf68ec0e9e0d4d658eed4b6b3d247ef562 100644 --- a/citizen-portal/src/lib/baseModule/locales/index.ts +++ b/citizen-portal/src/lib/baseModule/locales/index.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/moduleRegister/navigationItemsResolver.tsx b/citizen-portal/src/lib/baseModule/moduleRegister/navigationItemsResolver.tsx index 5f4af3b342d5956cc8493dd304faaba060705607..3088537113f18517d72dc4d87e977a0677effe22 100644 --- a/citizen-portal/src/lib/baseModule/moduleRegister/navigationItemsResolver.tsx +++ b/citizen-portal/src/lib/baseModule/moduleRegister/navigationItemsResolver.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,10 @@ import { useOrganizationNavigationItems as useBaseOrganizationCitizenNavigationItems, } from "@/lib/baseModule/shared/navigationItems"; import { useOrganizationNavigationItems as useMeaslesProtectionOrganizationNavigationItems } from "@/lib/businessModules/measlesProtection/shared/navigationItems"; +import { + useCitizenNavigationItems as useMedicalRegistryCitizenNavigationItems, + useOrganizationNavigationItems as useMedicalRegistryOrganizationNavigationItems, +} from "@/lib/businessModules/medicalRegistry/shared/navigationItems"; import { useCitizenNavigationItems as useOfficialMedicalServcieNavigationItems } from "@/lib/businessModules/officialMedicalService/shared/navigationItems"; import { useCitizenNavigationItems as useSchoolEntryCitizenNavigationItems, @@ -24,19 +28,24 @@ import { useHasBusinessModule } from "@/lib/shared/hooks/useHasBusinessModule"; export function useResolveCitizenNavigationItems(): NavigationItem[] { const hasBusinessModule = useHasBusinessModule(); - const schoolEntryOrganizationNavigationItems = + const schoolEntryCitizenNavigationItems = useSchoolEntryCitizenNavigationItems(); - const travelMedicineOrganizationNavigationItems = + const travelMedicineCitizenNavigationItems = useTravelMedicineCitizenNavigationItems(); const officialMedicalServcieNavigationItems = useOfficialMedicalServcieNavigationItems(); + const medicalRegistryCitizenNavigationItems = + useMedicalRegistryCitizenNavigationItems(); const navigationItems = useBaseCitizenNavigationItems(); if (hasBusinessModule(ApiBusinessModule.SchoolEntry)) { - navigationItems.push(...schoolEntryOrganizationNavigationItems); + navigationItems.push(...schoolEntryCitizenNavigationItems); } if (hasBusinessModule(ApiBusinessModule.TravelMedicine)) { - navigationItems.push(...travelMedicineOrganizationNavigationItems); + navigationItems.push(...travelMedicineCitizenNavigationItems); + } + if (hasBusinessModule(ApiBusinessModule.MedicalRegistry)) { + navigationItems.push(...medicalRegistryCitizenNavigationItems); } if (hasBusinessModule(ApiBusinessModule.OfficialMedicalService)) { navigationItems.push(...officialMedicalServcieNavigationItems); @@ -53,6 +62,8 @@ export function useResolveOrganizationNavigationItems(): NavigationItem[] { useMeaslesProtectionOrganizationNavigationItems(); const travelMedicineOrganizationNavigationItems = useTravelMedicineOrganizationNavigationItems(); + const medicalRegistryOrganizationNavigationItems = + useMedicalRegistryOrganizationNavigationItems(); const navigationItems = useBaseOrganizationCitizenNavigationItems(); if (hasBusinessModule(ApiBusinessModule.SchoolEntry)) { @@ -64,6 +75,9 @@ export function useResolveOrganizationNavigationItems(): NavigationItem[] { if (hasBusinessModule(ApiBusinessModule.TravelMedicine)) { navigationItems.push(...travelMedicineOrganizationNavigationItems); } + if (hasBusinessModule(ApiBusinessModule.MedicalRegistry)) { + navigationItems.push(...medicalRegistryOrganizationNavigationItems); + } return navigationItems; } diff --git a/citizen-portal/src/lib/baseModule/shared/navigationItems.tsx b/citizen-portal/src/lib/baseModule/shared/navigationItems.tsx index f94bf460d2d0477b48e091c8a30819c3a8af566f..153b4107ec6b986d86bf3535710dd03093d88999 100644 --- a/citizen-portal/src/lib/baseModule/shared/navigationItems.tsx +++ b/citizen-portal/src/lib/baseModule/shared/navigationItems.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/shared/routes.ts b/citizen-portal/src/lib/baseModule/shared/routes.ts index 6878b230d9d677e12c5ba5a3ee1ae4df080f754c..e8cd35e2eeed85882b3851cad355f8a993b8b80b 100644 --- a/citizen-portal/src/lib/baseModule/shared/routes.ts +++ b/citizen-portal/src/lib/baseModule/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/theme/ThemeProvider.tsx b/citizen-portal/src/lib/baseModule/theme/ThemeProvider.tsx index 054769d680114c5b4ffeb50ec5474dc21a43b4b0..2dae1d70e185472644bba99e34b1d3a6e44227f5 100644 --- a/citizen-portal/src/lib/baseModule/theme/ThemeProvider.tsx +++ b/citizen-portal/src/lib/baseModule/theme/ThemeProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/theme/customBreakpoints.ts b/citizen-portal/src/lib/baseModule/theme/customBreakpoints.ts index d93185d66df8ef1de9f0b4cc105bcd23389939f5..61931ec5c1f03b2ed114265c406381e448259b82 100644 --- a/citizen-portal/src/lib/baseModule/theme/customBreakpoints.ts +++ b/citizen-portal/src/lib/baseModule/theme/customBreakpoints.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/baseModule/theme/theme.ts b/citizen-portal/src/lib/baseModule/theme/theme.ts index 8e9d8cf31698705fb53717b6086e0686277432c7..70439fe2a98a9d66f00461170626723ebc323211 100644 --- a/citizen-portal/src/lib/baseModule/theme/theme.ts +++ b/citizen-portal/src/lib/baseModule/theme/theme.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/api/clients.ts b/citizen-portal/src/lib/businessModules/measlesProtection/api/clients.ts index 6bd29a73723df94675774a25146cb3970f1bb3e2..7ba2d6d1f3fd51fe4dbdc0ceadaefd698ac9ec2d 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/api/clients.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/api/queries.ts b/citizen-portal/src/lib/businessModules/measlesProtection/api/queries.ts index e025f2f13f0184ad6cce98204c4ff89e0e510fe1..20a33f515f052eef4f4ba0ff61a5563332a76fb1 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/api/queries.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/api/queries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseForm.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseForm.tsx index d0ac423e904b42f20dbab1b58db771a98355cedf..ccc66deb69be03a00dddfc8d07188efa0f108d26 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseForm.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverview.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverview.tsx index 409eda8c87d6cb2bc73ab3e2f60657cd22fff727..b8ea9b2a27b218ad1f11c23db6b7045b22860766 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverview.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverview.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverviewCard.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverviewCard.tsx index ae9e0f6a17ea3b4bd48446d01f5fef68c3e7f328..51b09727018e3f805d5d52452fd01c365615ca35 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverviewCard.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseOverviewCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseSuccess.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseSuccess.tsx index 706b500a7aeb587b145d66711570b5500a2343f3..def5a4a6ab44de37ec9241c456e1b284b68fa03e 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseSuccess.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/ReportCaseSuccess.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/helpers.ts b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/helpers.ts index 093f212cdab594758f5d54b934f663da878b9e8c..f098173dfec763a5f44ab5afb1093ee66f353bf0 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/helpers.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AddressForm.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AddressForm.tsx index 18020a152333f61bea95d4b3bd1d7648aad8d31b..8d9a0cb33e63a599bb8a52612eb0b839d1162f20 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AddressForm.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AddressForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AffectedPersonForm.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AffectedPersonForm.tsx index af7eeb151c3e9e3000143453ef0b3cd375d04a67..3e9294a97b457c17c42b2f98d6a0dc7530d67dec 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AffectedPersonForm.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/AffectedPersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/ContactPersonForm.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/ContactPersonForm.tsx index 7c540e9a90e35bb09cb203fb89614c628bc94e2b..63b61aa48945443470ed0a067a0cc4dede90d766 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/ContactPersonForm.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/ContactPersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/CustodianForm.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/CustodianForm.tsx index e6dbe1a2655e538f95ac8d7f4bf02636ba506024..2f201dc0214f71ebf0748d22fe43d778a500df6b 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/CustodianForm.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/CustodianForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/FacilityForm.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/FacilityForm.tsx index bc7f6b789c3dbc6293a0809e02f4873409f320d5..47cd0eb9edc0f355afab236545b5dc546bf96409 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/FacilityForm.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/FacilityForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/MinimalPersonForm.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/MinimalPersonForm.tsx index e816acccf87dcfd0bcd019a91dc38238081bd65b..726f51b3b86cd6beca4872c89dd7d1642bd80903 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/MinimalPersonForm.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/subforms/MinimalPersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/types.ts b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/types.ts index bdcd3d8985527902295fe4bed89fb9f8c376b839..aafb9fa3d0b2ffe22ab13086647a78237fe1a937 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/types.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/validate.ts b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/validate.ts index 1e1a4999363b8e4ef08612dc9d339ac06e907eb7..1bc4f56686ac8202b1eebed8cc0f9f1bebafc23c 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/validate.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/components/reportCase/validate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/helpers/reportCaseForm.storage.ts b/citizen-portal/src/lib/businessModules/measlesProtection/helpers/reportCaseForm.storage.ts index fca2f6d85a3cdadd68985354837847644a380559..318b79959e236a84837abf56d1efb7dcf87a8dd6 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/helpers/reportCaseForm.storage.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/helpers/reportCaseForm.storage.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageContent.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageContent.tsx index 1f008b7d8ef18b6a952b774500356a3a04c18fe1..a589f13a9273d1f7c579e756bb33ad0aa1e85667 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageContent.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageSidePanel.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageSidePanel.tsx index c694583e605e0bcc1cf43de395cd6ed74736c41c..71b45bec7775586dc3c4fe3dee63c2dc99b648eb 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/pages/landingPage/LandingpageSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/CountryField.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/CountryField.tsx index 98779a423733a7e71a6f9a7654d756ef6934398b..68e3d28b6a59ec9394c66b331ac8b2f8d570a56c 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/CountryField.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/CountryField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/Row.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/Row.tsx index 9abcd91d80de4ecd463faa4a3c14175a3b37f322..875e914b76fb1d61896766bd0403f3721f153b1d 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/Row.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/shared/components/Row.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/shared/constants.ts b/citizen-portal/src/lib/businessModules/measlesProtection/shared/constants.ts index 653778cd092cdfa93ff515bb009b0f54e87e21a6..7f0f16cfed11ad0400ebd73fa182c7a0a73e4768 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/shared/constants.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/shared/facility/helpers.ts b/citizen-portal/src/lib/businessModules/measlesProtection/shared/facility/helpers.ts index 7d5df3fdd7e92ebf86a91e149b7e0fdb593943a3..a77140806f34bf579288f26875a36aa7ed09e5c6 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/shared/facility/helpers.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/shared/facility/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/shared/navigationItems.tsx b/citizen-portal/src/lib/businessModules/measlesProtection/shared/navigationItems.tsx index e255756ed97c785c7fabebdbe5f5b5f288592013..b11fb669e354a45919c1728fdb4a2051fe9f0fae 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/shared/navigationItems.tsx +++ b/citizen-portal/src/lib/businessModules/measlesProtection/shared/navigationItems.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/shared/routes.ts b/citizen-portal/src/lib/businessModules/measlesProtection/shared/routes.ts index 0e06c8441f9a4d8c6b1133d9888763cf88a0ea1e..12be17f069ea474fed5ed26ec045beb6355aa501 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/shared/routes.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/measlesProtection/shared/translations.ts b/citizen-portal/src/lib/businessModules/measlesProtection/shared/translations.ts index 160486091d8ac3f006bcd8f2b57c642e168cc306..65637126c9ecdc2f6ae7bd3b5b6c580df04eb9aa 100644 --- a/citizen-portal/src/lib/businessModules/measlesProtection/shared/translations.ts +++ b/citizen-portal/src/lib/businessModules/measlesProtection/shared/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/api/clients.ts b/citizen-portal/src/lib/businessModules/medicalRegistry/api/clients.ts new file mode 100644 index 0000000000000000000000000000000000000000..7ec4b47153b4f52d850d3c31b33ffb18bade765a --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/api/clients.ts @@ -0,0 +1,33 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + Configuration, + MedicalRegistryApi, + MedicalRegistryFeatureTogglesPublicApi, + MedicalRegistryPublicCitizenApi, +} from "@eshg/citizen-portal-api/medicalRegistry"; +import { useApiConfiguration } from "@eshg/lib-portal/api/ApiProvider"; + +function useConfiguration() { + const configurationParameters = useApiConfiguration( + "PUBLIC_MEDICAL_REGISTRY_BACKEND_URL", + ); + return new Configuration(configurationParameters); +} + +export function useMedicalRegistryApi() { + const configuration = useConfiguration(); + return new MedicalRegistryApi(configuration); +} + +export function useMedicalRegistryPublicCitizenApi() { + const configuration = useConfiguration(); + return new MedicalRegistryPublicCitizenApi(configuration); +} + +export function useFeatureTogglesApi() { + return new MedicalRegistryFeatureTogglesPublicApi(useConfiguration()); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries.ts b/citizen-portal/src/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries.ts new file mode 100644 index 0000000000000000000000000000000000000000..81abf68f3a7bc32caea738713e4078d385330b58 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries.ts @@ -0,0 +1,30 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { CreateProcedureRequest } from "@eshg/citizen-portal-api/medicalRegistry/apis"; +import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; +import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; + +import { useMedicalRegistryApi } from "@/lib/businessModules/medicalRegistry/api/clients"; +import { useTranslation } from "@/lib/i18n/client"; + +export function useCreateProcedure() { + const medicalRegistryApi = useMedicalRegistryApi(); + const snackbar = useSnackbar(); + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + return useHandledMutation({ + mutationFn: (req: CreateProcedureRequest) => + medicalRegistryApi + .createProcedureFromCitizenPortalRaw(req) + .then(unwrapRawResponse), + onSuccess: () => { + snackbar.confirmation(t("snackbar.success")); + }, + }); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys.ts b/citizen-portal/src/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys.ts new file mode 100644 index 0000000000000000000000000000000000000000..1c9075aff62566f1f552349c9542246d2b2422df --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys.ts @@ -0,0 +1,12 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { queryKeyFactory } from "@eshg/lib-portal/api/queryKeyFactory"; + +const apiQueryKey = queryKeyFactory(["medicalRegistry"]); + +export const medicalRegistryFeatureTogglesPublicApiQueryKey = queryKeyFactory( + apiQueryKey(["medicalRegistryFeatureTogglesPublicApi"]), +); diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/api/queries/featureTogglesApi.ts b/citizen-portal/src/lib/businessModules/medicalRegistry/api/queries/featureTogglesApi.ts new file mode 100644 index 0000000000000000000000000000000000000000..0725066fb1c16fbb4473a6db934aece8a1074a8c --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/api/queries/featureTogglesApi.ts @@ -0,0 +1,40 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiGetMedicalRegistryFeatureTogglesResponse, + ApiMedicalRegistryFeature, +} from "@eshg/citizen-portal-api/medicalRegistry"; +import { + selectDisabledOldFeature, + selectEnabledNewFeature, + useGetFeatureToggle, +} from "@eshg/lib-portal/api/featureToggles"; + +import { useFeatureTogglesApi } from "@/lib/businessModules/medicalRegistry/api/clients"; +import { medicalRegistryFeatureTogglesPublicApiQueryKey } from "@/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys"; + +export function useIsNewFeatureEnabled(name: ApiMedicalRegistryFeature) { + return useGetMedicalRegistryFeatureToggle(selectEnabledNewFeature(name)); +} + +export function useIsOldFeatureDisabled(name: ApiMedicalRegistryFeature) { + return useGetMedicalRegistryFeatureToggle(selectDisabledOldFeature(name)); +} + +function useGetMedicalRegistryFeatureToggle<TValue>( + select: ( + featureToggles: ApiGetMedicalRegistryFeatureTogglesResponse, + ) => TValue, +): TValue { + const featureTogglesApi = useFeatureTogglesApi(); + return useGetFeatureToggle({ + queryKey: medicalRegistryFeatureTogglesPublicApiQueryKey([ + "getFeatureToggles", + ]), + queryFn: () => featureTogglesApi.getFeatureToggles(), + select, + }); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/nav.json b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/nav.json new file mode 100644 index 0000000000000000000000000000000000000000..74439f33c5a07ad0b51039495bee4eb447fd5f72 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/nav.json @@ -0,0 +1,6 @@ +{ + "medicalRegistryTitle": "Berufskartei", + "person": { + "home": "Übersicht" + } +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/overview.json b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/overview.json new file mode 100644 index 0000000000000000000000000000000000000000..c69eb2699a008a29e9a89f436a37cbc4be8afe41 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/overview.json @@ -0,0 +1,13 @@ +{ + "pageTitle": "Informationen zur Berufskartei", + "content": { + "title": "Allgemeine Informationen", + "information": "Nach § 12 HGöGD müssen Personen, die einen Beruf des Gesundheitswesens ausüben oder Berufsangehörige beschäftigen, Beginn und Ende der Tätigkeit innerhalb eines Monats dem für den Niederlassungsort zuständigem Gesundheitsamt anzeigen. Die Anzeige beim Gesundheitsamt erfolgt über dieses Online-Formular.", + "requiredFieldsHint": "Alle mit * gekennzeichneten Pflichtfelder müssen ausgefüllt sein, um das Online-Formular abschicken zu können." + }, + "sidebar": { + "title": "Möchten Sie einen Gesundheitsberuf melden?", + "content": "Verwenden Sie das Meldeformular, um einen Eintrag anzulegen oder zu aktualisieren.", + "registrationForm": "Zum Meldeformular" + } +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/professionalRegistrationForm.json b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/professionalRegistrationForm.json new file mode 100644 index 0000000000000000000000000000000000000000..bbf8600a34e4c85e1b1a61c92121acd543deb3a5 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/de/professionalRegistrationForm.json @@ -0,0 +1,456 @@ +{ + "navigation": { + "pageTitle": "Meldeformular zur Berufskartei", + "step": "Schritt", + "stepsRemaining": "von", + "continue": "Weiter", + "abort": "Abbrechen", + "submit": "Verbindlich speichern", + "back": "Zurück" + }, + "options": { + "yes": "Ja", + "no": "Nein", + "countries": { + "AF": "Afghanistan", + "EG": "Ägypten", + "AX": "Ã…land", + "AL": "Albanien", + "DZ": "Algerien", + "AS": "Amerikanisch-Samoa", + "VI": "Amerikanische Jungferninseln", + "AD": "Andorra", + "AO": "Angola", + "AI": "Anguilla", + "AQ": "Antarktis", + "AG": "Antigua und Barbuda", + "GQ": "Äquatorialguinea", + "AR": "Argentinien", + "AM": "Armenien", + "AW": "Aruba", + "AZ": "Aserbaidschan", + "ET": "Äthiopien", + "AU": "Australien", + "BS": "Bahamas", + "BH": "Bahrain", + "BD": "Bangladesch", + "BB": "Barbados", + "BY": "Belarus", + "BE": "Belgien", + "BZ": "Belize", + "BJ": "Benin", + "BM": "Bermuda", + "BT": "Bhutan", + "BO": "Bolivien", + "BQ": "Bonaire, Saba, Sint Eustatius", + "BA": "Bosnien und Herzegowina", + "BW": "Botswana", + "BV": "Bouvetinsel", + "BR": "Brasilien", + "VG": "Britische Jungferninseln", + "IO": "Britisches Territorium im Indischen Ozean", + "BN": "Brunei", + "BG": "Bulgarien", + "BF": "Burkina Faso", + "BI": "Burundi", + "CL": "Chile", + "CN": "Volksrepublik China", + "CK": "Cookinseln", + "CR": "Costa Rica", + "CW": "Curaçao", + "DK": "Dänemark", + "DE": "Deutschland", + "DM": "Dominica", + "DO": "Dominikanische Republik", + "DJ": "Dschibuti", + "EC": "Ecuador", + "CI": "Elfenbeinküste (Côte d’Ivoire)", + "SV": "El Salvador", + "ER": "Eritrea", + "EE": "Estland", + "SZ": "Eswatini", + "FK": "Falklandinseln", + "FO": "Färöer", + "FJ": "Fidschi", + "FI": "Finnland", + "FR": "Frankreich", + "GF": "Französisch-Guayana", + "PF": "Französisch-Polynesien", + "TF": "Französische Süd- und Antarktisgebiete", + "GA": "Gabun", + "GM": "Gambia", + "GE": "Georgien", + "GH": "Ghana", + "GI": "Gibraltar", + "GD": "Grenada", + "GR": "Griechenland", + "GL": "Grönland", + "GP": "Guadeloupe", + "GU": "Guam", + "GT": "Guatemala", + "GG": "Guernsey (Kanalinsel)", + "GN": "Guinea", + "GW": "Guinea-Bissau", + "GY": "Guyana", + "HT": "Haiti", + "HM": "Australien Heard und McDonaldinseln", + "HN": "Honduras", + "HK": "Hongkong", + "IN": "Indien", + "ID": "Indonesien", + "IM": "Isle of Man", + "IQ": "Irak", + "IR": "Iran", + "IE": "Irland", + "IS": "Island", + "IL": "Israel", + "IT": "Italien", + "JM": "Jamaika", + "JP": "Japan", + "YE": "Jemen", + "JE": "Jersey (Kanalinsel)", + "JO": "Jordanien", + "KY": "Cayman Islands (Kaimaninseln)", + "KH": "Kambodscha", + "CM": "Kamerun", + "CA": "Kanada", + "CV": "Kap Verde (Cabo Verde)", + "KZ": "Kasachstan", + "QA": "Katar", + "KE": "Kenia", + "KG": "Kirgisistan", + "KI": "Kiribati", + "CC": "Kokosinseln", + "CO": "Kolumbien", + "KM": "Komoren", + "CD": "Demokratische Republik Kongo", + "CG": "Republik Kongo", + "KP": "Nordkorea", + "KR": "Südkorea", + "HR": "Kroatien", + "CU": "Kuba", + "KW": "Kuwait", + "LA": "Laos", + "LS": "Lesotho", + "LV": "Lettland", + "LB": "Libanon", + "LR": "Liberia", + "LY": "Libyen", + "LI": "Liechtenstein", + "LT": "Litauen", + "LU": "Luxemburg", + "MO": "Macau", + "MG": "Madagaskar", + "MW": "Malawi", + "MY": "Malaysia", + "MV": "Malediven", + "ML": "Mali", + "MT": "Malta", + "MA": "Marokko", + "MH": "Marshallinseln", + "MQ": "Martinique", + "MR": "Mauretanien", + "MU": "Mauritius", + "YT": "Mayotte", + "MX": "Mexiko", + "FM": "Föderierte Staaten von Mikronesien", + "MD": "Moldau", + "MC": "Monaco", + "MN": "Mongolei", + "ME": "Montenegro", + "MS": "Montserrat", + "MZ": "Mosambik", + "MM": "Myanmar", + "NA": "Namibia", + "NR": "Nauru", + "NP": "Nepal", + "NC": "Neukaledonien", + "NZ": "Neuseeland", + "NI": "Nicaragua", + "NL": "Niederlande", + "NE": "Niger", + "NG": "Nigeria", + "NU": "Niue", + "MP": "Nördliche Marianen", + "MK": "Nordmazedonien", + "NF": "Norfolkinsel", + "NO": "Norwegen", + "OM": "Oman", + "AT": "Österreich", + "TL": "Osttimor (Timor-Leste)", + "PK": "Pakistan", + "PS": "Palästina", + "PW": "Palau", + "PA": "Panama", + "PG": "Papua-Neuguinea", + "PY": "Paraguay", + "PE": "Peru", + "PH": "Philippinen", + "PN": "Pitcairninseln", + "PL": "Polen", + "PT": "Portugal", + "PR": "Puerto Rico", + "RE": "Réunion", + "RW": "Ruanda", + "RO": "Rumänien", + "RU": "Russland", + "SB": "Salomonen", + "BL": "Saint-Barthélemy", + "MF": "Saint-Martin (französischer Teil)", + "ZM": "Sambia", + "WS": "Samoa", + "SM": "San Marino", + "ST": "São Tomé und PrÃncipe", + "SA": "Saudi-Arabien", + "SE": "Schweden", + "CH": "Schweiz", + "SN": "Senegal", + "RS": "Serbien", + "SC": "Seychellen", + "SL": "Sierra Leone", + "ZW": "Simbabwe", + "SG": "Singapur", + "SX": "Sint Maarten", + "SK": "Slowakei", + "SI": "Slowenien", + "SO": "Somalia", + "ES": "Spanien", + "LK": "Sri Lanka", + "SH": "St. Helena, Ascension und Tristan da Cunha", + "KN": "St. Kitts und Nevis", + "LC": "St. Lucia", + "PM": "Saint-Pierre und Miquelon", + "VC": "St. Vincent und die Grenadinen", + "ZA": "Südafrika", + "SD": "Sudan", + "GS": "Südgeorgien und die Südlichen Sandwichinseln", + "SS": "Südsudan", + "SR": "Suriname", + "SJ": "Spitzbergen und Jan Mayen", + "SY": "Syrien", + "TJ": "Tadschikistan", + "TW": "Taiwan", + "TZ": "Tansania", + "TH": "Thailand", + "TG": "Togo", + "TK": "Tokelau", + "TO": "Tonga", + "TT": "Trinidad und Tobago", + "TD": "Tschad", + "CZ": "Tschechien", + "TN": "Tunesien", + "TR": "Türkei", + "TM": "Turkmenistan", + "RC": "Turks- und Caicosinseln", + "TV": "Tuvalu", + "UG": "Uganda", + "UA": "Ukraine", + "HU": "Ungarn", + "UM": "Vereinigte Staaten United States Minor Outlying Islands", + "UY": "Uruguay", + "UZ": "Usbekistan", + "VU": "Vanuatu", + "VA": "Vatikanstadt", + "VE": "Venezuela", + "AE": "Vereinigte Arabische Emirate", + "US": "Vereinigte Staaten", + "GB": "Vereinigtes Königreich", + "VN": "Vietnam", + "WF": "Wallis und Futuna", + "CX": "Weihnachtsinsel", + "EH": "Westsahara", + "CF": "Zentralafrikanische Republik", + "CY": "Zypern" + }, + "gender": { + "NOT_SPECIFIED": "Keine Angabe", + "DIVERSE": "Divers", + "FEMALE": "Weiblich", + "MALE": "Männlich" + }, + "changeTypeNames": { + "NEW_REGISTRATION": "Neuanmeldung", + "SECOND_PRACTICE": "Zweitpraxis", + "RE_REGISTRATION": "Wiederanmeldung", + "CHANGE_OF_REGISTRATION": "Ummeldung", + "CHANGE_OF_NAME": "Namensänderung", + "RELOCATION": "Wegzug", + "DEREGISTRATION": "Abmeldung", + "OTHER": "Sonstiges" + }, + "professionalTitleNames": { + "DOCTOR": "Arzt", + "DENTIST": "Zahnarzt", + "PSYCHOLOGICAL_PSYCHOTHERAPIST": "Psychologischer Psychotherapeut", + "NURSING_ASSISTANT": "Altenpflegehelfer", + "GERIATRIC_NURSE": "Altenpfleger", + "DIETICIAN": "Diätassistent", + "DISINFECTOR": "Desinfektor", + "OCCUPATIONAL_THERAPIST": "Ergotherapeut", + "HEALTH_SUPERVISOR": "Gesundheitsaufseher", + "HEALTHCARE_AND_PEDIATRIC_NURSE": "Gesundheits- und Kinderkrankenpfleger (ehem. Kinderkrankenschwester / Kinderkrankenpfleger)", + "HEALTHCARE_AND_NURSING_ASSISTANT": "Gesundheits- und Krankenpflegehelfer (ehem. Krankenpflegehelfer)", + "HEALTHCARE_AND_NURSING_ASSISTANTS_HELPER": "Gesundheits- und Krankenpfleger (ehem. Krankenschwester / Krankenpfleger)", + "MIDWIVE_MATERNITY_NURSE": "Hebamme / Entbindungspfleger", + "ALTERNATIVE_PRACTITIONER": "Heilpraktiker (HP)", + "NON_MEDICAL_PRACTITIONER_FOR_CHIROPRACTIC": "Heilpraktiker für Chiropraktik", + "ALTERNATIVE_PRACTITIONER_FOR_SPEECH_THERAPY": "Heilpraktiker für Logopädie", + "NON_MEDICAL_PRACTITIONER_FOR_PHYSIOTHERAPY": "Heilpraktiker für Physiotherapie", + "NON_MEDICAL_PRACTITIONER_FOR_PSYCHOTHERAPY": "Heilpraktiker für Psychotherapie", + "CHILD_AND_YOUTH_PSYCHOTHERAPIST": "Kinder- und Jugendpsychotherapeut", + "SPEECH_THERAPIST": "Logopäde", + "MASSEUR_AND_MEDICAL_BATH_ATTENDANT": "Masseur und medizinischer Bademeister", + "MEDICAL_DOCUMENTALIST": "Medizinischer Dokumentar", + "MEDICAL_TECHNICAL_LABORATORY_ASSISTANT": "Medizinisch-Technischer Laboratoriums-Assistent", + "MEDICAL_TECHNICAL_RADIOLOGY_ASSISTANT": "Medizinisch-Technischer Radiologie-Assistent", + "MEDICAL_TECHNICAL_ASSISTANT_FOR_FUNCTIONAL_DIAGNOSTICS": "Medizinisch-Technischer Assistent für Funktionsdiagnostik", + "EMERGENCY_PARAMEDIC": "Notfallsanitäter (ehem. Rettungsassistent)", + "ORTHOPTIST": "Orthoptist", + "CARE_ASSISTANT": "Pflegehelfer", + "NURSING_SERVICE": "Pflegedienst", + "NURSING_SERVICE_MANAGER": "Pflegedienstleiter", + "PHARMACEUTICAL_TECHNICAL_ASSISTANT": "Pharmazeutisch-Technischer Assistent", + "PHYSIOTHERAPIST": "Physiotherapeut", + "PODIATRIST": "Podologe", + "RADIOLOGY_ASSISTANT": "Radiologieassistent", + "SPORTS_THERAPIST": "Sporttherapeut", + "PHARMACIST": "Apotheker", + "VETERINARIAN": "Tierarzt" + }, + "employmentType": { + "FULL_TIME": "Hauptberuflich", + "PART_TIME": "Nebenberuflich" + }, + "employmentStatus": { + "SELF_EMPLOYED": "Selbstständig", + "FREELANCE": "Freiberuflich", + "EMPLOYEE": "Angestellt" + } + }, + "stepOne": { + "contentSheetOne": { + "pageTitle": "Allgemeine Angaben", + "label": { + "changeType": "Änderungsart" + } + }, + "contentSheetTwo": { + "pageTitle": "Angaben zum Antragsteller", + "label": { + "title": "Titel", + "gender": "Geschlecht", + "firstName": "Vorname(n)", + "lastName": "Nachname", + "birthName": "Geburtsname", + "birthDate": "Geburtsdatum", + "birthPlace": "Geburtsort", + "nationality": "Staatsangehörigkeit", + "street": "Straße", + "houseNumber": "Hausnummer", + "postalCode": "Postleitzahl", + "city": "Ort", + "country": "Land", + "email": "E-Mail-Adresse", + "phoneNumber": "Telefonnummer" + } + } + }, + "stepTwo": { + "pageTitle": "Berufsangaben", + "subTitle": { + "professionalism": "Angaben zur Berufsausübung", + "employees": "Angaben zu Mitarbeiter:innen" + }, + "label": { + "professionalTitle": "Berufsbezeichnung", + "fieldOfExpertise": "Fachgebiet", + "specialistTitle": "Facharztbezeichnung", + "furtherTraining": "Weiterbildung", + "qualifications": "Qualifizierung", + "lifetimeDoctorNumber": "Lebenslange Arztnummer (LAN)", + "approbationGrantedOn": "Erlaubnis / Approbation erteilt am", + "approbationIssuingAuthority": "Ausstellungsbehörde", + "employmentType": "Beschäftigungsart", + "employmentStatus": "Beschäftigungsstatus" + } + }, + "stepThree": { + "pageTitle": "Angaben zur Praxis / zum Unternehmen", + "subTitle": { + "proprietaryPractice": "Eigene Praxis / Niederlassung", + "practiceInformation": "Angaben zur Praxis", + "healthInsuranceAuthorization": "Kassenzulassung" + }, + "hint": "Für die ausgewählte Änderungsart ist nur eine eigene Praxis / Niederlassung möglich.", + "label": { + "practiceName": "Praxisname / Einrichtungsname", + "street": "Straße", + "houseNumber": "Hausnummer", + "postalCode": "Postleitzahl", + "city": "Ort", + "phoneNumber": "Telefonnummer", + "email": "Email", + "website": "Website", + "openingHours": "Öffnungszeiten / Sprechzeiten", + "institutionIdentifier": "InstitutionsKennzeichen (IK)", + "establishmentNumber": "Betriebsstättennummer (BSNR)", + "healthInsuranceAuthorization": "Kassenzulassung", + "employeesEmployed": "Beschäftigung von Mitarbeiter:innen" + } + }, + "stepFour": { + "contentSheetOne": { + "pageTitle": "Erforderliche Unterlagen", + "label": { + "identificationDocument": "Ausweis / Reisepass", + "license": "Berufserlaubnisurkunde / Approbationsurkunde", + "workPermit": "Arbeitserlaubnis", + "otherRelevantDocument": "Sonstiges Dokument", + "anotherRelevantDocument": "Weiteres Dokument hinzufügen" + } + }, + "contentSheetTwo": { + "pageTitle": "Liste der Mitarbeiter:innen", + "hint": "Laden Sie eine formlose Liste im JPG-Format hoch, die für jede:n Mitarbeiter:in folgende Information enthält: Name, Vorname, Geburtsdatum, Berufsbezeichnung, Beginn und Ende der Tätigkeit.", + "label": { + "employeesFile": "Mitarbeiter:innen-Liste" + } + }, + "sidePanel": { + "confirmation": "Bescheinigung", + "completion": "Eintrag fertigstellen", + "label": { + "writtenConfirmation": "Ich möchte eine schriftliche Meldebestätigung per Postversand erhalten.", + "confirmationFee": "Ich nehme zur Kenntnis, dass beim Ausstellen der Bestätigung eine Gebühr von 15,00 € anfällt.", + "confirmationByPost": "Ich nehme zur Kenntnis, dass die Bestätigung ausschließlich per Post zugestellt werden kann.", + "agreedDataPrivacyNotice": "Ich akzeptiere den Datenschutzhinweis.", + "agreedDataPrivacyPolicy": "Ich akzeptiere die Datenschutzerklärung." + }, + "links": { + "dataPrivacyNotice": "Zum Datenschutzhinweis", + "dataPrivacyPolicy": "Zur Datenschutzerklärung" + } + }, + "fileField": { + "placeholder": "Datei auswählen", + "placeholderSelected": "Erneut auswählen", + "file": "Datei", + "size": "Größe", + "format": "Format", + "helperText": "Datei als JPEG hochladen", + "removeFile": "Entfernen" + } + }, + "successPage": { + "createNewEntry": "Neuen Eintrag anlegen", + "content": "Eintrag erfolgreich angelegt!" + }, + "snackbar": { + "success": "Das Meldeformular wurde erfolgreich gespeichert.", + "errors": "Bitte füllen Sie erst alle Pflichtfelder aus." + }, + "validations": { + "requiredField": "Pflichtfeld!", + "confirmation": "Bitte Zustimmung erteilen um fortzufahren." + } +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/nav.json b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/nav.json new file mode 100644 index 0000000000000000000000000000000000000000..25856e15c7d4a54ede5bc2ccc0da058979f8bdf7 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/nav.json @@ -0,0 +1,6 @@ +{ + "medicalRegistryTitle": "Professional registry", + "person": { + "home": "Overview" + } +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/overview.json b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/overview.json new file mode 100644 index 0000000000000000000000000000000000000000..dfdbe06ca9517c5500127dc7e599ce105d02e348 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/overview.json @@ -0,0 +1,13 @@ +{ + "pageTitle": "Information on the professional registry", + "content": { + "title": "General informationen", + "information": "According to § 12 HGöGD, individuals practicing a healthcare profession or employing healthcare professionals must notify the health department responsible for their place of business of the start and end of their activities within one month. The notification to the health department can be made using this online form.", + "requiredFieldsHint": "All mandatory fields indicated by an asterisk (*) must be filled out to submit the online form." + }, + "sidebar": { + "title": "Would you like to register a healthcare profession?", + "content": "Use the registration form to create a new entry or update an existing one.", + "registrationForm": "To the registration form" + } +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/professionalRegistrationForm.json b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/professionalRegistrationForm.json new file mode 100644 index 0000000000000000000000000000000000000000..8de497a61febd1449ec34662e809448bdbf42777 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/locales/en/professionalRegistrationForm.json @@ -0,0 +1,455 @@ +{ + "navigation": { + "pageTitle": "Registration form for professional registry", + "step": "Step", + "stepsRemaining": "of", + "continue": "Continue", + "abort": "Cancel", + "submit": "Save permanently", + "back": "Back" + }, + "options": { + "yes": "Yes", + "no": "No", + "countries": { + "AF": "Afghanistan", + "EG": "Egypt", + "AX": "Ã…land", + "AL": "Albania", + "DZ": "Algeria", + "AS": "American Samoa", + "VI": "American Virgin Islands", + "AD": "Andorra", + "AO": "Angola", + "AI": "Anguilla", + "AQ": "Antarctic", + "AG": "Antigua and Barbuda", + "GQ": "Equatorial Guinea", + "AR": "Argentina", + "AM": "Armenia", + "AW": "Aruba", + "AZ": "Azerbaijan", + "ET": "Ethiopia", + "AU": "Australia", + "BS": "Bahamas", + "BH": "Bahrain", + "BD": "Bangladesh", + "BB": "Barbados", + "BY": "Belarus", + "BE": "Belgium", + "BZ": "Belize", + "BJ": "Benin", + "BM": "Bermuda", + "BT": "Bhutan", + "BO": "Bolivia", + "BQ": "Bonaire, Saba, Sint Eustatius", + "BA": "Bosnia and Herzegovina", + "BW": "Botswana", + "BV": "Bouvet Island", + "BR": "Brazil", + "VG": "British Virgin Islands", + "IO": "British Indian Ocean Territory", + "BN": "Brunei", + "BG": "Bulgaria", + "BF": "Burkina Faso", + "BI": "Burundi", + "CL": "Chile", + "CN": "People's Republic of China", + "CK": "Cook Islands", + "CR": "Costa Rica", + "CW": "Curaçao", + "DK": "Denmark", + "DE": "Germany", + "DM": "Dominica", + "DO": "Dominican Republic", + "DJ": "Djibouti", + "EC": "Ecuador", + "CI": "Ivory Coast", + "SV": "El Salvador", + "ER": "Eritrea", + "EE": "Estonia", + "SZ": "Eswatini", + "FK": "Faroe Islands", + "FO": "Färöer", + "FJ": "Fiji", + "FI": "Finland", + "FR": "France", + "GF": "French Guiana", + "PF": "French Polynesia", + "TF": "French Southern and Antarctic Territories", + "GA": "Gabon", + "GM": "Gambia", + "GE": "Georgia", + "GH": "Ghana", + "GI": "Gibraltar", + "GD": "Grenada", + "GR": "Greece", + "GL": "Greenland", + "GP": "Guadeloupe", + "GU": "Guam", + "GT": "Guatemala", + "GG": "Guernsey", + "GN": "Guinea", + "GW": "Guinea-Bissau", + "GY": "Guyana", + "HT": "Haiti", + "HM": "Australia Heard and McDonald Islands", + "HN": "Honduras", + "HK": "Hong Kong", + "IN": "India", + "ID": "Indonesia", + "IM": "Isle of Man", + "IQ": "Iraq", + "IR": "Iran", + "IE": "Ireland", + "IS": "Island", + "IL": "Israel", + "IT": "Italy", + "JM": "Jamaica", + "JP": "Japan", + "YE": "Yemen", + "JE": "Jersey", + "JO": "Jordan", + "KY": "Cayman Islands (Kaimaninseln)", + "KH": "Cambodia", + "CM": "Cameroon", + "CA": "Canada", + "CV": "Kap Verde (Cabo Verde)", + "KZ": "Kazakhstan", + "QA": "Qatar", + "KE": "Kenia", + "KG": "Kyrgyzstan", + "KI": "Kiribati", + "CC": "Cocos Islands", + "CO": "Colombia", + "KM": "Comoros", + "CD": "Democratic Republic Kongo", + "CG": "Republic Kongo", + "KP": "North Korea", + "KR": "South Korea", + "HR": "Croatia", + "CU": "Cuba", + "KW": "Kuwait", + "LA": "Laos", + "LS": "Lesotho", + "LV": "Latvia", + "LB": "Lebanon", + "LR": "Liberia", + "LY": "Libya", + "LI": "Liechtenstein", + "LT": "Lithuania", + "LU": "Luxembourg", + "MO": "Macau", + "MG": "Madagascar", + "MW": "Malawi", + "MY": "Malaysia", + "MV": "Maldives", + "ML": "Mali", + "MT": "Malta", + "MA": "Morocco", + "MH": "Marshall Islands", + "MQ": "Martinique", + "MR": "Mauritania", + "MU": "Mauritius", + "YT": "Mayotte", + "MX": "Mexiko", + "FM": "Federated States of Micronesia", + "MD": "Moldova", + "MC": "Monaco", + "MN": "Mongolia", + "ME": "Montenegro", + "MS": "Montserrat", + "MZ": "Mozambique", + "MM": "Myanmar", + "NA": "Namibia", + "NR": "Nauru", + "NP": "Nepal", + "NC": "New Caledonia", + "NZ": "New Zealand", + "NI": "Nicaragua", + "NL": "Netherlands", + "NE": "Niger", + "NG": "Nigeria", + "NU": "Niue", + "MP": "Northern Mariana Islands", + "MK": "North Macedonia", + "NF": "Norfolk Island", + "NO": "Norway", + "OM": "Oman", + "AT": "Austria", + "TL": "East Timor", + "PK": "Pakistan", + "PS": "Palestine", + "PW": "Palau", + "PA": "Panama", + "PG": "Papua New Guinea", + "PY": "Paraguay", + "PE": "Peru", + "PH": "Philippines", + "PN": "Pitcairn Islands", + "PL": "Poland", + "PT": "Portugal", + "PR": "Puerto Rico", + "RE": "Réunion", + "RW": "Rwanda", + "RO": "Romania", + "RU": "Russian Federation", + "SB": "Solomon Islands", + "BL": "Saint-Barthélemy", + "MF": "Saint-Martin (french part)", + "ZM": "Zambia", + "WS": "Samoa", + "SM": "San Marino", + "ST": "São Tomé and PrÃncipe", + "SA": "Saudi Arabia", + "SE": "Sweden", + "CH": "Switzerland", + "SN": "Senegal", + "RS": "Serbia", + "SC": "Seychelles", + "SL": "Sierra Leone", + "ZW": "Zimbabwe", + "SG": "Singapore", + "SX": "Sint Maarten", + "SK": "Slovakia", + "SI": "Slovenia", + "SO": "Somalia", + "ES": "Spain", + "LK": "Sri Lanka", + "SH": "St. Helena, Ascension and Tristan da Cunha", + "KN": "St. Kitts and Nevis", + "LC": "St. Lucia", + "PM": "Saint-Pierre and Miquelon", + "VC": "St. Vincent and the Grenadines", + "ZA": "South africa", + "SD": "Sudan", + "GS": "South Georgia and the South Sandwich Islands", + "SS": "South Sudan", + "SR": "Suriname", + "SJ": "Spitsbergen and Jan Mayen", + "SY": "Syria", + "TJ": "Tajikistan", + "TW": "Taiwan", + "TZ": "Tanzania", + "TH": "Thailand", + "TG": "Togo", + "TK": "Tokelau", + "TO": "Tonga", + "TT": "Trinidad and Tobago", + "TD": "Chad", + "CZ": "Czech Republic", + "TN": "Tunisia", + "TR": "Turkey", + "TM": "Turkmenistan", + "RC": "Turks and Caicos Islands", + "TV": "Tuvalu", + "UG": "Uganda", + "UA": "Ukraine", + "HU": "Hungary", + "UM": "United States Minor Outlying Islands", + "UY": "Uruguay", + "UZ": "Uzbekistan", + "VU": "Vanuatu", + "VA": "Vatican City", + "VE": "Venezuela", + "AE": "United Arab Emirates", + "US": "United States", + "GB": "United Kingdom", + "VN": "Vietnam", + "WF": "Wallis and Futuna", + "CX": "Christmas Island", + "EH": "Western Sahara", + "CF": "Central African Republic", + "CY": "Cyprus" + }, + "gender": { + "NOT_SPECIFIED": "Not specified", + "DIVERSE": "Diverse", + "FEMALE": "Female", + "MALE": "Male" + }, + "changeTypeNames": { + "NEW_REGISTRATION": "New registration", + "SECOND_PRACTICE": "Second practice", + "RE_REGISTRATION": "Repeated registration", + "CHANGE_OF_REGISTRATION": "Change of registration", + "CHANGE_OF_NAME": "Change of name", + "RELOCATION": "Relocation", + "DEREGISTRATION": "Deregistration", + "OTHER": "Other" + }, + "professionalTitleNames": { + "DOCTOR": "Doctor", + "DENTIST": "Dentist", + "PSYCHOLOGICAL_PSYCHOTHERAPIST": "Psychological psychotherapist", + "NURSING_ASSISTANT": "Nursing assistant", + "GERIATRIC_NURSE": "Geriatric nurse", + "DIETICIAN": "Dietician", + "DISINFECTOR": "Disinfector", + "OCCUPATIONAL_THERAPIST": "Occupational therapist", + "HEALTH_SUPERVISOR": "Health supervisor", + "HEALTHCARE_AND_PEDIATRIC_NURSE": "Healthcare and pediatric nurse", + "HEALTHCARE_AND_NURSING_ASSISTANT": "Healthcare and nursing assistant", + "HEALTHCARE_AND_NURSING_ASSISTANTS_HELPER": "Healthcare and nursing assistants helper", + "MIDWIVE_MATERNITY_NURSE": "Midwive maternity nurse", + "ALTERNATIVE_PRACTITIONER": "Alternative practitioner", + "NON_MEDICAL_PRACTITIONER_FOR_CHIROPRACTIC": "Non medical practitioner for chiropractic", + "ALTERNATIVE_PRACTITIONER_FOR_SPEECH_THERAPY": "Alternative practitioner for speech therapy", + "NON_MEDICAL_PRACTITIONER_FOR_PHYSIOTHERAPY": "Non medical practitioner for physiotherapy", + "NON_MEDICAL_PRACTITIONER_FOR_PSYCHOTHERAPY": "Non medical practitioner for psychotherapy", + "CHILD_AND_YOUTH_PSYCHOTHERAPIST": "Child and youth psychotherapist", + "SPEECH_THERAPIST": "Speech therapist", + "MASSEUR_AND_MEDICAL_BATH_ATTENDANT": "Masseur and medical bath attendant", + "MEDICAL_DOCUMENTALIST": "Medical documentalist", + "MEDICAL_TECHNICAL_LABORATORY_ASSISTANT": "Medical technical laboratory assistant", + "MEDICAL_TECHNICAL_RADIOLOGY_ASSISTANT": "Medical technical radiology assistant", + "MEDICAL_TECHNICAL_ASSISTANT_FOR_FUNCTIONAL_DIAGNOSTICS": "Medical technical assistant for functional diagnostics", + "EMERGENCY_PARAMEDIC": "Emergency paramedic", + "ORTHOPTIST": "Orthoptist", + "CARE_ASSISTANT": "Care assistant", + "NURSING_SERVICE": "Nursing service", + "NURSING_SERVICE_MANAGER": "Nursing service manager", + "PHARMACEUTICAL_TECHNICAL_ASSISTANT": "Pharmaceutical technical assistant", + "PHYSIOTHERAPIST": "Physiotherapist", + "PODIATRIST": "Podiatrist", + "RADIOLOGY_ASSISTANT": "Radiology assistant", + "SPORTS_THERAPIST": "Sports therapist", + "PHARMACIST": "Pharmacist", + "VETERINARIAN": "Veterinarian" + }, + "employmentType": { + "FULL_TIME": "Full time", + "PART_TIME": "Part time" + }, + "employmentStatus": { + "SELF_EMPLOYED": "Self employed", + "FREELANCE": "Freelance", + "EMPLOYEE": "Employee" + } + }, + "stepOne": { + "contentSheetOne": { + "pageTitle": "General information", + "label": { + "changeType": "Change type" + } + }, + "contentSheetTwo": { + "pageTitle": "Applicant information", + "label": { + "title": "Title", + "gender": "Gender", + "firstName": "First name(s)", + "lastName": "Last name", + "birthName": "Birth name", + "birthDate": "Birth date", + "birthPlace": "Birth place", + "nationality": "Nationality", + "street": "Street", + "houseNumber": "House number", + "postalCode": "Postal code", + "city": "City", + "country": "Country", + "email": "E-Mail-Address", + "phoneNumber": "Phone number" + } + } + }, + "stepTwo": { + "pageTitle": "Occupational information", + "subTitle": { + "professionalism": "Information about professionalism", + "employees": "Information about employees" + }, + "label": { + "professionalTitle": "Professional title", + "fieldOfExpertise": "Field of expertise", + "specialistTitle": "Specialist title", + "furtherTraining": "Further Training", + "qualifications": "Qualifications", + "lifetimeDoctorNumber": "Lifetime doctor number (LAN)", + "approbationGrantedOn": "Approbation granted on", + "approbationIssuingAuthority": "Approbation issuing authority", + "employmentType": "Employment type", + "employmentStatus": "Employment status" + } + }, + "stepThree": { + "pageTitle": "Practice / company information", + "subTitle": { + "proprietaryPractice": "Proprietary practice / establishment", + "practiceInformation": "Information about practice", + "healthInsuranceAuthorization": "Health insurance authorization" + }, + "hint": "For the selected type of change, only a private practice / establishment is possible.", + "label": { + "practiceName": "Practice / establishment name", + "street": "Street", + "houseNumber": "House number", + "postalCode": "Postal code", + "city": "City", + "phoneNumber": "Phone number", + "email": "E-Mail-Address", + "website": "Website", + "openingHours": "Opening hours", + "institutionIdentifier": "Institution identifier (IK)", + "establishmentNumber": "Establishment number (BSNR)", + "healthInsuranceAuthorization": "Health insurance authorization", + "employeesEmployed": "Employees employed" + } + }, + "stepFour": { + "contentSheetOne": { + "pageTitle": "Required Documents", + "label": { + "identificationDocument": "Identification / passport", + "license": "Professional / medical license", + "workPermit": "Work permit", + "otherRelevantDocument": "Other document", + "anotherRelevantDocument": "Add another document" + } + }, + "contentSheetTwo": { + "pageTitle": "List of employees", + "hint": "Please upload an informal list in JPG format. This list should contain the following information for each employee: name, first name, date of birth, job title, start date, and end date.", + "label": { + "employeesFile": "Employees list" + } + }, + "sidePanel": { + "confirmation": "Confirmation", + "completion": "Complete form", + "label": { + "writtenConfirmation": "I would like to receive a written confirmation of registration by post.", + "confirmationFee": "I acknowledge that a fee of €15.00 will be charged for issuing the registration certificate.", + "confirmationByPost": "I acknowledge that the registration certificate can only be sent by post.", + "agreedDataPrivacyNotice": "I accept the privacy notice.", + "agreedDataPrivacyPolicy": "I accept the privacy policy." + }, + "links": { + "dataPrivacyNotice": "To the data privacy notice", + "dataPrivacyPolicy": "To to the data privacy policy" + } + }, + "fileField": { + "placeholder": "Select file", + "placeholderSelected": "Reselect file", + "file": "File", + "size": "Size", + "helperText": "Upload file as JPEG", + "removeFile": "Remove" + } + }, + "successPage": { + "createNewEntry": "Create new entry", + "content": "Entry created successfully!" + }, + "snackbar": { + "success": "The registration form has been successfully saved.", + "errors": "Please fill in all required fields. " + }, + "validations": { + "requiredField": "Mandatory!", + "confirmation": "Please accept terms to continue." + } +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/home/HomeContent.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/home/HomeContent.tsx new file mode 100644 index 0000000000000000000000000000000000000000..fe546705afa98f4db1bf816840d0c92b58c77482 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/home/HomeContent.tsx @@ -0,0 +1,27 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Typography } from "@mui/joy"; + +import { useTranslation } from "@/lib/i18n/client"; +import { + ContentSheet, + ContentSheetTitle, +} from "@/lib/shared/components/layout/contentSheet"; +import { GridColumnStack } from "@/lib/shared/components/layout/grid"; + +export function HomeContent() { + const { t } = useTranslation(["medicalRegistry/overview"]); + + return ( + <GridColumnStack> + <ContentSheet> + <ContentSheetTitle>{t("content.title")}</ContentSheetTitle> + <Typography>{t("content.information")}</Typography> + <Typography>{t("content.requiredFieldsHint")}</Typography> + </ContentSheet> + </GridColumnStack> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/home/HomeSidePanel.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/home/HomeSidePanel.tsx new file mode 100644 index 0000000000000000000000000000000000000000..3e6263ffb75a7b16a944cf6fc2584643d1f3b9c8 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/home/HomeSidePanel.tsx @@ -0,0 +1,32 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; +import { Typography } from "@mui/joy"; + +import { useCitizenRoutes } from "@/lib/businessModules/medicalRegistry/shared/routes"; +import { useTranslation } from "@/lib/i18n/client"; +import { + ContentSheet, + ContentSheetTitle, +} from "@/lib/shared/components/layout/contentSheet"; + +export function HomeSidePanel() { + const { t } = useTranslation(["medicalRegistry/overview"]); + const citizenRoutes = useCitizenRoutes(); + + return ( + <ContentSheet> + <ContentSheetTitle>{t("sidebar.title")}</ContentSheetTitle> + <Typography>{t("sidebar.content")}</Typography> + <InternalLinkButton + color="primary" + href={citizenRoutes.professionalRegistrationForm} + > + {t("sidebar.registrationForm")} + </InternalLinkButton> + </ContentSheet> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm.tsx new file mode 100644 index 0000000000000000000000000000000000000000..77844300c36dd0677242e38d347e909d863efc40 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm.tsx @@ -0,0 +1,42 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { mapCreateProcedureRequest } from "@eshg/lib-portal/businessModules/medicalRegistry/api/mapper"; +import { + MedicalRegistryCreateProcedureFormValues, + initialValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { Formik } from "formik"; + +import { useCreateProcedure } from "@/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries"; +import { ProfessionalRegistrationStepper } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationStepper"; + +export const requiredFieldMessageKey = "validations.requiredField"; + +interface ProfessionalRegistrationFormProps { + setShowSuccessPage: (showSuccessPage: boolean) => void; +} + +export function ProfessionalRegistrationForm( + props: ProfessionalRegistrationFormProps, +) { + const createProcedure = useCreateProcedure(); + + async function handleSubmit( + values: MedicalRegistryCreateProcedureFormValues, + ) { + await createProcedure.mutateAsync(mapCreateProcedureRequest(values), { + onSuccess: () => props.setShowSuccessPage(true), + }); + } + + return ( + <Formik initialValues={initialValues} onSubmit={handleSubmit}> + {(formikProps) => ( + <ProfessionalRegistrationStepper formikProps={formikProps} /> + )} + </Formik> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationFormSuccessPage.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationFormSuccessPage.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e7f0ee3f50d2f1fca9bf995f93b7355f605d734f --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationFormSuccessPage.tsx @@ -0,0 +1,36 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Button, Typography } from "@mui/joy"; + +import { useTranslation } from "@/lib/i18n/client"; +import { PageTitle } from "@/lib/shared/components/layout/page"; + +interface ProfessionalRegistrationFormProps { + setShowSuccessPage: (showSuccessPage: boolean) => void; +} + +export function ProfessionalRegistrationFormSuccessPage( + props: ProfessionalRegistrationFormProps, +) { + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + return ( + <> + <PageTitle>{t("navigation.pageTitle")}</PageTitle> + <Typography level="h4" alignSelf="center"> + {t("successPage.content")} + </Typography> + <Button + onClick={() => props.setShowSuccessPage(false)} + sx={{ marginTop: 2 }} + > + {t("successPage.createNewEntry")} + </Button> + </> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationSidePanel.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationSidePanel.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5391a23e69431e8fd62a01b20cbe3226854a69c0 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationSidePanel.tsx @@ -0,0 +1,170 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { DownloadLink } from "@eshg/lib-portal/api/files/DownloadLink"; +import { useFileDownload } from "@eshg/lib-portal/api/files/download"; +import { + DataPrivacyFormValues, + WrittenConfirmationFormValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { useMultiStepForm } from "@eshg/lib-portal/components/form/MultiStepForm"; +import { BooleanRadioField } from "@eshg/lib-portal/components/formFields/BooleanRadioField"; +import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; +import { Button, Typography } from "@mui/joy"; +import { useField, useFormikContext } from "formik"; +import { isEmpty } from "remeda"; + +import { useMedicalRegistryPublicCitizenApi } from "@/lib/businessModules/medicalRegistry/api/clients"; +import { useCitizenRoutes } from "@/lib/businessModules/medicalRegistry/shared/routes"; +import { CheckboxField } from "@/lib/businessModules/travelMedicine/components/shared/components/formField/CheckboxField"; +import { useTranslation } from "@/lib/i18n/client"; +import { ConfirmationCheckboxField } from "@/lib/shared/components/form/ConfirmationCheckboxField"; +import { ContentSheet } from "@/lib/shared/components/layout/contentSheet"; +import { createFieldNameMapper } from "@/lib/shared/helpers/form"; + +export function ProfessionalRegistrationSidePanel() { + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + const { handleSubmit, validateForm, setTouched, touched } = + useFormikContext(); + const { currentStep, totalSteps, goForward, goBack } = useMultiStepForm(); + const citizenRoutes = useCitizenRoutes(); + + const writtenConfirmationForm = + createFieldNameMapper<WrittenConfirmationFormValues>( + "writtenConfirmationForm", + ); + + const [requestForWrittenConfirmation] = useField<boolean>( + writtenConfirmationForm("requestForWrittenConfirmation"), + ); + + const snackbar = useSnackbar(); + + return ( + <> + {currentStep === totalSteps && ( + <ContentSheet sx={{ marginBottom: 2 }}> + <Typography level="h2"> + {t("stepFour.sidePanel.confirmation")} + </Typography> + <BooleanRadioField + name={writtenConfirmationForm("requestForWrittenConfirmation")} + label={t("stepFour.sidePanel.label.writtenConfirmation")} + /> + {requestForWrittenConfirmation.value && ( + <> + <CheckboxField + name={writtenConfirmationForm("confirmationFee")} + label={t("stepFour.sidePanel.label.confirmationFee")} + required={t("validations.confirmation")} + /> + <CheckboxField + name={writtenConfirmationForm("confirmationByPost")} + label={t("stepFour.sidePanel.label.confirmationByPost")} + required={t("validations.confirmation")} + /> + </> + )} + </ContentSheet> + )} + + <ContentSheet> + {currentStep < totalSteps && ( + <Button + onClick={async () => { + const errors = await validateForm(); + await setTouched({ ...touched, ...errors }); + + if (isEmpty(errors)) { + goForward(); + } else { + snackbar.error(t("snackbar.errors")); + } + }} + > + {t("navigation.continue")} + </Button> + )} + {currentStep === totalSteps && ( + <> + <Typography level="h2"> + {t("stepFour.sidePanel.completion")} + </Typography> + <PrivacyPolicyConfirmationForm /> + <Button onClick={() => handleSubmit()}> + {t("navigation.submit")} + </Button> + </> + )} + {currentStep > 1 && ( + <Button variant="outlined" onClick={goBack}> + {t("navigation.back")} + </Button> + )} + <InternalLinkButton + variant="soft" + color="neutral" + href={citizenRoutes.home} + > + {t("navigation.abort")} + </InternalLinkButton> + </ContentSheet> + </> + ); +} + +function PrivacyPolicyConfirmationForm() { + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + const dataPrivacyForm = + createFieldNameMapper<DataPrivacyFormValues>("dataPrivacyForm"); + + const publicCitizenApi = useMedicalRegistryPublicCitizenApi(); + const privacyNoticeFile = useFileDownload(() => + publicCitizenApi.getPrivacyNoticeRaw(), + ); + const privacyPolicyFile = useFileDownload(() => + publicCitizenApi.getPrivacyPolicyRaw(), + ); + + return ( + <> + <ConfirmationCheckboxField + name={dataPrivacyForm("agreedDataPrivacyNotice")} + label={t("stepFour.sidePanel.label.agreedDataPrivacyNotice")} + descriptionText={ + <DownloadLink + downloadContainerRef={privacyNoticeFile.downloadContainerRef} + fontSize="sm" + onDownload={() => privacyNoticeFile.download()} + > + {t("stepFour.sidePanel.links.dataPrivacyNotice")} + </DownloadLink> + } + required={t("validations.confirmation")} + /> + + <ConfirmationCheckboxField + name={dataPrivacyForm("agreedDataPrivacyPolicy")} + label={t("stepFour.sidePanel.label.agreedDataPrivacyPolicy")} + descriptionText={ + <DownloadLink + downloadContainerRef={privacyPolicyFile.downloadContainerRef} + fontSize="sm" + onDownload={() => privacyPolicyFile.download()} + > + {t("stepFour.sidePanel.links.dataPrivacyPolicy")} + </DownloadLink> + } + required={t("validations.confirmation")} + /> + </> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationStepper.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationStepper.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5787c26a0d0cb2415ffe3e04f1c243b42d638c56 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationStepper.tsx @@ -0,0 +1,125 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiTypeOfChange } from "@eshg/citizen-portal-api/medicalRegistry"; +import { + GeneralInformationFormValues, + MedicalRegistryCreateProcedureFormValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { shouldEnable } from "@eshg/lib-portal/businessModules/medicalRegistry/sections"; +import { FormPlus } from "@eshg/lib-portal/components/form/FormPlus"; +import { + MultiStepForm, + StepFactory, +} from "@eshg/lib-portal/components/form/MultiStepForm"; +import { Typography } from "@mui/joy"; +import { FormikProps, useField } from "formik"; + +import { theme } from "@/lib/baseModule/theme/theme"; +import { ProfessionalRegistrationSidePanel } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationSidePanel"; +import { ProfessionalRegistrationFormStepFour } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepFour"; +import { ProfessionalRegistrationFormStepThree } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepThree"; +import { useTranslation } from "@/lib/i18n/client"; +import { TwoColumnGrid } from "@/lib/shared/components/layout/grid"; +import { PageTitle } from "@/lib/shared/components/layout/page"; +import { createFieldNameMapper } from "@/lib/shared/helpers/form"; + +import { ProfessionalRegistrationFormStepOne } from "./steps/ProfessionalRegistrationFormStepOne"; +import { ProfessionalRegistrationFormStepTwo } from "./steps/ProfessionalRegistrationFormStepTwo"; + +interface ProfessionalRegistrationStepperProps { + formikProps: FormikProps<MedicalRegistryCreateProcedureFormValues>; +} + +export function ProfessionalRegistrationStepper( + props: ProfessionalRegistrationStepperProps, +) { + const generalInformationForm = + createFieldNameMapper<GeneralInformationFormValues>( + "generalInformationForm", + ); + + const [changeType] = useField<ApiTypeOfChange>( + generalInformationForm("changeType"), + ); + + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + return ( + <MultiStepForm<MedicalRegistryCreateProcedureFormValues> + steps={steps(changeType.value)} + > + {({ Outlet, currentStep, totalSteps }) => ( + <> + <PageTitle + toolbar={ + <StepIndicator + currentStep={currentStep} + totalSteps={totalSteps} + /> + } + > + {t("navigation.pageTitle")} + </PageTitle> + <FormPlus> + <TwoColumnGrid + content={<Outlet {...props.formikProps} />} + sidePanel={<ProfessionalRegistrationSidePanel />} + /> + </FormPlus> + </> + )} + </MultiStepForm> + ); +} + +function steps(changeType: ApiTypeOfChange) { + const steps: StepFactory<MedicalRegistryCreateProcedureFormValues>[] = [ + ProfessionalRegistrationFormStepOne, + ]; + + if (shouldEnable("profession", changeType)) { + steps.push(ProfessionalRegistrationFormStepTwo); + } + + if ( + shouldEnable("practice", changeType) || + shouldEnable("employees", changeType) + ) { + steps.push(ProfessionalRegistrationFormStepThree); + } + + steps.push(ProfessionalRegistrationFormStepFour); + + return steps; +} + +function StepIndicator({ + currentStep, + totalSteps, +}: { + currentStep: number; + totalSteps: number; +}) { + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + return ( + <Typography + component="span" + data-testid="multiStepFormIndicator" + level="h4" + sx={{ + color: theme.palette.text.tertiary, + }} + > + {t("navigation.step")}{" "} + <span data-testid="currentFormStep">{currentStep}</span>{" "} + {t("navigation.stepsRemaining")} {totalSteps} + </Typography> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepFour.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepFour.tsx new file mode 100644 index 0000000000000000000000000000000000000000..206ef2c3444a6172573614ac7b3fe6602a503b1b --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepFour.tsx @@ -0,0 +1,229 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiCountryCode, + ApiTypeOfChange, +} from "@eshg/citizen-portal-api/medicalRegistry"; +import { + EmployeeInformationFormValues, + GeneralInformationFormValues, + PersonalInformationFormValues, + RequiredDocumentsFormValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { shouldEnable } from "@eshg/lib-portal/businessModules/medicalRegistry/sections"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; +import { validateFile } from "@eshg/lib-portal/helpers/validators"; +import { Add, DeleteOutlined } from "@mui/icons-material"; +import { Button, Grid, IconButton, Sheet, Stack, Typography } from "@mui/joy"; +import { FieldArray, useField } from "formik"; +import { Fragment } from "react"; + +import { requiredFieldMessageKey } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm"; +import { useTranslation } from "@/lib/i18n/client"; +import { + FileField, + FileFieldProps, +} from "@/lib/shared/components/form/file/FileField"; +import { ContentSheet } from "@/lib/shared/components/layout/contentSheet"; +import { createFieldNameMapper } from "@/lib/shared/helpers/form"; + +const MAX_OTHER_RELEVANT_DOCUMENTS = 3; +const BYTES_PER_MB = 1048576; +const MAX_FILE_SIZE = 25 * BYTES_PER_MB; + +export function ProfessionalRegistrationFormStepFour() { + const requiredDocumentsForm = + createFieldNameMapper<RequiredDocumentsFormValues>("requiredDocumentsForm"); + + const [otherRelevantDocuments] = useField<File[]>( + requiredDocumentsForm("otherRelevantDocuments"), + ); + + const employeeInformationForm = + createFieldNameMapper<EmployeeInformationFormValues>( + "employeeInformationForm", + ); + + const [employeesEmployed] = useField<boolean>( + employeeInformationForm("employeesEmployed"), + ); + + const personalInformationForm = + createFieldNameMapper<PersonalInformationFormValues>( + "personalInformationForm", + ); + + const [nationality] = useField<ApiCountryCode>( + personalInformationForm("nationality"), + ); + + const generalInformationForm = + createFieldNameMapper<GeneralInformationFormValues>( + "generalInformationForm", + ); + + const [changeType] = useField<ApiTypeOfChange>( + generalInformationForm("changeType"), + ); + + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + return ( + <Stack spacing={3}> + <ContentSheet> + <Typography level="h2"> + {t("stepFour.contentSheetOne.pageTitle")} + </Typography> + <Sheet variant="soft"> + <TranslatedFileField + name={requiredDocumentsForm("identificationDocument")} + label={t("stepFour.contentSheetOne.label.identificationDocument")} + accept={FileType.Jpeg} + required={t(requiredFieldMessageKey)} + validate={validateFile(FileType.Jpeg.extensions, MAX_FILE_SIZE)} + /> + </Sheet> + {shouldEnable("optionalDocuments", changeType.value) && ( + <Sheet variant="soft"> + <TranslatedFileField + name={requiredDocumentsForm("license")} + label={t("stepFour.contentSheetOne.label.license")} + accept={FileType.Jpeg} + validate={validateFile(FileType.Jpeg.extensions, MAX_FILE_SIZE)} + /> + </Sheet> + )} + {shouldEnable("optionalDocuments", changeType.value) && + nationality.value !== ApiCountryCode.De && ( + <Sheet variant="soft"> + <TranslatedFileField + name={requiredDocumentsForm("workPermit")} + label={t("stepFour.contentSheetOne.label.workPermit")} + accept={FileType.Jpeg} + required={t(requiredFieldMessageKey)} + validate={validateFile(FileType.Jpeg.extensions, MAX_FILE_SIZE)} + /> + </Sheet> + )} + + {shouldEnable("optionalDocuments", changeType.value) && ( + <FieldArray name={requiredDocumentsForm("otherRelevantDocuments")}> + {({ push, remove }) => ( + <> + {otherRelevantDocuments.value.map((values, index) => ( + <Fragment key={index}> + <Stack + direction="row" + gap={2} + alignItems="flex-start" + sx={{ + ">:first-child": { flexGrow: 1 }, + }} + > + <Sheet variant="soft"> + <TranslatedFileField + name={`requiredDocumentsForm.otherRelevantDocuments.${index}`} + label={t( + "stepFour.contentSheetOne.label.otherRelevantDocument", + )} + accept={FileType.Jpeg} + required={t(requiredFieldMessageKey)} + validate={validateFile( + FileType.Jpeg.extensions, + MAX_FILE_SIZE, + )} + /> + </Sheet> + + <IconButton + aria-label="Dokument löschen" + color="neutral" + variant="outlined" + sx={{ + marginTop: "27px", + "--Icon-fontSize": (theme) => theme.fontSize.xl, + }} + onClick={() => remove(index)} + > + <DeleteOutlined /> + </IconButton> + </Stack> + </Fragment> + ))} + <Grid xxs={6}> + {otherRelevantDocuments.value.length < + MAX_OTHER_RELEVANT_DOCUMENTS && ( + <Button onClick={() => push(null)} startDecorator={<Add />}> + {t( + "stepFour.contentSheetOne.label.anotherRelevantDocument", + )} + </Button> + )} + </Grid> + </> + )} + </FieldArray> + )} + </ContentSheet> + + {shouldEnable("employees", changeType.value) && + employeesEmployed.value && ( + <ContentSheet> + <Typography level="h2"> + {t("stepFour.contentSheetTwo.pageTitle")} + </Typography> + <Typography level="body-md"> + {t("stepFour.contentSheetTwo.hint")} + </Typography> + <Sheet variant="soft"> + <TranslatedFileField + name={employeeInformationForm("employeesFile")} + label={t("stepFour.contentSheetTwo.label.employeesFile")} + accept={FileType.Jpeg} + required={t(requiredFieldMessageKey)} + validate={validateFile(FileType.Jpeg.extensions, MAX_FILE_SIZE)} + /> + </Sheet> + </ContentSheet> + )} + </Stack> + ); +} + +function TranslatedFileField( + props: Omit< + FileFieldProps, + | "placeholder" + | "placeholderSelected" + | "fileInformationTranslation" + | "helperText" + | "removeFile" + >, +) { + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + return ( + <FileField + name={props.name} + label={props.label} + accept={props.accept} + required={props.required} + placeholder={t("stepFour.fileField.placeholder")} + placeholderSelected={t("stepFour.fileField.placeholderSelected")} + fileInformationTranslation={{ + file: t("stepFour.fileField.file"), + size: t("stepFour.fileField.size"), + }} + helperText={t("stepFour.fileField.helperText")} + removeFile={t("stepFour.fileField.removeFile")} + validate={props.validate} + /> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepOne.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepOne.tsx new file mode 100644 index 0000000000000000000000000000000000000000..7624f4b043c83b07208f5cdbc2f407216398ffdc --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepOne.tsx @@ -0,0 +1,221 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { changeTypeNames } from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; +import { + GeneralInformationFormValues, + PersonalInformationFormValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; +import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { PhoneNumberField } from "@eshg/lib-portal/components/formFields/PhoneNumberField"; +import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { GENDER_OPTIONS } from "@eshg/lib-portal/components/formFields/constants"; +import { COUNTRY_CODE_OPTIONS } from "@eshg/lib-portal/components/formFields/countryCodes"; +import { buildEnumOptions } from "@eshg/lib-portal/helpers/form"; +import { validateLength } from "@eshg/lib-portal/helpers/validators"; +import { Grid, Typography } from "@mui/joy"; +import { useMemo } from "react"; + +import { requiredFieldMessageKey } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm"; +import { SelectionOption } from "@/lib/businessModules/travelMedicine/components/shared/CountryFieldMulti"; +import { useTranslation } from "@/lib/i18n/client"; +import { byBreakpoint } from "@/lib/shared/breakpoints"; +import { ContentSheet } from "@/lib/shared/components/layout/contentSheet"; +import { createFieldNameMapper } from "@/lib/shared/helpers/form"; + +const changeTypeNamesOptions = buildEnumOptions(changeTypeNames); + +export function ProfessionalRegistrationFormStepOne() { + const generalInformationForm = + createFieldNameMapper<GeneralInformationFormValues>( + "generalInformationForm", + ); + + const personalInformationForm = + createFieldNameMapper<PersonalInformationFormValues>( + "personalInformationForm", + ); + + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + const translatedGenderOptions: SelectionOption[] = useMemo( + () => + GENDER_OPTIONS.map((option) => { + return { + value: option.value, + label: t(`options.gender.${option.value}`), + }; + }), + [t], + ); + + const translatedCountryCodeOptions: SelectionOption[] = useMemo( + () => + COUNTRY_CODE_OPTIONS.map((option) => { + return { + value: option.value, + label: t(`options.countries.${option.value}`), + }; + }), + [t], + ); + + const translatedChangeTypeNamesOptions: SelectionOption[] = useMemo( + () => + changeTypeNamesOptions.map((option) => { + return { + value: option.value, + label: t(`options.changeTypeNames.${option.value}`), + }; + }), + [t], + ); + + return ( + <> + <ContentSheet sx={{ marginBottom: 2 }}> + <Typography level="h2"> + {t("stepOne.contentSheetOne.pageTitle")} + </Typography> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <SelectField + name={generalInformationForm("changeType")} + label={t("stepOne.contentSheetOne.label.changeType")} + options={translatedChangeTypeNamesOptions} + required={t(requiredFieldMessageKey)} + /> + </Grid> + </Grid> + </ContentSheet> + <ContentSheet> + <Typography level="h2"> + {t("stepOne.contentSheetTwo.pageTitle")} + </Typography> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("title")} + label={t("stepOne.contentSheetTwo.label.title")} + validate={validateLength(1, 119)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <SelectField + name={personalInformationForm("gender")} + label={t("stepOne.contentSheetTwo.label.gender")} + options={translatedGenderOptions} + required={t(requiredFieldMessageKey)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("firstName")} + label={t("stepOne.contentSheetTwo.label.firstName")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 120)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("lastName")} + label={t("stepOne.contentSheetTwo.label.lastName")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 80)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("birthName")} + label={t("stepOne.contentSheetTwo.label.birthName")} + validate={validateLength(1, 40)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <DateField + name={personalInformationForm("birthDate")} + label={t("stepOne.contentSheetTwo.label.birthDate")} + required={t(requiredFieldMessageKey)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("birthPlace")} + label={t("stepOne.contentSheetTwo.label.birthPlace")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 50)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <SelectField + name={personalInformationForm("nationality")} + label={t("stepOne.contentSheetTwo.label.nationality")} + required={t(requiredFieldMessageKey)} + options={translatedCountryCodeOptions} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("street")} + label={t("stepOne.contentSheetTwo.label.street")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 55)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("houseNumber")} + label={t("stepOne.contentSheetTwo.label.houseNumber")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 11)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("postalCode")} + label={t("stepOne.contentSheetTwo.label.postalCode")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 20)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={personalInformationForm("city")} + label={t("stepOne.contentSheetTwo.label.city")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 50)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <SelectField + name={personalInformationForm("country")} + label={t("stepOne.contentSheetTwo.label.country")} + required={t(requiredFieldMessageKey)} + options={translatedCountryCodeOptions} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <EmailField + name={personalInformationForm("email")} + label={t("stepOne.contentSheetTwo.label.email")} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <PhoneNumberField + name={personalInformationForm("phoneNumber")} + label={t("stepOne.contentSheetTwo.label.phoneNumber")} + required={t(requiredFieldMessageKey)} + validate={validateLength(1, 23)} + /> + </Grid> + </Grid> + </ContentSheet> + </> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepThree.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepThree.tsx new file mode 100644 index 0000000000000000000000000000000000000000..66b31597163280c349d9ad560eda18df7a6ae9eb --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepThree.tsx @@ -0,0 +1,201 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiTypeOfChange } from "@eshg/citizen-portal-api/medicalRegistry"; +import { + EmployeeInformationFormValues, + GeneralInformationFormValues, + PracticeInformationFormValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { shouldEnable } from "@eshg/lib-portal/businessModules/medicalRegistry/sections"; +import { Alert } from "@eshg/lib-portal/components/Alert"; +import { BooleanRadioField } from "@eshg/lib-portal/components/formFields/BooleanRadioField"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; +import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { + validateLength, + validateNumber, +} from "@eshg/lib-portal/helpers/validators"; +import { Grid, Typography } from "@mui/joy"; +import { useField } from "formik"; + +import { requiredFieldMessageKey } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm"; +import { useTranslation } from "@/lib/i18n/client"; +import { allBreakpoints, byBreakpoint } from "@/lib/shared/breakpoints"; +import { ContentSheet } from "@/lib/shared/components/layout/contentSheet"; +import { createFieldNameMapper } from "@/lib/shared/helpers/form"; + +export function ProfessionalRegistrationFormStepThree() { + const practiceInformationForm = + createFieldNameMapper<PracticeInformationFormValues>( + "practiceInformationForm", + ); + + const [proprietaryPractice] = useField<boolean>( + practiceInformationForm("proprietaryPractice"), + ); + + const employeeInformationForm = + createFieldNameMapper<EmployeeInformationFormValues>( + "employeeInformationForm", + ); + + const generalInformationForm = + createFieldNameMapper<GeneralInformationFormValues>( + "generalInformationForm", + ); + + const [changeType] = useField<ApiTypeOfChange>( + generalInformationForm("changeType"), + ); + + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + const forceProprietaryPractice = !shouldEnable( + "practiceChoice", + changeType.value, + ); + + return ( + <> + <ContentSheet> + <Typography level="h2">{t("stepThree.pageTitle")}</Typography> + + {shouldEnable("practice", changeType.value) && ( + <> + {forceProprietaryPractice ? ( + <Alert color="primary" message={t("stepThree.hint")} /> + ) : ( + <> + <Typography level="h4"> + {t("stepThree.subTitle.proprietaryPractice")} + </Typography> + <BooleanRadioField + name={practiceInformationForm("proprietaryPractice")} + trueLabel={t("options.yes")} + falseLabel={t("options.no")} + /> + </> + )} + + {(forceProprietaryPractice || proprietaryPractice.value) && ( + <> + <Typography level="h4"> + {t("stepThree.subTitle.practiceInformation")} + </Typography> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid {...allBreakpoints(12)}> + <InputField + name={practiceInformationForm("practiceName")} + label={t("stepThree.label.practiceName")} + required={requiredFieldMessageKey} + validate={validateLength(1, 300)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={practiceInformationForm("street")} + label={t("stepThree.label.street")} + required={requiredFieldMessageKey} + validate={validateLength(1, 55)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={practiceInformationForm("houseNumber")} + label={t("stepThree.label.houseNumber")} + required={requiredFieldMessageKey} + validate={validateLength(1, 11)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={practiceInformationForm("postalCode")} + label={t("stepThree.label.postalCode")} + required={requiredFieldMessageKey} + validate={validateLength(1, 20)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={practiceInformationForm("city")} + label={t("stepThree.label.city")} + required={requiredFieldMessageKey} + validate={validateLength(1, 50)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={practiceInformationForm("phoneNumber")} + label={t("stepThree.label.phoneNumber")} + required={requiredFieldMessageKey} + validate={validateLength(1, 23)} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <EmailField + name={practiceInformationForm("email")} + label={t("stepThree.label.email")} + required={requiredFieldMessageKey} + /> + </Grid> + <Grid {...allBreakpoints(12)}> + <InputField + name={practiceInformationForm("website")} + label={t("stepThree.label.website")} + validate={validateLength(6, 254)} + /> + </Grid> + <Grid {...allBreakpoints(12)}> + <InputField + name={practiceInformationForm("openingHours")} + label={t("stepThree.label.openingHours")} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={practiceInformationForm("institutionIdentifier")} + label={t("stepThree.label.institutionIdentifier")} + validate={validateNumber} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={practiceInformationForm("establishmentNumber")} + label={t("stepThree.label.establishmentNumber")} + validate={validateNumber} + /> + </Grid> + </Grid> + + <BooleanRadioField + name={practiceInformationForm("healthInsuranceAuthorization")} + label={t("stepThree.subTitle.healthInsuranceAuthorization")} + trueLabel={t("options.yes")} + falseLabel={t("options.no")} + /> + </> + )} + </> + )} + + {shouldEnable("employees", changeType.value) && ( + <> + <Typography level="h4"> + {t("stepThree.label.employeesEmployed")} + </Typography> + <BooleanRadioField + name={employeeInformationForm("employeesEmployed")} + trueLabel={t("options.yes")} + falseLabel={t("options.no")} + /> + </> + )} + </ContentSheet> + </> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepTwo.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepTwo.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a2abce109f48b86c97ea01efbc5e95d133b1b0d8 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/steps/ProfessionalRegistrationFormStepTwo.tsx @@ -0,0 +1,180 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiEmploymentStatus, + ApiEmploymentType, + ApiTypeOfChange, +} from "@eshg/citizen-portal-api/medicalRegistry"; +import { professionalTitleNames } from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; +import { + GeneralInformationFormValues, + OccupationalInformationFormValues, + ProfessionalismInformationFormValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { shouldEnable } from "@eshg/lib-portal/businessModules/medicalRegistry/sections"; +import { lifetimeDoctorNumberValidator } from "@eshg/lib-portal/businessModules/medicalRegistry/validator"; +import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; +import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { buildEnumOptions } from "@eshg/lib-portal/helpers/form"; +import { Grid, Radio, Typography } from "@mui/joy"; +import { useField } from "formik"; +import { useMemo } from "react"; + +import { requiredFieldMessageKey } from "@/lib/businessModules/medicalRegistry/pages/professionalRegistrationForm/ProfessionalRegistrationForm"; +import { SelectionOption } from "@/lib/businessModules/travelMedicine/components/shared/CountryFieldMulti"; +import { RadioGroupField } from "@/lib/businessModules/travelMedicine/components/shared/components/formField/RadioGroupField"; +import { useTranslation } from "@/lib/i18n/client"; +import { byBreakpoint } from "@/lib/shared/breakpoints"; +import { ContentSheet } from "@/lib/shared/components/layout/contentSheet"; +import { createFieldNameMapper } from "@/lib/shared/helpers/form"; + +const professionalTitleNamesOptions = buildEnumOptions(professionalTitleNames); + +export function ProfessionalRegistrationFormStepTwo() { + const occupationalInformationForm = + createFieldNameMapper<OccupationalInformationFormValues>( + "occupationalInformationForm", + ); + + const professionalismInformationForm = + createFieldNameMapper<ProfessionalismInformationFormValues>( + "professionalismInformationForm", + ); + + const generalInformationForm = + createFieldNameMapper<GeneralInformationFormValues>( + "generalInformationForm", + ); + + const [changeType] = useField<ApiTypeOfChange>( + generalInformationForm("changeType"), + ); + + const { t } = useTranslation([ + "medicalRegistry/professionalRegistrationForm", + ]); + + const translatedProfessionalTitleNamesOptions: SelectionOption[] = useMemo( + () => + professionalTitleNamesOptions + .map((option) => { + return { + value: option.value, + label: t(`options.professionalTitleNames.${option.value}`), + }; + }) + .sort((a, b) => a.label.localeCompare(b.label)), + [t], + ); + + return ( + <> + <ContentSheet> + <Typography level="h2">{t("stepTwo.pageTitle")}</Typography> + {shouldEnable("profession", changeType.value) && ( + <> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <SelectField + name={occupationalInformationForm("professionalTitle")} + label={t("stepTwo.label.professionalTitle")} + options={translatedProfessionalTitleNamesOptions} + required={requiredFieldMessageKey} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={occupationalInformationForm("fieldOfExpertise")} + label={t("stepTwo.label.fieldOfExpertise")} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={occupationalInformationForm("specialistTitle")} + label={t("stepTwo.label.specialistTitle")} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={occupationalInformationForm("furtherTraining")} + label={t("stepTwo.label.furtherTraining")} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={occupationalInformationForm("qualifications")} + label={t("stepTwo.label.qualifications")} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={occupationalInformationForm("lifetimeDoctorNumber")} + label={t("stepTwo.label.lifetimeDoctorNumber")} + validate={lifetimeDoctorNumberValidator} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <DateField + name={occupationalInformationForm("approbationGrantedOn")} + label={t("stepTwo.label.approbationGrantedOn")} + required={requiredFieldMessageKey} + /> + </Grid> + <Grid {...byBreakpoint({ mobile: 12, desktop: 6 })}> + <InputField + name={occupationalInformationForm( + "approbationIssuingAuthority", + )} + label={t("stepTwo.label.approbationIssuingAuthority")} + required={requiredFieldMessageKey} + /> + </Grid> + </Grid> + + <Typography level="h4" marginTop={3}> + {t("stepTwo.subTitle.professionalism")} + </Typography> + <RadioGroupField + name={professionalismInformationForm("employmentType")} + label={t("stepTwo.label.employmentType")} + orientation="horizontal" + required={requiredFieldMessageKey} + > + <Radio + value={ApiEmploymentType.FullTime} + label={t("options.employmentType.FULL_TIME")} + /> + <Radio + value={ApiEmploymentType.PartTime} + label={t("options.employmentType.PART_TIME")} + /> + </RadioGroupField> + <RadioGroupField + name={professionalismInformationForm("employmentStatus")} + label={t("stepTwo.label.employmentStatus")} + orientation="horizontal" + required={requiredFieldMessageKey} + > + <Radio + value={ApiEmploymentStatus.SelfEmployed} + label={t("options.employmentStatus.SELF_EMPLOYED")} + /> + <Radio + value={ApiEmploymentStatus.Freelance} + label={t("options.employmentStatus.FREELANCE")} + /> + <Radio + value={ApiEmploymentStatus.Employee} + label={t("options.employmentStatus.EMPLOYEE")} + /> + </RadioGroupField> + </> + )} + </ContentSheet> + </> + ); +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/shared/navigationItems.tsx b/citizen-portal/src/lib/businessModules/medicalRegistry/shared/navigationItems.tsx new file mode 100644 index 0000000000000000000000000000000000000000..6c0c7d54ef96c6ce320efb01a5590eb58d1eab04 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/shared/navigationItems.tsx @@ -0,0 +1,45 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiMedicalRegistryFeature } from "@eshg/citizen-portal-api/medicalRegistry"; +import { StickyNote2Outlined } from "@mui/icons-material"; + +import { NavigationItem } from "@/lib/baseModule/components/layout/types"; +import { useIsNewFeatureEnabled } from "@/lib/businessModules/medicalRegistry/api/queries/featureTogglesApi"; +import { useTranslation } from "@/lib/i18n/client"; + +import { CitizenRoutes, useCitizenRoutes } from "./routes"; + +export function useCitizenNavigationItems(): NavigationItem[] { + const citizenRoutes: CitizenRoutes = useCitizenRoutes(); + const { t } = useTranslation("medicalRegistry/nav"); + + try { + const citizenPortalEnabled = useIsNewFeatureEnabled( + ApiMedicalRegistryFeature.CitizenPortalEnabled, + ); + + return citizenPortalEnabled + ? [ + { + name: t("medicalRegistryTitle"), + subItems: [ + { + name: t("person.home"), + href: citizenRoutes.home, + icon: StickyNote2Outlined, + }, + ], + }, + ] + : []; + } catch { + return []; + } +} + +export function useOrganizationNavigationItems(): NavigationItem[] { + return []; +} diff --git a/citizen-portal/src/lib/businessModules/medicalRegistry/shared/routes.ts b/citizen-portal/src/lib/businessModules/medicalRegistry/shared/routes.ts new file mode 100644 index 0000000000000000000000000000000000000000..ee38e30509e918b047e00e86cc0f7d6691732071 --- /dev/null +++ b/citizen-portal/src/lib/businessModules/medicalRegistry/shared/routes.ts @@ -0,0 +1,27 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { defineRoutes } from "@eshg/lib-portal/helpers/routes"; + +import { routes as baseRoutes } from "@/lib/baseModule/shared/routes"; +import { SupportedLanguage } from "@/lib/i18n/options"; +import { useGivenLang } from "@/lib/i18n/useLang"; + +export function citizenRoutes(locale: SupportedLanguage | undefined) { + return defineRoutes( + `${baseRoutes(locale).citizenPath.index}/berufskartei`, + (medicalRegistryPath) => ({ + home: medicalRegistryPath("/"), + professionalRegistrationForm: medicalRegistryPath("/meldeformular"), + }), + ); +} + +export type CitizenRoutes = ReturnType<typeof citizenRoutes>; + +export function useCitizenRoutes() { + const locale = useGivenLang(); + return citizenRoutes(locale); +} diff --git a/citizen-portal/src/lib/businessModules/officialMedicalService/api/clients.ts b/citizen-portal/src/lib/businessModules/officialMedicalService/api/clients.ts index 58cff1dfcbeec00fa50645cf8cfe5b97ae374689..eaf67b8aa8f96ae32d25cac81649c6a157ddcab1 100644 --- a/citizen-portal/src/lib/businessModules/officialMedicalService/api/clients.ts +++ b/citizen-portal/src/lib/businessModules/officialMedicalService/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys.ts b/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys.ts index 4e1f26f31336960bc4ad556c675016abeaa2921d..6afdac940f1dac7e2133bc3071aad17d021c0524 100644 --- a/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys.ts +++ b/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/citizenPublicApi.ts b/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/citizenPublicApi.ts index 86243d04999553211123b2cd9b16f0cab063ac4e..280fe9f7107cce5c81e1ef4b91609f38877185a7 100644 --- a/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/citizenPublicApi.ts +++ b/citizen-portal/src/lib/businessModules/officialMedicalService/api/queries/citizenPublicApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageContent.tsx b/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageContent.tsx index e0e10352554e745ff9088b2634fd6a8425396a9f..60e0cc36d57673e6838cd3ac6da222d400951e2b 100644 --- a/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageContent.tsx +++ b/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageSidePanel.tsx b/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageSidePanel.tsx index cb7dbe9a2ad95a4c90e49495740f917b623d9831..e1d7fa297e7975cadfb4ef232a83345fc5ed5f4d 100644 --- a/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/officialMedicalService/components/landing/LandingpageSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/officialMedicalService/shared/navigationItems.tsx b/citizen-portal/src/lib/businessModules/officialMedicalService/shared/navigationItems.tsx index 25f2933f27ff1dd75f1d2073d6d8d59ffdc39a7e..20a1b3902eb628f9d3795a904042b6d7ac76f974 100644 --- a/citizen-portal/src/lib/businessModules/officialMedicalService/shared/navigationItems.tsx +++ b/citizen-portal/src/lib/businessModules/officialMedicalService/shared/navigationItems.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts b/citizen-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts index 2c094d5e042b4e514b58a58c3480067fe966f9d5..6d5db129b4c25f8260a0ae9c0b7a344596198986 100644 --- a/citizen-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts +++ b/citizen-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/clients.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/clients.ts index aa965326921e6f6896c7a6c5e927cb9bee541d2d..ab6e6cbfa6fc10e3eb6facc86eaafa57d1c9a392 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/clients.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts index 2e711113e7a137fc150bfec66977b02177db16eb..985e2c4d02680a200c5a8f75cf5e3570bbc6790c 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryChild.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryChild.ts index 7361b5cf2e7c5d6d1fdbf7023a4af686b3fb471b..cf9df939bb20e115bd4e92e4ae7363ce25531511 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryChild.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryChild.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryProcedure.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryProcedure.ts index 53fbc1c53b9850d0dce08938258d90c6b7aaded8..1ef9e27ef2ee34275e0d269e8dcb9e961d1b856b 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryProcedure.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/models/SchoolEntryProcedure.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryCitizenApi.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryCitizenApi.ts index 10a9d18e219bc35f51ef8d96fb32d78ddc7311fc..24d53ed81cd626b8d73f743ebf140cc88d0cc629 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryCitizenApi.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryCitizenApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts index be9df6c374867203ba9822c6ac267ef8e5bc1bdd..469cdfd8f4a02991e85f8203603851396a0700dd 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/publicCitizenApi.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/publicCitizenApi.ts index dbc501c9a3408d9b7c1fdb8593dd0381d8499f54..4ba98bc873d2bc1834d16c9ff399b26540d7a24e 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/publicCitizenApi.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/publicCitizenApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryCitizenApi.ts b/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryCitizenApi.ts index 89b4bc1dc059827a2e82377f01ca5da9ef026cee..89c40b989ddb7774a714d4842c83c6c6dda092e5 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryCitizenApi.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryCitizenApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/anamnesis.json b/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/anamnesis.json index ec24574f317757dc37fe03fd3267d3f76cde304a..c8646612eef48a9e77fd78047894036c20f65485 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/anamnesis.json +++ b/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/anamnesis.json @@ -1,6 +1,6 @@ { - "title": "School Enrollment Examination Anamnesis Form", - "information": "Anamnesis data can be entered here before the examination appointment. Saving the entries is only possible once and cannot be corrected later.", + "title": "School Enrollment Examination Medical History Form", + "information": "Medical history data can be entered here before the examination appointment. These entries can be saved once and cannot be corrected later.", "step": "Step", "stepsRemaining": "of", "result": { diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/appointment.json b/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/appointment.json index 53c12ca23fefafdd721e3d9630a35234cdfba75f..a8e26cbb6d27b7dbf866c7b313d45b78a1d92539 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/appointment.json +++ b/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/appointment.json @@ -4,7 +4,7 @@ "title": "Process Closed", "message": "The appointment can no longer be changed as the process has been closed." }, - "leave": "Leave My Area", + "leave": "Logout", "details": { "title": "Information", "name": "Name", @@ -13,11 +13,11 @@ "schoolEntryExamination": "School Enrollment Examination", "date": "Date", "time": "Time", - "clock": "o'clock", + "clock": "", "duration": "Duration", "place": "Location" }, - "preparations": "Preparation for the Appointment", + "preparations": "Appointment Preparations", "required": { "title": "Required Documents", "anamnesis": "Completed Parent Questionnaire", @@ -30,7 +30,7 @@ "title": "Parent Questionnaire", "notSubmitted": "Not yet submitted", "submitted": "Submitted", - "fillIn": "Fill in Now" + "fillIn": "Fill out Now" }, "update": { "title": "Can't make the appointment?", diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/updateAppointment.json b/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/updateAppointment.json index 1f813510281232e8bc7f9f8762514c39cf39292d..d27d5d2ab28d186574b7fa211d776ebff91e4d3c 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/updateAppointment.json +++ b/citizen-portal/src/lib/businessModules/schoolEntry/locales/en/updateAppointment.json @@ -3,7 +3,7 @@ "notAvailable": "No appointments currently available", "notAvailableMessage": "Our Health Department staff have already been informed. Please try again later.", "available": "Reschedule Appointment", - "availableMessage": "You can reschedule your appointment {{changesLeft}} more times.", + "availableMessage": "You are allowed to reschedule {{changesLeft}} more times.", "result": { "title": "Overview", "name": "Name", diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentContent.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentContent.tsx index 05d6ee3244c672c61dfcf167a5773e47a283d974..1b6ad762d359f948cf4aab761b859a6fa4ca591b 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentContent.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentPageTitle.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentPageTitle.tsx index 78b9612f1dbe67b88723cdf1b286332d3e53803f..7066d77fae84b90d3082b9d10ef9ffae7be2f807 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentPageTitle.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentPageTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentSidePanel.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentSidePanel.tsx index 3d19c2db354d34d112bd4190e905438d408f6083..f8795ee46d6eb5b4342f08b7fcd99941d35ca032 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/AppointmentSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentContent.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentContent.tsx index 843cc898bc9ccc1b481614238d64850b3e0cb38d..3249061f29df2edf65a02129fe38bf9d8cacf2e6 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentContent.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentForm.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentForm.tsx index 85426dd2bc5ac19ccd1cfd5911dcc28a2da19b05..a1dd5ec64487170d336934cd1fd1d96e4a6adc5f 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentForm.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentSidePanel.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentSidePanel.tsx index 90907d193e83d1e8878942f637df7023c793fdea..b7b7869d4d9b05f6253d08aca7cd0fdc7681f825 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/appointment/update-appointment/UpdateAppointmentSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisForm.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisForm.tsx index 20fed175072dc7a144fe5c621b864d9dadb8bf97..922728e5c05e43a98f3b10829523771445ddfd99 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisForm.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisSidePanel.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisSidePanel.tsx index 73f6171c86b9bae7667ae6397b34d2b64883f500..84e4b01ae4b88471686bd34b056657f2c36a4b02 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/CitizenAnamnesisSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepFour.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepFour.tsx index 61e9350016375db77cf09af6a81b8161aa9aa63b..e81011ea06228d65e866caba30ea0a6db42d7ad6 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepFour.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepFour.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepOne.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepOne.tsx index f4e31a6aebd02fa9651b30cd8aaf2158b616d55e..09b07b237076cc2325bd1c2a74b8566822d87958 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepOne.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepOne.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepThree.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepThree.tsx index 68ebf008b9b5dc5522c33c85be7e6877ea15f531..5778fabe50050926f7c1162cbbff43038bec4453 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepThree.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepThree.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepTwo.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepTwo.tsx index 305c06f8ce87bc371d1ee48c8551c1bc83843bc8..e519b58661a8e0f8a60d2b389f95c2b9f038a1d5 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepTwo.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/CitizenAnamnesisStepTwo.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenAnamnesisInfoAlert.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenAnamnesisInfoAlert.tsx index a9088c5961b3ca60e92ab844a4b73c3f508b7137..41aed23ce59c8d5b312a1260fdd5ff6ab4f70bbc 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenAnamnesisInfoAlert.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenAnamnesisInfoAlert.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenPortalMonthAndYearFields.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenPortalMonthAndYearFields.tsx index ddd986c94307c06ec0a0e5295c3562ff9320cd02..85367bf8b1b718d07d8bd291435187325074f020 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenPortalMonthAndYearFields.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/CitizenPortalMonthAndYearFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/LocalBooleanRadioField.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/LocalBooleanRadioField.tsx index 6be8babc7d3e8e99233a955fe6e11e8ece06599a..e70fee7e8830bb81b3e2d55b40164a14389fdc82 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/LocalBooleanRadioField.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/LocalBooleanRadioField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/QuarterWidthGrid.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/QuarterWidthGrid.tsx index c67c077c2046dd20d164a9d5cc69eade1641ad8e..9d0dc92e7872eec838c966f35ac313851610c5a6 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/QuarterWidthGrid.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/QuarterWidthGrid.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/ToggleableSection.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/ToggleableSection.tsx index 01639f51567c745f19f11de8b91d1a4a0067d8cf..0c510eaf3530807713f15e25ad2d9611e83e02f9 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/ToggleableSection.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/steps/components/ToggleableSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/translations.ts b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/translations.ts index d9b40efa79cbb981b0a919a7a41f8ff77de3a6fd..e0676af43791e830d3ce7718b056ea0aa6ae6aa1 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/translations.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/citizenAnamnesis/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageContent.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageContent.tsx index 24aa11e77a589121e1fc0f972ac81ed7fdcc4cf0..2c7f9c5d21e9f2dbf95e5541826046c00ef5fa6e 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageContent.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageSidePanel.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageSidePanel.tsx index be4ce62569ddd30cb4c08e6994d20e0bba350e1f..9df10c705b9b6bdad9f1824d82206e89fd9114dc 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/pages/landingpage/LandingpageSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/shared/navigationItems.tsx b/citizen-portal/src/lib/businessModules/schoolEntry/shared/navigationItems.tsx index 40247c6433a80e30fd29d3f79672ae4e21cb4c00..5a376765cce3207b38eee1d2a1533dbf2f78009a 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/shared/navigationItems.tsx +++ b/citizen-portal/src/lib/businessModules/schoolEntry/shared/navigationItems.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/schoolEntry/shared/routes.ts b/citizen-portal/src/lib/businessModules/schoolEntry/shared/routes.ts index 46ef48cfae52a6062b061b71b07970c6032e55d0..f8dc348112d3cad3221ab2260fd8cb53b2c882c7 100644 --- a/citizen-portal/src/lib/businessModules/schoolEntry/shared/routes.ts +++ b/citizen-portal/src/lib/businessModules/schoolEntry/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/api/clients.ts b/citizen-portal/src/lib/businessModules/travelMedicine/api/clients.ts index 8361d19b32643d3ebfb6ef79e4024c4e8145b9cb..f3028d609ed233cd699967ae8424d24faba10015 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/api/clients.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenAuthApi.ts b/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenAuthApi.ts index cbd760b1e0d702c7b19d74fef4aa3acaa915bac9..2c7ab8c02d9f3fc57927af007245fa9a2074cb41 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenAuthApi.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenAuthApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -56,7 +56,9 @@ export function useDeleteAppointmentCp() { mutationFn: (data: DeleteAppointmentCpRequest) => citizenAuthApi.deleteAppointmentCpRaw(data).then(unwrapRawResponse), onSuccess: () => { - snackbar.confirmation(t("snackbar.cancelAppointmentConfirmation")); + snackbar.confirmation( + t("deleteAppointment.snackbar.cancelAppointmentConfirmation"), + ); }, }); } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenPublicApi.ts b/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenPublicApi.ts index d619d537223d255fa1fb50efacce74cdfa9a5195..b23dc21fa1c7ab6748e0c15c02a52359f17c73e9 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenPublicApi.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/api/mutations/citizenPublicApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/apiQueryKeys.ts b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/apiQueryKeys.ts index 40abfd14beaea0be0d19f9f36577b7bf71e257b8..ceaa380bcd234b1aa20176d3584a003df831b490 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/apiQueryKeys.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenAuthApi.ts b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenAuthApi.ts index b52fe61b176b8058e49c7a0a3aa08f851139612e..06b4fa897841e7091483e7db9174da19cc22d8f0 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenAuthApi.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenAuthApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenPublicApi.ts b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenPublicApi.ts index 55b2641812d6d2bbc45d2a5fdf053522fa20fde8..ca25a5f8200e8178aa0312fd507fa903f3a4e11e 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenPublicApi.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/citizenPublicApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/featureTogglesApi.ts b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/featureTogglesApi.ts index 992101f920c2ef6ef3a3474f81debfcbe088998c..314dde246ca0bf6c02caad1323dc9ade94eb7a15 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/featureTogglesApi.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/api/queries/featureTogglesApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentFormButtonBar.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentFormButtonBar.tsx index db439bb02df48e519b19f072a3550fe981330a1c..27c4e76dffcd203718f6d0e34d4be0d3d9271ca7 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentFormButtonBar.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentFormButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentStepper.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentStepper.tsx index 00dba8cada65875634b34ff6c20bfd245ca437a9..66278a1eaa821b76f684c4aba6ff597eeb33f265 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentStepper.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/AppointmentStepper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/appointmentFormValuesFactory.ts b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/appointmentFormValuesFactory.ts index 99d9cdeed6b8f0d3a8434e6f685adf5e7f814a13..759d1105a5a83fccc28b457696b50cdc4cc30dbd 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/appointmentFormValuesFactory.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/appointmentFormValuesFactory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/AppointmentTypeStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/AppointmentTypeStep.tsx index c337819a329182f5bae60bdde9580eae8165af16..dff9291f71e0e16afe4b6220997f49b7602355c6 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/AppointmentTypeStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/AppointmentTypeStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/PersonalDataStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/PersonalDataStep.tsx index 2eb2a3dab39007097a688490c6de9b3e270c06e9..3ba220bae8e50755c6ebb2e3e06214a4e4439421 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/PersonalDataStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/PersonalDataStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelDataStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelDataStep.tsx index 72972d5561661352204c4e8e431fee59e62caef6..8b2c4a6aa2b555b6b7ad3f3d37698c86a057cb88 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelDataStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelDataStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelTypeStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelTypeStep.tsx index 24ee4ebd7dcd32f6bbf12f093a748c236a5e04ae..3f2f6a62e1360bdb4aaa2e5bc2ff07562e2af015 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelTypeStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/TravelTypeStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/VaccinationStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/VaccinationStep.tsx index 4a873bf065252569235cf1358dc39cde436ace1a..a9eb9cf56d805affe4fed53d1903676fc9d5061a 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/VaccinationStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/VaccinationStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentInfoSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentInfoSection.tsx index 278d6a0a26e55e46f03d869448079c44504fed92..185b81b614c99a9de05e6e185a1715b53549d183 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentInfoSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentInfoSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,7 +17,7 @@ export function AppointmentInfoSection() { const { t } = useTranslation(["travelMedicine/forms"]); return ( - <FormSheet> + <FormSheet data-testid="information-content-form"> <FormSheetTitle>{t("appointmentInfoSection.title")}</FormSheetTitle> <Alert title={t("appointmentInfoSection.alertHeader")} diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentReviewStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentReviewStep.tsx index 384332628d0aab8c597cc54da9346a63aee636b6..2140b81c3598b3c6dc6ca82535c631e8bf91130c 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentReviewStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/AppointmentReviewStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/ConfirmationSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/ConfirmationSection.tsx index fea1c9d739f443399dd9ad4b02f230d4279309e7..ff8cca457386f4d005ee08dab2b79c8f58cd3d11 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/ConfirmationSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/ConfirmationSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/PrivacyPolicyConfirmationSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/PrivacyPolicyConfirmationSection.tsx index 701ac50be2ee3b31ac550c8be7e7d1e5d06006e2..67408a6869533a659019abee0707d8d8af5807ce 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/PrivacyPolicyConfirmationSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentReviewFormStep/PrivacyPolicyConfirmationSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentContent.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentContent.tsx index a1ac3f4a0957db216f2b945cd77e57cc758e4076..6eebbbf5fb77afc79994efe2672053973564d138 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentContent.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentSlotStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentSlotStep.tsx index 80d7d01e0643aaf7faa34ca782a795e5f0fe560a..b6fc131beaf06ae2c87880b9bfde68c909a3625a 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentSlotStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/AppointmentSlotStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointments.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointments.tsx index f3254e503d9ccc41660f22000fd0b5a2319bd39e..124f8024a1073c80fe6b430beea8670ef14b6fa2 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointments.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointments.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointmentsContent.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointmentsContent.tsx index 0dd58448f33e3e2410ccfd53f17b5c98391373a6..33d30fccb17aadace4d4f0c3cb828c94d5b9c1d1 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointmentsContent.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/NoAppointmentsContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPicker.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPicker.tsx index bd512fb51d467bdaee303972a42d15d24050874e..28319a533b51971fd2cf3f8e048dbd74cf74688b 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPicker.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPicker.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPickerHeader.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPickerHeader.tsx index 751c6b27f048b61e14c4a8c0a5d370671aac4993..a5698cf828f962ca195f3824ff70a7d928f5a677 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPickerHeader.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentDayPickerHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentPicker.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentPicker.tsx index 826ab338acdf9c53b2f13e3502779c2ad31a8dba..573623b100c1d0a0362eae08cc8e1880e1967bd3 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentPicker.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentPicker.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentTimePicker.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentTimePicker.tsx index 9b164f0a53feb21459d02568b6d702778a672695..6720413dcfefe94ffc48167fcb1e3a1e01e1c8f4 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentTimePicker.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/AppointmentTimePicker.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/appointmentDayPickerSxProps.ts b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/appointmentDayPickerSxProps.ts index d7187febc11886f5a41281634b53c9a1da12befe..17204009122e987a04053ddaac070a06f6ec2c22 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/appointmentDayPickerSxProps.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/appointmentDayPickerSxProps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/calendarViews.ts b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/calendarViews.ts index fbcf94b0dd3904c71bcfd89aae24faddea55cfc4..63cefeb3232a375d7049069076721a3e1a3d7f10 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/calendarViews.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/appointmentSlotStep/calendar/calendarViews.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverview.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverview.tsx index 35c74f1e356ae99044a1f78653644c9ff66892a3..f2bbedfce21bb6cec465c42a9837946fdb506e9c 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverview.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverview.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverviewDetails.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverviewDetails.tsx index 2731125289263c0cd1fca775e03059ec4983cdeb..e87366f47ecf5a8470526a9d9fadae2c448c898a 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverviewDetails.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/AppointmentOverviewDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/TravelInformationOverviewDetails.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/TravelInformationOverviewDetails.tsx index 89d13595dac71b373788d065f6963e1a5d69f8e3..c41d6f44e8b345f43b73576c00727aeed1850c5b 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/TravelInformationOverviewDetails.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/steps/overview/TravelInformationOverviewDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/types.ts b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/types.ts index 7f7bfa8c0a0a1c8b8fe531ea628b69a2237975e6..78777681a556933aefa96583c1dff49ef206ad74 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/types.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/appointment/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementPanel.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementPanel.tsx index 1adb4e02a856128df83b7e608b6d2251cf240af4..6ccafdab587efe3522a57ba0544609efea840cfd 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementPanel.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStep.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStep.tsx index d71b3f3f74016896277875435a77c9f2ea6ae6df..0525932934f5b46cbd59435b7ea1cabf98829a16 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStep.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStepper.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStepper.tsx index 2d81ef9121cd12a75446cedf56f842503c927105..c1d9f721797ccdf0f4b1fca1a3fa4643ee567a17 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStepper.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/InformationStatementStepper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModal.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModal.tsx index 727c9337c3569e3ae06df6420f24ba5e3328d6f3..21371ced2a8b06ca40b5a44b90ce68d27128e455 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModal.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModalContent.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModalContent.tsx index 36f7f6b041c971f178a4f2cd9edf390a5b90c2cb..2dd666c0032fe0e0117097ac850c3b7632d826af 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModalContent.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/informationStatement/SignDocumentModalContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/AppointmentSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/AppointmentSection.tsx index 0d16e6feab24aad1ff0e53fb73c8ad1e8cb3c804..6d7edc790e52e4a2febb2e20e3d448f96728eb3e 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/AppointmentSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/AppointmentSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageContent.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageContent.tsx index a6c759ab8daa66fee1c8c06765884da6254c82d9..7333095b709126ec21b57a35806cfe13a355f4ea 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageContent.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageSidePanel.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageSidePanel.tsx index 0525d8f08564781d5eeed99bb1234479280444dd..9d45d117dd4778d0b8f2d537322eac136e9a0ee3 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/LandingpageSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/VaccineOverviewSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/VaccineOverviewSection.tsx index a2ec02e2bbeca155211e2628ad2d1611dac53b62..ae5e8d30f72aa48509815527f708f130ab971809 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/VaccineOverviewSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/landing/VaccineOverviewSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistorySidePanel.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistorySidePanel.tsx index bf863f65d87e9c756f84573a37b0d09e9bf0d685..76326e5c9512c535150eaf4c922ba1938e193e01 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistorySidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistorySidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistoryStepper.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistoryStepper.tsx index 9cb74de44af47461fbc6c2d575544e1b1caee557..f95f4f61973f2787fc75574a708b35d060f9c2a0 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistoryStepper.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/medicalHistory/MedicalHistoryStepper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/CountryFieldMulti.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/CountryFieldMulti.tsx index 1f351f0e79435e7215404632e7a1df8be938129a..35d950efa81117e60f162d44a070dfe30f812626 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/CountryFieldMulti.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/CountryFieldMulti.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/DetailsField.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/DetailsField.tsx index 84fb0d30cf51d8c9eda3e124131d3ae5871ca768..4018fb45260a3cd0906653efa9f74dc52fc7e045 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/DetailsField.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/DetailsField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/FormSheet.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/FormSheet.tsx index 78ded7a53ddf8f23988f93c183379fee876e57c8..37da087504a25eff3fd139b0412536bd4c21721f 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/FormSheet.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/FormSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoIconButton.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoIconButton.tsx index 914fa55c706a2e7271bd900c4f4fecdafb550769..2426d334b0e18f70688370f9ff626ebfb4f1192d 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoIconButton.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoIconButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoModal.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoModal.tsx index 50337f5e5d8bf25f095b577d9ba7633451c79cea..0df8be237d9e3ae09ddc869686cf6b83718326d3 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoModal.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/InfoModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioButtonsField.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioButtonsField.tsx index 86a69547899d7b3693d1f4d52f110bdb8023bca3..5e9955d8c35409d6d473ea1cd752afa991b17681 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioButtonsField.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioButtonsField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioSheet.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioSheet.tsx index b29bf7ead4e88332bd7bd2447d1dc86aa136563c..0d74b6aaeaba951d17a6d9872ed8c6897d4c00c0 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioSheet.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/RadioSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/AnamnesisQuestion.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/AnamnesisQuestion.tsx index 69ef2ffcbec48ae774bdbf95b16af034e62ce5b0..c9217ba54f0c76875b3284624bb4c8d3fdd18bca 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/AnamnesisQuestion.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/AnamnesisQuestion.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/ConfirmationElement.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/ConfirmationElement.tsx index 0710a9a15f70ce3737107f6237c24070f3a1cba5..4d00394b5193ccc2ec59e495662185976f17a280 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/ConfirmationElement.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/ConfirmationElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentMultiSelectElement.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentMultiSelectElement.tsx index 86c0bf7d31639904fadde4648f53e1c8738a431e..ded8c29cb1f0dd0b78f1e274e8ebba441a76215d 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentMultiSelectElement.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentMultiSelectElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentRadioButtonElement.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentRadioButtonElement.tsx index 1469c6038dd06250a8d54846d6d1ec7a65e4ea65..e9183747cc8a44f1bc45787b8c3da198e6eafd1f 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentRadioButtonElement.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentRadioButtonElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentSection.tsx index 766cdb268f28de151c3f0e3be7c067c37a454483..f85995a3881e61d254fb90d8200258476907c751 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentTextareaElement.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentTextareaElement.tsx index 2d444309bd97b26f0085de36147e5982cf142bea..ca687644324652b45ea8cefe3774366be24ac4d5 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentTextareaElement.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/DocumentTextareaElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/SignatureSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/SignatureSection.tsx index 956b62028c992109cd5e831d886de98361e0d1cf..bdbf0c77a1ba4deee8918b24a807a06353072f95 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/SignatureSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/SignatureSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/TextBlock.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/TextBlock.tsx index 244ba17d65704f2a458e042921950b4d3e92154d..688d4482b1722b8e94e945b522d255effc62e3c9 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/TextBlock.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/document/TextBlock.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/CheckboxField.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/CheckboxField.tsx index dd702a3f58627e3b179f38e25d4fd0b41e045a51..a3d32f5ae5d036f10a66f8615a2e2c42db5894bf 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/CheckboxField.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/CheckboxField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/RadioGroupField.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/RadioGroupField.tsx index 087c54f5449fae021d2e29193e0851356c87e6e2..9e492c6418ce0551d45aa650000b5d16d39dc0cd 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/RadioGroupField.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/formField/RadioGroupField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormButtonsBar.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormButtonsBar.tsx index 445fac0bbab317cfc172282280a663a08434e5c0..25c104c565374de2b8d19c0d8fe02f1432a67a3f 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormButtonsBar.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormButtonsBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormWrapper.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormWrapper.tsx index edaf264b57db7233f6d5fda61d11a0a6aff88556..c3a4d0e660e3a59e653f3770c60ec1ac235a4af1 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormWrapper.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/components/multiStepForm/MultiStepFormWrapper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/DepartmentContext.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/DepartmentContext.tsx index ab471fae43db5271d200a29ddd5ea3bc1b46a0b4..2ab83b78950bf49c1b320004b0e8a7461008ffd4 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/DepartmentContext.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/DepartmentContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/IdContext.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/IdContext.tsx index 3c9bdcd8636142ef46e105d714eb2a72f7a7bd17..cb9b47c7579716d934ea5dcc4dc27bc0119c2d13 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/IdContext.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/IdContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/StepContext.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/StepContext.tsx index dda232008e41adc57312cd6de78d64633b12519b..62bcbc235531b2d71aeb03cb1f6c175ebf7778f4 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/StepContext.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/shared/contexts/StepContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/ApointmentDetailsInformationStatementList.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/ApointmentDetailsInformationStatementList.tsx index f8b356edf78d04fe633a58a39c307e25bcef91d4..d89c151ba8b471974e52830dc5274198ac9515c6 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/ApointmentDetailsInformationStatementList.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/ApointmentDetailsInformationStatementList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetails.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetails.tsx index fc215a787ffffca21d381526a930c2c7ed9e6e4d..516a009d0884a821d356d6ade59027e31f082b84 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetails.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsAdditionalInformation.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsAdditionalInformation.tsx index 592efab203534e79a429b0d5c380418df6b28fac..a52191a79ec81db371d75f332cf7f78a8ad9dcf2 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsAdditionalInformation.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsAdditionalInformation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsInformationStatement.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsInformationStatement.tsx index 0c97da52d47d00dec1b8299be0d5dfc2066c9a37..932233310dcbcb0cf75d45041aac5595575f1508 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsInformationStatement.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsInformationStatement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMedicalHistoryInformation.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMedicalHistoryInformation.tsx index e00ee955bf4eb1394e7b33617827b8b2b1117894..40fb1785d43bac0bcb1bbce66e7d447c918dbbe5 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMedicalHistoryInformation.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMedicalHistoryInformation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMetaInformation.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMetaInformation.tsx index 6d1579f74a6f327a2b9af32ed1f7af95813e12ab..b7663cca9e5c698109f084afe6f7beeeaa7bdde6 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMetaInformation.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsMetaInformation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsSidePanel.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsSidePanel.tsx index e6252f4fc5922f2ec924679160cf9c2a7b5276d0..2595a4339a7387dd7baa1d6c046c964a7e9af6ba 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentDetailsSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -16,6 +16,7 @@ import { ContentSheetTitle, } from "@/lib/shared/components/layout/contentSheet"; import { useAccessCodeParam } from "@/lib/shared/helpers/accessCode"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function AppointmentDetailsSidePanel({ hasAccomplishedService, @@ -29,10 +30,21 @@ export function AppointmentDetailsSidePanel({ const { procedureId, procedureStepId, appointmentDetails } = useIdContext(); const deleteAppointment = useDeleteAppointmentCp(); - async function handleDeleteAppointment() { - await deleteAppointment.mutateAsync({ - procedureId: procedureId, - procedureStepId: procedureStepId, + const { openConfirmationDialog } = useConfirmationDialog(); + + function handleDeleteAppointment() { + openConfirmationDialog({ + onConfirm: async () => { + await deleteAppointment.mutateAsync({ + procedureId: procedureId, + procedureStepId: procedureStepId, + }); + }, + title: t("deleteAppointment.cancelModal.title"), + description: t("deleteAppointment.cancelModal.description"), + confirmLabel: t("deleteAppointment.cancelModal.confirmLabel"), + cancelLabel: t("deleteAppointment.cancelModal.cancelLabel"), + color: "danger", }); } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewButtonElement.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewButtonElement.tsx index 861736ab2e44444eda43654a3a0979cb9f50375c..0772ce6887f9bfec44064df4d4677ae1e623e8b4 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewButtonElement.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewButtonElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSection.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSection.tsx index 4b2f2b47bb99f0d440f6727f0f84d803e167860d..59dc6a35fa35268e1065936b83923f62732a2a50 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSection.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheet.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheet.tsx index 59d2de5698a0b6a32b21e7ac212074e38ed1720d..da17df37d2397076c87d5f19ae8f6a5707491ebe 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheet.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheetButton.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheetButton.tsx index b2341365c9eda85f80997d4cccf9d74384926749..fa24ef2debc2aece4fc0b83b13548d3d38ac7e8e 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheetButton.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentOverviewSheetButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageContent.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageContent.tsx index 6c5decda350c9a828799b7b20b1c3ff481b3c851..55b6403dc1ad03eb5ecd2305d1b808c2abe005ef 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageContent.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageTitle.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageTitle.tsx index 4742d08d9a8873c89f6bc8be08866d8323040bdb..3ac2287afa0e58dca8fcbb85b8323e48549c3758 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageTitle.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/AppointmentPageTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/NoAppointments.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/NoAppointments.tsx index f74570567e4cf1210f6a308daf393706463dfd98..70dd1c796e82ea8154d1182f87259dfb0386b057 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/NoAppointments.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/NoAppointments.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/TypeSwitchButtons.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/TypeSwitchButtons.tsx index d8e0ff78ef2f3d8891c3f06e36d23ae89b74ba79..fd134efcd7ebafde38be8d073acaa063a4958e41 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/TypeSwitchButtons.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/TypeSwitchButtons.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointment.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointment.tsx index 1825664f51d21321bf370b08c9a39d666616a4de..22d933a7a8d22bc82279a36706d26f715a4b6516 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointment.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointment.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentPageContent.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentPageContent.tsx index 8ed74ff9e027f6638b2825c501af35cef6968159..ba790d84134eaddc5948eb523c3ec65b4b67684f 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentPageContent.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentPageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentSidePanel.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentSidePanel.tsx index 9a321ca056b4601a82654c9baaaea1fe3df9425a..78a1cadfc001acd9bfc1a7ce273d052129946c3d 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentSidePanel.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/components/viewAppointment/rebook/RebookAppointmentSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/appointmentFormHelper.ts b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/appointmentFormHelper.ts index b649e290f15e045cae3477a22db3eae8603bdf0f..51c329d75c346c79985fbe6823ea885b228cd392 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/appointmentFormHelper.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/appointmentFormHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/options.ts b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/options.ts index 92ed65d337b12c5ac9bc59e9eac2ade4e1bc4040..e6b3a35a24e2da1e465e4006c388a6fe871b8a58 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/options.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/translations.ts b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/translations.ts index 2132b3ebe233e115971e107b826d35f685688d47..2e5cdb2a9c42f8e3f8e0af62bc89de1b366db688 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/translations.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -36,4 +36,5 @@ export const APPOINTMENT_TYPE: EnumMap<ApiAppointmentType> = { [ApiAppointmentType.HivStiConsultation]: "HIV-STI-Beratung", [ApiAppointmentType.SexWork]: "Sexarbeit", [ApiAppointmentType.ResultsReview]: "Ergebnisbesprechung", + [ApiAppointmentType.OfficialMedicalService]: "Amtsärtzlicher Dienst", }; diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/validators.ts b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/validators.ts index ed5a765d3a0ec9e3c9038d398244ab8ff0c93b45..63ae108a0f9ae30ec024e2dfcdd3ee4d666a9e20 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/helpers/validators.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/helpers/validators.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/de/appointmentDetails.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/de/appointmentDetails.json index 885d7e37142df706c88d38fe0cb6867469a2123d..b726688da384f5a7152d9399782a16a7fae1cb33 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/de/appointmentDetails.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/de/appointmentDetails.json @@ -36,7 +36,15 @@ "answered": "erfolgreich übermittelt", "answerNow": "Jetzt ausfüllen" }, - "snackbar": { - "cancelAppointmentConfirmation": "Der Termin wurde abgesagt." + "deleteAppointment": { + "cancelModal": { + "title": "Termin absagen?", + "description": "Sind Sie sicher, dass Sie Ihren Termin absagen möchten? Sie können danach jederzeit einen neuen Termin vereinbaren.", + "confirmLabel": "Ja, absagen", + "cancelLabel": "Beibehalten" + }, + "snackbar": { + "cancelAppointmentConfirmation": "Der Termin wurde abgesagt." + } } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentDetails.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentDetails.json index 885d7e37142df706c88d38fe0cb6867469a2123d..e1b6611ef620e8ce0e99bfdbbd104fdd607fe80b 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentDetails.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentDetails.json @@ -1,42 +1,50 @@ { "header": { - "title": "Mein Termin", - "logout": "Mein Bereich verlassen" + "title": "My Appointment", + "logout": "Logout" }, - "title": "Informationen", + "title": "Information", "sidePanel": { - "title_false": "Wählen Sie jetzt Ihren Termin", - "title_true": "Sie können den Termin nicht wahrnehmen?", - "postponeAppointment": "Termin verschieben", - "bookAppointment": "Termin buchen", - "cancelAppointment": "Termin absagen", - "back": "Zurück" + "title_false": "Please select your appointment", + "title_true": "Not able to make the appointment?", + "postponeAppointment": "Postpone appointment", + "bookAppointment": "Book appointment", + "cancelAppointment": "Cancel appointment", + "back": "Back" }, "appointmentType": { - "consultation": "Reiseberatung", - "vaccination": "Impfung" + "consultation": "Travel consultation", + "vaccination": "Vaccination" }, - "start": "{{ time }} Uhr", - "duration": "Dauer: {{ appointmentDuration }} Minuten", + "start": "{{ time }}", + "duration": "Duration: {{ appointmentDuration }} minutes", "medicalHistoryPanel": { - "title": "Vorbereitung zum Termin", - "medicalHistorySheet": "Anamnesebogen", - "notAnswered": "noch nicht vorgelegt", - "answered": "erfolgreich übermittelt", - "answerNow": "Jetzt ausfüllen", - "neededDocuments": "Benötigte Unterlagen", - "filledMedicalHistory": "ausgefüllter Anamnesebogen", - "vaccinationCertificate": "Impfausweis", - "uBooklet": "das gelbe Vorsorgeheft (U-Heft)", - "medicalDocuments": "gegebenenfalls weitere medizinische Unterlagen, evtl. aktuelle Medikation", - "otherTools": "gegebenenfalls vorhandene Hilfsmittel (Brille, Hörgerät)" + "title": "Appointment Preparations", + "medicalHistorySheet": "Medical history form", + "notAnswered": "not yet submitted", + "answered": "successfully submitted", + "answerNow": "Fill out now", + "neededDocuments": "Required documents", + "filledMedicalHistory": "completed medical history form", + "vaccinationCertificate": "International Certificate of Vaccination or Prophylaxis (yellow card)", + "uBooklet": "the yellow preventive care booklet (U-Heft)", + "medicalDocuments": "other medical documents, e.g. current medications", + "otherTools": "other relevant medical necessities (glasses, hearing aid)" }, "informationStatementPanel": { - "notAnswered": "noch nicht vorgelegt", - "answered": "erfolgreich übermittelt", - "answerNow": "Jetzt ausfüllen" + "notAnswered": "not yet submitted", + "answered": "successfully submitted", + "answerNow": "Fill out now" }, - "snackbar": { - "cancelAppointmentConfirmation": "Der Termin wurde abgesagt." + "deleteAppointment": { + "cancelModal": { + "title": "Cancel appointment?", + "description": "Are you sure you want to cancel your appointment? You can schedule a new appointment at any time afterward.", + "confirmLabel": "Yes, cancel", + "cancelLabel": "Keep" + }, + "snackbar": { + "cancelAppointmentConfirmation": "The appointment has been canceled." + } } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentOverview.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentOverview.json index 40909044cce4e2e7d33fbcd2efe501d5f166980d..f68cc3fd19ed2f114d5dc2e367f346fa437bd55a 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentOverview.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/appointmentOverview.json @@ -1,29 +1,29 @@ { "header": { - "title": "Termine", - "logout": "Mein Bereich verlassen" + "title": "Appointments", + "logout": "Logout" }, "typeSwitchButtons": { - "upcoming": "Anstehende", - "past": "Vergangene" + "upcoming": "Upcoming", + "past": "Past" }, "appointmentCard": { - "start": "{{ time }} Uhr", - "duration": "Dauer: {{ appointmentDuration }} Minuten", + "start": "{{ time }}", + "duration": "Duration: {{ appointmentDuration }} minutes", "appointmentType": { - "consultation": "Reiseberatung", - "vaccination": "Impfung" + "consultation": "Travel consultation", + "vaccination": "Vaccination" } }, "appointmentStatus": { - "booked": "Termin gebucht", - "nonBooked": "Termin noch nicht gebucht", - "cancelled": "Termin abgesagt" + "booked": "Appointment booked", + "nonBooked": "Appointment not yet booked", + "cancelled": "Appointment canceled" }, "noAppointments": { - "upcomingAppointments": "Anstehende Termine", - "pastAppointments": "Vergangene Termine", - "noUpcomingAppointments": "Keine anstehenden Termine", - "noPastAppointments": "Keine vergangenen Termine" + "upcomingAppointments": "Upcoming appointments", + "pastAppointments": "Past appointments", + "noUpcomingAppointments": "No upcoming appointments", + "noPastAppointments": "No past appointments" } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/document.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/document.json index 090e38fc47a18a56552b2bed4cac2bfdaa2b9a17..c96c8642693d97dca2b42e0635bb62bbf4e8a9ae 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/document.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/document.json @@ -1,6 +1,6 @@ { - "radioButtonYes": "Ja", - "radioButtonNo": "Nein", - "multiSelectWhich": "Welche?", - "textareaPlaceholder": "Bitte eingeben" + "radioButtonYes": "Yes", + "radioButtonNo": "No", + "multiSelectWhich": "Please select", + "textareaPlaceholder": "Please fill in" } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/forms.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/forms.json index fc3dc17eead57139fc4e65e93d2a8e45eeb1a746..1a178a01331f0b670fd2230ed5049cd8b168c405 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/forms.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/forms.json @@ -1,132 +1,132 @@ { "common": { - "title": "Reisemedizinische Impfberatung", - "requiredTitle": "*Pflichtfeld", - "stepperTitle": "Schritt {{currentStepIndex}} von {{totalSteps}}" + "title": "Travel Medicine Vaccination Consultation", + "requiredTitle": "*Required field", + "stepperTitle": "Step {{currentStepIndex}} of {{totalSteps}}" }, "appointmentTypeFormContent": { - "title": "Terminart", - "infoHeader": "Wichtige Informationen zum Termin", - "infoTextListItem1": "Bitte bringen Sie Ihren Impfpass mit.", - "infoTextListItem2": "Für größere Gruppen (mehr als 3 Personen) nutzen Sie bitte die telefonische Terminvereinbarung unter {{ phoneNumber }}.", + "title": "Appointment Type", + "infoHeader": "Important Information about the Appointment", + "infoTextListItem1": "Please bring your International Certificate of Vaccination or Prophylaxis (yellow card).", + "infoTextListItem2": "For larger groups (more than 3 people), please make an appointment by phone at {{ phoneNumber }}.", "confirmation": { - "label": "Beglaubigung/Apostille ", - "subtitle": "(Offene Sprechstunde)", - "info": "Keine Terminbuchung erforderlich für:", - "iconLabel": "Information zu $t(appointmentTypeFormContent.confirmation.label)", + "label": "Certification/Apostille ", + "subtitle": "(Open consultation hours)", + "info": "No appointment booking required for:", + "iconLabel": "Information about $t(appointmentTypeFormContent.confirmation.label)", "modalTitle": "$t(appointmentTypeFormContent.confirmation.label)", - "modalText": "Für dieses Anliegen ist keine Terminbuchung erforderlich. Bitte kommen Sie zur offenen Sprechstunde vorbei." + "modalText": "No appointment booking required for this request. Please visit during open consultation hours." }, "fields": { - "error": "Bitte Terminart auswählen.", + "error": "Please select an appointment type.", "vaccination": { - "label": "Auffrischungsimpfung", - "iconLabel": "Information zu $t(appointmentTypeFormContent.fields.vaccination.label)", + "label": "Booster Vaccination", + "iconLabel": "Information about $t(appointmentTypeFormContent.fields.vaccination.label)", "modalTitle": "$t(appointmentTypeFormContent.fields.vaccination.label)", - "modalTextParagraph1": "Termindauer für Impfungen in der Regel ca. {{ appointmentDuration }} Minuten.", - "modalTextParagraph2": "Bitte Impfpass mitbringen." + "modalTextParagraph1": "The duration for vaccinations is usually around {{ appointmentDuration }} minutes.", + "modalTextParagraph2": "Please bring your International Certificate of Vaccination or Prophylaxis (yellow card)." }, "consultation": { - "label": "Reiseberatung", - "iconLabel": "Information zu $t(appointmentTypeFormContent.fields.consultation.label)", + "label": "Travel Consultation", + "iconLabel": "Information about $t(appointmentTypeFormContent.fields.consultation.label)", "modalTitle": "$t(appointmentTypeFormContent.fields.consultation.label)", - "modalTextParagraph1": "Termindauer für Beratungsgespräche in der Regel ca. {{ appointmentDuration }} Minuten. Reisemedizinische Beratung mit oder ohne anschließenden Impfungen.", - "modalTextParagraph2": "Bitte Impfpass mitbringen." + "modalTextParagraph1": "Consultation duration is generally around {{ appointmentDuration }} minutes. Travel medicine consultation with or without subsequent vaccinations.", + "modalTextParagraph2": "Please bring your International Certificate of Vaccination or Prophylaxis (yellow card)." } } }, "appointmentSlotFormContent": { - "title": "Verfügbare Termine", + "title": "Available Appointments", "fields": { - "appointmentStart": "Termin", - "appointmentStart_required": "Bitte einen Termin auswählen." + "appointmentStart": "Appointment", + "appointmentStart_required": "Please select an appointment." }, "appointmentPicker": { - "noAppointmentForSelectedDate": "Für den ausgewählten Tag stehen keine freien Termine zur Verfügung", - "noAppointmentSelected": "Es wurde kein Termin ausgewählt.", - "noAppointmentsAvailable": "Derzeit sind keine Termine verfügbar", - "tryLater": "Wir schalten in kürze Termine frei. Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut", - "calendar_title": "Datum", - "timePicker_title": "Verfügbare Uhrzeiten", - "available": "Verfügbar" + "noAppointmentForSelectedDate": "No appointments available for the selected date", + "noAppointmentSelected": "No appointment selected.", + "noAppointmentsAvailable": "No appointments currently available", + "tryLater": "More appointments will be made available soon. Please try again later", + "calendar_title": "Date", + "timePicker_title": "Available Times", + "available": "Available" }, - "backToOverview": "Zurück zur Übersicht" + "backToOverview": "Back to overview" }, "travelTypeFormContent": { - "title": "Reiseart", - "error": "Bitte Reiseart auswählen.", + "title": "Type of Travel", + "error": "Please select a type of travel.", "fields": {} }, "travelDataFormContent": { - "title": "Reisedaten", + "title": "Travel Data", "fields": { - "travelDestinations": "Reiseziele", - "travelDestinations_required": "Bitte Reiseziel eingeben.", - "travelStartDate": "Reisebeginn", - "travelStartDate_required": "Bitte Reisebeginn eingeben.", - "travelTimeAmount": "Reisedauer", - "travelTimeAmount_required": "Bitte Reisedauer eingeben.", - "travelTimeUnit": "Reisedauereinheit", - "travelTimeUnit_required": "Bitte Reisedauereinheit eingeben." + "travelDestinations": "Travel Destination(s)", + "travelDestinations_required": "Please add in your destination(s).", + "travelStartDate": "Travel Start Date", + "travelStartDate_required": "Please enter the travel start date.", + "travelTimeAmount": "Travel Duration", + "travelTimeAmount_required": "Please enter the travel duration.", + "travelTimeUnit": "Travel Duration Unit", + "travelTimeUnit_required": "Please enter the travel duration unit." } }, "personalDataFormContent": { - "title": "Persönliche Daten", + "title": "Personal Data", "fields": { - "firstName": "Vorname", - "firstName_required": "Bitte Vorname eingeben.", - "lastName": "Nachname", - "lastName_required": "Bitte Nachname eingeben.", - "dateOfBirth": "Geburtsdatum", - "dateOfBirth_required": "Bitte Geburtsdatum eingeben.", - "phoneNumbers": "Telefon", - "emailAddresses": "E-Mail-Adresse", - "emailAddresses_required": "Bitte E-Mail-Adresse eingeben.", - "confirmOnlineServices": "Ich bestätige, dass ich die Online-Dienste für die Impfberatung nutzen und die hierzu notwendigen E-Mails erhalten möchte.", - "confirmOnlineServices_required": "Bitte Zustimmung erteilen um fortzufahren." + "firstName": "First Name", + "firstName_required": "Please enter your first name.", + "lastName": "Last Name", + "lastName_required": "Please enter your last name.", + "dateOfBirth": "Date of Birth", + "dateOfBirth_required": "Please enter your date of birth.", + "phoneNumbers": "Phone", + "emailAddresses": "Email Address", + "emailAddresses_required": "Please enter your email address.", + "confirmOnlineServices": "I confirm that I wish to use the online services for vaccination consultation and receive the necessary emails.", + "confirmOnlineServices_required": "Please provide consent to continue." } }, "vaccinationFormContent": { - "title": "Impfungen", - "info": "Diese Impfungen werden angeboten:" + "title": "Vaccinations", + "info": "The following vaccinations are offered:" }, "appointmentInfoSection": { - "title": "Informationen zum Termin", - "alertHeader": "Vorbereitungen zum Termin", - "alertMessage": "Bitte bringen Sie Ihren Impfpass mit", - "infoText": "Sie erhalten in <t1>den nächsten Minuten</t1> eine <t1>Terminbestätigung</t1> per E-Mail. Dort sind alle Informationen zum Termin enthalten. Sie haben zudem die Möglichkeit den Termin zu ändern oder zu stornieren", - "requiredDocumentsHeader": "Notwendige Dokumente, welche Sie bitte zum Termin mitbringen, sind:", - "listItemIdCard": "Personalausweis", - "listItemVaccinationCard": "Impfpass", - "closingGreeting": "Mit freundlichen Grüßen", - "healthDepartment": "Ihr Gesundheitsamt" + "title": "Appointment Information", + "alertHeader": "Preparations for the Appointment", + "alertMessage": "Please bring your International Certificate of Vaccination or Prophylaxis (yellow card)", + "infoText": "You will receive an <t1>appointment confirmation</t1> via email in <t1>the next few minutes</t1>. All information about the appointment is included. You will also have the option to change or cancel the appointment.", + "requiredDocumentsHeader": "Necessary documents that you should bring to the appointment are:", + "listItemIdCard": "Passport or identity card", + "listItemVaccinationCard": "International Certificate of Vaccination or Prophylaxis (yellow card)", + "closingGreeting": "Sincerely,", + "healthDepartment": "Your Health Department" }, "appointmentOverviewSection": { - "title": "Übersicht", - "onNextStep": "Weiter", - "onPrevStep": "Zurück", - "onCancel": "Abbrechen", + "title": "Overview", + "onNextStep": "Next", + "onPrevStep": "Back", + "onCancel": "Cancel", "values": { - "confirmOnlineServices": "Bestätigungsmail senden", - "travelDuration": "Reisedauer", - "travelDestinations_one": "Reiseziel", - "travelDestinations_other": "Reiseziele", - "travelStartDate": "Reisebeginn", - "appointmentDuration": "(Dauer: {{ durationInMinutes }} Minuten)" + "confirmOnlineServices": "Send confirmation email", + "travelDuration": "Travel duration", + "travelDestinations_one": "Travel destination", + "travelDestinations_other": "Travel destinations", + "travelStartDate": "Travel start date", + "appointmentDuration": "(Duration: {{ durationInMinutes }} minutes)" } }, "confirmationSection": { - "title": "Terminbuchung", - "submit": "Termin verbindlich buchen", - "onPrevStep": "Zurück", - "onCancel": "Abbrechen", + "title": "Appointment Booking", + "submit": "Book Appointment", + "onPrevStep": "Back", + "onCancel": "Cancel", "fields": { - "confirmPrivacyNotice": "Ich akzeptiere den Datenschutzhinweis.", - "privacyNotice": "Zum Datenschutzhinweis", - "confirmPrivacyNotice_required": "Bitte Zustimmung erteilen um fortzufahren.", - "confirmPrivacyPolicy": "Ich akzeptiere die Datenschutzerklärung.", - "privacyPolicy": "Zur Datenschutzerklärung", - "confirmPrivacyPolicy_required": "Bitte Zustimmung erteilen um fortzufahren." + "confirmPrivacyNotice": "I accept the data protection notice.", + "privacyNotice": "Go to the data protection notice", + "confirmPrivacyNotice_required": "Please give your consent to continue.", + "confirmPrivacyPolicy": "I accept the privacy policy.", + "privacyPolicy": "Go to the privacy policy", + "confirmPrivacyPolicy_required": "Please give your consent to continue." } } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/informationStatements.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/informationStatements.json index 603cd5bf6c4626c74b7600e035d9fb2af342eaf0..c40aea15ae49a87a818a2e4ffcbb32ebfea48745 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/informationStatements.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/informationStatements.json @@ -1,19 +1,19 @@ { "header": { - "title": "Impfberatung Aufklärungsbogen", - "stepText": "Schritt {{currentStepIndex}} von {{totalSteps}}" + "title": "Vaccination Consultation Information Sheet", + "stepText": "Step {{currentStepIndex}} of {{totalSteps}}" }, "briefing": { - "title": "Fragebogen", - "infoText": "Daten zum Aufklärungsbogen können hier vor dem Untersuchungstermin eingetragen werden. Das Speichern der Eintragungen ist nur einmal möglich und kann später nicht korrigiert werden." + "title": "Questionnaire", + "infoText": "Information sheet data can be entered here before the examination appointment. These entries can be saved once and cannot be corrected later." }, "sidePanel": { - "nextStep": "Weiter", - "submitInformationStatement": "Aufklärungsbogen absenden", - "previousStep": "Zurück", - "cancel": "Abbrechen" + "nextStep": "Next", + "submitInformationStatement": "Submit Information Sheet", + "previousStep": "Back", + "cancel": "Cancel" }, "snackbar": { - "patchInformationStatementConfirmation": "Der Aufklärungsbogen wurde übermittelt." + "patchInformationStatementConfirmation": "The information sheet has been submitted." } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/landing.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/landing.json index 43bbd98b5d64418d49bad2baa912903d6d915d72..e30eddcb620f9279f41fc78512fed0076765d6d2 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/landing.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/landing.json @@ -1,26 +1,26 @@ { - "pageTitle": "Reisemedizinische Impfberatung", + "pageTitle": "Travel Medicine Vaccination Consultation", "contact": { - "title": "Kontakt und Erreichbarkeit", + "title": "Contact and Availability", "addressSection": { - "title": "Adresse" + "title": "Address" }, "contactSection": { - "title": "Kontakt", - "phoneNumber": "Telefon: {{ phoneNumber }}", - "eMail": "E-Mail:" + "title": "Contact", + "phoneNumber": "Phone: {{ phoneNumber }}", + "eMail": "Email:" }, "openingHoursSection": { - "title": "Öffnungszeiten" + "title": "Opening Hours" } }, "personalArea": { - "title": "Termin vereinbaren?", - "information": "Sie haben die Möglichkeit Termine für Impfungen, Folgeimpfungen und Beratungsgespräche mit anschließender Impfung zu vereinbaren.", - "bookAppointment": "Termin buchen", - "goToPersonalArea": "Zu meinen Terminen" + "title": "Schedule an Appointment?", + "information": "You have the opportunity to schedule appointments for vaccinations, follow-up vaccinations, and consultations with subsequent vaccination.", + "bookAppointment": "Book Appointment", + "goToPersonalArea": "To my Appointments" }, - "vaccionation": { - "title": "Verfügbare Impfungen" + "vaccination": { + "title": "Available Vaccinations" } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/medicalHistories.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/medicalHistories.json index 33d9f29cf70a2d992b5d559604c81eda64539955..e376df5e97fbd25b1b106d3ddca3242eebf55a08 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/medicalHistories.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/medicalHistories.json @@ -1,19 +1,19 @@ { "header": { - "title": "Impfberatung Anamnesebogen", - "stepText": "Schritt {{currentStepIndex}} von {{totalSteps}}" + "title": "Vaccination Consultation Medical History form", + "stepText": "Step {{currentStepIndex}} of {{totalSteps}}" }, "briefing": { - "title": "Fragebogen", - "infoText": "Daten zur Anamnese können hier vor dem Untersuchungstermin eingetragen werden. Das Speichern der Eintragungen ist nur einmal möglich und kann später nicht korrigiert werden." + "title": "Questionnaire", + "infoText": "Medical history data can be entered here before the examination appointment. These entries can be saved once and cannot be corrected later." }, "sidePanel": { - "nextStep": "Weiter", - "submitMedicalHistory": "Fragebogen absenden", - "previousStep": "Zurück", - "cancel": "Abbrechen" + "nextStep": "Next", + "submitMedicalHistory": "Submit Questionnaire", + "previousStep": "Back", + "cancel": "Cancel" }, "snackbar": { - "patchMedicalHistoryConfirmation": "Der Anamnesebogen wurde übermittelt." + "patchMedicalHistoryConfirmation": "The medical history form has been submitted." } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/rebookAppointment.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/rebookAppointment.json index aa6cd6478f77526faaded4ac8b278f7a1def93b3..33530ca947980f563d2a525e6f5d1614410f0e6c 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/rebookAppointment.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/rebookAppointment.json @@ -1,24 +1,24 @@ { "header": { - "title": "Termin (um)buchen", - "logout": "Mein Bereich verlassen" + "title": "(Re)schedule Appointment", + "logout": "Logout" }, "content": { - "title": "Verfügbare Termine", - "requiredTitle": "*Pflichtfeld", - "errorMessage": "Bitte einen Termin auswählen", - "infoPanelTitle": "Terminverschiebung", - "infoPanelText": "Sie können Ihren Termin maximal zwei Mal verschieben." + "title": "Available Appointments", + "requiredTitle": "*Required Field", + "errorMessage": "Please select an appointment", + "infoPanelTitle": "Rescheduling", + "infoPanelText": "You are allowed to reschedule a maximum of two times." }, "sidePanel": { - "title": "Übersicht", - "dateAndTime": "{{ appointmentStart }} Uhr", - "appointmentDuration": "(Dauer: {{ durationInMinutes }} Minuten)", - "postponeAppointment": "Termin verschieben", - "bookAppointment": "Termin buchen", - "back": "Zurück" + "title": "Overview", + "dateAndTime": "{{ appointmentStart }}", + "appointmentDuration": "(Duration: {{ durationInMinutes }} minutes)", + "postponeAppointment": "Postpone appointment", + "bookAppointment": "Book Appointment", + "back": "Back" }, "snackbar": { - "putAppointmentConfirmation": "Der Termin wurde (um)gebucht." + "putAppointmentConfirmation": "The appointment has been (re)scheduled." } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/signature.json b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/signature.json index 2c1bb76c9b4b09d59f762059b4fff7d537dadb5f..51ee81c9937db3c05f6d33486e54cdb401a983a4 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/signature.json +++ b/citizen-portal/src/lib/businessModules/travelMedicine/locales/en/signature.json @@ -1,15 +1,15 @@ { "panelSection": { - "title": "Signaturfeld", - "ownerLabel": "Eigentümer", - "modalButton": "Unterschrift hinzufügen", - "ownerRequired": "Bitte geben Sie den Namen des Eigentümers ein", - "signatureRequired": "Bitte fügen Sie ihre Unterschrift hinzu" + "title": "Signature Field", + "ownerLabel": "Owner", + "modalButton": "Add Signature", + "ownerRequired": "Please enter the owner's name", + "signatureRequired": "Please add your signature" }, "modal": { - "title": "Signatur", - "sign": "Bitte hier Unterschreiben", - "deleteButton": "Unterschrift löschen", - "addButton": "Hinzufügen" + "title": "Signature", + "sign": "Please Sign Here", + "deleteButton": "Delete Signature", + "addButton": "Add" } } diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/shared/navigationItems.tsx b/citizen-portal/src/lib/businessModules/travelMedicine/shared/navigationItems.tsx index 0809249911db6b86d407beff6383b066eb6d7a94..397aa8b02fad35b3359f66009efbaf592ccde4e1 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/shared/navigationItems.tsx +++ b/citizen-portal/src/lib/businessModules/travelMedicine/shared/navigationItems.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/businessModules/travelMedicine/shared/routes.ts b/citizen-portal/src/lib/businessModules/travelMedicine/shared/routes.ts index ae177db6dea5854486a184a491be1236847c7482..fc2260a1fbf428e5a6509d26f6e30c4f6e815f1d 100644 --- a/citizen-portal/src/lib/businessModules/travelMedicine/shared/routes.ts +++ b/citizen-portal/src/lib/businessModules/travelMedicine/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/src/lib/i18n/I18nProvider.tsx b/citizen-portal/src/lib/i18n/I18nProvider.tsx index 4eb86b63b171847105f8dcb43a9b5011e33a7a9b..0296ce2c1b1f879094e4b780e738f57bd053cd93 100644 --- a/citizen-portal/src/lib/i18n/I18nProvider.tsx +++ b/citizen-portal/src/lib/i18n/I18nProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/client.ts b/citizen-portal/src/lib/i18n/client.ts index f41a93307cb9d1c8f6e4c1813f73b67a5a0b622f..8bf15912722bfecd6483979b13fcf468bad5d42b 100644 --- a/citizen-portal/src/lib/i18n/client.ts +++ b/citizen-portal/src/lib/i18n/client.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/components/LanguagePicker.tsx b/citizen-portal/src/lib/i18n/components/LanguagePicker.tsx index d6c288935201e1aec8eadd48ad5f6462da086dd2..8e2393d035eabbe1ccc652499cbbb69614fdb699 100644 --- a/citizen-portal/src/lib/i18n/components/LanguagePicker.tsx +++ b/citizen-portal/src/lib/i18n/components/LanguagePicker.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/flags/DeutschFlag.tsx b/citizen-portal/src/lib/i18n/flags/DeutschFlag.tsx index 6f4a7befb884e4b1dab63e7a086b346e62ee2fe2..dada13693e248797eae56cb61222607870b6aeae 100644 --- a/citizen-portal/src/lib/i18n/flags/DeutschFlag.tsx +++ b/citizen-portal/src/lib/i18n/flags/DeutschFlag.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/flags/UKFlag.tsx b/citizen-portal/src/lib/i18n/flags/UKFlag.tsx index b0530795fe2597e28886f03278d2b5e0a72d31c6..92320571adc6277cc2725756329fbc032ca61d99 100644 --- a/citizen-portal/src/lib/i18n/flags/UKFlag.tsx +++ b/citizen-portal/src/lib/i18n/flags/UKFlag.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/options.ts b/citizen-portal/src/lib/i18n/options.ts index c76759434094b1563558f2fdfc1fb14ea4396451..4481941012b45fbfcf08d4032e955b459f653fdf 100644 --- a/citizen-portal/src/lib/i18n/options.ts +++ b/citizen-portal/src/lib/i18n/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/parseLocaleFromPath.ts b/citizen-portal/src/lib/i18n/parseLocaleFromPath.ts index 945bb0b36f641fb96e859f376423d8442fd1b8fc..ea7a9a4ef6b025603feeee9c3ab1de21b26cb8ab 100644 --- a/citizen-portal/src/lib/i18n/parseLocaleFromPath.ts +++ b/citizen-portal/src/lib/i18n/parseLocaleFromPath.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/redirectToLocaleMiddleware.ts b/citizen-portal/src/lib/i18n/redirectToLocaleMiddleware.ts index 0f5048309ee1a25a1d3197b41cecadfbe4d181a0..238aed2811fef72cdf0f5382ff8d945cda06faa1 100644 --- a/citizen-portal/src/lib/i18n/redirectToLocaleMiddleware.ts +++ b/citizen-portal/src/lib/i18n/redirectToLocaleMiddleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/useLang.ts b/citizen-portal/src/lib/i18n/useLang.ts index 5abddb1e34ba361c2575cbb9da608133de6ae864..6621f6e43bd4760b3badd88d5cce6c69ee138856 100644 --- a/citizen-portal/src/lib/i18n/useLang.ts +++ b/citizen-portal/src/lib/i18n/useLang.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/i18n/useLocale.ts b/citizen-portal/src/lib/i18n/useLocale.ts index 08a051ec9e3143b236d96bceeecfc92c613dee33..70180c78eda0abb0262ad4e846b98749927d3d73 100644 --- a/citizen-portal/src/lib/i18n/useLocale.ts +++ b/citizen-portal/src/lib/i18n/useLocale.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/api/clients.ts b/citizen-portal/src/lib/shared/api/clients.ts index db5de90317654f95011c48aea56c141bdf516bde..59452c938ff11f4179a52a6ab465e53f62d43202 100644 --- a/citizen-portal/src/lib/shared/api/clients.ts +++ b/citizen-portal/src/lib/shared/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/api/config.ts b/citizen-portal/src/lib/shared/api/config.ts index ad527aeaca8fbc83639517737e8ae98b43da8ac5..43f332dee8e53181f557eef3e741c43245bcb785 100644 --- a/citizen-portal/src/lib/shared/api/config.ts +++ b/citizen-portal/src/lib/shared/api/config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -14,6 +14,7 @@ declare module "@eshg/lib-portal/api/ApiProvider" { PUBLIC_SCHOOL_ENTRY_BACKEND_URL: string; PUBLIC_TRAVEL_MEDICINE_BACKEND_URL: string; PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL: string; + PUBLIC_MEDICAL_REGISTRY_BACKEND_URL: string; } } @@ -29,4 +30,5 @@ export const API_CONFIGURATION: ApiConfiguration = { PUBLIC_TRAVEL_MEDICINE_BACKEND_URL: env.PUBLIC_TRAVEL_MEDICINE_BACKEND_URL, PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL: env.PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL, + PUBLIC_MEDICAL_REGISTRY_BACKEND_URL: env.PUBLIC_MEDICAL_REGISTRY_BACKEND_URL, }; diff --git a/citizen-portal/src/lib/shared/api/models/DepartmentInfo.ts b/citizen-portal/src/lib/shared/api/models/DepartmentInfo.ts index 7ab29f206bb865ef412476a558512a35a8e73a78..e3460f99dc3084477bdc232173184182c46ddcd4 100644 --- a/citizen-portal/src/lib/shared/api/models/DepartmentInfo.ts +++ b/citizen-portal/src/lib/shared/api/models/DepartmentInfo.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/api/queries/apiQueryKeys.ts b/citizen-portal/src/lib/shared/api/queries/apiQueryKeys.ts index 459733e0b07f61318de92c8e94d7cef5e1e325a5..7b1673dc7f3ccc91c2c99fba38117bf2173d736f 100644 --- a/citizen-portal/src/lib/shared/api/queries/apiQueryKeys.ts +++ b/citizen-portal/src/lib/shared/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/api/queries/department.ts b/citizen-portal/src/lib/shared/api/queries/department.ts index 4dd56b7928842841b0cddad2ca44397740f05121..05a6deac1c15bf0b7b9cd4555a18e1dd14cdaa7b 100644 --- a/citizen-portal/src/lib/shared/api/queries/department.ts +++ b/citizen-portal/src/lib/shared/api/queries/department.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/api/queries/publicConfig.ts b/citizen-portal/src/lib/shared/api/queries/publicConfig.ts index 93bed1fadde0d650bb4ea296e2b0c40602d731f1..9602f8567366008a3d1e0bedbf9f6997c0ccf94a 100644 --- a/citizen-portal/src/lib/shared/api/queries/publicConfig.ts +++ b/citizen-portal/src/lib/shared/api/queries/publicConfig.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/breakpoints.ts b/citizen-portal/src/lib/shared/breakpoints.ts index cdf6bb96c5095fffbcd338fb39333f88672bf816..ed84eb4a0c3a43056ad7bdf9efc2e8c2906382ad 100644 --- a/citizen-portal/src/lib/shared/breakpoints.ts +++ b/citizen-portal/src/lib/shared/breakpoints.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/AddressSection.tsx b/citizen-portal/src/lib/shared/components/AddressSection.tsx index 76ef1d629e4600746038c66d3578fc73c3fd59ae..dbe85cdcbfc9ee0406082bbcaccb528f2cb7433a 100644 --- a/citizen-portal/src/lib/shared/components/AddressSection.tsx +++ b/citizen-portal/src/lib/shared/components/AddressSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/CitizenSnackbar.tsx b/citizen-portal/src/lib/shared/components/CitizenSnackbar.tsx index bc425706cbf9052981ad804a87f57b4b2ec4cc2c..00d1a7ccf43f686f03abef30fbbfce134cf203da 100644 --- a/citizen-portal/src/lib/shared/components/CitizenSnackbar.tsx +++ b/citizen-portal/src/lib/shared/components/CitizenSnackbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -13,10 +13,9 @@ import { ContentMargin, contentMarginDesktop, contentMarginMobile, - headerHeightDesktop, - headerHeightMobile, } from "@/lib/baseModule/components/layout/sizes"; import { responsiveContent } from "@/lib/shared/components/layout/PageContent"; +import { useHeaderHeights } from "@/lib/shared/components/layout/useHeaderHeights"; const ICONS: Record<SnackbarComponentProps["color"], SvgIconComponent> = { primary: Info, @@ -24,8 +23,21 @@ const ICONS: Record<SnackbarComponentProps["color"], SvgIconComponent> = { danger: Warning, }; -const StyledSnackbar = styled(Snackbar)<SnackbarComponentProps>( - ({ theme, color, position }) => ({ +interface StyledSnackbarProps extends SnackbarComponentProps { + headerHeightDesktop: string; + headerHeightMobile: string; +} + +function excludeHeaderHeightProps( + prop: PropertyKey, +): prop is keyof StyledSnackbarProps { + return prop !== "headerHeightDesktop" && prop !== "headerHeightMobile"; +} + +const StyledSnackbar = styled(Snackbar, { + shouldForwardProp: excludeHeaderHeightProps, +})<StyledSnackbarProps>( + ({ theme, color, position, headerHeightDesktop, headerHeightMobile }) => ({ "&.MuiSnackbar-root": { "--Snackbar-padding": theme.spacing(2), "--Snackbar-inset": calculatedSnackbarOffset( @@ -54,11 +66,14 @@ const StyledSnackbar = styled(Snackbar)<SnackbarComponentProps>( ); export function CitizenSnackbar(props: SnackbarComponentProps) { + const { headerHeightDesktop, headerHeightMobile } = useHeaderHeights(); const IconComponent = ICONS[props.color]; return ( <StyledSnackbar variant="soft" size="lg" + headerHeightDesktop={headerHeightDesktop} + headerHeightMobile={headerHeightMobile} anchorOrigin={{ vertical: "top", horizontal: "center" }} startDecorator={<IconComponent />} {...props} diff --git a/citizen-portal/src/lib/shared/components/ContactSection.tsx b/citizen-portal/src/lib/shared/components/ContactSection.tsx index 1a6b8cc00a8cb9d643345c64e0a873d422733caa..1e14f8710e71d90fcfd4db5bef7424bad2de73ef 100644 --- a/citizen-portal/src/lib/shared/components/ContactSection.tsx +++ b/citizen-portal/src/lib/shared/components/ContactSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/OpeningHoursSection.tsx b/citizen-portal/src/lib/shared/components/OpeningHoursSection.tsx index 2fe74044ec68bb560f8d2bfa6030d2e48d89e762..1832820ec53e0eaa052f93c8f93127055272ff1a 100644 --- a/citizen-portal/src/lib/shared/components/OpeningHoursSection.tsx +++ b/citizen-portal/src/lib/shared/components/OpeningHoursSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/boundaries/CitizenPortalErrorModal.tsx b/citizen-portal/src/lib/shared/components/boundaries/CitizenPortalErrorModal.tsx new file mode 100644 index 0000000000000000000000000000000000000000..d99ecdd8c8810c0684e2b93e2c80a39787fb2d2d --- /dev/null +++ b/citizen-portal/src/lib/shared/components/boundaries/CitizenPortalErrorModal.tsx @@ -0,0 +1,24 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { + BaseErrorModal, + ErrorModalProps, +} from "@eshg/lib-portal/components/boundaries/BaseErrorModal"; + +import { useTranslation } from "@/lib/i18n/client"; + +export function CitizenPortalErrorModal({ + title, + ...props +}: Readonly<ErrorModalProps>) { + const { t } = useTranslation(); + + const fallbackTitle = t("error.title"); + + return <BaseErrorModal title={title ?? fallbackTitle} {...props} />; +} diff --git a/citizen-portal/src/lib/shared/components/buttons/ActionsMenu.tsx b/citizen-portal/src/lib/shared/components/buttons/ActionsMenu.tsx index c8b9c59686d5c0e5cc14de534a8d69f1640dd526..d2165b8f272ee8ecfbd0244bfb4aee6f88268bb1 100644 --- a/citizen-portal/src/lib/shared/components/buttons/ActionsMenu.tsx +++ b/citizen-portal/src/lib/shared/components/buttons/ActionsMenu.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/buttons/LogoutButton.tsx b/citizen-portal/src/lib/shared/components/buttons/LogoutButton.tsx index 21a4923331f5fd323d4abaec1fb214c31a044e57..1cbce5519031d83d4809fce06f3d0f12feec8f1a 100644 --- a/citizen-portal/src/lib/shared/components/buttons/LogoutButton.tsx +++ b/citizen-portal/src/lib/shared/components/buttons/LogoutButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/card/ServiceCard.tsx b/citizen-portal/src/lib/shared/components/card/ServiceCard.tsx index 562b57c84cc1c6389a30e88ca121071437275824..a9b060f0855f4b89ac126025734bc14892621375 100644 --- a/citizen-portal/src/lib/shared/components/card/ServiceCard.tsx +++ b/citizen-portal/src/lib/shared/components/card/ServiceCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/card/ServiceCardContainer.tsx b/citizen-portal/src/lib/shared/components/card/ServiceCardContainer.tsx index 8238332460eae9fa2f27553e1a817aa0825965c3..2f494214c376d1cdc28b61374dc3547a5eae9ba2 100644 --- a/citizen-portal/src/lib/shared/components/card/ServiceCardContainer.tsx +++ b/citizen-portal/src/lib/shared/components/card/ServiceCardContainer.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/confirmationDialog/CitizenConfirmationButtonBar.tsx b/citizen-portal/src/lib/shared/components/confirmationDialog/CitizenConfirmationButtonBar.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0d38dc9aaae09f30423c4720195cb317d9243da3 --- /dev/null +++ b/citizen-portal/src/lib/shared/components/confirmationDialog/CitizenConfirmationButtonBar.tsx @@ -0,0 +1,102 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; +import { DioalogButtonBarProps } from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialogButtonBar"; +import { Button, Stack } from "@mui/joy"; +import { Fragment, useState } from "react"; + +import { useIsMobile } from "@/lib/shared/hooks/useIsMobile"; + +export function CitizenConfirmationButtonBar({ + onClose, + color = "primary", + confirmLabel, + onConfirm, + onConfirmMutation, + denyLabel, + onDeny, + cancelLabel, + hideCancelButton = false, + handleCancel, +}: DioalogButtonBarProps) { + const [isConfirming, setIsConfirming] = useState(false); + const [isDenying, setIsDenying] = useState(false); + const mutation = useHandledMutation( + onConfirmMutation?.mutationOptions ?? { + mutationFn: () => Promise.resolve(), + }, + ); + + const isMobile = useIsMobile(); + + function renderButtons(isMobile: boolean) { + const buttons = [ + !hideCancelButton && ( + <Button + key="cancel" + size="sm" + variant="outlined" + color="danger" + onClick={handleCancel} + > + {cancelLabel} + </Button> + ), + onDeny !== undefined && ( + <Button + key="deny" + variant="outlined" + size="sm" + color="danger" + loading={isDenying} + loadingPosition="start" + onClick={async () => { + setIsDenying(true); + await onDeny(); + setIsDenying(false); + onClose(); + }} + > + {denyLabel} + </Button> + ), + <Button + key="confirm" + size="sm" + color={color} + loading={isConfirming} + loadingPosition="start" + onClick={async () => { + setIsConfirming(true); + await mutation.mutateAsync(onConfirmMutation?.variableSupplier?.(), { + onError: () => setIsConfirming(false), + }); + await onConfirm(); + setIsConfirming(false); + onClose(); + }} + > + {confirmLabel} + </Button>, + ]; + + return isMobile ? ( + <Stack direction="column" spacing={2} width="100%"> + {buttons.toReversed()} + </Stack> + ) : ( + <Stack + direction="row" + spacing={2} + sx={{ marginLeft: "auto", paddingTop: 1 }} + > + {buttons} + </Stack> + ); + } + + return <Fragment>{renderButtons(isMobile)}</Fragment>; +} diff --git a/citizen-portal/src/lib/shared/components/confirmationDialog/CitizenPortalConfirmationDialog.tsx b/citizen-portal/src/lib/shared/components/confirmationDialog/CitizenPortalConfirmationDialog.tsx new file mode 100644 index 0000000000000000000000000000000000000000..b8318a18ab9c5e313c406818fc78be905a6dcd75 --- /dev/null +++ b/citizen-portal/src/lib/shared/components/confirmationDialog/CitizenPortalConfirmationDialog.tsx @@ -0,0 +1,45 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { + BaseConfirmationDialog, + ConfirmationDialogProps, +} from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialog"; +import { isDefined } from "remeda"; + +import { useTranslation } from "@/lib/i18n/client"; +import { CitizenConfirmationButtonBar } from "@/lib/shared/components/confirmationDialog/CitizenConfirmationButtonBar"; + +export function CitizenPortalConfirmationDialog( + props: Readonly<ConfirmationDialogProps>, +) { + const { t } = useTranslation(); + + const title = isDefined(props.title) + ? props.title + : t("confirmationDialog.title"); + const description = isDefined(props.description) + ? props.description + : t("confirmationDialog.description"); + const confirmLabel = isDefined(props.confirmLabel) + ? props.confirmLabel + : t("confirmationDialog.confirmLabel"); + const cancelLabel = isDefined(props.cancelLabel) + ? props.cancelLabel + : t("confirmationDialog.cancelLabel"); + + return ( + <BaseConfirmationDialog + title={title} + description={description} + confirmLabel={confirmLabel} + cancelLabel={cancelLabel} + buttonBarComponent={CitizenConfirmationButtonBar} + {...props} + /> + ); +} diff --git a/citizen-portal/src/lib/shared/components/form/ConfirmationCheckboxField.tsx b/citizen-portal/src/lib/shared/components/form/ConfirmationCheckboxField.tsx index f9ea4f1d458e3a825650eff0ffd6d29d01823696..39eac561ff545621a8ce5e525c540eec1a47fced 100644 --- a/citizen-portal/src/lib/shared/components/form/ConfirmationCheckboxField.tsx +++ b/citizen-portal/src/lib/shared/components/form/ConfirmationCheckboxField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/form/FieldButtonBar.tsx b/citizen-portal/src/lib/shared/components/form/FieldButtonBar.tsx index 9fa3160ecea8d492d67c1feaf0020c14c47e7192..958eadc425281cda1e8109ea0e1ee5e3e30f2790 100644 --- a/citizen-portal/src/lib/shared/components/form/FieldButtonBar.tsx +++ b/citizen-portal/src/lib/shared/components/form/FieldButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/form/TextareaField.tsx b/citizen-portal/src/lib/shared/components/form/TextareaField.tsx index 058136cb026d0b9130c0a81276a0d303b614a2c4..71ef66567192405e436d9abefb3684f69f04837b 100644 --- a/citizen-portal/src/lib/shared/components/form/TextareaField.tsx +++ b/citizen-portal/src/lib/shared/components/form/TextareaField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/form/file/FileField.tsx b/citizen-portal/src/lib/shared/components/form/file/FileField.tsx new file mode 100644 index 0000000000000000000000000000000000000000..da8a3e830f7701b2c975214502c0b8c849761409 --- /dev/null +++ b/citizen-portal/src/lib/shared/components/form/file/FileField.tsx @@ -0,0 +1,200 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { useBaseField } from "@eshg/lib-portal/components/formFields/BaseField"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; +import { useDragAndDrop } from "@eshg/lib-portal/components/formFields/file/useDragAndDrop"; +import { + FileLike, + validateFileType, +} from "@eshg/lib-portal/components/formFields/file/validators"; +import { formatFileSize } from "@eshg/lib-portal/helpers/file"; +import { validatePipe } from "@eshg/lib-portal/helpers/validators"; +import { FieldProps } from "@eshg/lib-portal/types/form"; +import { CheckOutlined, CloseOutlined } from "@mui/icons-material"; +import { + FormControl, + FormHelperText, + FormLabel, + FormLabelProps, + Stack, + Typography, +} from "@mui/joy"; +import { ChangeEvent, ReactNode, useId, useRef } from "react"; +import { isDefined, isFunction, isString } from "remeda"; + +import { useTranslation } from "@/lib/i18n/client"; + +import { FileButton, StyledRemoveButton } from "./buttonVariants"; + +function resolveAcceptedFileTypes( + accept: FileType | FileType[] | undefined, +): FileType[] { + if (accept === undefined) { + return []; + } + + if (Array.isArray(accept)) { + return accept; + } + + return [accept]; +} + +function renderLabel( + label: string | ((labelProps: FileLabelProps) => ReactNode), + labelProps: FileLabelProps, +) { + if (typeof label === "function") { + return label(labelProps); + } + + return ( + <FormLabel {...labelProps}> + <Typography sx={{ fontWeight: "bold" }}>{label}</Typography> + </FormLabel> + ); +} + +export interface FileInformationTranslations { + file: string; + size: string; +} + +export interface FileFieldProps extends Omit<FieldProps<File | null>, "label"> { + label: string | ((labelProps: FileLabelProps) => ReactNode); + accept?: FileType | FileType[]; + placeholder: string; + placeholderSelected: string; + helperText: string; + removeFile: string; + fileInformationTranslation: FileInformationTranslations; + onChange?: (file: FileLike | null) => void; +} + +type FileLabelProps = Pick<FormLabelProps, "htmlFor">; + +export function FileField(props: Readonly<FileFieldProps>) { + const { i18n } = useTranslation(); + const acceptedFileTypes = resolveAcceptedFileTypes(props.accept); + const fileTypeErrorVal = validateFileType( + acceptedFileTypes, + i18n.resolvedLanguage ?? "de-DE", + ); + const validate = validatePipe(fileTypeErrorVal, props.validate); + const field = useBaseField<File | null>({ ...props, validate }); + const fileInputRef = useRef<HTMLInputElement>(null); + const fileInputId = useId(); + const acceptedMimeTypes = + acceptedFileTypes.length > 0 + ? acceptedFileTypes + .flatMap((fileType) => + isString(fileType.mimeType) + ? [fileType.mimeType] + : fileType.mimeType, + ) + .join(", ") + : undefined; + const fileName = field.input.value?.name; + const fileSize = field.input.value?.size; + const isFileSelected = !!fileName; + + async function handleChange(event: ChangeEvent<HTMLInputElement>) { + const file = event.target.files?.[0] ?? null; + await field.helpers.setValue(file); + await field.helpers.setTouched(true); + if (isFunction(props.onChange)) { + props.onChange(file); + } + } + + function handleButtonClick() { + if (fileInputRef.current) { + fileInputRef.current.click(); + } + } + + const { dropState, handleFileDrag, handleFileDrop, handleFileDragLeave } = + useDragAndDrop({ + validateType: fileTypeErrorVal, + onChange: field.helpers.setValue, + }); + + return ( + <FormControl error={field.error} required={field.required}> + <Stack direction="row" flexWrap="wrap" gap={3} alignItems="center"> + <Stack direction="row" justifyContent="flex-start" flexGrow={1} gap={2}> + {isFileSelected ? ( + <CheckOutlined color={"success"} /> + ) : ( + <CloseOutlined color={"danger"} /> + )} + <Stack> + {renderLabel(props.label, { htmlFor: fileInputId })} + {props.accept && !isFileSelected && ( + <Typography>{props.helperText}</Typography> + )} + {isFileSelected && ( + <> + <Typography> + {props.fileInformationTranslation.file}: {fileName} + </Typography> + <Typography> + {props.fileInformationTranslation.size}:{" "} + {formatFileSize(fileSize!)} Format: JPEG + </Typography> + </> + )} + </Stack> + </Stack> + + <Stack direction="row" flexGrow={1} justifyContent="flex-end"> + <Stack alignItems="end"> + {isFileSelected && ( + <StyledRemoveButton + onClick={async () => { + fileInputRef.current!.value = ""; + await field.helpers.setValue(null); + }} + sx={{ marginBottom: 0.5 }} + > + {props.removeFile} + </StyledRemoveButton> + )} + + <FileButton + activeDragOver={dropState === "copy"} + error={field.error || dropState === "no-drop"} + onClick={handleButtonClick} + aria-controls={fileInputId} + onDragOver={handleFileDrag} + onDrop={handleFileDrop} + onDragLeave={handleFileDragLeave} + > + {isFileSelected ? props.placeholderSelected : props.placeholder} + </FileButton> + <input + ref={fileInputRef} + id={fileInputId} + type="file" + name={props.name} + placeholder={props.placeholder} + accept={acceptedMimeTypes} + required={field.required} + onChange={handleChange} + tabIndex={-1} + style={{ display: "none" }} + /> + {isDefined(field.helperText) && ( + <FormHelperText id={`${fileInputId}-helper-text`}> + {field.helperText} + </FormHelperText> + )} + </Stack> + </Stack> + </Stack> + </FormControl> + ); +} diff --git a/citizen-portal/src/lib/shared/components/form/file/buttonVariants.tsx b/citizen-portal/src/lib/shared/components/form/file/buttonVariants.tsx new file mode 100644 index 0000000000000000000000000000000000000000..b9b78a3acb8166ac6751df1dd84ea4769d196f76 --- /dev/null +++ b/citizen-portal/src/lib/shared/components/form/file/buttonVariants.tsx @@ -0,0 +1,52 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { UploadOutlined } from "@mui/icons-material"; +import { Button, ButtonProps, styled } from "@mui/joy"; + +export const StyledButton = styled(Button)(({ theme }) => ({ + padding: theme.spacing(1, 6), +})); + +interface FileButtonProps + extends Pick< + ButtonProps, + | "sx" + | "aria-controls" + | "onClick" + | "children" + | "onDrop" + | "onDragOver" + | "onDragLeave" + | "onDragEnd" + > { + activeDragOver?: boolean; + error: boolean; +} + +export function FileButton(props: FileButtonProps) { + const { error, activeDragOver, ...buttonProps } = props; + + return ( + <StyledButton + {...buttonProps} + variant="outlined" + color={activeDragOver ? "primary" : error ? "danger" : "primary"} + startDecorator={<UploadOutlined />} + /> + ); +} + +export const StyledRemoveButton = styled(Button)(({ theme }) => ({ + "&:hover": { + backgroundColor: "transparent", + color: theme.palette.danger[400], + }, + padding: 0, + border: "none", + background: "none", + color: theme.palette.danger[500], + textDecoration: "underline", +})); diff --git a/citizen-portal/src/lib/shared/components/icon/GradientIcon.tsx b/citizen-portal/src/lib/shared/components/icon/GradientIcon.tsx index aafb78805888488c296f661d4793e998bdccb1fd..9133f18d16b4d3e6c53f5033ab9c4100f5479d71 100644 --- a/citizen-portal/src/lib/shared/components/icon/GradientIcon.tsx +++ b/citizen-portal/src/lib/shared/components/icon/GradientIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/infoSection.tsx b/citizen-portal/src/lib/shared/components/infoSection.tsx index bc20bfed76e4b0015ebf973a9e832cc861fd660a..7df4fadc8222f7531d3687ef6b28b0ebe4901ae6 100644 --- a/citizen-portal/src/lib/shared/components/infoSection.tsx +++ b/citizen-portal/src/lib/shared/components/infoSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/layout/PageBanner.tsx b/citizen-portal/src/lib/shared/components/layout/PageBanner.tsx index e635dd5765c1d4cdea69342b390b10ee512c3a7c..93ba9e045b15f4b940e419c4bffe032b6ffa259f 100644 --- a/citizen-portal/src/lib/shared/components/layout/PageBanner.tsx +++ b/citizen-portal/src/lib/shared/components/layout/PageBanner.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/layout/PageContent.tsx b/citizen-portal/src/lib/shared/components/layout/PageContent.tsx index aa92d3c182f84babd36c0eaf27dbfce3ab148b58..c0a5130ac803ea3d047f7bbce7b8338892b10291 100644 --- a/citizen-portal/src/lib/shared/components/layout/PageContent.tsx +++ b/citizen-portal/src/lib/shared/components/layout/PageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/layout/TitleAndSheetContentLayout.tsx b/citizen-portal/src/lib/shared/components/layout/TitleAndSheetContentLayout.tsx index f5bc15e5d6b4623f23f6b069652784ca842bcd2e..5c534ecd445d24490e3285bb903746efcdb7d86f 100644 --- a/citizen-portal/src/lib/shared/components/layout/TitleAndSheetContentLayout.tsx +++ b/citizen-portal/src/lib/shared/components/layout/TitleAndSheetContentLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/layout/contentSheet.tsx b/citizen-portal/src/lib/shared/components/layout/contentSheet.tsx index 3e2cc8dddfa1f040ecd85858d1350b1bb7fe342c..f53550af4013650b8c2a9efc3df5ed92bcd34ba0 100644 --- a/citizen-portal/src/lib/shared/components/layout/contentSheet.tsx +++ b/citizen-portal/src/lib/shared/components/layout/contentSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/layout/grid.tsx b/citizen-portal/src/lib/shared/components/layout/grid.tsx index 175f2d6249991d79afb34ea59ce9167ae405c477..936c99935e059316d9a59a3b9b889493d10f63d3 100644 --- a/citizen-portal/src/lib/shared/components/layout/grid.tsx +++ b/citizen-portal/src/lib/shared/components/layout/grid.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/layout/page.tsx b/citizen-portal/src/lib/shared/components/layout/page.tsx index 71bbe48f8ef6d6ff5f88e20c6b36335fef25c99e..3943cfaed969a52e475307284f216a4d1712e3a8 100644 --- a/citizen-portal/src/lib/shared/components/layout/page.tsx +++ b/citizen-portal/src/lib/shared/components/layout/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/layout/useHeaderHeights.tsx b/citizen-portal/src/lib/shared/components/layout/useHeaderHeights.tsx new file mode 100644 index 0000000000000000000000000000000000000000..55481f5ed5a67cd2248aa0983f74948874052cbb --- /dev/null +++ b/citizen-portal/src/lib/shared/components/layout/useHeaderHeights.tsx @@ -0,0 +1,20 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { useEnvironmentIndicatorHeight } from "@eshg/lib-portal/components/EnvironmentIndicator"; + +import { + appBarHeightDesktop, + appBarHeightMobile, +} from "@/lib/baseModule/components/layout/sizes"; + +export function useHeaderHeights() { + const environmentIndicatorHeight = useEnvironmentIndicatorHeight(); + + return { + headerHeightMobile: `calc(${environmentIndicatorHeight} + ${appBarHeightMobile})`, + headerHeightDesktop: `calc(${environmentIndicatorHeight} + ${appBarHeightDesktop})`, + }; +} diff --git a/citizen-portal/src/lib/shared/components/navigationProvider/NavigationProvider.tsx b/citizen-portal/src/lib/shared/components/navigationProvider/NavigationProvider.tsx index 66a8ae82db6dab587153a57b1c4741699c58463e..5f19df7619499cb6a34958de498d7d08a7866e4c 100644 --- a/citizen-portal/src/lib/shared/components/navigationProvider/NavigationProvider.tsx +++ b/citizen-portal/src/lib/shared/components/navigationProvider/NavigationProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/components/tableListing.tsx b/citizen-portal/src/lib/shared/components/tableListing.tsx index ffb3f51351eb8cafaa72d3c95a348b6668b0d7ee..38498faa0e37e9202202fda48e555bd09e3524a8 100644 --- a/citizen-portal/src/lib/shared/components/tableListing.tsx +++ b/citizen-portal/src/lib/shared/components/tableListing.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/formatters/address.ts b/citizen-portal/src/lib/shared/formatters/address.ts index e8d25eb143477c91d3bf0d59c3d812b877dbb31d..cf3006b0ae0d77e554e7003e3f2d9d7890a8ff81 100644 --- a/citizen-portal/src/lib/shared/formatters/address.ts +++ b/citizen-portal/src/lib/shared/formatters/address.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/helpers/accessCode.ts b/citizen-portal/src/lib/shared/helpers/accessCode.ts index 11917a428cb8041a1abb06cec392b00d2e23dd1a..5a91b1957826b395260b43ef7960ffc4b50a4815 100644 --- a/citizen-portal/src/lib/shared/helpers/accessCode.ts +++ b/citizen-portal/src/lib/shared/helpers/accessCode.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/helpers/countryOption.ts b/citizen-portal/src/lib/shared/helpers/countryOption.ts index f7c43b85fc26bec0f60682efeaa1cb3e309a0d77..521fe5177c8163ca79e39270449deb8bddd316bd 100644 --- a/citizen-portal/src/lib/shared/helpers/countryOption.ts +++ b/citizen-portal/src/lib/shared/helpers/countryOption.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/helpers/form.ts b/citizen-portal/src/lib/shared/helpers/form.ts index cc8ed41b18687eba6ecfb23f91d1832139ba9890..2804d89f83630e50c65f5f358c46ef2044b4d532 100644 --- a/citizen-portal/src/lib/shared/helpers/form.ts +++ b/citizen-portal/src/lib/shared/helpers/form.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/helpers/validators.ts b/citizen-portal/src/lib/shared/helpers/validators.ts index 9812a226c65904e2a459c116386fa76b553cdd0f..1db1a42d27cfacef425d406491dada5d17f789ad 100644 --- a/citizen-portal/src/lib/shared/helpers/validators.ts +++ b/citizen-portal/src/lib/shared/helpers/validators.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts b/citizen-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts index 77f60b2d82872086ff8d46dd7f41a0a9b2f1bc3f..977ebdba5556e97f66ebf6844fafa4d463511038 100644 --- a/citizen-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts +++ b/citizen-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/hooks/useConfirmationDialog.ts b/citizen-portal/src/lib/shared/hooks/useConfirmationDialog.ts new file mode 100644 index 0000000000000000000000000000000000000000..47bc8ddc13f5fa6a9b54ad0ec701fee4f8e54711 --- /dev/null +++ b/citizen-portal/src/lib/shared/hooks/useConfirmationDialog.ts @@ -0,0 +1,54 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { + ConfirmationDialogContext, + ConfirmationDialogOptions, +} from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; +import { useContext, useMemo } from "react"; +import { isDefined } from "remeda"; + +import { useTranslation } from "@/lib/i18n/client"; + +export function useConfirmationDialog() { + const context = useContext(ConfirmationDialogContext); + if (context === null) { + throw new Error( + "useConfirmationDialog was called outside ConfirmationDialogProvider", + ); + } + const { setConfirmationDialog } = context; + const { t } = useTranslation(); + + return useMemo(() => { + function openConfirmationDialog(options: ConfirmationDialogOptions) { + setConfirmationDialog({ + ...options, + open: true, + onClose: () => { + setConfirmationDialog(undefined); + if (isDefined(options.onClose)) { + options.onClose(); + } + }, + }); + } + + function openCancelDialog(options: ConfirmationDialogOptions) { + openConfirmationDialog({ + title: t("cancelDialog.title"), + description: t("cancelDialog.description"), + confirmLabel: t("cancelDialog.confirmLabel"), + color: "danger", + ...options, + }); + } + + return { + openConfirmationDialog, + openCancelDialog, + }; + }, [setConfirmationDialog, t]); +} diff --git a/citizen-portal/src/lib/shared/hooks/useHasBusinessModule.ts b/citizen-portal/src/lib/shared/hooks/useHasBusinessModule.ts index 25230ada6b6756cbcb37ddacf02ebd188eda7488..539aedbb06ea7a3aad54358c8f754a192c68ce86 100644 --- a/citizen-portal/src/lib/shared/hooks/useHasBusinessModule.ts +++ b/citizen-portal/src/lib/shared/hooks/useHasBusinessModule.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/hooks/useIsMobile.ts b/citizen-portal/src/lib/shared/hooks/useIsMobile.ts index c4fb4aa228c2b2620e73b26e23204b1c663b1d6e..de2e0f4b1508ab90280afe1f7f2e18bcc72d5f0c 100644 --- a/citizen-portal/src/lib/shared/hooks/useIsMobile.ts +++ b/citizen-portal/src/lib/shared/hooks/useIsMobile.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/hooks/useSearchParam.ts b/citizen-portal/src/lib/shared/hooks/useSearchParam.ts index c14ee892ded261903654ecd8b934373fea7c397d..18111478561e334cac88ba98d86c3ad113fca955 100644 --- a/citizen-portal/src/lib/shared/hooks/useSearchParam.ts +++ b/citizen-portal/src/lib/shared/hooks/useSearchParam.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/lib/shared/types.ts b/citizen-portal/src/lib/shared/types.ts index 73898b0d728bcab7fcfac7abcd7da4c314614838..8c53fd6f7df3b7421c887622d0f3e1c5a03df0b9 100644 --- a/citizen-portal/src/lib/shared/types.ts +++ b/citizen-portal/src/lib/shared/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/citizen-portal/src/middleware.ts b/citizen-portal/src/middleware.ts index 53dfb9ac4df79f7fcd00fe1d2c50cc1056d690d1..60f3692c3c19e49858a0632dd2b03683103a6691 100644 --- a/citizen-portal/src/middleware.ts +++ b/citizen-portal/src/middleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/citizen-portal/vitest.config.ts b/citizen-portal/vitest.config.ts index d9edccc4e2dd97abceb9eb8d86d06ea8f65e335d..a5b0b7bc8b07c480eae5a8e8a3041e2b78a31466 100644 --- a/citizen-portal/vitest.config.ts +++ b/citizen-portal/vitest.config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/config/eslint.base.js b/config/eslint.base.js index 7f58928ad06ebd29aa3476960a807cee0e7da094..51beedafc054f68453186652b5bf5d262b3df654 100644 --- a/config/eslint.base.js +++ b/config/eslint.base.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/config/eslint.next.js b/config/eslint.next.js index f6cb0566b9f25c4cee827d732dea7557507d82ca..1b3f4a7a508a584202a98ef22e7d97ef4ddb0644 100644 --- a/config/eslint.next.js +++ b/config/eslint.next.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/config/next.base.js b/config/next.base.js index 24b071cec0c4f16a8e72c92828106d3e0ec6ec2b..e4b30ec5e39f05a03ab9506bdd6534920aa38337 100644 --- a/config/next.base.js +++ b/config/next.base.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/config/vitest.base.ts b/config/vitest.base.ts index 8164e66468ad4c1abf9674f8213a9d8d486c3b5a..87257ace1634f62707a473c8c6c2623eaf8cd970 100644 --- a/config/vitest.base.ts +++ b/config/vitest.base.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/.env b/employee-portal/.env index c6431bf2b1d36a27a75e525df1b81cdd5f1e1ff5..f0cc135a0b48f4cb8a93d571b41dcbef4bcbc989 100644 --- a/employee-portal/.env +++ b/employee-portal/.env @@ -1,3 +1,5 @@ +PUBLIC_ENVIRONMENT_TYPE=local + PUBLIC_FRONTEND_URL=http://localhost:4000 PUBLIC_BASE_BACKEND_URL=http://localhost:4000/api/base PUBLIC_INSPECTION_BACKEND_URL=http://localhost:4000/api/inspection @@ -15,7 +17,7 @@ PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL=http://localhost:4000/api/official-m MARKDOWN_PAGE_DIRECTORY=frankfurt -MATRIX_SERVER_URL=http://localhost:4000/api/synapse +PUBLIC_MATRIX_SERVER_URL=http://localhost:4000/api/synapse NEXT_PUBLIC_IMAGE_COMPRESSION_DEFAULT_QUALITY=0.8 NEXT_PUBLIC_IMAGE_COMPRESSION_DEFAULT_MAX_SIZE=1920 diff --git a/employee-portal/eslint.config.js b/employee-portal/eslint.config.js index 6ea4e843e8ff7c783f329db30993e249dfd16dc0..f867195be390d84ad154e61ffcba9025ab270d93 100644 --- a/employee-portal/eslint.config.js +++ b/employee-portal/eslint.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/markdown/common/release-notes.md b/employee-portal/markdown/common/release-notes.md index 47f9a79dcdc09ecb2dfe0ed9d66efba2ad912a4a..f07769be05ceb7bf17bc0771149f0e7eb0ad5cd0 100644 --- a/employee-portal/markdown/common/release-notes.md +++ b/employee-portal/markdown/common/release-notes.md @@ -2,6 +2,22 @@ GA-Lotse ist ein Kooperationsprojekt des Gesundheitsamts Frankfurt am Main mit d Finanziert von der Europäischen Union – NextGenerationEU +## GA-Lotse 1.5 + +_18.12.2024_ + +Sechster Release der Anwendung GA-Lotse. + +### Begehung: + +* Import von Einrichtungen und zugehörigen Begehungs-Vorgängen +* Ableich vom beim Import entstandenen Duplikaten + * von Vorgängen + * von Einrichtungen +* Statistik für Begehungen + * Datenquelle für Einrichtungen + * Datenquelle für Begehungs-Vorgänge + ## GA-Lotse 1.4 _04.12.2024_ diff --git a/employee-portal/next-env.d.ts b/employee-portal/next-env.d.ts index 6c649663a07151130911a753ea2756bf97c04ac6..f808af5860ce4e8cbbdd1125b1d912126c26c404 100644 --- a/employee-portal/next-env.d.ts +++ b/employee-portal/next-env.d.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/next.config.js b/employee-portal/next.config.js index d6b476c0fa8e271afd606ea7dc536a3a24a38ff0..4c16762a98ad3f8d2dbb2488d126bf5a92f206ff 100644 --- a/employee-portal/next.config.js +++ b/employee-portal/next.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/package.json b/employee-portal/package.json index 4fb4080cd2bd41e518c0aa10097e146138bc3889..44d5e36b442954ea8735d765effc142a30635485 100644 --- a/employee-portal/package.json +++ b/employee-portal/package.json @@ -10,6 +10,7 @@ "@eshg/employee-portal-api": "workspace:*", "@eshg/lib-portal": "workspace:*", "@fontsource/poppins": "catalog:joy", + "@fontsource/source-code-pro": "catalog:joy", "@fullcalendar/core": "catalog:fullcalendar", "@fullcalendar/daygrid": "catalog:fullcalendar", "@fullcalendar/interaction": "catalog:fullcalendar", diff --git a/employee-portal/src/app/(baseModule)/(static)/[documentType]/page.tsx b/employee-portal/src/app/(baseModule)/(static)/[documentType]/page.tsx index 78e4276076d8db3b6a39e1f64ad4aa67c5d008ca..6168e214e1605f5473e83cdb96b739074b89c2e9 100644 --- a/employee-portal/src/app/(baseModule)/(static)/[documentType]/page.tsx +++ b/employee-portal/src/app/(baseModule)/(static)/[documentType]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/(static)/acknowledgements/page.tsx b/employee-portal/src/app/(baseModule)/(static)/acknowledgements/page.tsx index 5a6efa655604f797b8ad8b722fba7f81925871c1..87d66d5082c8f351b5f0b379ca0de74e0294675b 100644 --- a/employee-portal/src/app/(baseModule)/(static)/acknowledgements/page.tsx +++ b/employee-portal/src/app/(baseModule)/(static)/acknowledgements/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/(static)/usage-notes/page.tsx b/employee-portal/src/app/(baseModule)/(static)/usage-notes/page.tsx index d38e1568ce22e1f2e11d13e8e3951beec8c86f0f..dc966d62d927dd714ccb35d347ad925d9bddf5ad 100644 --- a/employee-portal/src/app/(baseModule)/(static)/usage-notes/page.tsx +++ b/employee-portal/src/app/(baseModule)/(static)/usage-notes/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/account/login-protocol/page.tsx b/employee-portal/src/app/(baseModule)/account/login-protocol/page.tsx index 2e82739b8e3d7b200bf8b47aaab7a4f8c24a7e4c..6d5fc4a7a169256f03630001642741752c773661 100644 --- a/employee-portal/src/app/(baseModule)/account/login-protocol/page.tsx +++ b/employee-portal/src/app/(baseModule)/account/login-protocol/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/account/sessions/page.tsx b/employee-portal/src/app/(baseModule)/account/sessions/page.tsx index fa8c67950752574d30b4518389a9f98c4538a044..91da4748b3cea24ba2ccedba09d0a89246282a85 100644 --- a/employee-portal/src/app/(baseModule)/account/sessions/page.tsx +++ b/employee-portal/src/app/(baseModule)/account/sessions/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/auditlog/[source]/[date]/decrypt/page.tsx b/employee-portal/src/app/(baseModule)/auditlog/[source]/[date]/decrypt/page.tsx index bac9d811c1dc8c5f0db06ba230635746f859ce75..0daff822a317c764867b0ab2b5d4c4df82be40f1 100644 --- a/employee-portal/src/app/(baseModule)/auditlog/[source]/[date]/decrypt/page.tsx +++ b/employee-portal/src/app/(baseModule)/auditlog/[source]/[date]/decrypt/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/auditlog/authorize/page.tsx b/employee-portal/src/app/(baseModule)/auditlog/authorize/page.tsx index 4c23bf04f6ad1cd27ef3169209d4a321922944ba..6467ccd82046f9b2c785833d07da2b9ebf966c78 100644 --- a/employee-portal/src/app/(baseModule)/auditlog/authorize/page.tsx +++ b/employee-portal/src/app/(baseModule)/auditlog/authorize/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/auditlog/page.tsx b/employee-portal/src/app/(baseModule)/auditlog/page.tsx index 7f9e36e0862941c3992487d2138e12f28502fc77..bfa19471379958fa037bd4ed16f9a73555e93d54 100644 --- a/employee-portal/src/app/(baseModule)/auditlog/page.tsx +++ b/employee-portal/src/app/(baseModule)/auditlog/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/calendar/page.tsx b/employee-portal/src/app/(baseModule)/calendar/page.tsx index 422367eafcc13dc3ba01f32a4ee9ac5950cdc9d6..26f32f28418f26f5f3a6b7fde3ab77ce8d6ba5a5 100644 --- a/employee-portal/src/app/(baseModule)/calendar/page.tsx +++ b/employee-portal/src/app/(baseModule)/calendar/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/callback/logout/page.tsx b/employee-portal/src/app/(baseModule)/callback/logout/page.tsx index 776ed826db3d4f8ec6ab1418b2f41dc7e209539e..ed0adc07979125734cadfcdb74d7065a3b0890af 100644 --- a/employee-portal/src/app/(baseModule)/callback/logout/page.tsx +++ b/employee-portal/src/app/(baseModule)/callback/logout/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/contacts/[id]/page.tsx b/employee-portal/src/app/(baseModule)/contacts/[id]/page.tsx index 499229567e865be81b781932d64c3f642c615df1..e9843c71bb700e337e147417c1ab0e28730cc33a 100644 --- a/employee-portal/src/app/(baseModule)/contacts/[id]/page.tsx +++ b/employee-portal/src/app/(baseModule)/contacts/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/contacts/page.tsx b/employee-portal/src/app/(baseModule)/contacts/page.tsx index 3ec7177bc5c597bedc0cce69bc5a6d57d41829bd..6479f4257d7bd907ea5c6152ae0ddf9b95bd2c49 100644 --- a/employee-portal/src/app/(baseModule)/contacts/page.tsx +++ b/employee-portal/src/app/(baseModule)/contacts/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/gdpr/[id]/page.tsx b/employee-portal/src/app/(baseModule)/gdpr/[id]/page.tsx index b70d1abc10cc7f051bb2ec55a726777b4e09e3fc..28031a5817a175dd71c466ec2cda65f27b462944 100644 --- a/employee-portal/src/app/(baseModule)/gdpr/[id]/page.tsx +++ b/employee-portal/src/app/(baseModule)/gdpr/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/gdpr/page.tsx b/employee-portal/src/app/(baseModule)/gdpr/page.tsx index 02277994dfc66f8a637447f60bd71e30297a81fc..3faf1aadaedfce5e9932313172e8b7c1151c7305 100644 --- a/employee-portal/src/app/(baseModule)/gdpr/page.tsx +++ b/employee-portal/src/app/(baseModule)/gdpr/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/[gdprProcedureId]/page.tsx b/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/[gdprProcedureId]/page.tsx index ae1de538a04b6e1c74f2477a469b27fcf6e8b14a..3fb7d16407067cf7189e002dc1bd818a54c5e227 100644 --- a/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/[gdprProcedureId]/page.tsx +++ b/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/[gdprProcedureId]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/overview/page.tsx b/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/overview/page.tsx index 531cf73fc2fc1c73fc3b3edff18a878a1aadcc63..a6fd3a61a47910a653567d2daec51dc4bf348a43 100644 --- a/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/overview/page.tsx +++ b/employee-portal/src/app/(baseModule)/gdpr/validation-tasks/[businessModule]/overview/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/inbox-procedures/page.tsx b/employee-portal/src/app/(baseModule)/inbox-procedures/page.tsx index 206a71fbef406352c5e0611f7307a8b17315fcfc..a3ae98a7af5a2c3c7516a1707061617d063174e7 100644 --- a/employee-portal/src/app/(baseModule)/inbox-procedures/page.tsx +++ b/employee-portal/src/app/(baseModule)/inbox-procedures/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/inventory/[id]/page.tsx b/employee-portal/src/app/(baseModule)/inventory/[id]/page.tsx index e20841325bceeb921c5dfb71d9c4eca5fa616133..eb041239d6a0204fc07576906ea547ff122a5250 100644 --- a/employee-portal/src/app/(baseModule)/inventory/[id]/page.tsx +++ b/employee-portal/src/app/(baseModule)/inventory/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/inventory/page.tsx b/employee-portal/src/app/(baseModule)/inventory/page.tsx index 7c04738e4b1cbf84e5d07022a30484c2f65e4d55..daaa53f7d3da2144b15d8db99c95fd041717e5ba 100644 --- a/employee-portal/src/app/(baseModule)/inventory/page.tsx +++ b/employee-portal/src/app/(baseModule)/inventory/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/metrics/[businessModuleName]/[procedureType]/page.tsx b/employee-portal/src/app/(baseModule)/metrics/[businessModuleName]/[procedureType]/page.tsx index 0caa0f151fc9370d6469760187f53ffd4baaa0c0..3066dd8cc3a58fcaef66f1b104819bb4462a6eba 100644 --- a/employee-portal/src/app/(baseModule)/metrics/[businessModuleName]/[procedureType]/page.tsx +++ b/employee-portal/src/app/(baseModule)/metrics/[businessModuleName]/[procedureType]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/metrics/page.tsx b/employee-portal/src/app/(baseModule)/metrics/page.tsx index 85b993b197ab0199bf8655dc4bb876c1f76e305b..07dc79fe04025fc268eea0d254067313ecbfc19e 100644 --- a/employee-portal/src/app/(baseModule)/metrics/page.tsx +++ b/employee-portal/src/app/(baseModule)/metrics/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/opendata/[id]/page.tsx b/employee-portal/src/app/(baseModule)/opendata/[id]/page.tsx index cd793afc34ca7783c46891262fa793feef272050..19c5aed45becc806b56d0d07592b9a97fdd517e4 100644 --- a/employee-portal/src/app/(baseModule)/opendata/[id]/page.tsx +++ b/employee-portal/src/app/(baseModule)/opendata/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/opendata/page.tsx b/employee-portal/src/app/(baseModule)/opendata/page.tsx index 05fcc98484f6b30496730c2687c22bf59291a366..8e6433f5ea68b8ac15de5012232c567a46dc5cc7 100644 --- a/employee-portal/src/app/(baseModule)/opendata/page.tsx +++ b/employee-portal/src/app/(baseModule)/opendata/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/page.tsx b/employee-portal/src/app/(baseModule)/page.tsx index 8f05c0f3ade71ddf5f07495d11eaa24b9f74c5a0..3844ddf837d7e4a3dd7baba1d35ed0f78ef09449 100644 --- a/employee-portal/src/app/(baseModule)/page.tsx +++ b/employee-portal/src/app/(baseModule)/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/resources/[id]/page.tsx b/employee-portal/src/app/(baseModule)/resources/[id]/page.tsx index 81f45ab4533e1166400194704aa34f1b4b1e5fee..a025c4ae4e86e74caa23394772af9bf3a84a9f78 100644 --- a/employee-portal/src/app/(baseModule)/resources/[id]/page.tsx +++ b/employee-portal/src/app/(baseModule)/resources/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/resources/page.tsx b/employee-portal/src/app/(baseModule)/resources/page.tsx index 38d533d39b3db7105f13a8227fc84f591eaf2df1..46e64a1a2d834fbd9322ad79b4e2f84c61b3bdf2 100644 --- a/employee-portal/src/app/(baseModule)/resources/page.tsx +++ b/employee-portal/src/app/(baseModule)/resources/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/tasks/page.tsx b/employee-portal/src/app/(baseModule)/tasks/page.tsx index 20fe2638d8485fb7b90d0c95934e218d1860fe57..09dc29ee17b1ccc5b369ff00dd4d7aae9a37d11d 100644 --- a/employee-portal/src/app/(baseModule)/tasks/page.tsx +++ b/employee-portal/src/app/(baseModule)/tasks/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/users/[id]/page.tsx b/employee-portal/src/app/(baseModule)/users/[id]/page.tsx index 19caa1473b229c6cc5067ba12a36fc51f17b8e67..7e140d5ff90965fb12d0b450e68266961c61a7af 100644 --- a/employee-portal/src/app/(baseModule)/users/[id]/page.tsx +++ b/employee-portal/src/app/(baseModule)/users/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(baseModule)/users/page.tsx b/employee-portal/src/app/(baseModule)/users/page.tsx index 9d654f0965d2a19e30cfe81700ba95482a707238..f155833545bbf924cd9bf09a7dc57ccc17fcbec1 100644 --- a/employee-portal/src/app/(baseModule)/users/page.tsx +++ b/employee-portal/src/app/(baseModule)/users/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/inspection/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/inspection/page.tsx index 605897b214b08d9f846af3bd2eb3bee246092c5e..8994c177de0e0a4d376ffd5a110ba39cec9298c8 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/inspection/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/inspection/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/measles-protection/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/measles-protection/page.tsx index cd71de02ed4b2c8dbb8b45b9dd1493f78c1c68bd..2175e03cb4c57e5afd9b504f276b1e241b0a470d 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/measles-protection/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/measles-protection/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/medical-registry/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/medical-registry/page.tsx index 53bc42f4e55d05750c3c028d3bea258660c5bf1e..76c64936a8d184ae667affcf90aca4887cc6ff0a 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/medical-registry/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/medical-registry/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/school-entry/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/school-entry/page.tsx index a4cd723e68d7ab5b4716744352607f579251d44e..19f27a6339061955ca73266fd5d5b42b5f8d1e67 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/school-entry/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/school-entry/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/sti-protection/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/sti-protection/page.tsx index c08d37f1dc656e797c6712faa6fb7c97244a5bed..c425118a255d10e9fe432421e117fadc54f623ba 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/sti-protection/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/sti-protection/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/travel-medicine/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/travel-medicine/page.tsx index 386718f098ff5b92761c0c3134b68982985fb7b4..776c1273b262e44efc60cfc90c7a60d09be6cd30 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/travel-medicine/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving-admin/travel-medicine/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving/inspection/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving/inspection/page.tsx index b6dcca733b28becf93b45f22e37f19b7a6c7d87a..8b2de4d075403c8782d34d0f99f56a43bffa464a 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving/inspection/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving/inspection/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving/measles-protection/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving/measles-protection/page.tsx index e6e59f1963f996474f521bc8e75224f4d7752147..92a3ec5a99f7faa34c8ac304d99756122774f5fe 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving/measles-protection/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving/measles-protection/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving/medical-registry/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving/medical-registry/page.tsx index e813fa0663e01a05ad4410a094d0f59d1e9d200e..2b107cb112f1c8575198f33e160e8fa71acbf16d 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving/medical-registry/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving/medical-registry/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving/school-entry/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving/school-entry/page.tsx index 36f3c32cbeda292ae43a5c7a4968dabcf1f2b8d1..e88d46b0f967f0db822ed44c4f251459c23c7312 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving/school-entry/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving/school-entry/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving/sti-protection/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving/sti-protection/page.tsx index fb9d113b40cdb2cc6be43fa67a99c44b08ad42cd..152f5097c50fb92795fa4e5a929f4b16f387291b 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving/sti-protection/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving/sti-protection/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/(archiving)/archiving/travel-medicine/page.tsx b/employee-portal/src/app/(businessModules)/(archiving)/archiving/travel-medicine/page.tsx index 93d464cafade7eaa0d5f1e714b5a6e300fe54e20..f0a2f3570e64073e16cd89899e7887cfa08eef92 100644 --- a/employee-portal/src/app/(businessModules)/(archiving)/archiving/travel-medicine/page.tsx +++ b/employee-portal/src/app/(businessModules)/(archiving)/archiving/travel-medicine/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/chat/layout.tsx b/employee-portal/src/app/(businessModules)/chat/layout.tsx index 19d28cc570bc3479564063caac802ef7c4dc2a5f..0fc7748e8a0ac205ea971147752978f9d74016f8 100644 --- a/employee-portal/src/app/(businessModules)/chat/layout.tsx +++ b/employee-portal/src/app/(businessModules)/chat/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/chat/page.tsx b/employee-portal/src/app/(businessModules)/chat/page.tsx index e89791e8343468a6f4bf94995bc99013452b9e3e..f13b0b57648262e454199665a8a23a816dc6eb7e 100644 --- a/employee-portal/src/app/(businessModules)/chat/page.tsx +++ b/employee-portal/src/app/(businessModules)/chat/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/details/page.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/details/page.tsx index 61d2511dad7608faaca8aa06b01842d3acbf6184..72ee5cc6d941419b3d98f276557699ee821e2396 100644 --- a/employee-portal/src/app/(businessModules)/dental/children/[childId]/details/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/children/[childId]/details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/error.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/error.tsx index d4334a6d1638d22fefa91e29cf6d94ffa668cdba..d292451d7082274aa23b5e2db8d50421e8bd78b3 100644 --- a/employee-portal/src/app/(businessModules)/dental/children/[childId]/error.tsx +++ b/employee-portal/src/app/(businessModules)/dental/children/[childId]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/examinations/[examinationId]/page.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/examinations/[examinationId]/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..8fa002fb3b3f9e0e32eefd8a1b0651651a6d5925 --- /dev/null +++ b/employee-portal/src/app/(businessModules)/dental/children/[childId]/examinations/[examinationId]/page.tsx @@ -0,0 +1,62 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { UpdateExaminationRequest } from "@eshg/employee-portal-api/dental"; +import { + mapOptionalValue, + parseOptionalValue, +} from "@eshg/lib-portal/helpers/form"; +import { useSuspenseQuery } from "@tanstack/react-query"; + +import { DentalChildPageProps } from "@/app/(businessModules)/dental/children/[childId]/layout"; +import { useChildApi } from "@/lib/businessModules/dental/api/clients"; +import { Examination } from "@/lib/businessModules/dental/api/models/Examination"; +import { useUpdateExamination } from "@/lib/businessModules/dental/api/mutations/childApi"; +import { getExaminationQuery } from "@/lib/businessModules/dental/api/queries/childApi"; +import { + ExaminationDetails, + ExaminationFormValues, +} from "@/lib/businessModules/dental/features/children/details/ExaminationDetails"; + +export default function ExaminationDetailsPage(props: DentalChildPageProps) { + const childApi = useChildApi(); + const examinationId = props.params.examinationId; + const { data: examination } = useSuspenseQuery( + getExaminationQuery(childApi, examinationId), + ); + const updateExamination = useUpdateExamination(examinationId); + async function handleSubmit(values: ExaminationFormValues) { + await updateExamination.mutateAsync( + mapToRequest(examinationId, values, examination.version), + ); + } + + return ( + <ExaminationDetails + initialValues={mapToFormValues(examination)} + onSubmit={handleSubmit} + /> + ); +} + +function mapToFormValues(apiExamination: Examination): ExaminationFormValues { + return { note: parseOptionalValue(apiExamination.note) }; +} + +function mapToRequest( + examinationId: string, + formValues: ExaminationFormValues, + version: number, +): UpdateExaminationRequest { + return { + examinationId, + apiUpdateExaminationRequest: { + version, + note: mapOptionalValue(formValues.note), + }, + }; +} diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/examinations/page.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/examinations/page.tsx index 496bfcd512820f02636e34f9950c1aee87a5dfe4..b7733263b859c64958f57f673f78b754c29cf838 100644 --- a/employee-portal/src/app/(businessModules)/dental/children/[childId]/examinations/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/children/[childId]/examinations/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -21,5 +21,7 @@ export default function DentalChildExaminationsPage( getChildDetailsQuery(childApi, childId), ); - return <ExaminationsTable examinations={child.examinations} />; + return ( + <ExaminationsTable examinations={child.examinations} childId={childId} /> + ); } diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/layout.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/layout.tsx index 2ec2381af47c93b26d904aa90ecba158ac8afaa0..9bcf923156386f81e1d2f3e4a312ffe51ec82307 100644 --- a/employee-portal/src/app/(businessModules)/dental/children/[childId]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/dental/children/[childId]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,6 +15,7 @@ export type DentalChildPageProps = Readonly<{ export interface DentalChildPageParams { childId: string; + examinationId: string; } export default function DentalChildLayout( diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/page.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/page.tsx index 3329b3782052531d20979436d640688c5955c9cb..b152ed9454ce54f2010ea2a405b8ddc7fc78aa34 100644 --- a/employee-portal/src/app/(businessModules)/dental/children/[childId]/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/children/[childId]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/progress-entries/[progressEntryId]/page.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/progress-entries/[progressEntryId]/page.tsx deleted file mode 100644 index 0d13723016f6a017949bc318f28d91f23f8a9322..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/dental/children/[childId]/progress-entries/[progressEntryId]/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import DentalProgressEntriesPage from "@/app/(businessModules)/dental/children/[childId]/progress-entries/page"; - -export default DentalProgressEntriesPage; diff --git a/employee-portal/src/app/(businessModules)/dental/children/[childId]/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/dental/children/[childId]/progress-entries/page.tsx index 5b1265cb61458814cbfc0e4f1a82fa94a73c2434..d000f1e60bdf1089b69749ddafc1afea1acd2d70 100644 --- a/employee-portal/src/app/(businessModules)/dental/children/[childId]/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/children/[childId]/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -34,26 +34,11 @@ import { systemProgressEntryTypeTitles, } from "@/lib/businessModules/dental/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/dental/shared/moduleUserGroup"; -import { routes } from "@/lib/businessModules/dental/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; -import { - ProgressEntriesPageProps, - ProgressEntriesUrlParams, -} from "@/lib/shared/components/procedures/progress-entries/types"; - -const PROGRESS_ENTRY_ROUTES: ProgressEntriesPageProps["routes"] = { - entryDetails: (procedureId, entryId) => - routes.children.byId(procedureId).progressEntries.byId(entryId), - progressEntries: (procedureId) => - routes.children.byId(procedureId).progressEntries.overview, -}; - -interface DentalProgressEntriesPageParams extends DentalChildPageParams { - progressEntryId?: string; -} +import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; export default function DentalProgressEntriesPage( - props: ProgressEntriesUrlParams<DentalProgressEntriesPageParams>, + props: ProgressEntriesUrlParams<DentalChildPageParams>, ) { const { params, searchParams } = props; return ( @@ -65,7 +50,6 @@ export default function DentalProgressEntriesPage( useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} procedureId={params.childId} - progressEntryId={params.progressEntryId} searchParams={searchParams} leaderRole={ApiUserRole.DentalLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -75,7 +59,6 @@ export default function DentalProgressEntriesPage( useDownloadFile={useDownloadDentalFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={PROGRESS_ENTRY_ROUTES} systemProgressEntryTypes={systemProgressEntryTypeTitles} additionalKeyDocumentTypes={keyDocumentTypes} groupName={moduleUserGroup.group} diff --git a/employee-portal/src/app/(businessModules)/dental/children/page.tsx b/employee-portal/src/app/(businessModules)/dental/children/page.tsx index 3a37fcbfb8b1267e2a5dcea966bdbfedb663bab8..419436a9648c13821e7861e8a07691bd57d83dbe 100644 --- a/employee-portal/src/app/(businessModules)/dental/children/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/children/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,6 +9,7 @@ import { Cached } from "@mui/icons-material"; import { Button } from "@mui/joy"; import { ChildrenTable } from "@/lib/businessModules/dental/features/children/ChildrenTable"; +import { CloseSchoolYearButton } from "@/lib/businessModules/dental/features/children/CloseSchoolYearButton"; import { CreateChildSidebar } from "@/lib/businessModules/dental/features/children/new/CreateChildSidebar"; import { useImportChildrenSidebar } from "@/lib/businessModules/dental/import/ImportChildrenSidebar"; import { BUTTON_SIZE } from "@/lib/businessModules/schoolEntry/features/procedures/new/constants"; @@ -45,6 +46,7 @@ export default function DentalProceduresPage() { <MainContentLayout fullViewportHeight> <ChildrenTable buttons={[ + <CloseSchoolYearButton key="closeSchoolYear" />, <ImportChildrenButton key="importChildren" />, <CreateChildButton key="createChild" />, ]} diff --git a/employee-portal/src/app/(businessModules)/dental/page.tsx b/employee-portal/src/app/(businessModules)/dental/page.tsx index 95e005b0210dc5f2fa22992e092dcaab65461af7..0f691f2f37fe3b13f2ca3053cb2c8e0a8c4b72dc 100644 --- a/employee-portal/src/app/(businessModules)/dental/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/details/page.tsx b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/details/page.tsx index c66dfa1c709ee39aa0e30e52c0bc9880673dcbe5..f2446a53302e2985f40a9ff2373787d6842d4b14 100644 --- a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/details/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/error.tsx b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/error.tsx index d4334a6d1638d22fefa91e29cf6d94ffa668cdba..d292451d7082274aa23b5e2db8d50421e8bd78b3 100644 --- a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/error.tsx +++ b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/layout.tsx b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/layout.tsx index 6343314c25ce968da97e70540fac9a59c6f73859..80d76e76ebdca0eb7e49f82f2d272e6bf9499fda 100644 --- a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/page.tsx b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/page.tsx index c430bb778282189fe132596cb00d44f9f0675b05..99d941341d96be1a09a44d9f7b40a5817a970d16 100644 --- a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/[prophylaxisSessionId]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/page.tsx b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/page.tsx index 3eac541751e67f94656c29f15d0f5b07c26ed252..b0e7634bc559149f61016cb9a73465024b71b143 100644 --- a/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/page.tsx +++ b/employee-portal/src/app/(businessModules)/dental/prophylaxis-sessions/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/new/page.tsx b/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/new/page.tsx index d5bb4a8612839554f8a4a5545aa56da1049f11dc..dc24a860f77e45149e70ebfd5ecf0654d312a440 100644 --- a/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/page.tsx b/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/page.tsx index 2e57a625d9b80c4c4bc10c24eca98adc288b62ae..ac98bf8041076ab44d637d81524c7483f23fa1fc 100644 --- a/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/checklist/def/[defId]/versions/[versionId]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/checklist/def/new/page.tsx b/employee-portal/src/app/(businessModules)/inspection/checklist/def/new/page.tsx index 52a6bccc54626403e0be2e7083432c389d5e5faa..a6509f7f81027f61b3af696329a2a91827763c3b 100644 --- a/employee-portal/src/app/(businessModules)/inspection/checklist/def/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/checklist/def/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/checklist/def/page.tsx b/employee-portal/src/app/(businessModules)/inspection/checklist/def/page.tsx index 1a20eca27cf4ea3e45401caf61549bf6e8b37e36..b44c62fdfc73a0e560827cfdfe789bca61bde463 100644 --- a/employee-portal/src/app/(businessModules)/inspection/checklist/def/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/checklist/def/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/page.tsx b/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/page.tsx index 37c16eb5f45dc2c2d0959ac22a49d040728bac63..f9b487800e93b2e745b9c9c4718feca5dada6eae 100644 --- a/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/results/page.tsx b/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/results/page.tsx index 747558cd76992e3ccc93ff0f9448c3758b9ea3db..17971a3cffbada51baaf917c0aace65a5cd02cd8 100644 --- a/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/results/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/facility/search/[id]/results/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/facility/search/new/page.tsx b/employee-portal/src/app/(businessModules)/inspection/facility/search/new/page.tsx index 26c638d117e5b5bc331be8fb6f13370ac1458e38..a48d05367487d6dce8dae9061d72c98313a10bfb 100644 --- a/employee-portal/src/app/(businessModules)/inspection/facility/search/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/facility/search/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/facility/search/page.tsx b/employee-portal/src/app/(businessModules)/inspection/facility/search/page.tsx index f0c79a4b8dccef5e2e3ef8f2bc6cfb701eac8fcc..89bea8efaa5f287fa75093d8312b3f3808277f9f 100644 --- a/employee-portal/src/app/(businessModules)/inspection/facility/search/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/facility/search/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/inbox/page.tsx b/employee-portal/src/app/(businessModules)/inspection/inbox/page.tsx index 48f50261c6bcdf03f8fc3e6cac70c683ac15bb56..cc85072ed7f173b901d6d815bf860bb5c4fa333c 100644 --- a/employee-portal/src/app/(businessModules)/inspection/inbox/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/inbox/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/objecttype/page.tsx b/employee-portal/src/app/(businessModules)/inspection/objecttype/page.tsx index e08a661c553c3296351d1ba4625637f489d5fdd0..ffbefa48de251bd13252560e6cb4043deb81062e 100644 --- a/employee-portal/src/app/(businessModules)/inspection/objecttype/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/objecttype/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/packlist/def/page.tsx b/employee-portal/src/app/(businessModules)/inspection/packlist/def/page.tsx index 23ce398e74d0bb666a2101d5db84c9b8ebe3f431..e486a4830187a03407ae6f1ca0989b05ecc82c4d 100644 --- a/employee-portal/src/app/(businessModules)/inspection/packlist/def/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/packlist/def/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/layout.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/layout.tsx index e40dabdb518a40e65dbb6b23c2303c83c737ec5a..7a4c48489f8994ce61a951a9330315d5e902d5f3 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/page.tsx index a9568b04a3fd02a1eca0b6f45fc340b3510e48a7..09b355483b7a6a93d9fc6ece6445d5077e6071fe 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/(subpages)/[id]/reportresult/edit/[reportId]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/layout.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/layout.tsx index 8b85a0e598583b420201556062bcb793ade8272d..a85e81f6f70fa1354d8a2fd3910163a115148a8a 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/layout.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/page.tsx index c95f7e375b90df47e612eae00106b17e9abaf22c..ddcf918937bfa18c5a7bc4b0cee0fe2b8e090d84 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/basedata/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/error.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/error.tsx index bc3a3cc0ccabd7068cd32b7daac20bfd8fce319a..d213f3c53a8ac9793bf877e220a69ff3997180f2 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/error.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/layout.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/layout.tsx index 08b05beb169a25c717eb858eb2a5057e76697103..82906a7640219a5b93639df55dcc65edd8cc5a06 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/layout.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/page.tsx index 50fd383fd790055f148439aeab6d6371de6bed4a..49c5e6c55f7c333ab8dc89ae72c224af91179246 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/execution/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/history/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/history/page.tsx index 5a7b6d1be5820e9dc9c252c8fc5e34585ca96201..1084f11c5ed61c44ebb4a730b82f46906c6537a2 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/history/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/history/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/layout.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/layout.tsx index 07cdf57b44ca43cdfabb61782c1e7bc16e7a0d9c..7479f8809eb00734d40845825fe7845562f3de8c 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/page.tsx index f50cad6891f455c22059750462a116f3f8e460d2..db62cc49d255a4a70b2e00e051cf65c34e5ce072 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/layout.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/layout.tsx index aa51c90d90756fa49abfb3ff6534cef36564a0a8..5b8891be6ab4aa3e9160541ddc668d62a22d88a4 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/layout.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/page.tsx index e01986ff1173cea8ac92341c591283432a77c007..dd1b5eb91bfd7917e69521fe46f4e90a769267f5 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/planning/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/[entryId]/details/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/[entryId]/details/page.tsx deleted file mode 100644 index ebe9a7709882f847253e5b2811d975460a60942a..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/[entryId]/details/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import InspectionProgressEntriesPage from "@/app/(businessModules)/inspection/procedures/[id]/progress-entries/page"; - -export default InspectionProgressEntriesPage; diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/layout.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/layout.tsx index aa51c90d90756fa49abfb3ff6534cef36564a0a8..5b8891be6ab4aa3e9160541ddc668d62a22d88a4 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/layout.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/page.tsx index dd8314c87fa5f1f15ca63cb26ff51b71963e7467..21de54b5cc7ab2b46fd5381204d0504d0a51e2d3 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -32,16 +32,11 @@ import { import { systemProgressEntryTypeTitles } from "@/lib/businessModules/inspection/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/inspection/shared/moduleUserGroup"; import { getHeadersForOfflineCaching } from "@/lib/businessModules/inspection/shared/offline/getHeadersForOfflineCaching"; -import { routes } from "@/lib/businessModules/inspection/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; -interface InspectionProgressEntriesPageParams extends EditInspectionPageParams { - entryId?: string; -} - export default function InspectionProgressEntriesPage( - props: ProgressEntriesUrlParams<InspectionProgressEntriesPageParams>, + props: ProgressEntriesUrlParams<EditInspectionPageParams>, ) { const { params, searchParams } = props; return ( @@ -53,7 +48,6 @@ export default function InspectionProgressEntriesPage( useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} procedureId={params.id} - progressEntryId={params.entryId} searchParams={searchParams} leaderRole={ApiUserRole.InspectionLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -63,12 +57,6 @@ export default function InspectionProgressEntriesPage( useDownloadFile={useDownloadInspectionFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={{ - entryDetails: (procedureId, entryId) => - routes.procedures.progressEntries(procedureId).details(entryId), - progressEntries: (procedureId) => - routes.procedures.progressEntries(procedureId).index, - }} systemProgressEntryTypes={systemProgressEntryTypeTitles} groupName={moduleUserGroup.group} getInitOverrides={getHeadersForOfflineCaching} diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/layout.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/layout.tsx index 555d85b5ac4292eaecfc72388b77976a4c49116b..8633b0cdc72c478e68f852255d15fe46a643f6be 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/layout.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/page.tsx index 77ec800debf7e7a2742b92cc04f7cb91e83da3a1..5fd6a3433e0002a6f9e028be865a6b64ab714e9a 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/[id]/reportresult/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/new/[procedureId]/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/new/[procedureId]/page.tsx index 8ebcb8e52977367e0e37cedf5bf729fcdbdb6996..c5358c474a02ac4e0cd209430201d38c2005d2fc 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/new/[procedureId]/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/new/[procedureId]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/procedures/page.tsx b/employee-portal/src/app/(businessModules)/inspection/procedures/page.tsx index 36c3234793fd197e1a73042c20b376abcf5828f1..cf60cdd631a53ee6ffe8a60f5aef62a3fc9c7365 100644 --- a/employee-portal/src/app/(businessModules)/inspection/procedures/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/procedures/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/repository/checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx b/employee-portal/src/app/(businessModules)/inspection/repository/checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx index c46137dd75d8052ee29a0d71b23f4a5ff53b71f0..481988baf161a1473255b322ec90c6dfe510d8b0 100644 --- a/employee-portal/src/app/(businessModules)/inspection/repository/checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/repository/checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/repository/core-checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx b/employee-portal/src/app/(businessModules)/inspection/repository/core-checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx index f3dca4bf10ec46329290ff3bb3b829636a0eef03..cfd42010b5678eeb54a8c4d160a60daff8062d1d 100644 --- a/employee-portal/src/app/(businessModules)/inspection/repository/core-checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/repository/core-checklist/[repositoryChecklistDefinitionId]/versions/[version]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/repository/page.tsx b/employee-portal/src/app/(businessModules)/inspection/repository/page.tsx index 920ed7ae6e84a03e4d7a2a3dd0b40a4c486a4879..40f67d8461d559d6913911963099b0332d437253 100644 --- a/employee-portal/src/app/(businessModules)/inspection/repository/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/repository/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/teamview/page.tsx b/employee-portal/src/app/(businessModules)/inspection/teamview/page.tsx index f30106b2be2bc6e462b8109ea2b7eddb24e3b3ff..7a18cda06b3713b90a7b6c6ea515f77d34693c29 100644 --- a/employee-portal/src/app/(businessModules)/inspection/teamview/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/teamview/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/inspection/textblocks/page.tsx b/employee-portal/src/app/(businessModules)/inspection/textblocks/page.tsx index eb71f06360a40ca1bdf1bf96a03916fe833bf1c7..fff1d00c14e3dc64904a86d9e644dc0bf8d34d5f 100644 --- a/employee-portal/src/app/(businessModules)/inspection/textblocks/page.tsx +++ b/employee-portal/src/app/(businessModules)/inspection/textblocks/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/new/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/new/page.tsx index d3f87239dd44d7937a78b56f74230e7be8d3595b..89197bcd8210e38bee14ef05523791069340a8d3 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/page.tsx index 109153d10a1f4dd71c1ebde01d15e274b20ee7c3..f163cd98e1f8ccf75ddf2fbccd9eddef57ee19a5 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/appointment-block-groups/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/measles-protection/inbox/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/inbox/page.tsx index 5c8cc9687483cfc229daf0c344b7c361b2521d41..724d176acb1fa1db245bd4d39d5800718c45a5a2 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/inbox/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/inbox/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/page.tsx index ef538a904ee6a15f65690c58c6c75ab18e932971..053402ef502b825ad499ac76186e7e0709edc097 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/[entryId]/details/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/[entryId]/details/page.tsx deleted file mode 100644 index 2b7f3849ec964a7c68cb915ce74cd492b3195441..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/[entryId]/details/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import MeaslesProtectionProcedureDataProgressEntriesTab from "@/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/page"; - -export default MeaslesProtectionProcedureDataProgressEntriesTab; diff --git a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/page.tsx index 795899d04fdd75d0e1de33a96fed80d6ec45390a..423c195d766b95a0ee2bc536b0e1be941de32b37 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -30,13 +30,11 @@ import { } from "@/lib/businessModules/measlesProtection/api/queries/progressEntries"; import { systemProgressEntryTypeTitles } from "@/lib/businessModules/measlesProtection/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/measlesProtection/shared/moduleUserGroup"; -import { routes } from "@/lib/businessModules/measlesProtection/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; interface MeaslesProtectionProcedureProgressEntriesPageParams { id: string; - entryId?: string; } export default function MeaslesProtectionProcedureDataProgressEntriesTab( @@ -51,8 +49,7 @@ export default function MeaslesProtectionProcedureDataProgressEntriesTab( usePatchProgressEntry={usePatchProgressEntry} useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} - procedureId={props.params.id} - progressEntryId={params.entryId} + procedureId={params.id} searchParams={searchParams} leaderRole={ApiUserRole.MeaslesProtectionLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -62,14 +59,6 @@ export default function MeaslesProtectionProcedureDataProgressEntriesTab( useDownloadFile={useDownloadMeaslesProtectionFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={{ - entryDetails: (procedureId, entryId) => - routes.procedures - .details(procedureId) - .progressEntries.details(entryId), - progressEntries: (procedureId) => - routes.procedures.details(procedureId).progressEntries.index, - }} systemProgressEntryTypes={systemProgressEntryTypeTitles} groupName={moduleUserGroup.group} /> diff --git a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/proof/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/proof/page.tsx index 575db0e89ab357e43ea07f27844d03d4a00a331c..edde9ed852fd4a7ad78f67ce5d8f4fec6efe2d14 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/proof/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/@tabs/proof/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/layout.tsx b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/layout.tsx index f326b18aca33678c9109a545d87dfb0fca62c419..7e11a44e4b889d2dc2c179e4a89d3bba324dc6c2 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/procedures/[id]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -28,7 +28,7 @@ function createTabItems(id: string): TabNavigationItem[] { }, { tabButtonName: "Verlaufseinträge", - href: routes.procedures.details(id).progressEntries.index, + href: routes.procedures.details(id).progressEntries, decorator: <TimelineOutlined />, }, ]; diff --git a/employee-portal/src/app/(businessModules)/measles-protection/procedures/draft/[id]/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/procedures/draft/[id]/page.tsx index b73c6a46c3a5f5e5e95ccef6888781bae656f201..46c3f9307c97200e5add9fc1d257a993b4c1cf7f 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/procedures/draft/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/procedures/draft/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/measles-protection/procedures/page.tsx b/employee-portal/src/app/(businessModules)/measles-protection/procedures/page.tsx index 815cee06566c17f253f4cf88f86685c62e67c2f3..31b21ec728861d9e339499999d3da20f433671ab 100644 --- a/employee-portal/src/app/(businessModules)/measles-protection/procedures/page.tsx +++ b/employee-portal/src/app/(businessModules)/measles-protection/procedures/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/details/page.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/details/page.tsx index bcb211c1ceb0b677785064e0829409fe27ffdefa..f5c2b21758e62ecba2a43a2c7366007262094fd3 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/details/page.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/error.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/error.tsx index d4334a6d1638d22fefa91e29cf6d94ffa668cdba..d292451d7082274aa23b5e2db8d50421e8bd78b3 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/error.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/layout.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/layout.tsx index 5858bb92bd1c3a6c5b7d81d290b859e6dddc3942..8553f7ed8b88d7678b8a832fe20664e21ff4b2cd 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/page.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/page.tsx index 0fb239c3908809398f3ac01a60a3b97d9047ae80..223097df34858bbc0bc4af3f7e0dea0277e2a040 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/[entryId]/details/page.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/[entryId]/details/page.tsx deleted file mode 100644 index 20d0985ff20bcb94c87d0fb0a7c2c303aeabcd00..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/[entryId]/details/page.tsx +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -"use client"; - -import MedicalRegistryProgressEntriesPage from "@/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/page"; - -export default MedicalRegistryProgressEntriesPage; diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/page.tsx index bd3505616ba82c76bf02234e93ae3eca1f92b69b..deb4f1dcac5532bcf9bf112959fed2a966649b57 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -36,19 +36,11 @@ import { systemProgressEntryTypeTitles, } from "@/lib/businessModules/medicalRegistry/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/medicalRegistry/shared/moduleUserGroup"; -import { routes } from "@/lib/businessModules/medicalRegistry/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; -interface MedicalRegistryProgressEntriesPageParams - extends MedicalRegistryProcedurePageParams { - entryId?: string; -} - export default function MedicalRegistryProgressEntriesPage( - props: Readonly< - ProgressEntriesUrlParams<MedicalRegistryProgressEntriesPageParams> - >, + props: Readonly<ProgressEntriesUrlParams<MedicalRegistryProcedurePageParams>>, ) { const { params, searchParams } = props; return ( @@ -60,7 +52,6 @@ export default function MedicalRegistryProgressEntriesPage( useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} procedureId={params.id} - progressEntryId={params.entryId} searchParams={searchParams} leaderRole={ApiUserRole.MedicalRegistryLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -70,13 +61,6 @@ export default function MedicalRegistryProgressEntriesPage( useDownloadFile={useDownloadMedicalRegistryFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={{ - entryDetails: (procedureId, entryId) => - routes.procedures.byId(procedureId).progressEntries.byId(entryId) - .details, - progressEntries: (procedureId) => - routes.procedures.byId(procedureId).progressEntries.index, - }} systemProgressEntryTypes={systemProgressEntryTypeTitles} additionalKeyDocumentTypes={keyDocumentTypes} groupName={moduleUserGroup.group} diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/template.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/template.tsx index 872cee269b7965b2677d7fa3883e2a36aa041ce2..865c3156d9377dd628eb02daee4bf9b3d71b94b5 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/template.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/[id]/template.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/create/page.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/create/page.tsx index d5ef548eaff2e4d1ce121f9870d62b3924a3a7b0..f102ceb77ec35bfedfe4ca8c8b7e798761e3babe 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/create/page.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/create/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/medical-registry/procedures/page.tsx b/employee-portal/src/app/(businessModules)/medical-registry/procedures/page.tsx index eaddfb9a1b90289dbda81c93b0220f67c4abbcca..27d68fa85e80fa265c9607e77c37676cd62f2def 100644 --- a/employee-portal/src/app/(businessModules)/medical-registry/procedures/page.tsx +++ b/employee-portal/src/app/(businessModules)/medical-registry/procedures/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/appointment-block-groups/new/page.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/appointment-block-groups/new/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a0c3bae6b81e03e0f8aa2c3dee35134c69a3bfc4 --- /dev/null +++ b/employee-portal/src/app/(businessModules)/official-medical-service/appointment-block-groups/new/page.tsx @@ -0,0 +1,27 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { CreateAppointmentBlockGroupForm } from "@/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm"; +import { routes } from "@/lib/businessModules/officialMedicalService/shared/routes"; +import { MainContentLayout } from "@/lib/shared/components/layout/MainContentLayout"; +import { StickyToolbarLayout } from "@/lib/shared/components/layout/StickyToolbarLayout"; +import { Toolbar } from "@/lib/shared/components/layout/Toolbar"; + +export default function NewAppointmentBlockPage() { + return ( + <StickyToolbarLayout + toolbar={ + <Toolbar + title="Neuen Terminblock planen" + backHref={routes.appointmentBlockGroups.index} + /> + } + > + <MainContentLayout> + <CreateAppointmentBlockGroupForm /> + </MainContentLayout> + </StickyToolbarLayout> + ); +} diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/appointment-block-groups/page.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/appointment-block-groups/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..3fa10e3c2f058bc2144af95161c82eca926bf6ca --- /dev/null +++ b/employee-portal/src/app/(businessModules)/official-medical-service/appointment-block-groups/page.tsx @@ -0,0 +1,38 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; +import { Schedule } from "@mui/icons-material"; + +import { AppointmentBlockGroupsTable } from "@/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupTable"; +import { routes } from "@/lib/businessModules/officialMedicalService/shared/routes"; +import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; +import { MainContentLayout } from "@/lib/shared/components/layout/MainContentLayout"; +import { StickyToolbarLayout } from "@/lib/shared/components/layout/StickyToolbarLayout"; +import { Toolbar } from "@/lib/shared/components/layout/Toolbar"; + +export default function AppointmentBlockGroupsPage() { + return ( + <StickyToolbarLayout toolbar={<Toolbar title="Terminblöcke Übersicht" />}> + <MainContentLayout fullViewportHeight> + <AppointmentBlockGroupsTable + controls={ + <ButtonBar + right={ + <InternalLinkButton + href={routes.appointmentBlockGroups.new} + size="sm" + startDecorator={<Schedule />} + > + Terminblock planen + </InternalLinkButton> + } + /> + } + /> + </MainContentLayout> + </StickyToolbarLayout> + ); +} diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/details/page.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/details/page.tsx index 780a9aa0d97e0d0b0c70867b2d34011cfdad0180..3a87806abdfe934016f03b04141e9e978fa60b6c 100644 --- a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/details/page.tsx +++ b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/error.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/error.tsx index d4334a6d1638d22fefa91e29cf6d94ffa668cdba..d292451d7082274aa23b5e2db8d50421e8bd78b3 100644 --- a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/error.tsx +++ b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/layout.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/layout.tsx index c62e40056d3dc1766048ab49c09078ff19a161da..2811303635126812bb4dc60db0bee7ef7a03ff93 100644 --- a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/page.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/page.tsx index 6c07b25014f42bd60434781b8abe1f9fe865afd1..a91b8be1f3ce396d415d28f10fc441b5140838f6 100644 --- a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/[entryId]/details/page.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/[entryId]/details/page.tsx deleted file mode 100644 index 00c47c819378e4774ac4a80c48ffff7f353b165a..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/[entryId]/details/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import OfficialMedicalServiceProgressEntries from "@/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/page"; - -export default OfficialMedicalServiceProgressEntries; diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/page.tsx index 953b0fe8ca7086b4d4a63a7e768b8c8bad91d81c..20d7cf6b27748feafafadaa49cc88ddd3d696da3 100644 --- a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/[id]/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -31,17 +31,11 @@ import { } from "@/lib/businessModules/officialMedicalService/api/queries/progressEntries"; import { systemProgressEntryTypeTitles } from "@/lib/businessModules/officialMedicalService/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/officialMedicalService/shared/moduleUserGroup"; -import { routes } from "@/lib/businessModules/officialMedicalService/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; -interface OfficialMedicalServiceProgressEntriesPageParams - extends OfficialMedicalServiceDetailsPageParams { - entryId?: string; -} - export default function OfficialMedicalServiceProgressEntries( - props: ProgressEntriesUrlParams<OfficialMedicalServiceProgressEntriesPageParams>, + props: ProgressEntriesUrlParams<OfficialMedicalServiceDetailsPageParams>, ) { const { params, searchParams } = props; return ( @@ -53,7 +47,6 @@ export default function OfficialMedicalServiceProgressEntries( useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} procedureId={params.id} - progressEntryId={params.entryId} searchParams={searchParams} leaderRole={ApiUserRole.OfficialMedicalServiceLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -63,13 +56,6 @@ export default function OfficialMedicalServiceProgressEntries( useDownloadFile={useDownloadOfficialMedicalFileFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={{ - entryDetails: (procedureId, entryId) => - routes.procedures.byId(procedureId).progressEntries.byId(entryId) - .details, - progressEntries: (procedureId) => - routes.procedures.byId(procedureId).progressEntries.index, - }} systemProgressEntryTypes={systemProgressEntryTypeTitles} groupName={moduleUserGroup.group} /> diff --git a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/page.tsx b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/page.tsx index 0745cf42ba42019c2cc10f4f1eae41a04c50a4dc..471cbe810d592545ed154d83dc340e8dd1ed5f95 100644 --- a/employee-portal/src/app/(businessModules)/official-medical-service/procedures/page.tsx +++ b/employee-portal/src/app/(businessModules)/official-medical-service/procedures/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/new/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/new/page.tsx index 672abb4e605f817a99dd8b5ce8cce7436f5af6e5..7778565e1b319a2ee57830fea36a0150e261e44f 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/page.tsx index 34cce6fc225a632b69adfcba893cbc3427bbc927..895b4edaf0771b74afa347c975fced1494fc1cea 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/appointment-block-groups/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/inbox/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/inbox/page.tsx index 6710728f4972a7ceed2bc97c5a41b05c1933a466..82b61e8a8c2001b257582c391bd15da917ce05fc 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/inbox/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/inbox/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/labels/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/labels/page.tsx index 8b560b86541267ac649e31055cb1fc426a7f9a50..75879d2f21a7cbe0424e73214489fd0049e75e3b 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/labels/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/labels/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/anamnesis/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/anamnesis/page.tsx index 8a77f609da545df1ed49180451bed5fde2767c17..10b041b8cb5062f4e6e1f8a2dca87096a199b482 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/anamnesis/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/anamnesis/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/details/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/details/page.tsx index 28273e0e2a276fe97b369c6ed10d4eae5893faeb..4b1203cb0130285f80bb861b6f1119791fb28f56 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/details/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/error.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/error.tsx index d4334a6d1638d22fefa91e29cf6d94ffa668cdba..d292451d7082274aa23b5e2db8d50421e8bd78b3 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/error.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/development-screening/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/development-screening/page.tsx index d29239391a681a8469da551dd78f851670ca0d81..5eca2c3ab168931459121803472d24746c3c19eb 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/development-screening/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/development-screening/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/ear/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/ear/page.tsx index d8b6c5dd38e0a6adff1cd33c48c5a1eb61d3d7a6..e1adbe78c2afee8a7e1257dcd2a4af7ab4e3461f 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/ear/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/ear/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/error.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/error.tsx index d4334a6d1638d22fefa91e29cf6d94ffa668cdba..d292451d7082274aa23b5e2db8d50421e8bd78b3 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/error.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/eye/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/eye/page.tsx index 3aba98844c46c1087499c3c2dbb0d11f924d96ab..d23a056046972022b2fccf230c00f8989ca9ed08 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/eye/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/eye/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/layout.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/layout.tsx index 2e62ca90cec9a537818d30eba6e2c769800404ea..577ec8a6726f4f16e7a9d73c56f4d9d0cdd874bf 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/layout.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/page.tsx index eaa5bfde54da84f122314d9a7b4107b7cb38f261..4647f0af6fb4cb2904c5e8045e874d6ca04cbadc 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/sopess/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/sopess/page.tsx index 3fc3ba9b28118a1ced662ef8992ebce9da2b653f..2e6d60877094ba1f8d86217e28a85d0f0f1f2597 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/sopess/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/examinations/sopess/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/layout.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/layout.tsx index bd49edd1b34a3c0b7fc252c77ebba43160a89959..47a7d75d5a6b75a69fc0df5a253c39e6842275e7 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/page.tsx index 7efe7d385db4d5fd31137b684c5c7caab11f2fcf..2fdb1e884586bcdc148c34465814ae2b5e0500df 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/[progressEntryId]/details/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/[progressEntryId]/details/page.tsx deleted file mode 100644 index 9032787d54666a76ca5ea4e20fc116a8ec8f7a44..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/[progressEntryId]/details/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import SchoolEntryProgressEntriesPage from "@/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/page"; - -export default SchoolEntryProgressEntriesPage; diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/page.tsx index da250fb6eb3c5e5cd57154d7bd830a960153095e..71285e4486c92e3df37d35b6bf2a4edf660f6e4d 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -34,17 +34,11 @@ import { systemProgressEntryTypeTitles, } from "@/lib/businessModules/schoolEntry/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/schoolEntry/shared/moduleUserGroup"; -import { routes } from "@/lib/businessModules/schoolEntry/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; -interface SchoolEntryProgressEntriesPageParams - extends SchoolEntryProcedurePageParams { - progressEntryId?: string; -} - export default function SchoolEntryProgressEntriesPage( - props: ProgressEntriesUrlParams<SchoolEntryProgressEntriesPageParams>, + props: ProgressEntriesUrlParams<SchoolEntryProcedurePageParams>, ) { const { params, searchParams } = props; return ( @@ -56,7 +50,6 @@ export default function SchoolEntryProgressEntriesPage( useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} procedureId={params.procedureId} - progressEntryId={params.progressEntryId} searchParams={searchParams} leaderRole={ApiUserRole.SchoolEntryLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -66,13 +59,6 @@ export default function SchoolEntryProgressEntriesPage( useDownloadFile={useDownloadSchoolEntryFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={{ - entryDetails: (procedureId, entryId) => - routes.procedures.byId(procedureId).progressEntries.byId(entryId) - .details, - progressEntries: (procedureId) => - routes.procedures.byId(procedureId).progressEntries.index, - }} systemProgressEntryTypes={systemProgressEntryTypeTitles} additionalKeyDocumentTypes={keyDocumentTypes} groupName={moduleUserGroup.group} diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/sync-person/[fileStateId]/[personVersion]/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/sync-person/[fileStateId]/[personVersion]/page.tsx index 249e9437830b1052a89ad7ee721e4f98edb2197f..0c56a8c8367b669501d8807d655f787fa43ec657 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/sync-person/[fileStateId]/[personVersion]/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/sync-person/[fileStateId]/[personVersion]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/vaccination/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/vaccination/page.tsx index 2aef15667b13272fdf2103d99aaed882caa4b239..aeff9a9f6d79df38490e53afc515663c5e80ec92 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/vaccination/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/[procedureId]/vaccination/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/procedures/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/procedures/page.tsx index 775d3bdfb2697c040aa436b876dd98224a1ace06..c5b4c6b1c8851c74c852284841bba1cfc1fb691d 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/procedures/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/procedures/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/school-entry/waiting-room/page.tsx b/employee-portal/src/app/(businessModules)/school-entry/waiting-room/page.tsx index d86b1aa4cef7a54bca3db2eb22082788c5923fc3..15bb4eae04f3b208c476384913b3290f8d9897a4 100644 --- a/employee-portal/src/app/(businessModules)/school-entry/waiting-room/page.tsx +++ b/employee-portal/src/app/(businessModules)/school-entry/waiting-room/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/data-quality/page.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/data-quality/page.tsx index 429fc23e92573b0ff3326ab7cc862e95c58acfb3..286d6e0d01643a2e965d1316a31fb2b64ed2e9be 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/data-quality/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/data-quality/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/page.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/page.tsx index 29ee1c49eb64e63c2f34ee3fa410bc694e78be68..7ade91515d4d719c04ccaa800e4466ddcd8dd4d8 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/reports/page.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/reports/page.tsx index dc78f9c63f4f755708c4b5c0e1ff4eec33162021..8816566603fcd4bbd91f19d6551fe58d1f2ca5c1 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/reports/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/reports/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/table/page.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/table/page.tsx index fa85d266880fbea6ddbe144fc9525fbb92c46dca..a66b3ce98e3021f5ff89008b6137ea8c56266b36 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/table/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/[id]/table/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/page.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/page.tsx index 8a7ebebcc467f971199a0742b06e2635ef07619c..9a608f4dbbe7c6cdec3f8fe335fb5ea819295403 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/layout.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/layout.tsx index 1d4eb30a1295beef0558f98ba74e6bd16db6aaa7..a83f5b75faa5ceb1294a064d837261cb68798aae 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/layout.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/page.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/page.tsx index d941cc321e061b90a7add0585e47d7e642b7d4d6..19e8d3bd7dd9bd5c1f5cabfd30e2ea948c55c6b8 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/repository/page.tsx b/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/repository/page.tsx index eb84eb8fe10df9911103019da4d1bbca43e37196..42cfa54ed6f171b3cf77b4f40c87261cfb48daef 100644 --- a/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/repository/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/evaluations/templates/repository/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/geo-shapes/page.tsx b/employee-portal/src/app/(businessModules)/statistics/geo-shapes/page.tsx index bdee418b598d4a6fdbbc005227c1e8446df618d6..dbc260a3878c29fcf1be7549beacf97773ceb45d 100644 --- a/employee-portal/src/app/(businessModules)/statistics/geo-shapes/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/geo-shapes/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/reports/[id]/page.tsx b/employee-portal/src/app/(businessModules)/statistics/reports/[id]/page.tsx index bde2095cefa4d15a90303481358e55a508d75507..404ef6ff2cc852fe39c0027b2f7c4e171338d56c 100644 --- a/employee-portal/src/app/(businessModules)/statistics/reports/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/reports/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/statistics/reports/page.tsx b/employee-portal/src/app/(businessModules)/statistics/reports/page.tsx index f422cdc7eb9269b2bb3064653be22bb42cb96685..4b506842b16283b4914056ee07cb6f2ddddeb2aa 100644 --- a/employee-portal/src/app/(businessModules)/statistics/reports/page.tsx +++ b/employee-portal/src/app/(businessModules)/statistics/reports/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/new/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/new/page.tsx index c920fd1c812f9c63ed0ba78dfa036ea22fba13f4..7a01cbb776b93ce71ac4452ae867f47dde0933ad 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/page.tsx index db890d7bf4d2a41e98c0458bd0c6da97ebb22e61..bc48a1f4068ce8b4a37a1da181434d32927c2727 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/appointment-block-groups/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/appointment-definition/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/appointment-definition/page.tsx index 4a5219467a218f75492776960ae2a8a8b2c425b5..cd7033cae164878ee8e135881fe9ec42c95bd0dc 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/appointment-definition/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/appointment-definition/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/details/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/details/page.tsx index 916be38197717b3cf9f84fa22e944979b75df0f6..f729428cfc425f19a6f89086e680dc1f786d1fbc 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/details/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/layout.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/layout.tsx index 1f1ac0e6a2c0e8e944f1c42957c4c5bea400b998..c578eb66ee198e956babe76bc3fb9fb443e2d369 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/layout.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/[entryId]/details/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/[entryId]/details/page.tsx deleted file mode 100644 index e4791653090ec9072e100aad84942d74698a21d6..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/[entryId]/details/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import StiProtectionProcedureDataProgressEntriesTab from "@/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/page"; - -export default StiProtectionProcedureDataProgressEntriesTab; diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/page.tsx index 0bd534373bf1e36ab1c6f8b6821ebfd753c1bf9b..5a025ae61f509daf9032659a9379a4a4a0a40c4c 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -31,19 +31,11 @@ import { } from "@/lib/businessModules/stiProtection/api/queries/progressEntries"; import { systemProgressEntryTypeTitles } from "@/lib/businessModules/stiProtection/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/stiProtection/shared/moduleUserGroup"; -import { routes } from "@/lib/businessModules/stiProtection/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; -interface StiProtectionProcedureProgressEntriesPageParams - extends StiProtectionProcedurePageParams { - entryId?: string; -} - export default function StiProtectionProcedureProgressEntriesTab( - props: Readonly< - ProgressEntriesUrlParams<StiProtectionProcedureProgressEntriesPageParams> - >, + props: Readonly<ProgressEntriesUrlParams<StiProtectionProcedurePageParams>>, ) { const { params, searchParams } = props; return ( @@ -55,7 +47,6 @@ export default function StiProtectionProcedureProgressEntriesTab( useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} procedureId={params.id} - progressEntryId={params.entryId} searchParams={searchParams} leaderRole={ApiUserRole.StiProtectionLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -65,12 +56,6 @@ export default function StiProtectionProcedureProgressEntriesTab( useDownloadFile={useDownloadStiProtectionFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={{ - entryDetails: (procedureId, entryId) => - routes.procedures.byId(procedureId).progressEntries.byId(entryId), - progressEntries: (procedureId) => - routes.procedures.byId(procedureId).progressEntries.index, - }} systemProgressEntryTypes={systemProgressEntryTypeTitles} groupName={moduleUserGroup.group} /> diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/report/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/report/page.tsx index 6dae5c67cb48daeab23b322f0367e4ce7c340f49..0295e054d34f5ee55c1cfea59c7254cf927a4649 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/report/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(framedPageLayout)/report/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/anamnesis/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/anamnesis/page.tsx index 2749b1eef701a6b3a8c8197092b2161c706b6b0c..97c7a14f84c3d85241e1d767f6ba442697876f09 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/anamnesis/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/anamnesis/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/consultation/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/consultation/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..104413fb4c4733fd7a26f5bc842e19b29322141e --- /dev/null +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/consultation/page.tsx @@ -0,0 +1,28 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { DisabledFormProvider } from "@eshg/lib-portal/components/form/DisabledFormContext"; + +import { StiProtectionProcedurePageParams } from "@/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/layout"; +import { useStiProcedureQuery } from "@/lib/businessModules/stiProtection/api/queries/procedures"; +import { ConsultationForm } from "@/lib/businessModules/stiProtection/features/procedures/consultation/ConsultationForm"; +import { isProcedureOpen } from "@/lib/businessModules/stiProtection/shared/helpers"; + +export default function ConsultationPage({ + params: { id: procedureId }, +}: Readonly<{ + params: StiProtectionProcedurePageParams; +}>) { + const { data: procedure } = useStiProcedureQuery(procedureId); + const isOpen = isProcedureOpen(procedure); + + return ( + <DisabledFormProvider disabled={!isOpen}> + <ConsultationForm procedure={procedure} /> + </DisabledFormProvider> + ); +} diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/examination/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/examination/page.tsx index bda2774a39bcd8aada18fc40e721143f954be17d..3d65992ee20c45027e59d2b50b65b29c3a6af2fb 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/examination/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/examination/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,7 @@ import { StiProtectionProcedurePageParams } from "@/app/(businessModules)/sti-pr import { useStiProcedureQuery } from "@/lib/businessModules/stiProtection/api/queries/procedures"; import { Examinations } from "@/lib/businessModules/stiProtection/features/procedures/examination/Examinations"; import { isProcedureOpen } from "@/lib/businessModules/stiProtection/shared/helpers"; +import { MainContentLayout } from "@/lib/shared/components/layout/MainContentLayout"; export default function StiProtectionProcedureExaminationPage({ params: { id: procedureId }, @@ -22,7 +23,9 @@ export default function StiProtectionProcedureExaminationPage({ return ( <DisabledFormProvider disabled={!isOpen}> - <Examinations procedureId={procedureId} /> + <MainContentLayout sx={{ margin: 0, padding: 0 }} fullViewportHeight> + <Examinations procedureId={procedureId} /> + </MainContentLayout> </DisabledFormProvider> ); } diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/layout.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/layout.tsx index ab6d60ae4f62ebcfc32b4964a087d3cfe57e21bc..ac66ec525f4f593ff398fb729466335c2cb5aa52 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/layout.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/(fullPageLayout)/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/page.tsx index 7bf8817a7c5a753fd33d8a0d7d9078480bdb2940..673c392f82905c75ef27765ce831155f118b821f 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/procedures/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/procedures/page.tsx index 0de4509ac1fae2030d6dd4d8a2f3cd7425b7f603..623ad9f076b6cb3fd540dd4ab711c25d6af2c048 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/procedures/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/procedures/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/sti-protection/waiting-room/page.tsx b/employee-portal/src/app/(businessModules)/sti-protection/waiting-room/page.tsx index 39cad08e459fd784f9a9de89f1b1dccff4172ecf..2432e8b6c018d4abaedf8f5925ccb20b9aebad05 100644 --- a/employee-portal/src/app/(businessModules)/sti-protection/waiting-room/page.tsx +++ b/employee-portal/src/app/(businessModules)/sti-protection/waiting-room/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/new/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/new/page.tsx index 1aab4af66576d17bb38288fec686176f9b4fa349..5b8f8871f9e85a295256dfe25619b4081bbc33ad 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/page.tsx index a2bdc77e37a63868f9864e7d69a64196eb4f5758..6be5b96419a7d766877fa427d15fffe69b24f906 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/appointment-block-groups/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/appointment-definition/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/appointment-definition/page.tsx index ec79b880a45aec5001a65843e254b956289d8667..312d151cb72e7bbb54547fb364c4b35b0b68af64 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/appointment-definition/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/appointment-definition/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/diseases/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/diseases/page.tsx index c4373be0de7d21b93c807f35c2ed444d7b15052b..73dd23aaefd0278b2522556f25f9a68e091ed49a 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/diseases/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/diseases/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/inbox/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/inbox/page.tsx index 5eab1aa033f229e91bf2ebc5bdb40531b02ca47c..a82d89fc356ae18c1b49a9cb9004f58d1fe4de1f 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/inbox/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/inbox/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/[id]/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/[id]/page.tsx index 3c0c578470dd3b6278e1368809dac5a08f85044a..4b369d0726c9a14e7df167d7885abe9218e24855 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/new/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/new/page.tsx index 6046be3c9fde0dea5ae5a5ef052f5b07e0903cae..5e1959ce1750b668d0a4f1f72459ab6bdbb8be57 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/page.tsx index f0a699d69ab7ed6d90b6d90101417b24600d0245..6632512b7059fb3ee69fb2a282e02e62fdcc1a5a 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/information-statement-templates/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/[id]/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/[id]/page.tsx index 3e0a5706da00c48872fbe77676578ac05e08090d..e838f987c3fd4baedee0c47944ba56b282511290 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/new/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/new/page.tsx index 1d7c8decd15f355bc8dd90d26dce5ec4762a0cac..c97bd20d2787fc694bf5981514af5baa8149c0fc 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/new/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/new/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/page.tsx index 4455e0f06d6c286a30f7176a63c598f2d8c724f4..0591ab24bf90cbe5130115cf0f04aa68ed65454d 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/medical-history-templates/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/other-services/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/other-services/page.tsx index a0ee6e3760b9dd4d8fc37db94a721c85743fd54b..8ff3e461c5d8732ab0f31a52e8fb4611e9f5f1d9 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/other-services/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/other-services/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/base-data/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/base-data/page.tsx index e44b21162d92e66d346a6dec9b97d0d150382218..312edf99f3b9eb9071b20699f9f7b151210cc400 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/base-data/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/base-data/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/certificates/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/certificates/page.tsx index 82e4cc10bf7702815381777b4e6b547e252fd808..47f2ff278f0fafc5662adfdcaf92cf4059b17663 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/certificates/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/certificates/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/error.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/error.tsx index bc3a3cc0ccabd7068cd32b7daac20bfd8fce319a..d213f3c53a8ac9793bf877e220a69ff3997180f2 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/error.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/information-statements/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/information-statements/page.tsx index 2f3928f827da7c93e194a33628085e9a1d1f7d4c..34c72c5d3d33dfc151de7118d87cec5b2034fb2f 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/information-statements/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/information-statements/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/layout.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/layout.tsx index c7960d7916a1624a99e95f6f51393dea4631e229..e90d969e5fb0640c2be24903ebe00962764de0cc 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/layout.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/medical-histories/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/medical-histories/page.tsx index 3000c9d06d2eddced27cb27eae91f60768e0ef71..8105ac0d8788646c50757d6186c32d5b693670fe 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/medical-histories/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/medical-histories/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/page.tsx index cc05bab79589b60fe150f694b80a02cbd258f287..101ef22ee67b96aaa7a22846304b2b1fe6a2b7ff 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/[entryId]/details/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/[entryId]/details/page.tsx deleted file mode 100644 index 5473c3af2ce3b04c5645ed2f05fc261fdb3d6916..0000000000000000000000000000000000000000 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/[entryId]/details/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import TravelMedicineProgressEntries from "@/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/page"; - -export default TravelMedicineProgressEntries; diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/page.tsx index c73a048f0a664194c2ec21e089cc18a545b11c35..1466e16c555a5b09b668df115255a48b5658c480 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/progress-entries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -31,17 +31,11 @@ import { } from "@/lib/businessModules/travelMedicine/api/queries/progressEntries"; import { systemProgressEntryTypeTitles } from "@/lib/businessModules/travelMedicine/shared/constants"; import { moduleUserGroup } from "@/lib/businessModules/travelMedicine/shared/moduleUserGroup"; -import { routes } from "@/lib/businessModules/travelMedicine/shared/routes"; import { ProgressEntriesPage } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesPage"; import { ProgressEntriesUrlParams } from "@/lib/shared/components/procedures/progress-entries/types"; -interface TravelMedicineProgressEntriesPageParams - extends EditInspectionPageParams { - entryId?: string; -} - export default function TravelMedicineProgressEntries( - props: ProgressEntriesUrlParams<TravelMedicineProgressEntriesPageParams>, + props: ProgressEntriesUrlParams<EditInspectionPageParams>, ) { const { params, searchParams } = props; return ( @@ -53,7 +47,6 @@ export default function TravelMedicineProgressEntries( useFetchProgressEntries={useFetchProgressEntries} useFetchProgressEntryDetails={useFetchProgressEntryDetails} procedureId={params.id} - progressEntryId={params.entryId} searchParams={searchParams} leaderRole={ApiUserRole.TravelMedicineLeader} useRequestProgressEntryDeletion={useRequestProgressEntryDeletion} @@ -63,12 +56,6 @@ export default function TravelMedicineProgressEntries( useDownloadFile={useDownloadTravelMedicineFile} useGetManualProgressEntryHistory={useGetManualProgressEntryHistory} useGetMetaDataHistory={useGetMetaDataHistory} - routes={{ - entryDetails: (procedureId, entryId) => - routes.procedures.progressEntries(procedureId).details(entryId), - progressEntries: (procedureId) => - routes.procedures.progressEntries(procedureId).index, - }} systemProgressEntryTypes={systemProgressEntryTypeTitles} groupName={moduleUserGroup.group} /> diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/sync-person/[fileStateId]/[personVersion]/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/sync-person/[fileStateId]/[personVersion]/page.tsx index c7ea3b26f6305b98bfa8f4cf6e5364836991bc57..200f5cbdf386dce9820ecec082ce550734903dc8 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/sync-person/[fileStateId]/[personVersion]/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/[id]/sync-person/[fileStateId]/[personVersion]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/page.tsx index bdc445e81b0ddce358fd54dd5708de574fbb0c9f..77201e764c4ca65311dc8a13484029eb0bd2ac0f 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/procedure/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/procedure/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/search-procedure/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/search-procedure/page.tsx index 55be6ffcf7dca6825ad44f6c73f7a32642643df3..2eb4fc3902ef5c3701226aa731d4ebbe485b49bc 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/search-procedure/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/search-procedure/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/(businessModules)/travel-medicine/vaccines/page.tsx b/employee-portal/src/app/(businessModules)/travel-medicine/vaccines/page.tsx index 9b08433ea5e2620150a04cb7bbebe56bfef78fc0..4e822eaad8c929d3efe796bbceacf0b8526528b4 100644 --- a/employee-portal/src/app/(businessModules)/travel-medicine/vaccines/page.tsx +++ b/employee-portal/src/app/(businessModules)/travel-medicine/vaccines/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/@modal/(baseModule)/contacts/[id]/history-details/page.tsx b/employee-portal/src/app/@modal/(baseModule)/contacts/[id]/history-details/page.tsx index d5717e530f55a8d474146262143bcb3383d6a16d..ca37ddc6d81cb6a5c5825ad54715e4c03abb2233 100644 --- a/employee-portal/src/app/@modal/(baseModule)/contacts/[id]/history-details/page.tsx +++ b/employee-portal/src/app/@modal/(baseModule)/contacts/[id]/history-details/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/@modal/[...catchAll]/page.tsx b/employee-portal/src/app/@modal/[...catchAll]/page.tsx index b0b9d43a52c7b2f928253127839874f5190feb7a..afe74b94cbfb4f86e5348922207c4adbd063f952 100644 --- a/employee-portal/src/app/@modal/[...catchAll]/page.tsx +++ b/employee-portal/src/app/@modal/[...catchAll]/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/@modal/default.tsx b/employee-portal/src/app/@modal/default.tsx index 279aec51f5fc19eb32220075566f56a4ab68eca5..779094ae26806e508bb252d0c788cd182ca9db9b 100644 --- a/employee-portal/src/app/@modal/default.tsx +++ b/employee-portal/src/app/@modal/default.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/@modal/error.tsx b/employee-portal/src/app/@modal/error.tsx index 53e35b807014880afe62e72f48f9bee61ec83e2c..635fed23b153213f587d8b3e0f5766400b023765 100644 --- a/employee-portal/src/app/@modal/error.tsx +++ b/employee-portal/src/app/@modal/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,13 +8,13 @@ import { NextErrorBoundaryProps } from "@eshg/lib-portal/components/boundaries/NextErrorBoundary"; import { useRouter } from "next/navigation"; -import { ErrorModal } from "@/lib/shared/components/boundaries/ErrorModal"; +import { EmployeePortalErrorModal } from "@/lib/shared/components/boundaries/EmployeePortalErrorModal"; export default function ModalSlotError(props: NextErrorBoundaryProps) { const router = useRouter(); return ( - <ErrorModal + <EmployeePortalErrorModal error={props.error} digest={props.error.digest} onReset={props.reset} diff --git a/employee-portal/src/app/@modal/loading.tsx b/employee-portal/src/app/@modal/loading.tsx index adfbe2883144b5f8e92a77e9027df488f91c30b4..c689ed64d51c83dfe00c57fe65454f1acba3b51e 100644 --- a/employee-portal/src/app/@modal/loading.tsx +++ b/employee-portal/src/app/@modal/loading.tsx @@ -1,10 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { LoadingOverlay } from "@/lib/shared/components/LoadingOverlay"; +import { LoadingOverlayHiddenBackdrop } from "@eshg/lib-portal/components/LoadingOverlayHiddenBackdrop"; export default function ModalSlotLoading() { - return <LoadingOverlay />; + return <LoadingOverlayHiddenBackdrop />; } diff --git a/employee-portal/src/app/@modal/template.tsx b/employee-portal/src/app/@modal/template.tsx index 36fdf6f5529b1408c7e547b636de0564e774e7c3..21bb25ae2b420bc8caab0ffd34745414426569b6 100644 --- a/employee-portal/src/app/@modal/template.tsx +++ b/employee-portal/src/app/@modal/template.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/error.tsx b/employee-portal/src/app/error.tsx index 31e071308460d69d6302a56108892de87dd5da15..df1b901384acd806000cf568b68f3cc88a373cbc 100644 --- a/employee-portal/src/app/error.tsx +++ b/employee-portal/src/app/error.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/layout.tsx b/employee-portal/src/app/layout.tsx index 35c367b9199e2b36ee7f44ae95cf1deb20956506..18435979c0e8b7eeae21feaf7e223b4a0dfcbdee 100644 --- a/employee-portal/src/app/layout.tsx +++ b/employee-portal/src/app/layout.tsx @@ -1,15 +1,18 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProvider } from "@eshg/lib-portal/api/ApiProvider"; +import { EnvironmentTypeProvider } from "@eshg/lib-portal/components/EnvironmentTypeProvider"; import { NonceProvider } from "@eshg/lib-portal/components/NonceProvider"; import { QueryBoundary } from "@eshg/lib-portal/components/boundaries/QueryBoundary"; +import { ConfirmationDialogProvider } from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; import { SnackbarProvider } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { getNonceFromHeader } from "@eshg/lib-portal/next/contentSecurityPolicyHeaderMiddleware"; import { ReactNode } from "react"; +import { env } from "@/env/server"; import { MainLayout } from "@/lib/baseModule/components/layout/MainLayout"; import { ThemeProvider } from "@/lib/baseModule/theme/ThemeProvider"; import { ChatProvider } from "@/lib/businessModules/chat/shared/ChatProvider"; @@ -18,8 +21,9 @@ import { ServiceWorkerProvider } from "@/lib/businessModules/inspection/shared/o import { OfflinePasswordPrompt } from "@/lib/businessModules/inspection/shared/offline/password/OfflinePasswordPrompt"; import { API_CONFIGURATION } from "@/lib/shared/api/config"; import { EmployeeSnackbar } from "@/lib/shared/components/EmployeeSnackbar"; +import { EmployeePortalErrorModal } from "@/lib/shared/components/boundaries/EmployeePortalErrorModal"; import { ConfirmNavigationProvider } from "@/lib/shared/components/confirmationDialog/ConfirmNavigationProvider"; -import { ConfirmationDialogProvider } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; import { DrawerProvider } from "@/lib/shared/components/drawer/drawerContext"; // Opt out of the Data Cache and Full Route Cache. All routes are dynamically rendered. @@ -65,25 +69,32 @@ export default function RootLayout({ </noscript> <NonceProvider initialNonce={nonce}> <ThemeProvider> - <SnackbarProvider snackbar={EmployeeSnackbar}> - <DrawerProvider> - <ApiProvider configuration={API_CONFIGURATION}> - <ConfirmationDialogProvider> - <ConfirmNavigationProvider> - <QueryBoundary> - <OfflinePasswordPrompt /> - <ServiceWorkerProvider> - <ChatProvider configuration={CHAT_CONFIGURATION}> - <MainLayout>{children}</MainLayout> - </ChatProvider> - {modal} - </ServiceWorkerProvider> - </QueryBoundary> - </ConfirmNavigationProvider> - </ConfirmationDialogProvider> - </ApiProvider> - </DrawerProvider> - </SnackbarProvider> + <EnvironmentTypeProvider + environmentType={env.PUBLIC_ENVIRONMENT_TYPE} + > + <SnackbarProvider snackbar={EmployeeSnackbar}> + <DrawerProvider> + <ApiProvider configuration={API_CONFIGURATION}> + <ConfirmationDialogProvider + component={EmployeePortalConfirmationDialog} + errorModal={EmployeePortalErrorModal} + > + <ConfirmNavigationProvider> + <QueryBoundary> + <OfflinePasswordPrompt /> + <ServiceWorkerProvider> + <ChatProvider configuration={CHAT_CONFIGURATION}> + <MainLayout>{children}</MainLayout> + </ChatProvider> + {modal} + </ServiceWorkerProvider> + </QueryBoundary> + </ConfirmNavigationProvider> + </ConfirmationDialogProvider> + </ApiProvider> + </DrawerProvider> + </SnackbarProvider> + </EnvironmentTypeProvider> </ThemeProvider> </NonceProvider> </body> diff --git a/employee-portal/src/app/loading.template.tsx b/employee-portal/src/app/loading.template.tsx index f7326502b7afb769dc0c582c9599c8cf637aec9e..683183387f21b9cd023c5f5ae9ad1e49b6a5d23d 100644 --- a/employee-portal/src/app/loading.template.tsx +++ b/employee-portal/src/app/loading.template.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/loading.tsx b/employee-portal/src/app/loading.tsx index 1d70f07ffbea80c892dbb0c95d5940c13b60c684..d7d66709c5b7a1297e7a9b20e9540a11b0fb0bbe 100644 --- a/employee-portal/src/app/loading.tsx +++ b/employee-portal/src/app/loading.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/not-found.tsx b/employee-portal/src/app/not-found.tsx index 54b7ec83a27a3a2179ea32d6cb8265cbf85b5d67..1ee61137a0377a330b216ddaa7508f6354bdfb1d 100644 --- a/employee-portal/src/app/not-found.tsx +++ b/employee-portal/src/app/not-found.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/addressForm/page.tsx b/employee-portal/src/app/playground/addressForm/page.tsx index 5246c9ecf5e6fbec65e2f923e6969b7de475e86a..1c807c7a1c79678fc374b292b25c60595abb128d 100644 --- a/employee-portal/src/app/playground/addressForm/page.tsx +++ b/employee-portal/src/app/playground/addressForm/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/alert/page.tsx b/employee-portal/src/app/playground/alert/page.tsx index 95f8716e676f33f709b4abaa2c65df3927dea6b6..b4a49f1f03097af215ff02ae2691a92cc82867b5 100644 --- a/employee-portal/src/app/playground/alert/page.tsx +++ b/employee-portal/src/app/playground/alert/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/appointment-picker/page.tsx b/employee-portal/src/app/playground/appointment-picker/page.tsx index f547dff023fb25e2f7fda506602a658442990f8c..25d6348f389510ad8cbbb1324bc0ea786fb29f3d 100644 --- a/employee-portal/src/app/playground/appointment-picker/page.tsx +++ b/employee-portal/src/app/playground/appointment-picker/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/boundaries/page.tsx b/employee-portal/src/app/playground/boundaries/page.tsx index 4f4b08a4edf05f5e8ef7ba0ff94f81304ab041cb..52c87e1d115f8601e28066d794e4665d0a138e24 100644 --- a/employee-portal/src/app/playground/boundaries/page.tsx +++ b/employee-portal/src/app/playground/boundaries/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/centralFile/acceptUpdate/layout.tsx b/employee-portal/src/app/playground/centralFile/acceptUpdate/layout.tsx index 3b5def28d2739426edd65407882f77ceb2924788..64d2c0fd7d7364927df1f15e43ac7e55d694d866 100644 --- a/employee-portal/src/app/playground/centralFile/acceptUpdate/layout.tsx +++ b/employee-portal/src/app/playground/centralFile/acceptUpdate/layout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/centralFile/acceptUpdate/page.tsx b/employee-portal/src/app/playground/centralFile/acceptUpdate/page.tsx index 9bd8c17dac2a093b65001e5a02bd029e0b3a548f..dd1f7a87e260c28fb63dc4a9873cc8bf9aca8d95 100644 --- a/employee-portal/src/app/playground/centralFile/acceptUpdate/page.tsx +++ b/employee-portal/src/app/playground/centralFile/acceptUpdate/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/centralFile/acceptUpdate/update/page.tsx b/employee-portal/src/app/playground/centralFile/acceptUpdate/update/page.tsx index 68df513c8b230763b99d4006897e1056643b943e..8e21a6af0d88122adecf4a1370f2cba9753791fb 100644 --- a/employee-portal/src/app/playground/centralFile/acceptUpdate/update/page.tsx +++ b/employee-portal/src/app/playground/centralFile/acceptUpdate/update/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/centralFile/centralFilePlaygroundRoutes.ts b/employee-portal/src/app/playground/centralFile/centralFilePlaygroundRoutes.ts index f2a70bf3df55279ec2ab0a5f3e941cf43a0c9dd7..15c56e5e2d16178471a5527adec5fa8eb1dad4db 100644 --- a/employee-portal/src/app/playground/centralFile/centralFilePlaygroundRoutes.ts +++ b/employee-portal/src/app/playground/centralFile/centralFilePlaygroundRoutes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/centralFile/page.tsx b/employee-portal/src/app/playground/centralFile/page.tsx index f92c884b17a8e689c777869a50f53a2f2027b5c1..3ffc6c3ef923f6dd19dfb0c80ec418728bdc7b20 100644 --- a/employee-portal/src/app/playground/centralFile/page.tsx +++ b/employee-portal/src/app/playground/centralFile/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/charts/page.tsx b/employee-portal/src/app/playground/charts/page.tsx index c3e6b5623f338ef42b0337cd8534194edf2ac82e..f7943b06e017a27b9d31f5097cf4d83b0f0e4ce0 100644 --- a/employee-portal/src/app/playground/charts/page.tsx +++ b/employee-portal/src/app/playground/charts/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/chat/chatPlaygroundContent.tsx b/employee-portal/src/app/playground/chat/chatPlaygroundContent.tsx index b3be466964b98b41cd0947d48461ed3c019fef93..a9d2c96e189114716db7058cb919d8af347407ab 100644 --- a/employee-portal/src/app/playground/chat/chatPlaygroundContent.tsx +++ b/employee-portal/src/app/playground/chat/chatPlaygroundContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/chat/page.tsx b/employee-portal/src/app/playground/chat/page.tsx index 9ef27291087df7eaa8e66b672f9ee1e13bd83f66..4b36e9af5f6d2b72c3df32cc354aa9c9871293ca 100644 --- a/employee-portal/src/app/playground/chat/page.tsx +++ b/employee-portal/src/app/playground/chat/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/designShowcase/page.tsx b/employee-portal/src/app/playground/designShowcase/page.tsx index bf8ec0250f7226de5d955fef0a4b65314c1272b4..06997813c215da4a7b8525cd75fca4bda0c3de80 100644 --- a/employee-portal/src/app/playground/designShowcase/page.tsx +++ b/employee-portal/src/app/playground/designShowcase/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/error/page.tsx b/employee-portal/src/app/playground/error/page.tsx index 1c5efb3ddf92baafc6ec3ddc0c6895005fe8041f..0254bc155d8ed105efb35f71ff04cc490b504e2c 100644 --- a/employee-portal/src/app/playground/error/page.tsx +++ b/employee-portal/src/app/playground/error/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/facilityForm/page.tsx b/employee-portal/src/app/playground/facilityForm/page.tsx index 3937c5d20f6322e40bcc6bf2dcfbc24c713e12a2..63c7dc4ee0921ae30c61e544817de7337a3db080 100644 --- a/employee-portal/src/app/playground/facilityForm/page.tsx +++ b/employee-portal/src/app/playground/facilityForm/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/facilitySidebar/page.tsx b/employee-portal/src/app/playground/facilitySidebar/page.tsx index 3cc9839bfe843473ec21b2ea4832f0ba3a2bc892..f028e161a7fd488d4a3d4a315ccbb437ba99d9ec 100644 --- a/employee-portal/src/app/playground/facilitySidebar/page.tsx +++ b/employee-portal/src/app/playground/facilitySidebar/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/filter-settings/page.tsx b/employee-portal/src/app/playground/filter-settings/page.tsx index ce2d23c2ae0e1c6c26c6fc7ec035ef3e0f6db42f..2d13ad5a810193594b705376edbdd56862398cfe 100644 --- a/employee-portal/src/app/playground/filter-settings/page.tsx +++ b/employee-portal/src/app/playground/filter-settings/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -73,6 +73,21 @@ const filterDefinitions: FilterDefinition[] = [ { label: "Option 9", value: "option-9" }, ], }, + { + type: "Date", + key: "date", + name: "Date", + }, + { + type: "DateSpan", + key: "date-span", + name: "Date Span", + }, + { + type: "DateComparison", + key: "date-comparison", + name: "Date Comparison", + }, ]; const initialValues: FilterValue[] = [ @@ -90,7 +105,7 @@ const initialValues: FilterValue[] = [ export default function PlaygroundFilterSettingsPage() { const [sidebarOpen, setSidebarOpen] = useState(false); - const [autoApplyFilters, setautoApplyFilters] = useState(false); + const [autoApplyFilters, setAutoApplyFilters] = useState(false); const filterSettings = useFilterSettings({ definitions: filterDefinitions, @@ -117,7 +132,7 @@ export default function PlaygroundFilterSettingsPage() { <Switch checked={autoApplyFilters} onChange={(event) => - setautoApplyFilters(event.target.checked) + setAutoApplyFilters(event.target.checked) } /> } diff --git a/employee-portal/src/app/playground/filter-settings/unmanaged/page.tsx b/employee-portal/src/app/playground/filter-settings/unmanaged/page.tsx index 231fa045d45ba8e053b9a1d62bbe1d382f14ee57..58aa692fe6f78f7dc74ee3c8f4ce207dda235fd2 100644 --- a/employee-portal/src/app/playground/filter-settings/unmanaged/page.tsx +++ b/employee-portal/src/app/playground/filter-settings/unmanaged/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/formPlus/page.tsx b/employee-portal/src/app/playground/formPlus/page.tsx index 2435ff3675a9be38c3b8bf8918f8b14f935b787b..e70d3929a0419636e54b6f046fa61a13acddda8a 100644 --- a/employee-portal/src/app/playground/formPlus/page.tsx +++ b/employee-portal/src/app/playground/formPlus/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/image-compressor/page.tsx b/employee-portal/src/app/playground/image-compressor/page.tsx index 94b79a98bb8dbc882e3da80609b483d250575dd5..39ba2cd802d1398c5a0df050ba9081a6af2ee3ed 100644 --- a/employee-portal/src/app/playground/image-compressor/page.tsx +++ b/employee-portal/src/app/playground/image-compressor/page.tsx @@ -1,22 +1,22 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; import { FormPlus } from "@eshg/lib-portal/components/form/FormPlus"; +import { FileLike } from "@eshg/lib-portal/components/formFields/file/validators"; +import { formatFileSize } from "@eshg/lib-portal/helpers/file"; import { FormLabel, Slider, Stack, Typography } from "@mui/joy"; import { useQuery } from "@tanstack/react-query"; import { Formik } from "formik"; import { useEffect, useState } from "react"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileLike } from "@/lib/shared/components/formFields/file/validators"; import { MainContentLayout } from "@/lib/shared/components/layout/MainContentLayout"; import { StickyToolbarLayout } from "@/lib/shared/components/layout/StickyToolbarLayout"; import { Toolbar } from "@/lib/shared/components/layout/Toolbar"; -import { formatFileSize } from "@/lib/shared/helpers/file"; import { compressImage } from "@/lib/shared/helpers/imageCompressor"; export default function PlaygroundImageCompressorPage() { diff --git a/employee-portal/src/app/playground/layout/regular/page.tsx b/employee-portal/src/app/playground/layout/regular/page.tsx index fd993100764d8dcee227b63177e9336c93651922..9cd45e09a7d75c8f071e28dd0bc70f2346061fab 100644 --- a/employee-portal/src/app/playground/layout/regular/page.tsx +++ b/employee-portal/src/app/playground/layout/regular/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/layout/toolbar/page.tsx b/employee-portal/src/app/playground/layout/toolbar/page.tsx index ff8a08e2f6f2f68d9e663eb0f0647a0777f46572..b7575f1b4e734b9b910ed7cd7314534aaaf2aafc 100644 --- a/employee-portal/src/app/playground/layout/toolbar/page.tsx +++ b/employee-portal/src/app/playground/layout/toolbar/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/loading/page.tsx b/employee-portal/src/app/playground/loading/page.tsx index 4cdf64c2d5ef23a30fa7c2beb41dc0a4a455faea..c71e4b96a52b7201a173360d3ba8f0f7cbdccfd9 100644 --- a/employee-portal/src/app/playground/loading/page.tsx +++ b/employee-portal/src/app/playground/loading/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/multistepForm/page.tsx b/employee-portal/src/app/playground/multistepForm/page.tsx index 3920b3e9773fd69d1cff1100c6316a198a9bffa8..d87b2c066dd1d1c2fa18bc7013c7e8f9ba4aea11 100644 --- a/employee-portal/src/app/playground/multistepForm/page.tsx +++ b/employee-portal/src/app/playground/multistepForm/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/offline-password/page.tsx b/employee-portal/src/app/playground/offline-password/page.tsx index 9c7d7515bb71b4440a65f9148681ac6543a04b6c..7443d6468f51e07aebcbc45af3f89d30c6793e03 100644 --- a/employee-portal/src/app/playground/offline-password/page.tsx +++ b/employee-portal/src/app/playground/offline-password/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/page.tsx b/employee-portal/src/app/playground/page.tsx index 22ba0fd93b2b1d73cc4f4518ac38a0c9c1047b64..0164fc27b481b602840c758cba3d4c69590de42e 100644 --- a/employee-portal/src/app/playground/page.tsx +++ b/employee-portal/src/app/playground/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/personSidebar/page.tsx b/employee-portal/src/app/playground/personSidebar/page.tsx index 9c81b83b0b70451e7875c79a5fd0e629f7a09042..5f278b524c8dd8065f7cb61ac1f3d03a4ea72ce2 100644 --- a/employee-portal/src/app/playground/personSidebar/page.tsx +++ b/employee-portal/src/app/playground/personSidebar/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -13,7 +13,6 @@ import { Button, Stack } from "@mui/joy"; import { useRef, useState } from "react"; import { PROCEDURE_TYPE_OPTIONS_EXCLUDING_DRAFT } from "@/lib/businessModules/schoolEntry/features/procedures/options"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; import { MainContentLayout } from "@/lib/shared/components/layout/MainContentLayout"; import { StickyToolbarLayout } from "@/lib/shared/components/layout/StickyToolbarLayout"; @@ -30,6 +29,7 @@ import { SearchPersonFormValues, } from "@/lib/shared/components/personSidebar/search/SearchPersonSidebar"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export default function PersonSidebarPage() { const [sidebarOpen, setSidebarOpen] = useState("none"); diff --git a/employee-portal/src/app/playground/searchable-groups/page.tsx b/employee-portal/src/app/playground/searchable-groups/page.tsx index b7942ca1ceab499a353a207fa9d59fedbc56ab95..a2d0170f43b76086ac1b95313190eceafe82073d 100644 --- a/employee-portal/src/app/playground/searchable-groups/page.tsx +++ b/employee-portal/src/app/playground/searchable-groups/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/sidebar/page.tsx b/employee-portal/src/app/playground/sidebar/page.tsx index b73dc3eb679cfb82b2c7dc3d901508004185410b..8e13316fc74bb00376114c8a1cb7c8d2f796cb88 100644 --- a/employee-portal/src/app/playground/sidebar/page.tsx +++ b/employee-portal/src/app/playground/sidebar/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/playground/snackbar/page.tsx b/employee-portal/src/app/playground/snackbar/page.tsx index 9712000390c6cabe5565fc77306aa90932237a86..1ff59ab5b55b46f83c5a6acae84d7991921a1b53 100644 --- a/employee-portal/src/app/playground/snackbar/page.tsx +++ b/employee-portal/src/app/playground/snackbar/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/app/~offline/page.tsx b/employee-portal/src/app/~offline/page.tsx index b60e10760be16d026427b5858920f30382589942..02483754b71257a1b117f59ec22c0f207ddcbdc4 100644 --- a/employee-portal/src/app/~offline/page.tsx +++ b/employee-portal/src/app/~offline/page.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/env/client.js b/employee-portal/src/env/client.js index 5e685e2fda90cc77207289eb4d28dd20832b036d..e2888407fdb5ae51290a8b8000e398f397d26e29 100644 --- a/employee-portal/src/env/client.js +++ b/employee-portal/src/env/client.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/env/server.js b/employee-portal/src/env/server.js index 86ad9ed6df8f1265dad7763d36349e64110011ac..655990477d66acd8a658dfad2703745f552a9aee 100644 --- a/employee-portal/src/env/server.js +++ b/employee-portal/src/env/server.js @@ -1,13 +1,20 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ // @ts-check -import { object, optional, parse, picklist, pipe, string, url } from "valibot"; +import { + environmentTypeSchema, + nodeEnvSchema, + urlSchema, +} from "@eshg/lib-portal/schemas/environment"; +import { object, optional, parse, string } from "valibot"; /* * Environment Variables exposed to the Server (Node.js) + * + * Environment variables exposed to the Client using a React Context should be prefixed with PUBLIC_ to avoid leaking sensitive data. */ const schema = object({ /** @@ -15,28 +22,30 @@ const schema = object({ * Next.js automatically assigns `development` when running the next dev command, * or `production` for all other commands. */ - NODE_ENV: picklist(["development", "production"]), + NODE_ENV: nodeEnvSchema, PORT: optional(string(), "3000"), - PUBLIC_FRONTEND_URL: pipe(string(), url()), - PUBLIC_BASE_BACKEND_URL: pipe(string(), url()), - PUBLIC_INSPECTION_BACKEND_URL: pipe(string(), url()), - PUBLIC_SCHOOL_ENTRY_BACKEND_URL: pipe(string(), url()), - PUBLIC_TRAVEL_MEDICINE_BACKEND_URL: pipe(string(), url()), - PUBLIC_MEASLES_PROTECTION_BACKEND_URL: pipe(string(), url()), - PUBLIC_STATISTICS_BACKEND_URL: pipe(string(), url()), - PUBLIC_CHAT_MANAGEMENT_BACKEND_URL: pipe(string(), url()), - PUBLIC_AUDITLOG_BACKEND_URL: pipe(string(), url()), - PUBLIC_OPENDATA_BACKEND_URL: pipe(string(), url()), - PUBLIC_STI_PROTECTION_BACKEND_URL: pipe(string(), url()), - PUBLIC_MEDICAL_REGISTRY_BACKEND_URL: pipe(string(), url()), - PUBLIC_DENTAL_BACKEND_URL: pipe(string(), url()), - PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL: pipe(string(), url()), + PUBLIC_ENVIRONMENT_TYPE: environmentTypeSchema, + + PUBLIC_FRONTEND_URL: urlSchema, + PUBLIC_BASE_BACKEND_URL: urlSchema, + PUBLIC_INSPECTION_BACKEND_URL: urlSchema, + PUBLIC_SCHOOL_ENTRY_BACKEND_URL: urlSchema, + PUBLIC_TRAVEL_MEDICINE_BACKEND_URL: urlSchema, + PUBLIC_MEASLES_PROTECTION_BACKEND_URL: urlSchema, + PUBLIC_STATISTICS_BACKEND_URL: urlSchema, + PUBLIC_CHAT_MANAGEMENT_BACKEND_URL: urlSchema, + PUBLIC_AUDITLOG_BACKEND_URL: urlSchema, + PUBLIC_OPENDATA_BACKEND_URL: urlSchema, + PUBLIC_STI_PROTECTION_BACKEND_URL: urlSchema, + PUBLIC_MEDICAL_REGISTRY_BACKEND_URL: urlSchema, + PUBLIC_DENTAL_BACKEND_URL: urlSchema, + PUBLIC_OFFICIAL_MEDICAL_SERVICE_BACKEND_URL: urlSchema, MARKDOWN_PAGE_DIRECTORY: string(), - MATRIX_SERVER_URL: pipe(string(), url()), + PUBLIC_MATRIX_SERVER_URL: urlSchema, }); // eslint-disable-next-line no-restricted-properties diff --git a/employee-portal/src/lib/auditlog/api/clients.ts b/employee-portal/src/lib/auditlog/api/clients.ts index ee43affd1f0dcf1ec4c4fdfddfc20bd67cdd5b5b..1688468f787a754f99e79bb854dcb26550038c8f 100644 --- a/employee-portal/src/lib/auditlog/api/clients.ts +++ b/employee-portal/src/lib/auditlog/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/api/models/auditlog.ts b/employee-portal/src/lib/auditlog/api/models/auditlog.ts index e3c543aa2c8dbdf340361c40d1849b33f934af59..a2e841d4f148a78ca66ffdc30a2507b604455f20 100644 --- a/employee-portal/src/lib/auditlog/api/models/auditlog.ts +++ b/employee-portal/src/lib/auditlog/api/models/auditlog.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/AuditLogDecryptSidebar.tsx b/employee-portal/src/lib/auditlog/components/AuditLogDecryptSidebar.tsx index 5ce97c97b1d75660ecbc2884226d1d9fb5aeb59b..26ab85300ab41af327fa0125e89d6e92ff2ccab0 100644 --- a/employee-portal/src/lib/auditlog/components/AuditLogDecryptSidebar.tsx +++ b/employee-portal/src/lib/auditlog/components/AuditLogDecryptSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/AuditLogSheet.tsx b/employee-portal/src/lib/auditlog/components/AuditLogSheet.tsx index e24f6982a3c8e1009de75cf535f20e0fdfd43b56..d22d012c2aefb40ef9460cc9ed61e115387db6d7 100644 --- a/employee-portal/src/lib/auditlog/components/AuditLogSheet.tsx +++ b/employee-portal/src/lib/auditlog/components/AuditLogSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/AuditlogAccessibleTableView.tsx b/employee-portal/src/lib/auditlog/components/AuditlogAccessibleTableView.tsx index 5694fddde7e377b19a64468fb121687731cb217c..3290dbbc9678b1b9ece90f4accf4e3d5c4200d90 100644 --- a/employee-portal/src/lib/auditlog/components/AuditlogAccessibleTableView.tsx +++ b/employee-portal/src/lib/auditlog/components/AuditlogAccessibleTableView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordSidebar.tsx b/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordSidebar.tsx index a3ac9a5bb1a18de62ad03f4e94eb75fcec13aeb3..88c8aca4a66f576187d8e84a74cffa78c19fc148 100644 --- a/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordSidebar.tsx +++ b/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordView.tsx b/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordView.tsx index a58565ea1482ae9c758f0cc4214d93d3a9bab0fe..62445d504ca7c54eb8a9a64af4b156fdc91b969c 100644 --- a/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordView.tsx +++ b/employee-portal/src/lib/auditlog/components/AuditlogCreatePasswordView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/AuditlogDeletePasswordButton.tsx b/employee-portal/src/lib/auditlog/components/AuditlogDeletePasswordButton.tsx index b2f3f9ea628a173bb3871efeab8cf678bff3fee4..7fa941d4f703ce23a8ac650c6cbad203c8a98a8b 100644 --- a/employee-portal/src/lib/auditlog/components/AuditlogDeletePasswordButton.tsx +++ b/employee-portal/src/lib/auditlog/components/AuditlogDeletePasswordButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,7 +7,7 @@ import { KeyOffOutlined } from "@mui/icons-material"; import { Button } from "@mui/joy"; import { useDeleteEmployeeUserKeys } from "@/lib/baseModule/api/mutations/users"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function AuditlogDeletePasswordButton() { const { openConfirmationDialog } = useConfirmationDialog(); diff --git a/employee-portal/src/lib/auditlog/components/auditLogAccessibleColumns.tsx b/employee-portal/src/lib/auditlog/components/auditLogAccessibleColumns.tsx index faba7b96611e354f5dbb5da64f41f6bb234ce786..e94f14bde51359f7886dfebe7d972c6dab4a3f75 100644 --- a/employee-portal/src/lib/auditlog/components/auditLogAccessibleColumns.tsx +++ b/employee-portal/src/lib/auditlog/components/auditLogAccessibleColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizePage.tsx b/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizePage.tsx index c6729d97b2198aa9f7b645ab110fcc92d0039f4b..5bc07193e111f320c9edd04d69bdf739d8cab0ea 100644 --- a/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizePage.tsx +++ b/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizePage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizeSidebar.tsx b/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizeSidebar.tsx index 8961f6d62f37b2d0ea2377f429be6f18c5b3fc4a..7093a33bf7ff2a0e5061d37398f10cd8d3fc5606 100644 --- a/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizeSidebar.tsx +++ b/employee-portal/src/lib/auditlog/components/authorize/AuditLogAuthorizeSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -25,13 +25,13 @@ import { useGetAuditLogGranteesCandidates, } from "@/lib/auditlog/queries/auditlog"; import { auditLogSourceNames } from "@/lib/shared/components/auditlog/constants"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DetailsColumn } from "@/lib/shared/components/detailsSection/DetailsColumn"; import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { fullName } from "@/lib/shared/components/users/userFormatter"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { SidebarWithFormRefProps, UseSidebarWithFormRefResult, diff --git a/employee-portal/src/lib/auditlog/components/authorize/UserAutoCompleteField.tsx b/employee-portal/src/lib/auditlog/components/authorize/UserAutoCompleteField.tsx index 99723d9b610565181a22a9b79eaa490904b21cbf..a0e7fb35289023cccda70d7ef2dce3bac132a2b5 100644 --- a/employee-portal/src/lib/auditlog/components/authorize/UserAutoCompleteField.tsx +++ b/employee-portal/src/lib/auditlog/components/authorize/UserAutoCompleteField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/authorize/auditLogAuthorizeColumns.tsx b/employee-portal/src/lib/auditlog/components/authorize/auditLogAuthorizeColumns.tsx index 1542b16abde8b1ffb6e8399e80d9b4421d29cbcb..4468053e0ea05cc7fdd207cfcaa3aff454dc4be4 100644 --- a/employee-portal/src/lib/auditlog/components/authorize/auditLogAuthorizeColumns.tsx +++ b/employee-portal/src/lib/auditlog/components/authorize/auditLogAuthorizeColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/authorize/useAuditLogAdminFilterSettings.ts b/employee-portal/src/lib/auditlog/components/authorize/useAuditLogAdminFilterSettings.ts index 414843d83fd7a6ba1a172be61fdc4fedd8d187a1..98abe92c96ac99be232f58e571eb369c62ece725 100644 --- a/employee-portal/src/lib/auditlog/components/authorize/useAuditLogAdminFilterSettings.ts +++ b/employee-portal/src/lib/auditlog/components/authorize/useAuditLogAdminFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/components/crypto.ts b/employee-portal/src/lib/auditlog/components/crypto.ts index 511471a1fcd4822f92f99ace1bf9ff429e4b88ff..d1d73e370e27159eb67b38157319fbd41da66440 100644 --- a/employee-portal/src/lib/auditlog/components/crypto.ts +++ b/employee-portal/src/lib/auditlog/components/crypto.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/mutations/auditlog.ts b/employee-portal/src/lib/auditlog/mutations/auditlog.ts index bd53db898e4abd224f571e9a24347803e652abf9..77f0c56e03c86b31038875cea8792d744f2ed0b5 100644 --- a/employee-portal/src/lib/auditlog/mutations/auditlog.ts +++ b/employee-portal/src/lib/auditlog/mutations/auditlog.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/queries/auditlog.ts b/employee-portal/src/lib/auditlog/queries/auditlog.ts index 356ccb4f9aaafeb5e8874cda1db30b749b60baa6..1637c16cf84488d606a83cd22231675b82ff8163 100644 --- a/employee-portal/src/lib/auditlog/queries/auditlog.ts +++ b/employee-portal/src/lib/auditlog/queries/auditlog.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/auditlog/queries/queryKeys.ts b/employee-portal/src/lib/auditlog/queries/queryKeys.ts index 45712f6ce05d0160a01682d38a9e348a9c768351..db6c2857559c3afd2cf3fd01f495f3a96b901b91 100644 --- a/employee-portal/src/lib/auditlog/queries/queryKeys.ts +++ b/employee-portal/src/lib/auditlog/queries/queryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/clients.ts b/employee-portal/src/lib/baseModule/api/clients.ts index 65265129260a9051b1bd95dd75542a9bb246a0e0..83eddbd6d5a4bdc380dc1b3dc6e9c0ac8f054f16 100644 --- a/employee-portal/src/lib/baseModule/api/clients.ts +++ b/employee-portal/src/lib/baseModule/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/helpers/contacts.ts b/employee-portal/src/lib/baseModule/api/helpers/contacts.ts index 4483a46ea4f73b2e220473ff91661d7d8c76ce7a..64044b6df665b020a39b7c4ebee3490af61f2256 100644 --- a/employee-portal/src/lib/baseModule/api/helpers/contacts.ts +++ b/employee-portal/src/lib/baseModule/api/helpers/contacts.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mapper/contacts.ts b/employee-portal/src/lib/baseModule/api/mapper/contacts.ts index e60540b3ed4f606125c76ff5b6ba8b57fabbee7c..1d38bb9e6ab28d77ff8cf9dd20dc33d3685b4488 100644 --- a/employee-portal/src/lib/baseModule/api/mapper/contacts.ts +++ b/employee-portal/src/lib/baseModule/api/mapper/contacts.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mapper/facility.ts b/employee-portal/src/lib/baseModule/api/mapper/facility.ts index 4f03b3d7e7541984eb7655730d281082fcfa5e12..183ae2d34037c5c7b2e304d17691a0ba0cb28fde 100644 --- a/employee-portal/src/lib/baseModule/api/mapper/facility.ts +++ b/employee-portal/src/lib/baseModule/api/mapper/facility.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mapper/gdpr.ts b/employee-portal/src/lib/baseModule/api/mapper/gdpr.ts index 45a966786b3527c584d40258c743a26bfaf3031e..91ec69c85bcd657490bcdf8408b80ca8981731fb 100644 --- a/employee-portal/src/lib/baseModule/api/mapper/gdpr.ts +++ b/employee-portal/src/lib/baseModule/api/mapper/gdpr.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mapper/inventory.ts b/employee-portal/src/lib/baseModule/api/mapper/inventory.ts index 3b7103ffdd00d2521abb5cb1696ff3d8a76abe2e..bd32155cdbe0031dcdd3211b49f822c49fb43e24 100644 --- a/employee-portal/src/lib/baseModule/api/mapper/inventory.ts +++ b/employee-portal/src/lib/baseModule/api/mapper/inventory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mapper/resources.ts b/employee-portal/src/lib/baseModule/api/mapper/resources.ts index 16f7082477493146985927cea6ee127104cf5156..068bcb554b530ddec07a5a259a044515d8b08d53 100644 --- a/employee-portal/src/lib/baseModule/api/mapper/resources.ts +++ b/employee-portal/src/lib/baseModule/api/mapper/resources.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/models/resources.ts b/employee-portal/src/lib/baseModule/api/models/resources.ts index 306bd440e3464f1855cad28e541ba0dbfc1f6566..bd53fe8bbd84cca7f100d816d07a87898c066e91 100644 --- a/employee-portal/src/lib/baseModule/api/models/resources.ts +++ b/employee-portal/src/lib/baseModule/api/models/resources.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/models/task.ts b/employee-portal/src/lib/baseModule/api/models/task.ts index ecb24ba81c0bb130d8a63f801795e2b21b47f669..e14e6946e9529426d135d73785fc383dcea77fba 100644 --- a/employee-portal/src/lib/baseModule/api/models/task.ts +++ b/employee-portal/src/lib/baseModule/api/models/task.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/calendar.ts b/employee-portal/src/lib/baseModule/api/mutations/calendar.ts index 05ccfeef53fcdf3711d158d5b34ca66f18a005be..bd1acd0d33477c6174bf5b388b0926bac2839cad 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/calendar.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/calendar.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/contacts.ts b/employee-portal/src/lib/baseModule/api/mutations/contacts.ts index 6fc76581070a2ba748f54fcabacc945df86f922d..4301c1fe5bef39c65be65adc0b61f257f601355d 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/contacts.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/contacts.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/facility.ts b/employee-portal/src/lib/baseModule/api/mutations/facility.ts index d43012512df397608de062b1e5845e98d041d4a1..64c7976ac3f1d1f8d4383542874dadc5289bc89e 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/facility.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/facility.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/gdpr.ts b/employee-portal/src/lib/baseModule/api/mutations/gdpr.ts index 8fc6aa6ebf61681f7e96d4ecb0a90147a9ecbd12..cfefdf9a63c51a1325e6eeec4b3d4cec00dc1aa6 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/gdpr.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/gdpr.ts @@ -1,11 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiAddCentralFileIdToGdprProcedureRequest, ApiAddGdprProcedureRequest, + ApiGdprProcedureStatus, } from "@eshg/employee-portal-api/base"; import { ApiGdprProcedureType, @@ -92,8 +93,18 @@ export function useChangeProcedureStatus(id: string, version: number) { export function useRefreshProcedureStatus(id: string) { const gdprProcedureApi = useGdprProcedureApi(); + const snackbar = useSnackbar(); return useHandledMutation({ mutationFn: () => gdprProcedureApi.refreshStatus(id), + onSuccess: ({ status }) => { + if (status === ApiGdprProcedureStatus.Closed) { + snackbar.confirmation("Vorgang ist abgeschlossen."); + } else { + snackbar.notification( + "Noch nicht alle Fachabteilungen haben die notwendige manuelle Freigabe der Daten durchgeführt.", + ); + } + }, }); } diff --git a/employee-portal/src/lib/baseModule/api/mutations/inboxProcedures.ts b/employee-portal/src/lib/baseModule/api/mutations/inboxProcedures.ts index 9b63de26f9bd180e1cea581ca2139dea531f9db1..9cfe920efd70a14e4cdb39c3b3da03c3da0227d0 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/inboxProcedures.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/inboxProcedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/inventory.ts b/employee-portal/src/lib/baseModule/api/mutations/inventory.ts index 4466f16e4002b683158869d34f9dfa5c96bcec37..b04a2454efb93da097679a9de54b6f8f533dbd8e 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/inventory.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/inventory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/notifications.ts b/employee-portal/src/lib/baseModule/api/mutations/notifications.ts index 9ee5b6a56f4df7e39c505770507358f28ef15c68..ac44e5fb5a8565431278945320d12f2f2d36e5d9 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/notifications.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/notifications.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/person.ts b/employee-portal/src/lib/baseModule/api/mutations/person.ts index 20d752219b1cd4890baa2828ced1e4ceb9e0173b..5f9d5845bf7ec1f9a2a44ff847b83b48a4b2bb1f 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/person.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/person.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/resources.ts b/employee-portal/src/lib/baseModule/api/mutations/resources.ts index 0ecf1d2411e9998e194ee6041357abde1b5f62d4..0217c82617b6da560047aff24be57bedf0f28022 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/resources.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/resources.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/mutations/users.ts b/employee-portal/src/lib/baseModule/api/mutations/users.ts index a28c72ea27c5b73264615da903decc5d29d6d06a..b03ab6179850eb927ba2240ac93ba45ed9eb6c73 100644 --- a/employee-portal/src/lib/baseModule/api/mutations/users.ts +++ b/employee-portal/src/lib/baseModule/api/mutations/users.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/procedures/enums.ts b/employee-portal/src/lib/baseModule/api/procedures/enums.ts index bc4b3aada9902924ed11d4236170f62e92ccf24f..6427544c88ebb2c89f1e1b7ae93909051e8e17f1 100644 --- a/employee-portal/src/lib/baseModule/api/procedures/enums.ts +++ b/employee-portal/src/lib/baseModule/api/procedures/enums.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/apiQueryKey.ts b/employee-portal/src/lib/baseModule/api/queries/apiQueryKey.ts index 79c356d7496342d112aeff3f409ff37a6437bebe..7debf98a193b3a8fba3523317a7a4dd692b44600 100644 --- a/employee-portal/src/lib/baseModule/api/queries/apiQueryKey.ts +++ b/employee-portal/src/lib/baseModule/api/queries/apiQueryKey.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/calendar.ts b/employee-portal/src/lib/baseModule/api/queries/calendar.ts index 6a013d01f303bd6829a82087229b1a6ed0b025ea..c5303ccee9a4ecde9612b802e95f83423de82b7b 100644 --- a/employee-portal/src/lib/baseModule/api/queries/calendar.ts +++ b/employee-portal/src/lib/baseModule/api/queries/calendar.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/config.ts b/employee-portal/src/lib/baseModule/api/queries/config.ts index ba71b0dea660e85927a6d33c7f1fd46019fdc9ba..3d09615171b5414153c763a5ac01d3876deff559 100644 --- a/employee-portal/src/lib/baseModule/api/queries/config.ts +++ b/employee-portal/src/lib/baseModule/api/queries/config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/contacts.ts b/employee-portal/src/lib/baseModule/api/queries/contacts.ts index 65149bc5a1e7734f3eff844ec79824aaf492f484..03885bafa5c14356b66d80d810dd56eca65fe843 100644 --- a/employee-portal/src/lib/baseModule/api/queries/contacts.ts +++ b/employee-portal/src/lib/baseModule/api/queries/contacts.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -106,21 +106,23 @@ export function useSearchContactsQuery( }); } -export function useSearchSchools(schoolName: string) { - const [debouncedSchoolName] = useDebounce(schoolName, 250, { +export const SCHOOL_OR_DAYCARE = new Set<ApiContactCategory>([ + ApiContactCategory.School, + ApiContactCategory.Daycare, +]); + +export function useSearchSchoolOrDaycare(institutionName: string) { + const [debouncedInstitutionName] = useDebounce(institutionName, 250, { trailing: true, }); - const categories = new Set<ApiContactCategory>().add( - ApiContactCategory.School, - ); return useSearchContactsQuery( { - name: debouncedSchoolName, - categories: categories, + name: debouncedInstitutionName, + categories: SCHOOL_OR_DAYCARE, sortKey: ApiContactSortKey.Relevance, }, - { enabled: debouncedSchoolName.length >= 1 }, + { enabled: debouncedInstitutionName.length >= 1 }, ); } diff --git a/employee-portal/src/lib/baseModule/api/queries/facility.ts b/employee-portal/src/lib/baseModule/api/queries/facility.ts index 6ba6f8f37dd23782aaec1d929545b93ccfab53a3..ebbbe3b0618f1eb18f2682c9e5de0f3abc03eff0 100644 --- a/employee-portal/src/lib/baseModule/api/queries/facility.ts +++ b/employee-portal/src/lib/baseModule/api/queries/facility.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/feature.ts b/employee-portal/src/lib/baseModule/api/queries/feature.ts index 080e46143eb5ea5a4b67a4cd8ff8ff7d289540a0..01f59e26e602eabba3d0427100d620b10746931b 100644 --- a/employee-portal/src/lib/baseModule/api/queries/feature.ts +++ b/employee-portal/src/lib/baseModule/api/queries/feature.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/gdpr.ts b/employee-portal/src/lib/baseModule/api/queries/gdpr.ts index 08cbba09797253f2b614024ee9bb262ee6eb32ba..437f860bb0adb262ec742341a7cc1c02a5459a77 100644 --- a/employee-portal/src/lib/baseModule/api/queries/gdpr.ts +++ b/employee-portal/src/lib/baseModule/api/queries/gdpr.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/inventory.ts b/employee-portal/src/lib/baseModule/api/queries/inventory.ts index 6a13a9073c6919b1f7ad674d67104ffd8ce55638..c9f0765eb3f9816fe5d55078a5206f8458b98af2 100644 --- a/employee-portal/src/lib/baseModule/api/queries/inventory.ts +++ b/employee-portal/src/lib/baseModule/api/queries/inventory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/notifications.ts b/employee-portal/src/lib/baseModule/api/queries/notifications.ts index d09a4c8ab71415ed9d3e1ab70a1d2ff4758216f2..0b831950abb0cef6a068282d02b0c627755d7341 100644 --- a/employee-portal/src/lib/baseModule/api/queries/notifications.ts +++ b/employee-portal/src/lib/baseModule/api/queries/notifications.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/persons.ts b/employee-portal/src/lib/baseModule/api/queries/persons.ts index fa03dd25ff21cbd7bc486f4e9b96332866413df7..6cd46813d877a2067b464e9996d4141a203b0038 100644 --- a/employee-portal/src/lib/baseModule/api/queries/persons.ts +++ b/employee-portal/src/lib/baseModule/api/queries/persons.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/procedures.ts b/employee-portal/src/lib/baseModule/api/queries/procedures.ts index 497dd745d332e27cb2367fbdb72764f16955479d..215e699f7c3fe646454a3e9b41a4bc12ef2df265 100644 --- a/employee-portal/src/lib/baseModule/api/queries/procedures.ts +++ b/employee-portal/src/lib/baseModule/api/queries/procedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/resources.ts b/employee-portal/src/lib/baseModule/api/queries/resources.ts index b47e7698aac98028eaf388251a2e475891ca2674..3a4e7fb316243dce9e56da87f18a5a1fbbf63965 100644 --- a/employee-portal/src/lib/baseModule/api/queries/resources.ts +++ b/employee-portal/src/lib/baseModule/api/queries/resources.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/streets.ts b/employee-portal/src/lib/baseModule/api/queries/streets.ts index f75c2c7980ffbc2a8dac176bbfa4c6d53ca7bc09..40e0a57eb58713665c3ff780aca31081597863ee 100644 --- a/employee-portal/src/lib/baseModule/api/queries/streets.ts +++ b/employee-portal/src/lib/baseModule/api/queries/streets.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/taskMetrics.ts b/employee-portal/src/lib/baseModule/api/queries/taskMetrics.ts index 62bcb4abc869576871072818fa39322da8aef5b5..30f0771b2cd1e8435dc8ad7eb223b8e6b33e0baa 100644 --- a/employee-portal/src/lib/baseModule/api/queries/taskMetrics.ts +++ b/employee-portal/src/lib/baseModule/api/queries/taskMetrics.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/tasks.ts b/employee-portal/src/lib/baseModule/api/queries/tasks.ts index 520c6e2af4beb3c61f4ca4752022a36c88da8704..02ba34469799ba8b1cbc036b0ef6b75cac7153bf 100644 --- a/employee-portal/src/lib/baseModule/api/queries/tasks.ts +++ b/employee-portal/src/lib/baseModule/api/queries/tasks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/api/queries/users.ts b/employee-portal/src/lib/baseModule/api/queries/users.ts index 89a6bfedceaae7744feb832dee55e7103e35963d..89f5848bb5da399c3bcd557281add7fb25ffda03 100644 --- a/employee-portal/src/lib/baseModule/api/queries/users.ts +++ b/employee-portal/src/lib/baseModule/api/queries/users.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/NoEntries.tsx b/employee-portal/src/lib/baseModule/components/NoEntries.tsx index 59ae28fb3deb1c8b29f81a4c05938afcf5ef73d5..c3ad91b6db791cc577876658156c905d268966df 100644 --- a/employee-portal/src/lib/baseModule/components/NoEntries.tsx +++ b/employee-portal/src/lib/baseModule/components/NoEntries.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/StaticTextDocumentPanel.tsx b/employee-portal/src/lib/baseModule/components/StaticTextDocumentPanel.tsx index 76b77501559c8063042810febdaa7988c2747280..3f053cdcf10d7343be526eaf0b54607822b647c6 100644 --- a/employee-portal/src/lib/baseModule/components/StaticTextDocumentPanel.tsx +++ b/employee-portal/src/lib/baseModule/components/StaticTextDocumentPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/acknowledgements/Acknowledgements.tsx b/employee-portal/src/lib/baseModule/components/acknowledgements/Acknowledgements.tsx index 6437b9dabae16f1ec2e1c5e7bbbc2f276eb77a90..ca2c12cde63b0c2b79272b1e37bcd2235e0ccb7b 100644 --- a/employee-portal/src/lib/baseModule/components/acknowledgements/Acknowledgements.tsx +++ b/employee-portal/src/lib/baseModule/components/acknowledgements/Acknowledgements.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/Calendar.tsx b/employee-portal/src/lib/baseModule/components/calendar/Calendar.tsx index 14b4005a5d9b9bb7440e494ef0ef69f1ef9e94e4..9ae93cf3636997dfd32e2e847ee005f379bf4633 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/Calendar.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/Calendar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/CalendarSelector.tsx b/employee-portal/src/lib/baseModule/components/calendar/CalendarSelector.tsx index c2c50fe6d0199a8e9dd06514be3c393ffd83e2dd..4b3de96216ec9997a4f8b8beb0ca75beecec5854 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/CalendarSelector.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/CalendarSelector.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/EventForm.tsx b/employee-portal/src/lib/baseModule/components/calendar/EventForm.tsx index d17671439586d7b678137df310e4c517e670538a..b1616846e4b7629496a6648e341678728a47579a 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/EventForm.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/EventForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/EventView.tsx b/employee-portal/src/lib/baseModule/components/calendar/EventView.tsx index 7a9b5f88510d737970fb69591254035905d4a9f5..008b30ae151241901f891e1f41db7c781f644925 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/EventView.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/EventView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/HeaderToolbar.tsx b/employee-portal/src/lib/baseModule/components/calendar/HeaderToolbar.tsx index 0d751504aee37b6527da18b4cdfaec9809102a6c..12c5deadd508a6b2aa09ed7a0e18c65e27fc865c 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/HeaderToolbar.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/HeaderToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/UserCalendar.tsx b/employee-portal/src/lib/baseModule/components/calendar/UserCalendar.tsx index ac92fc8587edf046e4d7b539fff1b166ef7e5fa6..1313679ee38b4ac55f0ebcef8e84a8161448d3e0 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/UserCalendar.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/UserCalendar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/calendarDisplay.ts b/employee-portal/src/lib/baseModule/components/calendar/calendarDisplay.ts index 566c752873756c598d16df153d58489c0c19f029..1aa080d62fb39f766d571a44b69f60802184cc3f 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/calendarDisplay.ts +++ b/employee-portal/src/lib/baseModule/components/calendar/calendarDisplay.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/calendarMapper.ts b/employee-portal/src/lib/baseModule/components/calendar/calendarMapper.ts index e9d3e95936d64ae5a2df080b6cae540d7ea7ce9e..20f34e6ea07335ad559039a6556ed6fe63fc48f2 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/calendarMapper.ts +++ b/employee-portal/src/lib/baseModule/components/calendar/calendarMapper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/calendarSxProps.ts b/employee-portal/src/lib/baseModule/components/calendar/calendarSxProps.ts index a2ce37211502670a2df42eebb0e222ccd61c43f0..0e597c94eae88cf06bfdc024c421b9c8202384a1 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/calendarSxProps.ts +++ b/employee-portal/src/lib/baseModule/components/calendar/calendarSxProps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/calendarViews.ts b/employee-portal/src/lib/baseModule/components/calendar/calendarViews.ts index 4740b520fad568db95ef4a59ef38f0983436e95b..416cda9c88bbe001365e694c299602d5e1a3795b 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/calendarViews.ts +++ b/employee-portal/src/lib/baseModule/components/calendar/calendarViews.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/sidebar/AddAbsenceSidebar.tsx b/employee-portal/src/lib/baseModule/components/calendar/sidebar/AddAbsenceSidebar.tsx index a59351e79233a285a29228758f599f2bb1386506..8bb6978dae65bb083a7a38b44462c1e0dbc0e611 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/sidebar/AddAbsenceSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/sidebar/AddAbsenceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/sidebar/EditAbsenceSidebar.tsx b/employee-portal/src/lib/baseModule/components/calendar/sidebar/EditAbsenceSidebar.tsx index 9b9969c6e729666766f629db8cae83e731ce6eb8..a43e3834aa6a33d172438f36444e4ffe420d66c2 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/sidebar/EditAbsenceSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/sidebar/EditAbsenceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -24,7 +24,6 @@ import { mapEventToFormValues, mapFormToRequestValues, } from "@/lib/baseModule/components/calendar/calendarMapper"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DrawerProps } from "@/lib/shared/components/drawer/drawerContext"; import { UseSidebarResult, @@ -32,6 +31,7 @@ import { } from "@/lib/shared/components/drawer/useSidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function useEditAbsenceSidebar(): UseSidebarResult<EditAbsenceSidebarProps> { return useSidebar({ diff --git a/employee-portal/src/lib/baseModule/components/calendar/sidebar/SettingsSidebar.tsx b/employee-portal/src/lib/baseModule/components/calendar/sidebar/SettingsSidebar.tsx index 9e3256037db74f0ac1eb0d7750718c84371cc244..87b37b23f82f40622fea02b81e819a4427a957e4 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/sidebar/SettingsSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/sidebar/SettingsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/calendar/sidebar/ViewEventSidebar.tsx b/employee-portal/src/lib/baseModule/components/calendar/sidebar/ViewEventSidebar.tsx index 6e6fc0eb6f8300f1f62df4c362675b89e66474df..cb1c07930a1bf5d46459aff66f4611b36884fe66 100644 --- a/employee-portal/src/lib/baseModule/components/calendar/sidebar/ViewEventSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/calendar/sidebar/ViewEventSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/ContactDetails.tsx b/employee-portal/src/lib/baseModule/components/contacts/ContactDetails.tsx index 2404884eec69ae9869a143c8ba3d2c111d1b6876..1215a4832f8fd7b78a7167dde82d6925aadb3765 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/ContactDetails.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/ContactDetails.tsx @@ -1,10 +1,16 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiBaseFeature, ApiUserRole } from "@eshg/employee-portal-api/base"; -import { InternalLink } from "@eshg/lib-portal/components/navigation/InternalLink"; +import { + GENDER_VALUES, + SALUTATION_VALUES, + getOptionalTitle, +} from "@eshg/lib-portal/components/formFields/constants"; +import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; +import ChatOutlinedIcon from "@mui/icons-material/ChatOutlined"; import { Divider, Stack, Typography } from "@mui/joy"; import { isDefined, isNonNullish } from "remeda"; @@ -16,6 +22,7 @@ import { isPersonContact, } from "@/lib/baseModule/components/contacts/types"; import { contactCategoryNames } from "@/lib/baseModule/shared/translations"; +import { ChatUserId } from "@/lib/businessModules/chat/components/ChatUserId"; import { routes } from "@/lib/businessModules/chat/shared/routes"; import { ResponsiveDivider } from "@/lib/shared/components/ResponsiveDivider"; import { BaseAddressDetails } from "@/lib/shared/components/address/BaseAddressDetails"; @@ -29,11 +36,6 @@ import { emailHref, phoneHref, } from "@/lib/shared/components/detailsSection/ExternalLinkDetailsCell"; -import { - GENDER_VALUES, - SALUTATION_VALUES, - getOptionalTitle, -} from "@/lib/shared/components/personSidebar/constants"; import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; export function ContactDetails({ contact }: { contact: Contact }) { @@ -98,20 +100,33 @@ export function ContactDetails({ contact }: { contact: Contact }) { /> )} - {showChatUsername && ( - <DetailsCell - name={"externalChatUsername"} - label={"Chat Nutzername"} - value={ - isNonNullish(contact.externalChatUsername) ? ( - <InternalLink - href={routes.userRoom(contact.externalChatUsername)} - > - {contact.externalChatUsername} - </InternalLink> - ) : undefined - } - /> + {showChatUsername && contact.externalChatUsername && ( + <> + <DetailsCell + name={"externalChatUsername"} + label={"Chat-ID"} + valueIsDiv + value={ + <ChatUserId + userId={contact.externalChatUsername} + noLabel + isParagraph + /> + } + /> + <InternalLinkButton + href={routes.userRoom(contact.externalChatUsername)} + startDecorator={<ChatOutlinedIcon />} + variant="outlined" + sx={{ + alignSelf: "flex-start", + maxWidth: "100%", + mt: 1, + }} + > + Direktnachricht + </InternalLinkButton> + </> )} </> )} diff --git a/employee-portal/src/lib/baseModule/components/contacts/ContactsOverview.tsx b/employee-portal/src/lib/baseModule/components/contacts/ContactsOverview.tsx index d4f2a53574ff6567aaa1eb25464ad415464c2ce7..e3fa253723fe4adc33d96aec061ba45e05b6b7d9 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/ContactsOverview.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/ContactsOverview.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/ContactsTable.tsx b/employee-portal/src/lib/baseModule/components/contacts/ContactsTable.tsx index d44480168f0ae822c9c4f215c6a9b0a9c6f5877e..705f231aa2a95935a0b149f0e1c9e1b70f5f6ea0 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/ContactsTable.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/ContactsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/ContactsTableTitle.tsx b/employee-portal/src/lib/baseModule/components/contacts/ContactsTableTitle.tsx index a6ac3b311f19ab095ac6d67f9e4f174329f85ef3..b365777b648b6a3e497aa29f0567735f84bd5af4 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/ContactsTableTitle.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/ContactsTableTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/columns.tsx b/employee-portal/src/lib/baseModule/components/contacts/columns.tsx index 4644d321bf2024927e57d550d55c21b834a9d2c4..02e3f662b67cf683b14894aab3657e85614d9ac8 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/columns.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/constants.ts b/employee-portal/src/lib/baseModule/components/contacts/constants.ts index d7b2e0dd2390c22283ca698d6399b22c61938b4f..82e17108d4db88e0c79c3a3ac67bf13c43aa0a46 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/constants.ts +++ b/employee-portal/src/lib/baseModule/components/contacts/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/ContactEntityForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/ContactEntityForm.tsx index dfb0d6129a792a557cadc73892c0d33abd76dab1..ee0327ec8e38e83d0772cda538d55a700cda57fb 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/ContactEntityForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/ContactEntityForm.tsx @@ -1,10 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiContactType } from "@eshg/employee-portal-api/base"; import { FormAddMoreButton } from "@eshg/lib-portal/components/form/FormAddMoreButton"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputArrayField, getIndexLabel, @@ -38,7 +39,6 @@ import { OptionalBillingAddressForm, } from "@/lib/shared/components/form/address/BaseAddressForm"; import { createEmptyAddress } from "@/lib/shared/components/form/address/helpers"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/InstitutionFormFields.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/InstitutionFormFields.tsx index bf7c64b24edc2e5c3456a7fdbd44abd08f049437..338465f00db2bdccbdd5f88e0e07f272300ee2e5 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/InstitutionFormFields.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/InstitutionFormFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/PersonFormFields.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/PersonFormFields.tsx index 6189e6822eaaa80641cb4e80724f2316a1a4c631..de679501f3c3e5f9ebd77ca6850064de98d0931f 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/PersonFormFields.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/PersonFormFields.tsx @@ -1,22 +1,22 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiBaseFeature } from "@eshg/employee-portal-api/base"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + GENDER_OPTIONS, + SALUTATION_OPTIONS, + TITLE_OPTIONS, +} from "@eshg/lib-portal/components/formFields/constants"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; import { Divider, Grid } from "@mui/joy"; import { useIsNewFeatureEnabled } from "@/lib/baseModule/api/queries/feature"; import { PersonContactFormValues } from "@/lib/baseModule/components/contacts/types"; -import { - GENDER_OPTIONS, - SALUTATION_OPTIONS, - TITLE_OPTIONS, -} from "@/lib/shared/components/personSidebar/constants"; const fieldName = createFieldNameMapper<PersonContactFormValues>(); @@ -65,7 +65,7 @@ export function PersonFormFields() { <Grid xxs={12}> <InputField name={fieldName("externalChatUsername")} - label={"Chat Benutzername"} + label={"Chat-ID"} validate={validateLength(1, 255)} /> </Grid> diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/card/AddressMergeField.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/card/AddressMergeField.tsx index ba701a73b93da73db14f57e3c87d68338751c59f..377fcfe3165ca3a90f5c2a220541383f2297f05a 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/card/AddressMergeField.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/card/AddressMergeField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/card/InstitutionContactCard.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/card/InstitutionContactCard.tsx index 20a5b75adf192a0ddcb0f722e3245f5a5d567a8c..965e39eaa5c57953a84a9e15257a4462b55518d4 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/card/InstitutionContactCard.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/card/InstitutionContactCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/card/PersonContactCard.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/card/PersonContactCard.tsx index 262e07a8607697a85416bc6e82f3d95f49e06d72..6492755a918de4baecaa8478bed580d54ca0a71e 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/card/PersonContactCard.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/card/PersonContactCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/helpers.ts b/employee-portal/src/lib/baseModule/components/contacts/forms/helpers.ts index 463878b6fa54aa1272bd593143ef54f9327cbdb0..85cd8d5692838a36278ee8367b46d7aef940148d 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/helpers.ts +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/import/ImportResultForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/import/ImportResultForm.tsx index 2f2489d1e55d144bbc9de308a81280f5115f330d..13e9916b6bff1c4617ca73020ad626b93e4dbdb6 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/import/ImportResultForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/import/ImportResultForm.tsx @@ -1,9 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiVCardAddress } from "@eshg/employee-portal-api/base"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { Sheet, Stack, Typography } from "@mui/joy"; import { Formik } from "formik"; import { ComponentType, Ref } from "react"; @@ -15,7 +16,6 @@ import { SidebarForm, SidebarFormHandle, } from "@/lib/shared/components/form/SidebarForm"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { join } from "@/lib/shared/helpers/strings"; diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/import/InstitutionContactImportForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/import/InstitutionContactImportForm.tsx index 1464b960aa8d9a65f24a8bd7f9bee3dfdda2fa5d..ad486551aec97605faec9ab3f70d3e605370c14c 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/import/InstitutionContactImportForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/import/InstitutionContactImportForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/import/PersonContactImportForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/import/PersonContactImportForm.tsx index 150f8793726ab0a390bdd0c0cfd0e87f6158b358..4772ecbd03e595c4386e11ef06586fcb0b987ee0 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/import/PersonContactImportForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/import/PersonContactImportForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/import/UploadVCardForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/import/UploadVCardForm.tsx index a828db24584161388af733e0f6dd48a9c5cbfe2b..01bdbfb877fd9ccf6ed1f1a4a633ef4dd6b02d27 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/import/UploadVCardForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/import/UploadVCardForm.tsx @@ -1,8 +1,9 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { Formik } from "formik"; import { Ref } from "react"; @@ -12,7 +13,6 @@ import { SidebarFormHandle, } from "@/lib/shared/components/form/SidebarForm"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeInstitutionContactForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeInstitutionContactForm.tsx index b294ed74a1bbc7e1ccc8db8b919924f5a65f7f4d..f61a8d513d7517e1b4841d815496fa9458199414 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeInstitutionContactForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeInstitutionContactForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergePersonContactForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergePersonContactForm.tsx index f140329420b9c1b532c9c155ba140d01fc003584..f713a8506cc81bb99e14724a27e1ec498f49b252 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergePersonContactForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergePersonContactForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,6 +12,11 @@ import { InputArrayField, getIndexLabel, } from "@eshg/lib-portal/components/formFields/InputArrayField"; +import { + GENDER_VALUES, + SALUTATION_VALUES, + TITLE_VALUES, +} from "@eshg/lib-portal/components/formFields/constants"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { Box, Divider, Grid, Stack } from "@mui/joy"; import { Formik } from "formik"; @@ -38,11 +43,6 @@ import { SidebarFormHandle, } from "@/lib/shared/components/form/SidebarForm"; import { BaseAddressFormInputs } from "@/lib/shared/components/form/address/helpers"; -import { - GENDER_VALUES, - SALUTATION_VALUES, - TITLE_VALUES, -} from "@/lib/shared/components/personSidebar/constants"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeStringField.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeStringField.tsx index b89de1e9eb0d59b9495ed01a601522bb4edec7ad..4819b829fba333d7a1c0f856df88662c14d7fe3f 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeStringField.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/MergeStringField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/SelectMergeTargetForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/SelectMergeTargetForm.tsx index 4be9b387949c686e58312b70ca49e6f0d3ce1217..7ecda2333d0f2ecbdaaacd74b721a4010857454c 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/merge/SelectMergeTargetForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/merge/SelectMergeTargetForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/search/ContactSearchFormResults.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/search/ContactSearchFormResults.tsx index 010813b6a69120ea5a65d91b1b7cbfc4777a3852..1fe9cc50edf3800a4ae3c1c85979693d677b8cee 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/search/ContactSearchFormResults.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/search/ContactSearchFormResults.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/search/InstitutionContactSearchForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/search/InstitutionContactSearchForm.tsx index 53167388669ddf3090952a082cb3190e31570a8e..e512ce79c3cf03c1ba662a6cf88df775119b667b 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/search/InstitutionContactSearchForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/search/InstitutionContactSearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/forms/search/PersonContactSearchForm.tsx b/employee-portal/src/lib/baseModule/components/contacts/forms/search/PersonContactSearchForm.tsx index ea5ca3b19dfc3b84c53b2c255e427dcc7ec79834..c3a3ab53cf9dfd36535788825247c79eb065e537 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/forms/search/PersonContactSearchForm.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/forms/search/PersonContactSearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/helpers.ts b/employee-portal/src/lib/baseModule/components/contacts/helpers.ts index 83d5959fca9a95933e0f65c2da9cc3f10956d236..362df31af051117188f57386b680f00566161ae7 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/helpers.ts +++ b/employee-portal/src/lib/baseModule/components/contacts/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeDetails.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeDetails.tsx index a1736141212129d7ba67db63804c39bc1bcabe5d..cdfe6181fa639afaff7ca224ac6ff3703d7372f0 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeDetails.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeSidebar.tsx index 0f9dee8604aa3e4408c3ed30e28292c6234eb9f2..ddfbcf75c5422064af470348409561063128e2f2 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/ContactAddressChangeSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeDetails.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeDetails.tsx index d730f38ef5ad8d3b2793e7091ce8b0ff6d433f49..52ba69de5af8de453eaa5b3eccd203a12a113f88 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeDetails.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,10 +14,7 @@ export function ContactChangeDetails({ contact }: { contact: Contact }) { <> <HistoryChange label="Vorname" value={contact.firstName} /> <HistoryChange label="Name" value={contact.name} /> - <HistoryChange - label="Chat Benutzername" - value={contact.externalChatUsername} - /> + <HistoryChange label="Chat-ID" value={contact.externalChatUsername} /> </> )} {contact.type === "InstitutionContact" && ( diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeSidebar.tsx index 8c6dcdba273aeb1fdf85ca4a875efcdf1d1a098b..bcd3717784cc86d395e5a0ebf99ef3511f02d85e 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/ContactChangeSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/ContactHistory.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/ContactHistory.tsx index 692a36f751320e374427ef4893b23808022b071d..f5113cfa22caddc634e2e0f0dc1bc20ed6987613 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/ContactHistory.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/ContactHistory.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -126,7 +126,7 @@ const translatePersonFieldName = { name: "Name", firstName: "Vorname", gender: "Geschlecht", - externalChatUsername: "Chat Benutzername", + externalChatUsername: "Chat-ID", salutation: "Anrede", title: "Titel", emailAddresses: "E-Mail-Adressen", diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryChange.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryChange.tsx index e80fdb5b6b0389836d5d8a357843c9323dccbe86..608a49d7c07466d7ffd87f4e26278f7144e94099 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryChange.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryChange.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsDivider.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsDivider.tsx index f2a67a9ea3f7eda12797a6ebcc1dd1a32ede1635..f362f8fa643026a5c832a9563886c75e1e2b219b 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsDivider.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsDivider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsSheet.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsSheet.tsx index 5e140213cac19fae4c6ac5b02f01eb617c819791..32f36bfd931675182440b22bc9a861a67513143f 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsSheet.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryDetailsSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryEntryIndicator.tsx b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryEntryIndicator.tsx index cb2505f67273a201e10868943df5a1996fd28604..a0f3d367bd9cd01ede7047c0e53241679e4c3386 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/history/HistoryEntryIndicator.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/history/HistoryEntryIndicator.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/modals/AddInstitutionContactSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/modals/AddInstitutionContactSidebar.tsx index a320b490b08dd6aff0f8f012f2c3d84e9a6bb95e..1dde2eb493a8fe2dc94705fad4b1010c4ae0d8fc 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/modals/AddInstitutionContactSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/modals/AddInstitutionContactSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/modals/AddPersonContactSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/modals/AddPersonContactSidebar.tsx index fdaeb813fdf17abe175f33ccd81e4eb4a070ad60..a9ecebbca307bfec2f74eabec48aa895e54f95d7 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/modals/AddPersonContactSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/modals/AddPersonContactSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/modals/ContactHistoryDetailsSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/modals/ContactHistoryDetailsSidebar.tsx index 6346be1632043c715fe8ff9614259c8092e3f4c6..509fef4a90c56513ab18d848f242ccb1a9fd0117 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/modals/ContactHistoryDetailsSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/modals/ContactHistoryDetailsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/modals/MergeInstitutionContactSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/modals/MergeInstitutionContactSidebar.tsx index 3667e8cf56269b53538817aceac91e91f96599f4..bc765dd9a800de81d3b2461b344401a521affd5d 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/modals/MergeInstitutionContactSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/modals/MergeInstitutionContactSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/modals/MergePersonContactSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/modals/MergePersonContactSidebar.tsx index c2e41e9b1734d21531cbb250dd7552b410a04c4e..15721cd2c73a37b5cd663b6a523eb2e0e362018f 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/modals/MergePersonContactSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/modals/MergePersonContactSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/modals/UpdateContactSidebar.tsx b/employee-portal/src/lib/baseModule/components/contacts/modals/UpdateContactSidebar.tsx index 880c253a7c6e0a0e1e3305387988511cd7f56191..d31ccb7bcc1050b387b71f3dde2ba13bcc65cbcd 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/modals/UpdateContactSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/contacts/modals/UpdateContactSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/contacts/types.ts b/employee-portal/src/lib/baseModule/components/contacts/types.ts index 9a76ebc1b01704d2bd605a5331a13b78834b7952..c0cb33dd295fd78dc613a36cdb9fc2fe6b5f4e98 100644 --- a/employee-portal/src/lib/baseModule/components/contacts/types.ts +++ b/employee-portal/src/lib/baseModule/components/contacts/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/dashboard/Dashboard.tsx b/employee-portal/src/lib/baseModule/components/dashboard/Dashboard.tsx index 869f7ed58f00e05e2a704ea316880a38a0a1c9c0..6d8b8cfc896bcc15db964e82c88d4d6997042c09 100644 --- a/employee-portal/src/lib/baseModule/components/dashboard/Dashboard.tsx +++ b/employee-portal/src/lib/baseModule/components/dashboard/Dashboard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/dashboard/DashboardProceduresTable.tsx b/employee-portal/src/lib/baseModule/components/dashboard/DashboardProceduresTable.tsx index 015d4de61f347064b1262e2e7064545be5c7a8a2..12219aa91b411adbfb636f6e0196b713d0462b38 100644 --- a/employee-portal/src/lib/baseModule/components/dashboard/DashboardProceduresTable.tsx +++ b/employee-portal/src/lib/baseModule/components/dashboard/DashboardProceduresTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/dashboard/DashboardTaskList.tsx b/employee-portal/src/lib/baseModule/components/dashboard/DashboardTaskList.tsx index ba8b91bad597d0af216abbc81696550285d8189e..4f43b03dd491a9b9f7dd85e038349995b5349688 100644 --- a/employee-portal/src/lib/baseModule/components/dashboard/DashboardTaskList.tsx +++ b/employee-portal/src/lib/baseModule/components/dashboard/DashboardTaskList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/facility/FacilityCardContent.tsx b/employee-portal/src/lib/baseModule/components/facility/FacilityCardContent.tsx index b89ddc472fec506f34dc4bde9137ac87c5cb215c..a47d8d45495095c5e1f789889d2c8c97e7ce60de 100644 --- a/employee-portal/src/lib/baseModule/components/facility/FacilityCardContent.tsx +++ b/employee-portal/src/lib/baseModule/components/facility/FacilityCardContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/constants.ts b/employee-portal/src/lib/baseModule/components/gdpr/constants.ts index 05ba71460c933d99548c24c9136ff591a38d324a..29d3b1a4fe97e86d4e3be930405a8d0193aae8b9 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/constants.ts +++ b/employee-portal/src/lib/baseModule/components/gdpr/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/helpers.ts b/employee-portal/src/lib/baseModule/components/gdpr/helpers.ts index 1c0c4a488f160c31cff1ed59b76c6134c658c0d8..52a01f56d828c3b29066e86ea1885609bf23c2fb 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/helpers.ts +++ b/employee-portal/src/lib/baseModule/components/gdpr/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/i18n.ts b/employee-portal/src/lib/baseModule/components/gdpr/i18n.ts index d237d37bc8942a877cf589fcf0ff0b8795e69568..9ac9246d880951889628a96a1359a8d711403215 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/i18n.ts +++ b/employee-portal/src/lib/baseModule/components/gdpr/i18n.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/overview/CreateGDPRProcedureSidebar.tsx b/employee-portal/src/lib/baseModule/components/gdpr/overview/CreateGDPRProcedureSidebar.tsx index 6d6c4fc0df816cb0289c0a638ac76d7ba2042e80..0fc9b241361440ff1080fbfbc5c13d162ab5a65d 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/overview/CreateGDPRProcedureSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/overview/CreateGDPRProcedureSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,8 +8,10 @@ import { ApiSalutation, } from "@eshg/employee-portal-api/base"; import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { SALUTATION_OPTIONS } from "@eshg/lib-portal/components/formFields/constants"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; @@ -28,8 +30,6 @@ import { BaseAddressFormInputs, createEmptyAddress, } from "@/lib/shared/components/form/address/helpers"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; -import { SALUTATION_OPTIONS } from "@/lib/shared/components/personSidebar/constants"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { diff --git a/employee-portal/src/lib/baseModule/components/gdpr/overview/GDPRTable.tsx b/employee-portal/src/lib/baseModule/components/gdpr/overview/GDPRTable.tsx index 84239c03c10c9a97787fbfe05176215143edeabc..1e9e685eed4ca6ff68c80b2b2a805c1337c483b3 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/overview/GDPRTable.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/overview/GDPRTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/overview/columns.tsx b/employee-portal/src/lib/baseModule/components/gdpr/overview/columns.tsx index 3499ba5726601422a8eb1560aedc3bd33e634df2..982243e180b836b94b0ab7503776409e8ece947a 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/overview/columns.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/overview/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/overview/useGdprFilterSettings.tsx b/employee-portal/src/lib/baseModule/components/gdpr/overview/useGdprFilterSettings.tsx index b5b3fbdfdb656c8746a86100d7ebca05dcc17dc0..58e93d13a86554bb2ac6713d4b3faa5f2548be60 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/overview/useGdprFilterSettings.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/overview/useGdprFilterSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/DownloadReportButton.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/DownloadReportButton.tsx index c98c0628af28d74a5b10b48c2b26d0991a0daf99..0d8ae5abc66eb0296cc5adfacb9be842a7c9b3db 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/DownloadReportButton.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/DownloadReportButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/GDPRProcedureDetails.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/GDPRProcedureDetails.tsx index d9ca7d1b7429cb0c52096e4c716cbeac9bad6ef6..4a88de5e48d5c5af4bcbbcd22aad0d40c49d76c0 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/GDPRProcedureDetails.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/GDPRProcedureDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/linkCentralFileSidebar/LinkCentralFileSidebar.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/linkCentralFileSidebar/LinkCentralFileSidebar.tsx index 336315a87809585a817d7e52c6721072e5c2f9e0..0e46e7070b1de605e0e8472a01d382221b270cc6 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/linkCentralFileSidebar/LinkCentralFileSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/linkCentralFileSidebar/LinkCentralFileSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,7 @@ import { ApiGetReferenceFacilityResponse, ApiGetReferencePersonResponse, } from "@eshg/employee-portal-api/base"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { Stack } from "@mui/joy"; import { Formik } from "formik"; import { ReactNode, useState } from "react"; @@ -17,15 +18,14 @@ import { useAddCentralFileIdToGdprProcedure } from "@/lib/baseModule/api/mutatio import { FacilityCardContent } from "@/lib/baseModule/components/facility/FacilityCardContent"; import { PersonCardContent } from "@/lib/baseModule/components/person/PersonCardContent"; import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FacilityDetailsSidebar } from "@/lib/shared/components/facilitySidebar/FacilityDetailsSidebar"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { PersonDetailsSidebar } from "@/lib/shared/components/personSidebar/PersonDetailsSidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { fullAddress } from "@/lib/shared/helpers/facilityUtils"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; type CentralFileData = | ApiGetReferencePersonResponse diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/sidebars/EditMatterOfConcernSidebar.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/sidebars/EditMatterOfConcernSidebar.tsx index 0cb9dccf8d20d8b9dbad2fd243e141fc84117e9a..770f2f12c36ad6777ce20bbf3d20dfa6e62eb525 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/sidebars/EditMatterOfConcernSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/sidebars/EditMatterOfConcernSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/CentralFileLinkTile.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/CentralFileLinkTile.tsx index e183467acd72b9ff9c2f0435f670b8224267bd11..6072edc338bb1cef609d206f64dd4769459b4db1 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/CentralFileLinkTile.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/CentralFileLinkTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprDownloadPackagesTile.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprDownloadPackagesTile.tsx index 580abcf710daed4876dc1848389fb698069f335b..439ce84ddfdaf9154b7381b131214783ef01f238 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprDownloadPackagesTile.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprDownloadPackagesTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -28,6 +28,7 @@ import { SectionTitle, } from "@/lib/baseModule/components/gdpr/procedure/tiles/SectionTile"; import { + useDownloadBaseModulePackage, useDownloadPackageFileByModule, useGetGdprDownloadPackagesInfo, } from "@/lib/shared/api/queries/gdpr"; @@ -42,18 +43,22 @@ function useFileDownloadForPackage() { ); } +function useFileDownloadForBase(gdprProcedureId: string) { + const download = useDownloadBaseModulePackage(); + return useFileDownload(() => download(gdprProcedureId)); +} + export function GdprDownloadPackagesTile({ gdprProcedure, }: { gdprProcedure: ApiGetGdprProcedureResponse; }) { const responses = useGetGdprDownloadPackagesInfo(gdprProcedure.id); - const fileDownload = useFileDownloadForPackage(); + const businessModuleDownload = useFileDownloadForPackage(); + const baseDownload = useFileDownloadForBase(gdprProcedure.id); const id = useId(); - const isEmpty = responses.every( - ({ data }) => data.downloadPackages.length < 1, - ); + const isEmpty = gdprProcedure.centralFileId === undefined; return ( <SectionTile id={id}> @@ -63,6 +68,24 @@ export function GdprDownloadPackagesTile({ <NoSearchResults info="Keine Daten gefunden." /> ) : ( <AccordionGroup variant="outlined" color="primary"> + <StyledAccordion> + <AccordionSummary>Stammdaten</AccordionSummary> + <AccordionDetails> + <List sx={{ padding: 1 }}> + <ListItem> + <ListItemButton + variant="soft" + onClick={() => baseDownload.download()} + > + <ListItemDecorator> + <DownloadIcon /> + </ListItemDecorator> + Datenpaket 1 + </ListItemButton> + </ListItem> + </List> + </AccordionDetails> + </StyledAccordion> {responses .filter((response) => response.data.downloadPackages.length > 0) .map((response) => ( @@ -77,7 +100,7 @@ export function GdprDownloadPackagesTile({ <ListItemButton variant="soft" onClick={() => - fileDownload.download({ + businessModuleDownload.download({ businessModule: response.data.businessModule, packageId: pkg.id, }) @@ -97,7 +120,8 @@ export function GdprDownloadPackagesTile({ </AccordionGroup> )} - <HiddenContainer ref={fileDownload.downloadContainerRef} /> + <HiddenContainer ref={baseDownload.downloadContainerRef} /> + <HiddenContainer ref={businessModuleDownload.downloadContainerRef} /> </SectionTile> ); } diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprFacilityDataTile.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprFacilityDataTile.tsx index 1f85eb163e31d263546ece3cfd7d92f7c705ff99..d8d4e7d77c61d663da7275dd16761f0115155106 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprFacilityDataTile.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprFacilityDataTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprPersonDataTile.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprPersonDataTile.tsx index 6fe481fd9d00f662d6f65c394651cc028ca365aa..9efd7df8817ec84f22fad59a3176dd46e38cdb98 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprPersonDataTile.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/GdprPersonDataTile.tsx @@ -1,9 +1,13 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiGdprPerson, ApiSalutation } from "@eshg/employee-portal-api/base"; +import { + PERSON_FIELD_NAME, + SALUTATION_VALUES, +} from "@eshg/lib-portal/components/formFields/constants"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { isNonEmptyString } from "@eshg/lib-portal/helpers/guards"; import { Stack } from "@mui/joy"; @@ -19,10 +23,6 @@ import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell" import { DetailsColumn } from "@/lib/shared/components/detailsSection/DetailsColumn"; import { DetailsRow } from "@/lib/shared/components/detailsSection/DetailsRow"; import { ExternalLinkDetailsCell } from "@/lib/shared/components/detailsSection/ExternalLinkDetailsCell"; -import { - PERSON_FIELD_NAME, - SALUTATION_VALUES, -} from "@/lib/shared/components/personSidebar/constants"; export function GdprPersonDataTile({ identity, diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/ProcedureDetailsTile.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/ProcedureDetailsTile.tsx index 914846893795d7d04492981e215fa77a1c85585d..0cb6fa845f33690b956edc0e6c364712ba4ee009 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/ProcedureDetailsTile.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/ProcedureDetailsTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -44,9 +44,9 @@ import { } from "@/lib/baseModule/components/gdpr/procedure/tiles/SectionTile"; import { multiLineEllipsis } from "@/lib/baseModule/theme/theme"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; function isMatterOfConcernRequired(type: ApiGdprProcedureType) { return ( @@ -68,28 +68,24 @@ export function ProcedureDetailsTile({ CloseModalMode | undefined >(); - const isRectification = - procedure.type === ApiGdprProcedureType.ToRectification; - const isObjection = procedure.type === ApiGdprProcedureType.ToObject; - - const requiresMatterOfConcern = isObjection || isRectification; + const isBroadcast = + procedure.type === ApiGdprProcedureType.OfAccess || + procedure.type === ApiGdprProcedureType.ToErasure; + const requiresMatterOfConcern = !isBroadcast; const isEditable = procedure.status === ApiGdprProcedureStatus.Draft || procedure.status === ApiGdprProcedureStatus.InProgress; - const isCancellable = - isObjection && - (procedure.status === ApiGdprProcedureStatus.InProgress || - procedure.status === ApiGdprProcedureStatus.Draft); + const isCancellable = isEditable && !isBroadcast; const isClosable = - isObjection && procedure.status === ApiGdprProcedureStatus.InProgress; + !isBroadcast && procedure.status === ApiGdprProcedureStatus.InProgress; const showButtons = procedure.status !== ApiGdprProcedureStatus.Aborted && procedure.status !== ApiGdprProcedureStatus.Closed; const canDownloadReport = - isObjection && + procedure.type === ApiGdprProcedureType.ToObject && (procedure.status === ApiGdprProcedureStatus.InProgress || procedure.status === ApiGdprProcedureStatus.Closed); @@ -223,7 +219,6 @@ function RefreshStatusButton({ procedure: ApiGetGdprProcedureResponse; }) { const [isPending, startTransition] = useTransition(); - const snackbar = useSnackbar(); const refreshStatus = useRefreshProcedureStatus(procedure.id); const isVisible = @@ -239,13 +234,7 @@ function RefreshStatusButton({ onClick={() => startTransition(async () => { try { - await refreshStatus.mutateAsync(undefined, { - onSuccess: (response) => { - if (response.status === ApiGdprProcedureStatus.Closed) { - snackbar.confirmation("Vorgang ist abgeschlossen."); - } - }, - }); + await refreshStatus.mutateAsync(); } catch {} }) } diff --git a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/SectionTile.tsx b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/SectionTile.tsx index ad4694bbb2d251ea0f6e06e70b791b6e9bc92083..649c9f255806aeb0dc44629988268a23016fd22e 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/SectionTile.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/procedure/tiles/SectionTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/UseCloseValidationTaskDialog.tsx b/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/UseCloseValidationTaskDialog.tsx index cb9651b1153e7d2e207bb1101b6eb277bbd52bc6..20e91c74431fd921789eb16e377959af80cb0018 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/UseCloseValidationTaskDialog.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/UseCloseValidationTaskDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,7 +12,7 @@ import { import { Typography } from "@mui/joy"; import { useCloseValidationTask } from "@/lib/baseModule/api/mutations/gdpr"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface UseCloseValidationTaskDialogProps { gdprValidationTaskApi: GdprValidationTaskApiInterface; diff --git a/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTaskProceduresTable.tsx b/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTaskProceduresTable.tsx index e762b1dc0fce77982122d1f40892e4fedb8ba192..db41b11d329ee89283f204c2e5f02de0b5bc75e3 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTaskProceduresTable.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTaskProceduresTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -26,11 +26,11 @@ import { PROCEDURE_STATUS } from "@/lib/businessModules/schoolEntry/features/pro import { useAddDownloadPackage } from "@/lib/shared/api/mutations/gdpr"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { procedureTypeNames } from "@/lib/shared/components/procedures/constants"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface ValidationTaskProceduresTableProps { gdprValidationTaskApi: GdprValidationTaskApiInterface; diff --git a/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTasksTable.tsx b/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTasksTable.tsx index 98f5d883f7c9c33b8965917223515a4faef4a97c..50a3aa11cd81535fc4a5abdfba76b054e5f39113 100644 --- a/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTasksTable.tsx +++ b/employee-portal/src/lib/baseModule/components/gdpr/validationTasks/ValidationTasksTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/AddressForm.tsx b/employee-portal/src/lib/baseModule/components/inboxProcedures/AddressForm.tsx index 5519ab2bdf7567bc2b6785a5da61062089abb2ca..98889fe71a92c7c85ec4e07101bc756fca0e84af 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/AddressForm.tsx +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/AddressForm.tsx @@ -1,15 +1,14 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Divider, Grid, Stack, Typography } from "@mui/joy"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; - import { validatePostboxNumber } from "./validate"; export const EMPTY_ADDRESS_VALUES: AddressValues = { diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/ContactForm.tsx b/employee-portal/src/lib/baseModule/components/inboxProcedures/ContactForm.tsx index 4a3464d0c2023b06d3ca4b21a2920857c875559e..11238a91388b9f68fbc2a3deec50ead9abf6c2cb 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/ContactForm.tsx +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/ContactForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,11 @@ import { ApiContactType } from "@eshg/employee-portal-api/businessProcedures"; import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + AcademicTitle, + SALUTATION_OPTIONS, + TITLE_VALUES, +} from "@eshg/lib-portal/components/formFields/constants"; import { buildEnumOptions, createFieldNameMapper, @@ -19,12 +24,6 @@ import { EnumMap } from "@eshg/lib-portal/types/helpers"; import { Divider, Grid, Stack, Typography } from "@mui/joy"; import { useFormikContext } from "formik"; -import { - AcademicTitle, - SALUTATION_OPTIONS, - TITLE_VALUES, -} from "@/lib/shared/components/personSidebar/constants"; - import { AddressForm, AddressValues, diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureForm.tsx b/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureForm.tsx index 0e7b60c151d8a08469c38812c04d4c714ff863e8..060701f317b3418ff48a20bc63692b18b00d466b 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureForm.tsx +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureSuccessPage.tsx b/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureSuccessPage.tsx index 3484f48b5ec60c0bc17ef37b27ec4336a19e3fe8..b0046539294ea33a1cf9679f8ecd7b85fd2e3051 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureSuccessPage.tsx +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/CreateInboxProcedureSuccessPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/InboxProgressEntryForm.tsx b/employee-portal/src/lib/baseModule/components/inboxProcedures/InboxProgressEntryForm.tsx index 31e740c89b89b87831edad3696dde168984f03ad..0bbc40eb4b19c3a3f5c7cbcb59691c4b9be89959 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/InboxProgressEntryForm.tsx +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/InboxProgressEntryForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,10 +8,12 @@ import { ApiInboxProgressEntryType } from "@eshg/employee-portal-api/businessProcedures"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { buildEnumOptions, createFieldNameMapper, } from "@eshg/lib-portal/helpers/form"; +import { validateFile } from "@eshg/lib-portal/helpers/validators"; import { NestedFormProps, OptionalFieldValue, @@ -25,8 +27,6 @@ import { FileField, FileFieldProps, } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; -import { validateFile } from "@/lib/shared/helpers/validators"; import { CreateInboxProcedureValues } from "./CreateInboxProcedureForm"; diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/mapper.ts b/employee-portal/src/lib/baseModule/components/inboxProcedures/mapper.ts index 1598866e807e81631357fc2fbbad70646b443bfc..da763ab030b035b60c9eac8e860f50ed4bb6e7f7 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/mapper.ts +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/mapper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,6 +12,7 @@ import { ApiInboxProgressEntryType, ApiTitle, } from "@eshg/employee-portal-api/businessProcedures"; +import { AcademicTitle } from "@eshg/lib-portal/components/formFields/constants"; import { toUtcDate } from "@eshg/lib-portal/helpers/dateTime"; import { mapOptionalValue } from "@eshg/lib-portal/helpers/form"; import { isEmpty } from "remeda"; @@ -23,7 +24,6 @@ import { PROGRESS_ENTRY_TYPES_WITH_FILE_UPLOAD, PROGRESS_ENTRY_TYPES_WITH_SUBJECT_AND_MESSAGE, } from "@/lib/baseModule/components/inboxProcedures/InboxProgressEntryForm"; -import { AcademicTitle } from "@/lib/shared/components/personSidebar/constants"; import { CreateInboxProcedureValues } from "./CreateInboxProcedureForm"; diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/types.ts b/employee-portal/src/lib/baseModule/components/inboxProcedures/types.ts index 01d41bf6e6403c6f69ae94aa4e77ab3502250c74..272398ddaa4b62e410ac2cb9f15e8522cff35f2d 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/types.ts +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inboxProcedures/validate.ts b/employee-portal/src/lib/baseModule/components/inboxProcedures/validate.ts index fb38117594d456c353c079631bced3ff00b9e64b..fd8c5936b241e6f9fcc205f34aeb047dda2b16fb 100644 --- a/employee-portal/src/lib/baseModule/components/inboxProcedures/validate.ts +++ b/employee-portal/src/lib/baseModule/components/inboxProcedures/validate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/InventoryBooking.tsx b/employee-portal/src/lib/baseModule/components/inventory/InventoryBooking.tsx index d7a5dd3e6140bc6d99e9499d33dfc004e5d0b86a..7898475208f919649a35a5eef075d6bc8f950815 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/InventoryBooking.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/InventoryBooking.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/InventoryDetails.tsx b/employee-portal/src/lib/baseModule/components/inventory/InventoryDetails.tsx index a4192e77e29e60eb80b8d91ce5577fc6d3a2e545..14dc2e4032e995f00e4d205a1a4ec9ac746a6abc 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/InventoryDetails.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/InventoryDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/InventoryTable.tsx b/employee-portal/src/lib/baseModule/components/inventory/InventoryTable.tsx index 641c2f5037fda2eb8a652f5aeb6b9c6d102fd223..4e158acd13f10b9fc858967f3f03992f2e3bfd8e 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/InventoryTable.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/InventoryTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/LowCountWarning.tsx b/employee-portal/src/lib/baseModule/components/inventory/LowCountWarning.tsx index 95f9f87790d2ea9cb2548e9704ded03565595be9..b72e0b7fca0817e50ea431a94f7ade1f31b0fed7 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/LowCountWarning.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/LowCountWarning.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/columns.tsx b/employee-portal/src/lib/baseModule/components/inventory/columns.tsx index 63627942d2f28e48f4befbd7f2aef4eb8f05a90b..4ac8d5f8df378f4b9f654c9eab7d5c9757e000f9 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/columns.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/constants.ts b/employee-portal/src/lib/baseModule/components/inventory/constants.ts index c780f2b386a38a01dd9946fbc1d3b1da52823951..3766316430ad8dda01ef2ba21d8eb1b950630172 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/constants.ts +++ b/employee-portal/src/lib/baseModule/components/inventory/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryForm.tsx b/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryForm.tsx index 55fc224e015f9535b7cd8c7356e507a6ed4b10ae..44a1a33c6747f4bf4d2070adb216eafd5e7aeb2a 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryForm.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryRestockForm.tsx b/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryRestockForm.tsx index ed69fa4e54782efdfddc0f308ef244230d0add05..ac0dac9c1deac480722af9f51ada5fcc1c3c5180 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryRestockForm.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/forms/InventoryRestockForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/hooks/useInventoryFilterSettings.tsx b/employee-portal/src/lib/baseModule/components/inventory/hooks/useInventoryFilterSettings.tsx index 6f19d92f036e9454836134153e986d923923d814..408f71dd42cd36fa6ff96a7d67f181977349a197 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/hooks/useInventoryFilterSettings.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/hooks/useInventoryFilterSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/modals/AddInventorySidebar.tsx b/employee-portal/src/lib/baseModule/components/inventory/modals/AddInventorySidebar.tsx index 30be375718956dc71a0476d699e8a4e96de8e7b6..35d0fc265c06696dd6f4b8f9b94b32e34f3a03a6 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/modals/AddInventorySidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/modals/AddInventorySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryCountCorrectionSidebar.tsx b/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryCountCorrectionSidebar.tsx index 3a34ce3f6fed2e72fd034596dd310f75061bd2b2..d3a7c96f8f855be7c3b1d89210c43a3f272e24a3 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryCountCorrectionSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryCountCorrectionSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,11 +10,11 @@ import { Grid, Stack, Typography } from "@mui/joy"; import { Formik } from "formik"; import { useCorrectInventoryItemCount } from "@/lib/baseModule/api/mutations/inventory"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { SidebarWithFormRefProps, UseSidebarWithFormRefResult, diff --git a/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryRestockSidebar.tsx b/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryRestockSidebar.tsx index 994f808ce157a1725f5c70e9ae64bd5fe3705ef4..8e4975177dd96efdb3fdc6bf0b06cea9cae61497 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryRestockSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryRestockSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryUpdateSidebar.tsx b/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryUpdateSidebar.tsx index cf87165e2a775820af6ee1f3a5a9d7864c6b8ed1..3c673c8d361ec19ea168fcf2ae8066636c58b97b 100644 --- a/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryUpdateSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/inventory/modals/InventoryUpdateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/labels/LabelField.tsx b/employee-portal/src/lib/baseModule/components/labels/LabelField.tsx index 6547748d08a24d229ea0144aa63d0bb24fdbd841..020830c60755440419fc432b0a4d659a170cdc4f 100644 --- a/employee-portal/src/lib/baseModule/components/labels/LabelField.tsx +++ b/employee-portal/src/lib/baseModule/components/labels/LabelField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/labels/LabelList.tsx b/employee-portal/src/lib/baseModule/components/labels/LabelList.tsx index 7a5a98ad441bef3cbb509004a2592e262b6dec2f..e2262745965f7ffd97a619eb04b601eb6e10bd07 100644 --- a/employee-portal/src/lib/baseModule/components/labels/LabelList.tsx +++ b/employee-portal/src/lib/baseModule/components/labels/LabelList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/labels/MoreLabelsButton.tsx b/employee-portal/src/lib/baseModule/components/labels/MoreLabelsButton.tsx index 5cc377dd8bed06f705be1a6bb4b733a9e9c65926..4753d79ae617142d7ae9d81a70715750e624014c 100644 --- a/employee-portal/src/lib/baseModule/components/labels/MoreLabelsButton.tsx +++ b/employee-portal/src/lib/baseModule/components/labels/MoreLabelsButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/ChatSettingsSidebar.tsx b/employee-portal/src/lib/baseModule/components/layout/ChatSettingsSidebar.tsx index 402df363e7a5b274fc037232f5f1225dc23de646..6ac5207fc0463d11e4e6d8df5f21e26f61dd8e6a 100644 --- a/employee-portal/src/lib/baseModule/components/layout/ChatSettingsSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/ChatSettingsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -54,6 +54,7 @@ function ChatSettingsSidebar({ onClose }: DrawerProps) { const [modalValues, setModalValues] = useState<DeactivateModalProps>(); const [termsOfUseModal, setTermsOfUseModal] = useState(false); const snackbar = useSnackbar(); + const { deactivateAccount } = useUserSettings(); const chatUserId = matrixClient?.getUserId(); @@ -68,7 +69,6 @@ function ChatSettingsSidebar({ onClose }: DrawerProps) { togglePresenceStatus, toggleReadConfirmation, toggleTypingNotifications, - deactivateAccount, } = useUserSettings(); const updateSelfUser = useUpdateSelfUserChatUsername(); const { data: selfUser } = useGetSelfUser(); @@ -76,7 +76,6 @@ function ChatSettingsSidebar({ onClose }: DrawerProps) { const handleStopChat = useCallback(async () => { if (!matrixClient) return; - deactivateAccount(true); try { await updateSelfUser.mutateAsync({ externalChatUsername: undefined, @@ -89,11 +88,11 @@ function ChatSettingsSidebar({ onClose }: DrawerProps) { } try { await deleteCachedCredentials(); - await clearMatrixStores(); + void clearMatrixStores(); } catch (error) { logger.error(error); } - }, [deactivateAccount, matrixClient, updateSelfUser, userData]); + }, [matrixClient, updateSelfUser, userData]); const showSSOModal = useCallback( (values: Omit<DeactivateModalProps, "onFinished" | "open">) => { @@ -135,13 +134,15 @@ function ChatSettingsSidebar({ onClose }: DrawerProps) { session: session, authData: error.data as AuthDict, }); + onClose(); + deactivateAccount(true); const { confirmed } = await modalPromise; if (confirmed) { snackbar.notification("Account Deactivated"); } } } - }, [matrixClient, showSSOModal, snackbar]); + }, [deactivateAccount, matrixClient, onClose, showSSOModal, snackbar]); return ( <> diff --git a/employee-portal/src/lib/baseModule/components/layout/MainLayout.tsx b/employee-portal/src/lib/baseModule/components/layout/MainLayout.tsx index 465b983ccebee918848add71b41d553fa4b843cb..50a7abab16f1ec070031342df5b8dc6469a17993 100644 --- a/employee-portal/src/lib/baseModule/components/layout/MainLayout.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/MainLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,11 +11,10 @@ import { ReactNode, useState } from "react"; import { Header } from "@/lib/baseModule/components/layout/header/Header"; import { SideNavigation } from "@/lib/baseModule/components/layout/sideNavigation/SideNavigation"; import { - headerHeightDesktop, - headerHeightMobile, sideNavigationCollapsedWidth, sideNavigationWidth, } from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; import { SidebarSlot } from "@/lib/shared/components/drawer/SidebarSlot"; import { useIsOffline } from "@/lib/shared/hooks/useIsOffline"; @@ -23,6 +22,7 @@ export function MainLayout({ children }: { children: ReactNode }) { const isOffline = useIsOffline(); const [collapsed, setCollapsed] = useState(false); const drawerTransitionTime = "0.3s"; + const { headerHeightMobile, headerHeightDesktop } = useHeaderHeights(); return ( <> diff --git a/employee-portal/src/lib/baseModule/components/layout/SelfUserSidebar.tsx b/employee-portal/src/lib/baseModule/components/layout/SelfUserSidebar.tsx index 364cb4cb62785b5364420c13c5bf5348014b9a18..9b3669283fb3ffe5eff0f6cb15910d56b8591798 100644 --- a/employee-portal/src/lib/baseModule/components/layout/SelfUserSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/SelfUserSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/header/Header.tsx b/employee-portal/src/lib/baseModule/components/layout/header/Header.tsx index 6b42bc0a05562578651b64cb40f7cc298da3d35d..a07cb764b0979db34e96f15792b88bc488925136 100644 --- a/employee-portal/src/lib/baseModule/components/layout/header/Header.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/header/Header.tsx @@ -1,8 +1,9 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { EnvironmentIndicator } from "@eshg/lib-portal/components/EnvironmentIndicator"; import CloseIcon from "@mui/icons-material/Close"; import MenuIcon from "@mui/icons-material/Menu"; import { Box, Typography } from "@mui/joy"; @@ -10,8 +11,8 @@ import { Box, Typography } from "@mui/joy"; import { HeaderButtons } from "@/lib/baseModule/components/layout/header/HeaderButtons"; import { HeaderIconButton } from "@/lib/baseModule/components/layout/header/HeaderIconButton"; import { - headerHeightDesktop, - headerHeightMobile, + appBarHeightDesktop, + appBarHeightMobile, } from "@/lib/baseModule/components/layout/sizes"; import { useSidenav } from "@/lib/shared/components/drawer/useSidenav"; import { useIsOffline } from "@/lib/shared/hooks/useIsOffline"; @@ -31,59 +32,70 @@ export function Header() { return ( <Box component="header" + display="flex" + position="fixed" + flexDirection="column" + top={0} sx={{ - background: (theme) => - `linear-gradient(90deg, ${theme.palette.primary[700]} 0%, ${theme.palette.primary[500]} 100%)`, - boxShadow: "xl", - paddingInline: 3, - paddingBlock: 1, - display: "flex", - justifyContent: "space-between", - alignItems: "center", - gap: 1, - position: "fixed", - top: 0, left: 0, right: 0, - height: { xxs: headerHeightMobile, sm: headerHeightDesktop }, - zIndex: "header", }} + zIndex="header" > - {!isOffline && ( - <HeaderIconButton - aria-label={sidenav.isOpen ? "navigation-close" : "navigation-open"} - sx={{ - display: { xxs: "flex", lg: "none" }, - }} - onClick={toggleSidenav} - > - {sidenav.isOpen ? ( - <CloseIcon sx={{ color: "background.body" }} /> - ) : ( - <MenuIcon sx={{ color: "background.body" }} /> - )} - </HeaderIconButton> - )} - <Typography - level="h2" - textColor="background.body" - component="p" + <EnvironmentIndicator /> + <Box + display="flex" sx={{ - fontSize: { - xs: "xl2", - xxs: "xl", + background: (theme) => + `linear-gradient(90deg, ${theme.palette.primary[700]} 0%, ${theme.palette.primary[500]} 100%)`, + boxShadow: "xl", + paddingInline: 3, + paddingBlock: 1, + justifyContent: "space-between", + alignItems: "center", + gap: 1, + height: { + xxs: appBarHeightMobile, + sm: appBarHeightDesktop, }, }} > - GA-Lotse - </Typography> - {isOffline ? ( - <Typography level="h3" component="p" textColor="background.body"> - Offline + {!isOffline && ( + <HeaderIconButton + aria-label={sidenav.isOpen ? "navigation-close" : "navigation-open"} + sx={{ + display: { xxs: "flex", lg: "none" }, + }} + onClick={toggleSidenav} + > + {sidenav.isOpen ? ( + <CloseIcon sx={{ color: "background.body" }} /> + ) : ( + <MenuIcon sx={{ color: "background.body" }} /> + )} + </HeaderIconButton> + )} + <Typography + level="h2" + textColor="background.body" + component="p" + sx={{ + fontSize: { + xs: "xl2", + xxs: "xl", + }, + }} + > + GA-Lotse </Typography> - ) : ( - <HeaderButtons /> - )} + {isOffline ? ( + <Typography level="h3" component="p" textColor="background.body"> + Offline + </Typography> + ) : ( + <HeaderButtons /> + )} + </Box> </Box> ); } diff --git a/employee-portal/src/lib/baseModule/components/layout/header/HeaderButtons.tsx b/employee-portal/src/lib/baseModule/components/layout/header/HeaderButtons.tsx index 8f964ad7f349a79a68cb460bd563e417725197fa..46d3ddf5b3c3297e50a024cd5a24305ee7a34222 100644 --- a/employee-portal/src/lib/baseModule/components/layout/header/HeaderButtons.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/header/HeaderButtons.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/header/HeaderIconButton.tsx b/employee-portal/src/lib/baseModule/components/layout/header/HeaderIconButton.tsx index 61afed2d48ecd2397b8ff2ce47f1e96296738ee7..c3ce42eacbec467c3c2c954501ed98c75e7f7ea4 100644 --- a/employee-portal/src/lib/baseModule/components/layout/header/HeaderIconButton.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/header/HeaderIconButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/header/HeaderMessagesButton.tsx b/employee-portal/src/lib/baseModule/components/layout/header/HeaderMessagesButton.tsx index 942d21dc90d9f29e854a2409df7778c2c38e2088..c58d32d54a77e6fe8b63519f55be2129181b747a 100644 --- a/employee-portal/src/lib/baseModule/components/layout/header/HeaderMessagesButton.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/header/HeaderMessagesButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageInformation.tsx b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageInformation.tsx index a9efff5643aef18738d6fc39431624e90d0c843f..5a3556752160ea4d8f9a09e406536c9057eb2c9e 100644 --- a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageInformation.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageInformation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageNotification.tsx b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageNotification.tsx index b46f589b298aa2070ee7d92266922617f4854740..261f9662c7af11033036df8632362bd908d8d585 100644 --- a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageNotification.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessageNotification.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebar.tsx b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebar.tsx index 27e88cc0de786356e6d7075d034907bd21a662bf..f5b646af28e1c02e8544d921a2c9e930364fc83b 100644 --- a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebarContent.tsx b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebarContent.tsx index 61522e141783270e15c717658b4b965dfb02fa06..5d85aacd211830b51d3fed315bee7b3ea509f18d 100644 --- a/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebarContent.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/messagesSidebar/MessagesSidebarContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/Notification.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/Notification.tsx index 86d08be85db98371c88000fd90c3d335fa08f7f9..ffd6671bbecedcd322e1801e2757bcadcd348a8e 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/Notification.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/Notification.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/NotificationsSidebar.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/NotificationsSidebar.tsx index 67ccd10cc43948434c946030cda7694428b989b5..674cee53cf5c4c43d2ba9e3d4e4e27de4348bd60 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/NotificationsSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/NotificationsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProcedureInternalLink.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProcedureInternalLink.tsx index 72e6462ce02c789449eb7ea44dd3d53631d93182..b1267153fbac21ebebc814febae3e0674c0eec70 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProcedureInternalLink.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProcedureInternalLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProgressEntryInternalLink.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProgressEntryInternalLink.tsx index 9c0a7b75fff593c6d1cb5baab2923957b9cd22c2..f111e14447bf38d64924894dfd8c1f6e3081cb3a 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProgressEntryInternalLink.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/ProgressEntryInternalLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapAbsenceNotificationProps.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapAbsenceNotificationProps.tsx index 985ce06f025611002b4ea0c23f80505c0ea37c89..d8e86f069f81a469dd480c7ab5ca07b69a811a39 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapAbsenceNotificationProps.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapAbsenceNotificationProps.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapFileDeletionApprovalRequestNotificationProps.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapFileDeletionApprovalRequestNotificationProps.tsx index 7d81285f0026099669a59392bb4b178f2495bcf5..d33d2381de7e9c6a62ba7e8272e7a4bd3492778c 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapFileDeletionApprovalRequestNotificationProps.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapFileDeletionApprovalRequestNotificationProps.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapProgressEntryDeletionApprovalRequestNotificationProps.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapProgressEntryDeletionApprovalRequestNotificationProps.tsx index 7f8e82431d720377dc6f0d6ffa786b81d99b82a2..c79d9a1f99bb11c5b40f06f317fc4515a34626df 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapProgressEntryDeletionApprovalRequestNotificationProps.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapProgressEntryDeletionApprovalRequestNotificationProps.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapSimpleNotificationProps.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapSimpleNotificationProps.tsx index 737571656e825e1efd93591bf181d78e1563c32a..78c372b79fd40066f514100f845c2fcc92799b6c 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapSimpleNotificationProps.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapSimpleNotificationProps.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapTaskDueAtReminderNotificationProps.tsx b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapTaskDueAtReminderNotificationProps.tsx index 7849f017ea6a818fc3bea3791821fc9f20db2414..e3a0da75a83463a8d74d922fca1290632889cd56 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapTaskDueAtReminderNotificationProps.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapTaskDueAtReminderNotificationProps.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapToSpecificNotificationProps.ts b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapToSpecificNotificationProps.ts index 38b122c1c8e6bc77a01992d4745df6bd6755f9a4..459178b03a7fb0a11f3184d24e56615254846751 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapToSpecificNotificationProps.ts +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/mapToSpecificNotificationProps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/specificNotificationProps.ts b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/specificNotificationProps.ts index b28b24c08264e29329c43c9f5ef1b5f326cd88d0..cab22976aa0b2c91af9c4e9f2636478b631c5e14 100644 --- a/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/specificNotificationProps.ts +++ b/employee-portal/src/lib/baseModule/components/layout/notificationsSidebar/mapToSpecificNotificationProps/specificNotificationProps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/ModuleErrorModal.tsx b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/ModuleErrorModal.tsx new file mode 100644 index 0000000000000000000000000000000000000000..94480041a9b53585feac8e196951c8833aab3278 --- /dev/null +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/ModuleErrorModal.tsx @@ -0,0 +1,66 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { BaseModal } from "@eshg/lib-portal/components/BaseModal"; +import { Button, List, ListItem, Stack, Typography } from "@mui/joy"; + +export interface ModuleErrorModalProps { + open: boolean; + onClose: () => void; + moduleName: string; +} + +export function ModuleErrorModal(props: ModuleErrorModalProps) { + return ( + <BaseModal + open={props.open} + onClose={props.onClose} + modalTitle={`${props.moduleName} momentan nicht erreichbar`} + color="danger" + > + <Stack gap={4}> + <Stack gap={2}> + <Typography> + Es ist ein Verbindungsproblem aufgetreten, das verschiedene Ursachen + haben kann, zum Beispiel: + </Typography> + + <List marker="disc"> + <ListItem> + <Typography>Das Modul ist vorübergehend deaktiviert.</Typography> + </ListItem> + <ListItem> + <Typography>Es gibt Serverprobleme.</Typography> + </ListItem> + <ListItem> + <Typography>Das Modul erhält gerade ein Update.</Typography> + </ListItem> + </List> + <Typography> + Bitte versuchen Sie es später erneut oder kontaktieren Sie den + Administrator. + </Typography> + </Stack> + <Stack direction={"row"} gap={2} alignSelf={"end"}> + <Button + size="sm" + variant="outlined" + color="neutral" + onClick={props.onClose} + > + Abbrechen + </Button> + <Button + size="sm" + color="danger" + onClick={() => window.location.reload()} + > + Erneut versuchen + </Button> + </Stack> + </Stack> + </BaseModal> + ); +} diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationIconItem.tsx b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationIconItem.tsx index 17bbe0b3e79d3d054dd53cb7de896a1ae5d72fb1..d37dbf65313596187d565de60ee3c78142048910 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationIconItem.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationIconItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -20,12 +20,17 @@ import { ReactNode, cloneElement, useRef, + useState, } from "react"; import { isDefined } from "remeda"; +import { ModuleErrorModal } from "@/lib/baseModule/components/layout/sideNavigation/ModuleErrorModal"; import { NavigationItemError } from "@/lib/baseModule/components/layout/sideNavigation/NavigationItemError"; +import { + navItemSelectedBackgroundColor, + navItemSelectedIconColor, +} from "@/lib/baseModule/components/layout/sideNavigation/constants"; import { tooltipEnterDelay } from "@/lib/baseModule/components/layout/sizes"; -import { theme } from "@/lib/baseModule/theme/theme"; import { isItemSelected } from "./isItemSelected"; import { @@ -58,7 +63,10 @@ export function NavigationIconItemWithoutSubItems({ aria-current={selected ? "page" : undefined} sx={{ padding: 1, - "--Icon-color": theme.palette.text.secondary, + "&.Mui-selected": { + backgroundColor: navItemSelectedBackgroundColor, + "--Icon-color": navItemSelectedIconColor, + }, }} onMouseEnter={resetActiveIndex} onKeyDown={resetActiveIndex} @@ -109,7 +117,8 @@ export function NavigationIconItemWithSubItems({ }: NavigationIconItemWithSubItemsProps) { const isOnButton = useRef(false); - const disabled = isDefined(item.error); + const isItemError = isDefined(item.error); + const [openModuleErrorModal, setopenModuleErrorModal] = useState(false); function handleButtonKeyDown(event: KeyboardEvent<HTMLButtonElement>) { if (event.key === "ArrowDown" || event.key === "ArrowUp") { @@ -121,35 +130,55 @@ export function NavigationIconItemWithSubItems({ <Dropdown open={open} onOpenChange={(_, isOpen) => { - if (isOpen) { + if (isOpen && !isItemError) { onOpen?.(); } }} > - <ListItem> - {isDefined(item.error) && <NavigationItemError error={item.error} />} + <ListItem + sx={{ + height: "38px", + }} + > + {isDefined(item.error) && <NavigationItemError />} + <ModuleErrorModal + open={openModuleErrorModal} + onClose={() => setopenModuleErrorModal(false)} + moduleName={item.name} + /> <MenuButton - disabled={disabled} slots={{ root: ListItemButton }} slotProps={{ root: { - selected: !disabled && selected, + selected: !isItemError && selected, sx: { padding: 1, - "--Icon-color": theme.palette.text.secondary, + "&.Mui-selected": { + backgroundColor: navItemSelectedBackgroundColor, + "--Icon-color": navItemSelectedIconColor, + }, + alignSelf: "unset", }, "aria-haspopup": true, }, }} onMouseDown={() => { - onOpen(); + if (!isItemError) { + onOpen(); + } }} onClick={() => { - onOpen(); + if (isItemError) { + setopenModuleErrorModal(true); + } else { + onOpen(); + } }} onMouseEnter={() => { - onOpen(); - isOnButton.current = true; + if (!isItemError) { + onOpen(); + isOnButton.current = true; + } }} onMouseLeave={() => { isOnButton.current = false; diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItem.tsx b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItem.tsx index f8e38a4024ec7f9706d06a6becb1332fdbc2575d..b57e0ba395d6665491681ef6147615b554d6b5a7 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItem.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -18,8 +18,13 @@ import { usePathname } from "next/navigation"; import { useEffect, useId, useState } from "react"; import { isDefined } from "remeda"; +import { ModuleErrorModal } from "@/lib/baseModule/components/layout/sideNavigation/ModuleErrorModal"; import { NavigationItemError } from "@/lib/baseModule/components/layout/sideNavigation/NavigationItemError"; -import { theme } from "@/lib/baseModule/theme/theme"; +import { + navItemIconColor, + navItemSelectedBackgroundColor, + navItemSelectedIconColor, +} from "@/lib/baseModule/components/layout/sideNavigation/constants"; import { isItemSelected } from "./isItemSelected"; import { @@ -28,6 +33,24 @@ import { SideNavigationItemWithoutSubItems, } from "./types"; +function textColor(selected: boolean) { + return selected ? "primary.softColor" : "text.primary"; +} + +function textStyle(selected: boolean) { + return selected ? "title-md" : "body-md"; +} + +function iconColor(selected: boolean) { + return selected ? navItemSelectedIconColor : navItemIconColor; +} + +const spacings = { + iconTopSpacing: "0.1875rem", // 3px + textTopSpacing: "0.125rem", // 2px + navItemPadding: "0.375rem", +}; + function NavigationItemWithoutSubItems({ item, }: { @@ -44,19 +67,29 @@ function NavigationItemWithoutSubItems({ href={item.href} selected={selected} aria-current={selected ? "page" : undefined} + sx={{ + padding: spacings.navItemPadding, + alignItems: "flex-start", + "&.Mui-selected": { + backgroundColor: navItemSelectedBackgroundColor, + }, + }} > <ListItemDecorator sx={{ - "--Icon-color": theme.palette.text.secondary, + marginTop: spacings.iconTopSpacing, + "--Icon-color": iconColor(selected), + "--ListItemDecorator-size": "2rem", }} > {item.decorator} </ListItemDecorator> <ListItemContent> <Typography - noWrap + sx={{ marginTop: spacings.textTopSpacing }} component="span" - level={selected ? "title-md" : "body-md"} + level={textStyle(selected)} + textColor={textColor(selected)} > {item.name} </Typography> @@ -76,10 +109,11 @@ function NavigationItemWithSubItems({ const expandableContentId = useId(); const pathname = usePathname(); + const [openModuleErrorModal, setopenModuleErrorModal] = useState(false); - const disabled = isDefined(item.error); + const isItemError = isDefined(item.error); const selected = - !disabled && + !isItemError && item.subItems.some((subItem) => { return isItemSelected(subItem, pathname); }); @@ -93,41 +127,58 @@ function NavigationItemWithSubItems({ return ( <ListItem nested> - {isDefined(item.error) && <NavigationItemError error={item.error} />} + {isDefined(item.error) && <NavigationItemError />} + <ModuleErrorModal + open={openModuleErrorModal} + onClose={() => setopenModuleErrorModal(false)} + moduleName={item.name} + /> <ListItemButton role="button" - onClick={() => setExpanded((prevState) => !prevState)} + onClick={ + isItemError + ? () => setopenModuleErrorModal(true) + : () => setExpanded((prevState) => !prevState) + } selected={selected && !expanded} - disabled={disabled} - sx={{ marginBottom: expanded ? "0.5rem" : 0 }} + sx={{ + alignItems: "flex-start", + marginBottom: expanded ? "0.5rem" : 0, + padding: spacings.navItemPadding, + }} id={buttonId} aria-expanded={expanded} aria-controls={expandableContentId} > <ListItemDecorator sx={{ - "--Icon-color": theme.palette.text.secondary, + marginTop: spacings.iconTopSpacing, + "--ListItemDecorator-size": "2rem", + "--Icon-color": iconColor(selected), }} > {item.decorator} </ListItemDecorator> <ListItemContent sx={{ + marginTop: spacings.textTopSpacing, + marginRight: 1, textOverflow: "ellipsis", - whiteSpace: "nowrap", overflow: "hidden", }} > <Typography - noWrap + sx={{ hyphens: "auto" }} component="span" - level={selected ? "title-md" : "body-md"} + level={textStyle(selected)} + textColor={textColor(selected)} > {item.name} </Typography> </ListItemContent> <KeyboardArrowDownIcon sx={{ + marginTop: spacings.iconTopSpacing, transform: expanded ? "rotate(180deg)" : "none", marginLeft: -1.5, }} @@ -161,7 +212,7 @@ function NavigationItemWithSubItems({ sx={{ borderLeft: (theme) => `1px solid ${theme.palette.divider}`, borderRadius: 0, - marginLeft: "1.5rem", + marginLeft: "1rem", marginRight: "0.25rem", "&:first-of-type": { paddingTop: 0, @@ -179,13 +230,23 @@ function NavigationItemWithSubItems({ selected={selectedChild} aria-current={selectedChild ? "page" : undefined} sx={{ - marginLeft: "1.25rem", + marginLeft: "0.8125rem", padding: "0 0.5rem", borderRadius: (theme) => theme.radius.md, + "&.Mui-selected": { + backgroundColor: navItemSelectedBackgroundColor, + }, }} > <ListItemContent> - <Typography noWrap component="span"> + <Typography + component="span" + sx={{ + hyphens: "auto", + }} + level={textStyle(selectedChild)} + textColor={textColor(selectedChild)} + > {subItem.name} </Typography> </ListItemContent> diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItemError.tsx b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItemError.tsx index d9a90b1d5e45d9007f3b7959a3ccc29503d28b08..24fd9805d4eda5c70c7e4ec831ce49f396d12f0d 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItemError.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationItemError.tsx @@ -1,24 +1,21 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { Warning } from "@mui/icons-material"; -import { Tooltip } from "@mui/joy"; +import ErrorIcon from "@mui/icons-material/Error"; -export function NavigationItemError(props: { error: string }) { +export function NavigationItemError() { return ( - <Tooltip placement="right" title={props.error}> - <Warning - color="danger" - size="sm" - sx={{ - position: "absolute", - zIndex: 1, - left: -5, - top: -5, - }} - /> - </Tooltip> + <ErrorIcon + color="danger" + size="xs" + sx={{ + position: "absolute", + zIndex: 1, + left: -1, + top: "1.2rem", + }} + /> ); } diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListCollapsed.tsx b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListCollapsed.tsx index 30ffa62308c398460624e4841a9690a7c0f476f1..073ff5c488dcb16c18e7c3713ec66a3a54165dfb 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListCollapsed.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListCollapsed.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -27,16 +27,16 @@ import { NavigationIconItemWithoutSubItems, } from "./NavigationIconItem"; import { StyledList } from "./StyledList"; -import { sideNavAriaLabel } from "./constants"; +import { listStyling, navItemIconColor, sideNavAriaLabel } from "./constants"; import { isItemSelected } from "./isItemSelected"; -import { SideNavigationItem } from "./types"; +import { SideNavItemGroups, SideNavigationItem } from "./types"; export function NavigationListCollapsed({ setCollapsed, - items, + itemGroups, }: { setCollapsed?: Dispatch<SetStateAction<boolean>>; - items: SideNavigationItem[]; + itemGroups: SideNavItemGroups; }) { const [menuIndex, setMenuIndex] = useState<null | number>(null); @@ -60,6 +60,68 @@ export function NavigationListCollapsed({ }, 200); }; + function getNavItemGroup(itemGroup: SideNavigationItem[]) { + if (itemGroup.length > 0) { + const list = itemGroup.map((item, index) => + "subItems" in item ? ( + <NavigationIconItemWithSubItems + key={item.name} + item={item} + open={menuIndex === index} + onOpen={() => setMenuIndex(index)} + onLeaveMenu={createHandleLeaveMenu(index)} + selected={ + menuIndex !== index && + item.subItems.some((subItem) => isItemSelected(subItem, pathname)) + } + menu={ + <Menu + onClose={() => setMenuIndex(null)} + keepMounted={true} + disablePortal={true} + > + <MenuItem disabled> + <Typography noWrap level="body-sm"> + {item.name} + </Typography> + </MenuItem> + {item.subItems.map((subItem) => ( + <MenuItem + {...itemProps} + key={`${subItem.href}-${subItem.name}`} + component={NavigationLink} + href={subItem.href ?? ""} + selected={isItemSelected(subItem, pathname)} + > + <ListItemContent + sx={{ + borderRadius: (theme) => theme.radius.md, + width: "100%", + }} + > + <Typography noWrap component="span"> + {subItem.name} + </Typography> + </ListItemContent> + </MenuItem> + ))} + </Menu> + } + > + {item.decorator} + </NavigationIconItemWithSubItems> + ) : ( + <NavigationIconItemWithoutSubItems + key={`${item.href}-${item.name}`} + item={item} + resetActiveIndex={() => setMenuIndex(index)} + /> + ), + ); + return <StyledList sx={listStyling}>{list}</StyledList>; + } else return undefined; + } + return ( <Stack component="nav" @@ -80,80 +142,18 @@ export function NavigationListCollapsed({ enterNextDelay={tooltipEnterDelay} > <IconButton onClick={() => setCollapsed?.((prevState) => !prevState)}> - <ExpandNavigation color="neutral" /> + <ExpandNavigation sx={{ color: navItemIconColor }} /> </IconButton> </Tooltip> </Stack> <Stack flex={1} alignItems="center" - sx={{ overflowY: "auto", overflowX: "hidden" }} + sx={{ overflowY: "auto", overflowX: "hidden", gap: 3 }} > - <StyledList - sx={{ - // Small extra space that makes room for focus outline (keyboard navigation) - paddingBlock: "0.25rem", - }} - > - {items.map((item, index) => - "subItems" in item ? ( - <NavigationIconItemWithSubItems - key={item.name} - item={item} - open={menuIndex === index} - onOpen={() => setMenuIndex(index)} - onLeaveMenu={createHandleLeaveMenu(index)} - selected={ - menuIndex !== index && - item.subItems.some((subItem) => - isItemSelected(subItem, pathname), - ) - } - menu={ - <Menu - onClose={() => setMenuIndex(null)} - keepMounted={true} - disablePortal={true} - > - <MenuItem disabled> - <Typography noWrap level="body-sm"> - {item.name} - </Typography> - </MenuItem> - {item.subItems.map((subItem) => ( - <MenuItem - {...itemProps} - key={`${subItem.href}-${subItem.name}`} - component={NavigationLink} - href={subItem.href ?? ""} - selected={isItemSelected(subItem, pathname)} - > - <ListItemContent - sx={{ - borderRadius: (theme) => theme.radius.md, - width: "100%", - }} - > - <Typography noWrap component="span"> - {subItem.name} - </Typography> - </ListItemContent> - </MenuItem> - ))} - </Menu> - } - > - {item.decorator} - </NavigationIconItemWithSubItems> - ) : ( - <NavigationIconItemWithoutSubItems - key={`${item.href}-${item.name}`} - item={item} - resetActiveIndex={() => setMenuIndex(index)} - /> - ), - )} - </StyledList> + {getNavItemGroup(itemGroups.dashboardItem)} + {getNavItemGroup(itemGroups.businessItems)} + {getNavItemGroup(itemGroups.baseItems)} </Stack> </Stack> ); diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListExpanded.tsx b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListExpanded.tsx index aa2cda16e6ff143ca79f4837d9f0929427f8a424..6d9271dc47731f26f8f7919b977199e48e2048e6 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListExpanded.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/NavigationListExpanded.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,20 +12,29 @@ import { NavigationItem } from "@/lib/baseModule/components/layout/sideNavigatio import { sideNavigationWidth } from "@/lib/baseModule/components/layout/sizes"; import { StyledList } from "./StyledList"; -import { sideNavAriaLabel } from "./constants"; -import { SideNavigationItem } from "./types"; +import { listStyling, navItemIconColor, sideNavAriaLabel } from "./constants"; +import { SideNavItemGroups, SideNavigationItem } from "./types"; export function NavigationListExpanded({ setCollapsed, showCollapseButton, - items, + itemGroups, isLoading, }: { setCollapsed?: Dispatch<SetStateAction<boolean>>; showCollapseButton: boolean; - items: SideNavigationItem[]; + itemGroups: SideNavItemGroups; isLoading: boolean; }) { + function getNavItemGroup(itemGroup: SideNavigationItem[]) { + if (itemGroup.length > 0) { + const list = itemGroup.map((item) => { + return <NavigationItem key={item.name} item={item} />; + }); + return <StyledList sx={listStyling}>{list}</StyledList>; + } else return undefined; + } + return ( <Stack component="nav" @@ -46,27 +55,20 @@ export function NavigationListExpanded({ whiteSpace: "nowrap", justifyContent: "space-between", paddingInline: "0.25rem", - marginInline: 3, + marginInline: "0.5rem", display: "flex", }} > - <Typography level="body-sm" textColor="neutral.700"> + <Typography level="body-sm" textColor="text.secondary"> Menü einklappen </Typography> - <ExpandNavigation size="md" color="neutral" /> + <ExpandNavigation size="md" sx={{ color: navItemIconColor }} /> </Button> )} - <Stack flex={1} sx={{ overflowY: "auto", paddingInline: 3 }}> - <StyledList - sx={{ - // Small extra space that makes room for focus outline (keyboard navigation) - paddingBlock: "0.25rem", - }} - > - {items.map((item) => ( - <NavigationItem key={item.name} item={item} /> - ))} - </StyledList> + <Stack flex={1} sx={{ overflowY: "auto", paddingInline: 2, gap: 3 }}> + {getNavItemGroup(itemGroups.dashboardItem)} + {getNavItemGroup(itemGroups.businessItems)} + {getNavItemGroup(itemGroups.baseItems)} {isLoading && <LoadingOverlay />} </Stack> </Stack> diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/SideNavigation.tsx b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/SideNavigation.tsx index 9abeeb196fe1d7a471cd490d4cad6bddfcac66a1..f99d0defc02d9505990fbccf59a7df514b384f20 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/SideNavigation.tsx +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/SideNavigation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,11 +7,8 @@ import { Box, Drawer } from "@mui/joy"; import { Dispatch, SetStateAction } from "react"; import { NavigationListCollapsed } from "@/lib/baseModule/components/layout/sideNavigation/NavigationListCollapsed"; -import { - headerHeightDesktop, - headerHeightMobile, - sideNavigationWidth, -} from "@/lib/baseModule/components/layout/sizes"; +import { sideNavigationWidth } from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; import { useSidenav } from "@/lib/shared/components/drawer/useSidenav"; import { NavigationListExpanded } from "./NavigationListExpanded"; @@ -25,7 +22,8 @@ export function SideNavigation({ setCollapsed: Dispatch<SetStateAction<boolean>>; }) { const sidenav = useSidenav(); - const { isLoading, items } = useNavigationItems(); + const { isLoading, itemGroups } = useNavigationItems(); + const { headerHeightMobile, headerHeightDesktop } = useHeaderHeights(); return ( <> @@ -44,11 +42,14 @@ export function SideNavigation({ <NavigationListExpanded showCollapseButton setCollapsed={setCollapsed} - items={items} + itemGroups={itemGroups} isLoading={isLoading} /> ) : ( - <NavigationListCollapsed setCollapsed={setCollapsed} items={items} /> + <NavigationListCollapsed + setCollapsed={setCollapsed} + itemGroups={itemGroups} + /> )} </Box> @@ -79,7 +80,7 @@ export function SideNavigation({ > <NavigationListExpanded showCollapseButton={false} - items={items} + itemGroups={itemGroups} isLoading={isLoading} /> </Box> diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/StyledList.ts b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/StyledList.ts index ae25d36d0c6186971cf33aee09d1ffb4397838ef..16adf277d7d50ea8fe2f880d83e13263e3dec5b3 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/StyledList.ts +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/StyledList.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/constants.ts b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/constants.ts index 90e6966c67259ed44fa0c666979fc5b89ca6a668..faf78ea76ecb0eca71330203d10a9633d11df685 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/constants.ts +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/constants.ts @@ -1,6 +1,19 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { theme } from "@/lib/baseModule/theme/theme"; + export const sideNavAriaLabel = "Hauptnavigation"; + +export const navItemSelectedBackgroundColor = theme.palette.primary.softBg; + +export const navItemIconColor = theme.palette.text.icon; + +export const navItemSelectedIconColor = theme.palette.primary.softColor; + +export const listStyling = { + // Small extra space that makes room for focus outline (keyboard navigation) + paddingBlock: "0.25rem", +}; diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/isItemSelected.ts b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/isItemSelected.ts index 697d6e88cc40ab247ef91de458636dbaf79e9d2c..cff8e72026d05bfde527f56e09dad6fea69c9330 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/isItemSelected.ts +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/isItemSelected.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/types.ts b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/types.ts index 8a69a041c3235247ab7a021e47e74506d1e2a740..09fcb85b99f7e19c374c02d0b1428ff6e3d7f0a7 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/types.ts +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -41,3 +41,13 @@ export interface UseSideNavigationItemsResult { isLoading: boolean; items: SideNavigationItem[]; } + +export interface SideNavItemGroups { + dashboardItem: SideNavigationItem[]; + businessItems: SideNavigationItem[]; + baseItems: SideNavigationItem[]; +} +export interface UseSideNavigationItemGroupsResult { + isLoading: boolean; + itemGroups: SideNavItemGroups; +} diff --git a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/useNavigationItems.ts b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/useNavigationItems.ts index 7f4e881daedf137ee0386d7c676e8dcc3a8c84a8..d698dacdf1038facdba4ec617e1f0d20099c09fc 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sideNavigation/useNavigationItems.ts +++ b/employee-portal/src/lib/baseModule/components/layout/sideNavigation/useNavigationItems.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,7 +7,7 @@ import { useResolveSideNavigationItems } from "@/lib/baseModule/moduleRegister/s import { AccessCheck } from "@/lib/shared/helpers/accessControl"; import { useAccessControl } from "@/lib/shared/hooks/useAccessControl"; -import { SideNavigationItem, UseSideNavigationItemsResult } from "./types"; +import { SideNavigationItem, UseSideNavigationItemGroupsResult } from "./types"; export function filterNavigationItemsWithAccess( items: SideNavigationItem[], @@ -44,12 +44,22 @@ export function filterNavigationItemsWithAccess( ); } -export function useNavigationItems(): UseSideNavigationItemsResult { +export function useNavigationItems(): UseSideNavigationItemGroupsResult { const checkAccess = useAccessControl(); - const { isLoading, items } = useResolveSideNavigationItems(); + const { isLoading, itemGroups } = useResolveSideNavigationItems(); return { isLoading, - items: filterNavigationItemsWithAccess(items, checkAccess), + itemGroups: { + dashboardItem: itemGroups.dashboardItem, + businessItems: filterNavigationItemsWithAccess( + itemGroups.businessItems, + checkAccess, + ), + baseItems: filterNavigationItemsWithAccess( + itemGroups.baseItems, + checkAccess, + ), + }, }; } diff --git a/employee-portal/src/lib/baseModule/components/layout/sizes.ts b/employee-portal/src/lib/baseModule/components/layout/sizes.ts index 017c873718c4e04ba28fd7fa1fc5a1a7ecd5201d..96bf1977d39afbda9278a4b0252ff85cd49e7b4e 100644 --- a/employee-portal/src/lib/baseModule/components/layout/sizes.ts +++ b/employee-portal/src/lib/baseModule/components/layout/sizes.ts @@ -1,14 +1,14 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -export const headerHeightMobile = "3.5rem"; // 56px -export const headerHeightDesktop = "4.5rem"; // 72px +export const appBarHeightMobile = "3.5rem"; // 56px +export const appBarHeightDesktop = "4.5rem"; // 72px export const simpleToolbarHeight = "3.625rem"; //58px -export const sideNavigationWidth = "17rem"; // 272px - Originally 240px, but it was increased due to the long menu entry names +export const sideNavigationWidth = "15rem"; // 240px export const sideNavigationCollapsedWidth = "4rem"; // 64px export const tooltipEnterDelay = 500; // ms diff --git a/employee-portal/src/lib/baseModule/components/layout/useHeaderHeights.tsx b/employee-portal/src/lib/baseModule/components/layout/useHeaderHeights.tsx new file mode 100644 index 0000000000000000000000000000000000000000..7b429450ff7230847a67c02c1aea2b4f18829df8 --- /dev/null +++ b/employee-portal/src/lib/baseModule/components/layout/useHeaderHeights.tsx @@ -0,0 +1,20 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { useEnvironmentIndicatorHeight } from "@eshg/lib-portal/components/EnvironmentIndicator"; + +import { + appBarHeightDesktop, + appBarHeightMobile, +} from "@/lib/baseModule/components/layout/sizes"; + +export function useHeaderHeights() { + const environmentIndicatorHeight = useEnvironmentIndicatorHeight(); + + return { + headerHeightMobile: `calc(${environmentIndicatorHeight} + ${appBarHeightMobile})`, + headerHeightDesktop: `calc(${environmentIndicatorHeight} + ${appBarHeightDesktop})`, + }; +} diff --git a/employee-portal/src/lib/baseModule/components/markdown/MarkdownPage.tsx b/employee-portal/src/lib/baseModule/components/markdown/MarkdownPage.tsx index e6cfd33fcebcd0e6b73db1ea161ef082fcffdab8..b8d0d2e78de3d564f846fb1431f131f7bbc0b97c 100644 --- a/employee-portal/src/lib/baseModule/components/markdown/MarkdownPage.tsx +++ b/employee-portal/src/lib/baseModule/components/markdown/MarkdownPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/person/PersonCardContent.tsx b/employee-portal/src/lib/baseModule/components/person/PersonCardContent.tsx index 828eff8c0e8a19f30d81d7f79495f746a5877924..6e5eaeeb62c4448397abb88af05805a73432fa05 100644 --- a/employee-portal/src/lib/baseModule/components/person/PersonCardContent.tsx +++ b/employee-portal/src/lib/baseModule/components/person/PersonCardContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/ProcedureMetricsDisplay.tsx b/employee-portal/src/lib/baseModule/components/procedureMetrics/ProcedureMetricsDisplay.tsx index c2b98c5ef11f0bb5c756d46cd96eac69f3614e1e..53168561283949909f32589fd234a3fa59cd9b7c 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/ProcedureMetricsDisplay.tsx +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/ProcedureMetricsDisplay.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/TimeRangeSelect.tsx b/employee-portal/src/lib/baseModule/components/procedureMetrics/TimeRangeSelect.tsx index 75d0d4055f6341e152fe3498e53d2076abf96d13..e9328267fec80014c3fc5cdcc9f9f1ff9e5c6ec1 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/TimeRangeSelect.tsx +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/TimeRangeSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/columns.tsx b/employee-portal/src/lib/baseModule/components/procedureMetrics/columns.tsx index 05384f70d7a73895f936ecd11963c456b9cf2307..78a646274de0b338569b690ee6234ce517385427 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/columns.tsx +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/rangeSelectHelper.ts b/employee-portal/src/lib/baseModule/components/procedureMetrics/rangeSelectHelper.ts index 280cc226046d06ce8ab964f88f415698c7f4acdb..c695ee97792bec4b72ca1aa3723b0a13af7836e5 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/rangeSelectHelper.ts +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/rangeSelectHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/TaskMetricsDisplay.tsx b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/TaskMetricsDisplay.tsx index 0c8a19b28efa35aa930fd3eea73c7fe7babc0588..9922a72a15bd69f6b8da3053f4a84858d757231a 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/TaskMetricsDisplay.tsx +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/TaskMetricsDisplay.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/formatOptionalDuration.ts b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/formatOptionalDuration.ts index 62056427697613a7ae6b660a0795c2211f14e2e4..edacf5d185d95f78c5468a47c452f8bd625be6d4 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/formatOptionalDuration.ts +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/formatOptionalDuration.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/slowestAndFastestColumns.tsx b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/slowestAndFastestColumns.tsx index d00e4cd860dd1b897adb7074035334d9b0f4c4ed..8bc151f974d21d5a5603b92e97a988cf22177236 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/slowestAndFastestColumns.tsx +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/slowestAndFastestColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/taskColumns.tsx b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/taskColumns.tsx index a68f9d3df3a1601e435658f7d287fcf6e055ff34..445cee2dfd82095c84480b0c12b93b2ac5859d46 100644 --- a/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/taskColumns.tsx +++ b/employee-portal/src/lib/baseModule/components/procedureMetrics/taskMetrics/taskColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/procedures/columns.tsx b/employee-portal/src/lib/baseModule/components/procedures/columns.tsx index e1ffed0b8d5585c08fe866dc4204925b5fe6a656..1a124a6bf9fb560c41b0a62414aa840cf93a2a8c 100644 --- a/employee-portal/src/lib/baseModule/components/procedures/columns.tsx +++ b/employee-portal/src/lib/baseModule/components/procedures/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/CalendarHeader.tsx b/employee-portal/src/lib/baseModule/components/resources/CalendarHeader.tsx index 26b63cfddc5a2576c3e8a03d0ce46af6dc578129..d2912f5adf1e6263f05537bc52068ff168fed553 100644 --- a/employee-portal/src/lib/baseModule/components/resources/CalendarHeader.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/CalendarHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/ResourceCalendar.tsx b/employee-portal/src/lib/baseModule/components/resources/ResourceCalendar.tsx index c5462f83e36ff2b23b6c897bedfdea6c10bbf0d9..1093d02597e83e4161fb2691793f78be6d326ac6 100644 --- a/employee-portal/src/lib/baseModule/components/resources/ResourceCalendar.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/ResourceCalendar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/ResourceDetail.tsx b/employee-portal/src/lib/baseModule/components/resources/ResourceDetail.tsx index a2e1b9da51fc25060a9ec95830bfae56ec4238d9..28118e928adb44732efe89f37bdadb863e53765e 100644 --- a/employee-portal/src/lib/baseModule/components/resources/ResourceDetail.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/ResourceDetail.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/ResourcesTable.tsx b/employee-portal/src/lib/baseModule/components/resources/ResourcesTable.tsx index 3b340640bef32739950a89c8d1247a0db187193e..7187ca133f0133c6bd79029ec7064525acdef588 100644 --- a/employee-portal/src/lib/baseModule/components/resources/ResourcesTable.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/ResourcesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/columns.tsx b/employee-portal/src/lib/baseModule/components/resources/columns.tsx index fdec66fbf9830626d10e0aadbe07c49144333348..7dbcf08cafa544e2956d9259108b9bfe8e3c4b27 100644 --- a/employee-portal/src/lib/baseModule/components/resources/columns.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/constants.ts b/employee-portal/src/lib/baseModule/components/resources/constants.ts index e80a57dbb07157b75ac39b7b340b737b97904d46..9ad568fe3e6774f47629f3c08ed51d12065e1f6d 100644 --- a/employee-portal/src/lib/baseModule/components/resources/constants.ts +++ b/employee-portal/src/lib/baseModule/components/resources/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/forms/ResourceForm.tsx b/employee-portal/src/lib/baseModule/components/resources/forms/ResourceForm.tsx index ec076bce0593482696798ffe48919786f42dfa7a..4d9238270338b4f97ecc42bce9cb642552b53459 100644 --- a/employee-portal/src/lib/baseModule/components/resources/forms/ResourceForm.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/forms/ResourceForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/hooks/useResourcesFilterSettings.tsx b/employee-portal/src/lib/baseModule/components/resources/hooks/useResourcesFilterSettings.tsx index 31c7df044c7fb658993f450e3af43322031021cc..991a1e8995eaa0035c0e34f3f6d2a526b7651282 100644 --- a/employee-portal/src/lib/baseModule/components/resources/hooks/useResourcesFilterSettings.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/hooks/useResourcesFilterSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/resourceCalendarMapper.ts b/employee-portal/src/lib/baseModule/components/resources/resourceCalendarMapper.ts index f957f91ed96cf8cab0692a15fed0f0c06e89b411..6c2783e82f123182b4843c0ce36f92ad67050903 100644 --- a/employee-portal/src/lib/baseModule/components/resources/resourceCalendarMapper.ts +++ b/employee-portal/src/lib/baseModule/components/resources/resourceCalendarMapper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/resourceCalendarSxProps.ts b/employee-portal/src/lib/baseModule/components/resources/resourceCalendarSxProps.ts index 3f8e348510a8f9b87c583f228940ce2d1c84a6ad..455e0d09eb9024fe45871e561dec3cf9fc759520 100644 --- a/employee-portal/src/lib/baseModule/components/resources/resourceCalendarSxProps.ts +++ b/employee-portal/src/lib/baseModule/components/resources/resourceCalendarSxProps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/sidebar/AddResourceSidebar.tsx b/employee-portal/src/lib/baseModule/components/resources/sidebar/AddResourceSidebar.tsx index 08c9ee4bd8215a8df338dc9eabfb1009a82cdc55..5b329c9c5c31208f2bdd3d13b4ec32cf1a871ee9 100644 --- a/employee-portal/src/lib/baseModule/components/resources/sidebar/AddResourceSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/sidebar/AddResourceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/sidebar/AddServiceSidebar.tsx b/employee-portal/src/lib/baseModule/components/resources/sidebar/AddServiceSidebar.tsx index 106c3e872d4eb86d75cd06bca4d89cbe1f1fd9dc..50e51245c0c46d4bde8567e4edb57312e5f20d66 100644 --- a/employee-portal/src/lib/baseModule/components/resources/sidebar/AddServiceSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/sidebar/AddServiceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -21,7 +21,6 @@ import { mapEventToFormValues, mapFormToRequestValues, } from "@/lib/baseModule/components/resources/resourceCalendarMapper"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { CheckboxField } from "@/lib/shared/components/formFields/CheckboxField"; import { DateOrDateTimeField } from "@/lib/shared/components/formFields/DateOrDateTimeField"; @@ -31,6 +30,7 @@ import { } from "@/lib/shared/components/formFields/dateOrDateTimeFieldHelper"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { SidebarWithFormRefProps, useSidebarWithFormRef, diff --git a/employee-portal/src/lib/baseModule/components/resources/sidebar/EventsViewSidebar.tsx b/employee-portal/src/lib/baseModule/components/resources/sidebar/EventsViewSidebar.tsx index 5f03c489456c370c0ea4a1ab442c3d0bf0981704..d162a680d1e42411604f9178570c315f5cb051f9 100644 --- a/employee-portal/src/lib/baseModule/components/resources/sidebar/EventsViewSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/sidebar/EventsViewSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/resources/sidebar/UpdateResourceSidebar.tsx b/employee-portal/src/lib/baseModule/components/resources/sidebar/UpdateResourceSidebar.tsx index c2c724d3097470a4a5cef8b1899dca4eb06d65f9..17d0449a8a9e95bb35e7456b98ec7d4fd2cec32c 100644 --- a/employee-portal/src/lib/baseModule/components/resources/sidebar/UpdateResourceSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/resources/sidebar/UpdateResourceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,7 +11,7 @@ import { ResourceForm, ResourceFormValues, } from "@/lib/baseModule/components/resources/forms/ResourceForm"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { SidebarWithFormRefProps, useSidebarWithFormRef, diff --git a/employee-portal/src/lib/baseModule/components/task/OverdueTaskIcon.tsx b/employee-portal/src/lib/baseModule/components/task/OverdueTaskIcon.tsx index cda6b558a6013a819f23c847efb3a9cfd5018d38..fce16d31059bc861606ef91217d95f37ab175786 100644 --- a/employee-portal/src/lib/baseModule/components/task/OverdueTaskIcon.tsx +++ b/employee-portal/src/lib/baseModule/components/task/OverdueTaskIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/task/TaskBox.tsx b/employee-portal/src/lib/baseModule/components/task/TaskBox.tsx index 2b6e804541c77019221c063dcf4d901f553b0cac..0a183e021c9bff9e0c7648803c15d310a52d14d2 100644 --- a/employee-portal/src/lib/baseModule/components/task/TaskBox.tsx +++ b/employee-portal/src/lib/baseModule/components/task/TaskBox.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/task/TasksTable.tsx b/employee-portal/src/lib/baseModule/components/task/TasksTable.tsx index 6d2529e862d8d7c47983dfaac956246df19ceb24..090e24a0426a8fd39e2e818d1403879fd423c327 100644 --- a/employee-portal/src/lib/baseModule/components/task/TasksTable.tsx +++ b/employee-portal/src/lib/baseModule/components/task/TasksTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/task/Teamview.tsx b/employee-portal/src/lib/baseModule/components/task/Teamview.tsx index b5ca4abc0311e6fa29865473aa06235227bc9268..49a342be85820c9c850d5a471629bdfca761514b 100644 --- a/employee-portal/src/lib/baseModule/components/task/Teamview.tsx +++ b/employee-portal/src/lib/baseModule/components/task/Teamview.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/task/taskOverviewColumns.tsx b/employee-portal/src/lib/baseModule/components/task/taskOverviewColumns.tsx index 026acbf9d8dc22d7076f703a50690f258b9fc821..8adb968027e4a2cb05132356c886fcd76c6cfa68 100644 --- a/employee-portal/src/lib/baseModule/components/task/taskOverviewColumns.tsx +++ b/employee-portal/src/lib/baseModule/components/task/taskOverviewColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/task/teamviewColumns.tsx b/employee-portal/src/lib/baseModule/components/task/teamviewColumns.tsx index 80f4c8258ad0e990b1458e40f2f8253dd58c4382..ea27dffad978077505b11c3c52168b477ad101f8 100644 --- a/employee-portal/src/lib/baseModule/components/task/teamviewColumns.tsx +++ b/employee-portal/src/lib/baseModule/components/task/teamviewColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/task/useTaskTableFilterSettings.ts b/employee-portal/src/lib/baseModule/components/task/useTaskTableFilterSettings.ts index 47647647896571cf07838335116702d11287d367..ee16754d15194287319e795d3a2fc474ca07045b 100644 --- a/employee-portal/src/lib/baseModule/components/task/useTaskTableFilterSettings.ts +++ b/employee-portal/src/lib/baseModule/components/task/useTaskTableFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/task/useTeamviewFilterSettings.ts b/employee-portal/src/lib/baseModule/components/task/useTeamviewFilterSettings.ts index a89f5c572ff93b524972522728cf664998ca8a02..d4c98a29d09091fbbfa5748e3830c4903f4b4298 100644 --- a/employee-portal/src/lib/baseModule/components/task/useTeamviewFilterSettings.ts +++ b/employee-portal/src/lib/baseModule/components/task/useTeamviewFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/usage/UsageNotes.tsx b/employee-portal/src/lib/baseModule/components/usage/UsageNotes.tsx index c8d8b40cc46ac65c857ef2fc4296228933d3e146..6fc43ee506d1defc114df34beb29a859b2251123 100644 --- a/employee-portal/src/lib/baseModule/components/usage/UsageNotes.tsx +++ b/employee-portal/src/lib/baseModule/components/usage/UsageNotes.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/users/GroupList.tsx b/employee-portal/src/lib/baseModule/components/users/GroupList.tsx index f7cf6c64af226037746d97dbb5abca9e441bba8e..5824a9c9ab12df87667f0ff8798c856396a98381 100644 --- a/employee-portal/src/lib/baseModule/components/users/GroupList.tsx +++ b/employee-portal/src/lib/baseModule/components/users/GroupList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/users/SuggestNewUserSidebar.tsx b/employee-portal/src/lib/baseModule/components/users/SuggestNewUserSidebar.tsx index 96f777f82f7189524de5471ad7d80ba6abfdc0b3..423c8ebc58956f9ef3ca98e3fa8727e0ddf9e334 100644 --- a/employee-portal/src/lib/baseModule/components/users/SuggestNewUserSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/users/SuggestNewUserSidebar.tsx @@ -1,11 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiSalutation } from "@eshg/employee-portal-api/base"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { PhoneNumberField } from "@eshg/lib-portal/components/formFields/PhoneNumberField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + SALUTATION_OPTIONS, + TITLE_OPTIONS, +} from "@eshg/lib-portal/components/formFields/constants"; import { mapOptionalValue } from "@eshg/lib-portal/helpers/form"; import { validateLength, @@ -15,18 +21,9 @@ import { Chip, Grid } from "@mui/joy"; import { Formik } from "formik"; import { useSuggestUser } from "@/lib/baseModule/api/mutations/users"; -import { - chatUsernameValidator, - phoneNumberValidator, -} from "@/lib/baseModule/components/users/validation"; +import { phoneNumberValidator } from "@/lib/baseModule/components/users/validation"; import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; -import { PhoneNumberField } from "@/lib/shared/components/formFields/PhoneNumberField"; -import { - SALUTATION_OPTIONS, - TITLE_OPTIONS, -} from "@/lib/shared/components/personSidebar/constants"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { translateUserGroup } from "@/lib/shared/helpers/users"; @@ -177,13 +174,6 @@ function SuggestNewUserFormSidebar({ validate={phoneNumberValidator} /> </Grid> - <Grid xxs={12}> - <InputField - name={"externalChatUsername"} - label={"Chat Benutzername"} - validate={chatUsernameValidator} - /> - </Grid> <Grid xxs={12}> <SelectField multiple diff --git a/employee-portal/src/lib/baseModule/components/users/UserAbsence.tsx b/employee-portal/src/lib/baseModule/components/users/UserAbsence.tsx index bea12a7a3bc96c656afa84bbd21714d27feb530a..1ef8ce7ac6dc93c2f38723009cd184ad559f9062 100644 --- a/employee-portal/src/lib/baseModule/components/users/UserAbsence.tsx +++ b/employee-portal/src/lib/baseModule/components/users/UserAbsence.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/users/UserAvatar.tsx b/employee-portal/src/lib/baseModule/components/users/UserAvatar.tsx index 48c786651db0b0ebd34ac4201887e2fed054264a..63ab511776d73040b9cbf648ff19c00e89b492f1 100644 --- a/employee-portal/src/lib/baseModule/components/users/UserAvatar.tsx +++ b/employee-portal/src/lib/baseModule/components/users/UserAvatar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/users/UserProfileDetails.tsx b/employee-portal/src/lib/baseModule/components/users/UserProfileDetails.tsx index 7131fc830b8374b3fd984d79f6b9f1c6f5aeeaa0..667fb8b55dd54823f21936abe682a95bbb1e9f81 100644 --- a/employee-portal/src/lib/baseModule/components/users/UserProfileDetails.tsx +++ b/employee-portal/src/lib/baseModule/components/users/UserProfileDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,7 @@ import { ApiUser, ApiUserGroup, } from "@eshg/employee-portal-api/base"; +import { SALUTATION_VALUES } from "@eshg/lib-portal/components/formFields/constants"; import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; import ChatOutlinedIcon from "@mui/icons-material/ChatOutlined"; import { Sheet, Stack, Typography } from "@mui/joy"; @@ -30,7 +31,6 @@ import { ExternalLinkDetailsCell, emailHref, } from "@/lib/shared/components/detailsSection/ExternalLinkDetailsCell"; -import { SALUTATION_VALUES } from "@/lib/shared/components/personSidebar/constants"; import { UserAvatar } from "./UserAvatar"; diff --git a/employee-portal/src/lib/baseModule/components/users/UserTable.tsx b/employee-portal/src/lib/baseModule/components/users/UserTable.tsx index 1a836350050c46990b5c58ab2bb5adea442c34cd..666d5f49da243d7858c9f79ef15ba1b842920831 100644 --- a/employee-portal/src/lib/baseModule/components/users/UserTable.tsx +++ b/employee-portal/src/lib/baseModule/components/users/UserTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/users/columns.tsx b/employee-portal/src/lib/baseModule/components/users/columns.tsx index 70faedd24906950ea6308af7c1bc82c06333cbc7..ff47aeb80f90edbccc413d40a8dd93d0097bd5ec 100644 --- a/employee-portal/src/lib/baseModule/components/users/columns.tsx +++ b/employee-portal/src/lib/baseModule/components/users/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/users/userSidebar/UserProfileEditSidebar.tsx b/employee-portal/src/lib/baseModule/components/users/userSidebar/UserProfileEditSidebar.tsx index c9691ac30b7afea19d56136ccea24addc82942c1..7ecdffcf07cd30a4453adb246073c1c4b8670c80 100644 --- a/employee-portal/src/lib/baseModule/components/users/userSidebar/UserProfileEditSidebar.tsx +++ b/employee-portal/src/lib/baseModule/components/users/userSidebar/UserProfileEditSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,7 +10,12 @@ import { ApiUserGroup, } from "@eshg/employee-portal-api/base"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { PhoneNumberField } from "@eshg/lib-portal/components/formFields/PhoneNumberField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + SALUTATION_OPTIONS, + TITLE_OPTIONS, +} from "@eshg/lib-portal/components/formFields/constants"; import { createFieldNameMapper, mapOptionalValue, @@ -28,11 +33,6 @@ import { ChatUserId } from "@/lib/businessModules/chat/components/ChatUserId"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { PhoneNumberField } from "@/lib/shared/components/formFields/PhoneNumberField"; -import { - SALUTATION_OPTIONS, - TITLE_OPTIONS, -} from "@/lib/shared/components/personSidebar/constants"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { diff --git a/employee-portal/src/lib/baseModule/components/users/userSidebar/UserSidebarHeader.tsx b/employee-portal/src/lib/baseModule/components/users/userSidebar/UserSidebarHeader.tsx index 6d28b66477a82236a725aaaaee004ea4f1e6c2d1..372314a3393878af194f393ebd0f72d313230ce0 100644 --- a/employee-portal/src/lib/baseModule/components/users/userSidebar/UserSidebarHeader.tsx +++ b/employee-portal/src/lib/baseModule/components/users/userSidebar/UserSidebarHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/components/users/validation.ts b/employee-portal/src/lib/baseModule/components/users/validation.ts index 33633f42682bc90b67358a51dbc575867ca16476..f4b90622fe4334f15b2396718114dc881eef28e5 100644 --- a/employee-portal/src/lib/baseModule/components/users/validation.ts +++ b/employee-portal/src/lib/baseModule/components/users/validation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/moduleRegister/moduleUserGroupResolver.ts b/employee-portal/src/lib/baseModule/moduleRegister/moduleUserGroupResolver.ts index a4c572aa82986d5de01acc132f6959cd255fc042..4e709b7f171f664be25e377deaf5760e67c61be6 100644 --- a/employee-portal/src/lib/baseModule/moduleRegister/moduleUserGroupResolver.ts +++ b/employee-portal/src/lib/baseModule/moduleRegister/moduleUserGroupResolver.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/moduleRegister/procedureDefinitionDiagramsResolver.ts b/employee-portal/src/lib/baseModule/moduleRegister/procedureDefinitionDiagramsResolver.ts index 6dbd127d8b71652aeac684d9bba5c938b9cac62e..a7e233c51e50bd796caf94028fc4109712bc7a3b 100644 --- a/employee-portal/src/lib/baseModule/moduleRegister/procedureDefinitionDiagramsResolver.ts +++ b/employee-portal/src/lib/baseModule/moduleRegister/procedureDefinitionDiagramsResolver.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/moduleRegister/procedureTypesResolver.ts b/employee-portal/src/lib/baseModule/moduleRegister/procedureTypesResolver.ts index c5ea2366dbb1c14175b9c26a04a01ec282cd111a..0d75d167ac5b783fcd26543e1fe43515c1bd66b5 100644 --- a/employee-portal/src/lib/baseModule/moduleRegister/procedureTypesResolver.ts +++ b/employee-portal/src/lib/baseModule/moduleRegister/procedureTypesResolver.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/moduleRegister/routeResolver.ts b/employee-portal/src/lib/baseModule/moduleRegister/routeResolver.ts index 0020d6f8a87d3be5b2124de9d21de6908e3ee8fb..66a74df71450a123f059613a351efec21de0dfff 100644 --- a/employee-portal/src/lib/baseModule/moduleRegister/routeResolver.ts +++ b/employee-portal/src/lib/baseModule/moduleRegister/routeResolver.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -55,15 +55,14 @@ export function resolveProcedureProgressEntriesRoute( ): string { switch (businessModule) { case "SCHOOL_ENTRY": - return schoolEntryRoutes.procedures.byId(procedureId).progressEntries - .index; + return schoolEntryRoutes.procedures.byId(procedureId).progressEntries; case "INSPECTION": - return inspectionRoutes.procedures.progressEntries(procedureId).index; + return inspectionRoutes.procedures.progressEntries(procedureId); case "TRAVEL_MEDICINE": - return travelMedicineRoutes.procedures.progressEntries(procedureId).index; + return travelMedicineRoutes.procedures.progressEntries(procedureId); case "MEASLES_PROTECTION": return measlesProtectionRoutes.procedures.details(procedureId) - .progressEntries.index; + .progressEntries; case "STI_PROTECTION": return stiProtectionRoutes.procedures.byId(procedureId).index; case "MEDICAL_REGISTRY": @@ -72,7 +71,7 @@ export function resolveProcedureProgressEntriesRoute( throw new Error("TODO ISSUE-6770"); case "OFFICIAL_MEDICAL_SERVICE": return officialMedicalServiceRoutes.procedures.byId(procedureId) - .progressEntries.index; + .progressEntries; } } diff --git a/employee-portal/src/lib/baseModule/moduleRegister/sideNavigationItemsResolver.tsx b/employee-portal/src/lib/baseModule/moduleRegister/sideNavigationItemsResolver.tsx index c9791406b1b24ab5ddfb4a990919b79f2a443b80..6ea1902b60f4a826ad62e468f148976090f1e02b 100644 --- a/employee-portal/src/lib/baseModule/moduleRegister/sideNavigationItemsResolver.tsx +++ b/employee-portal/src/lib/baseModule/moduleRegister/sideNavigationItemsResolver.tsx @@ -1,13 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { + SideNavItemGroups, SideNavigationItem, UseSideNavigationItemsResult, } from "@/lib/baseModule/components/layout/sideNavigation/types"; -import { useSideNavigationItems as useBaseSideNavigationItems } from "@/lib/baseModule/sideNavigationItems"; +import { + useSideNavigationItems as useBaseSideNavigationItems, + useDashboardItem, +} from "@/lib/baseModule/sideNavigationItems"; import { useSideNavigationItems as useChatSideNavigationItems } from "@/lib/businessModules/chat/shared/sideNavigationItem"; import { useSideNavigationItems as useDentalSideNavigationItems } from "@/lib/businessModules/dental/shared/sideNavigationItem"; import { useSideNavigationItems as useInspectionSideNavigationItems } from "@/lib/businessModules/inspection/shared/sideNavigationItem"; @@ -20,7 +24,12 @@ import { useSideNavigationItems as useStiProtectionSideNavigationItems } from "@ import { useSideNavigationItems as useTravelMedicineSideNavigationItems } from "@/lib/businessModules/travelMedicine/shared/sideNavigationItem"; import { sideNavigationItems as archivingSideNavigationItems } from "@/lib/shared/components/archiving/shared/sideNavigationItem"; -export function useResolveSideNavigationItems(): UseSideNavigationItemsResult { +interface UseSideNavigationItemGroupsResult { + isLoading: boolean; + itemGroups: SideNavItemGroups; +} + +export function useResolveSideNavigationItems(): UseSideNavigationItemGroupsResult { const inspectionSideNavigation = useInspectionSideNavigationItems(); const schoolEntrySideNavigation = useSchoolEntrySideNavigationItems(); const travelMedicineSideNavigation = useTravelMedicineSideNavigationItems(); @@ -31,21 +40,25 @@ export function useResolveSideNavigationItems(): UseSideNavigationItemsResult { useMedicalRegistrySideNavigationItems(); const statisticsSideNavigation = useStatisticsSideNavigationItems(); const chatSideNavigation = useChatSideNavigationItems(); + const dashboardItem = useDashboardItem(); const baseSideNavigation = useBaseSideNavigationItems(); const dentalSideNavigationItems = useDentalSideNavigationItems(); const officialMedicalServiceSideNavigationItems = useOfficialMedicalServiceSideNavigationItems(); const orderedSideNavigationItems: UseSideNavigationItemsResult[] = [ - baseSideNavigation, - inspectionSideNavigation, schoolEntrySideNavigation, + inspectionSideNavigation, travelMedicineSideNavigation, measlesProtectionSideNavigation, stiProtectionSideNavigation, medicalRegistrySideNavigationItems, dentalSideNavigationItems, officialMedicalServiceSideNavigationItems, + ]; + + const orderedBaseItems: UseSideNavigationItemsResult[] = [ + baseSideNavigation, statisticsSideNavigation, { isLoading: false, items: archivingSideNavigationItems }, chatSideNavigation, @@ -53,7 +66,11 @@ export function useResolveSideNavigationItems(): UseSideNavigationItemsResult { return { isLoading: orderedSideNavigationItems.some(isLoading), - items: orderedSideNavigationItems.map(getItems).flat(), + itemGroups: { + dashboardItem: dashboardItem.map(getItems).flat(), + businessItems: orderedSideNavigationItems.map(getItems).flat(), + baseItems: orderedBaseItems.map(getItems).flat(), + }, }; } diff --git a/employee-portal/src/lib/baseModule/moduleRegister/useCreateInboxProcedureResolver.ts b/employee-portal/src/lib/baseModule/moduleRegister/useCreateInboxProcedureResolver.ts index 978a611d05ab83dc25c45d8ee97489372f1d6fc1..73fd5f96743edb1a0ef6e931b0b50cd19955dc33 100644 --- a/employee-portal/src/lib/baseModule/moduleRegister/useCreateInboxProcedureResolver.ts +++ b/employee-portal/src/lib/baseModule/moduleRegister/useCreateInboxProcedureResolver.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/shared/routes.ts b/employee-portal/src/lib/baseModule/shared/routes.ts index 02b10696735bf5295a2e6b02ee984b09fd87753f..6e7d057a51390337767f9cac342a443cadc81fe5 100644 --- a/employee-portal/src/lib/baseModule/shared/routes.ts +++ b/employee-portal/src/lib/baseModule/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/shared/translations.ts b/employee-portal/src/lib/baseModule/shared/translations.ts index d8324b86bcf71b4b145819daa79c961e29f47332..83cfe415cda68a8f6a830d7936dcccbaa4ef268c 100644 --- a/employee-portal/src/lib/baseModule/shared/translations.ts +++ b/employee-portal/src/lib/baseModule/shared/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/sideNavigationItems.tsx b/employee-portal/src/lib/baseModule/sideNavigationItems.tsx index 53e4906ca5b2036e0552df83699e552c880eb184..6d3aa264faa1124876afc099c6ba3f0c9e22d3ab 100644 --- a/employee-portal/src/lib/baseModule/sideNavigationItems.tsx +++ b/employee-portal/src/lib/baseModule/sideNavigationItems.tsx @@ -1,21 +1,22 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiBaseFeature, ApiUserRole } from "@eshg/employee-portal-api/base"; import { - CalendarMonth, - Contacts, + CalendarTodayOutlined, + ContactsOutlined, ContentPasteSearch, - EmailSharp, - Group, - ListAlt, + ContentPasteSearchOutlined, + DashboardOutlined, + GppGoodOutlined, + InventoryOutlined, + MailOutline, + PeopleAltOutlined, PermMediaOutlined, - Policy, - SpaceDashboard, - Speed, - Warehouse, + TrackChangesOutlined, + WarehouseOutlined, } from "@mui/icons-material"; import { useIsNewFeatureEnabled } from "@/lib/baseModule/api/queries/feature"; @@ -27,63 +28,72 @@ import { hasUserRole, noCheck } from "@/lib/shared/helpers/accessControl"; import { routes } from "./shared/routes"; -/** - * These are the side navigation items of base module pages. - * Navigation items of business module pages are defined in their respective files and must not be added here. - */ -const sideNavigationItems: SideNavigationItem[] = [ +const dashboardItem: SideNavigationItem[] = [ { name: "Dashboard", href: routes.index, - decorator: <SpaceDashboard color="neutral" />, + decorator: <DashboardOutlined />, accessCheck: noCheck(), }, +]; + +export function useDashboardItem(): UseSideNavigationItemsResult[] { + const items = dashboardItem; + + return [{ isLoading: false, items }]; +} + +/** + * These are the side navigation items of base module pages. + * Navigation items of business module pages are defined in their respective files and must not be added here. + */ +const sideNavigationItems: SideNavigationItem[] = [ { name: "DSGVO", href: routes.gdpr.index, - decorator: <Policy />, + decorator: <GppGoodOutlined />, accessCheck: hasUserRole(ApiUserRole.BaseGdprProcedureRead), }, { name: "Benutzer", href: routes.users.index, - decorator: <Group />, + decorator: <PeopleAltOutlined />, accessCheck: noCheck(), }, { name: "Kalender", href: routes.calendar, - decorator: <CalendarMonth />, + decorator: <CalendarTodayOutlined />, accessCheck: noCheck(), }, { name: "Ressourcen", href: routes.resources.index, - decorator: <Warehouse />, + decorator: <WarehouseOutlined />, accessCheck: hasUserRole(ApiUserRole.BaseResourcesRead), }, { name: "Inventar", href: routes.inventory.index, - decorator: <ListAlt />, + decorator: <InventoryOutlined />, accessCheck: hasUserRole(ApiUserRole.BaseInventoryRead), }, { name: "Kontakte", href: routes.contacts.index, - decorator: <Contacts />, + decorator: <ContactsOutlined />, accessCheck: hasUserRole(ApiUserRole.BaseContactsRead), }, { name: "Kennzahlen", href: routes.metrics.index, - decorator: <Speed />, + decorator: <TrackChangesOutlined />, accessCheck: hasUserRole(ApiUserRole.BaseProcedureMetricsRead), }, { name: "Auditlog", href: routes.auditlog.index, - decorator: <ContentPasteSearch />, + decorator: <ContentPasteSearchOutlined />, accessCheck: hasUserRole(ApiUserRole.AuditlogDecryptAndAccess), }, { @@ -101,7 +111,7 @@ const sideNavigationItems: SideNavigationItem[] = [ { name: "Posteingang", href: routes.inbox, - decorator: <EmailSharp />, + decorator: <MailOutline />, accessCheck: hasUserRole(ApiUserRole.InboxProcedureWrite), }, ]; diff --git a/employee-portal/src/lib/baseModule/theme/ThemeProvider.tsx b/employee-portal/src/lib/baseModule/theme/ThemeProvider.tsx index 054769d680114c5b4ffeb50ec5474dc21a43b4b0..2dae1d70e185472644bba99e34b1d3a6e44227f5 100644 --- a/employee-portal/src/lib/baseModule/theme/ThemeProvider.tsx +++ b/employee-portal/src/lib/baseModule/theme/ThemeProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/theme/customBreakpoints.ts b/employee-portal/src/lib/baseModule/theme/customBreakpoints.ts index d93185d66df8ef1de9f0b4cc105bcd23389939f5..61931ec5c1f03b2ed114265c406381e448259b82 100644 --- a/employee-portal/src/lib/baseModule/theme/customBreakpoints.ts +++ b/employee-portal/src/lib/baseModule/theme/customBreakpoints.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/baseModule/theme/theme.ts b/employee-portal/src/lib/baseModule/theme/theme.ts index e5a001d87de9b6dbc626d1dd6e9832e015373b87..d29894561ba51ad0b1d4150219a8a3e62ddec1dc 100644 --- a/employee-portal/src/lib/baseModule/theme/theme.ts +++ b/employee-portal/src/lib/baseModule/theme/theme.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,8 @@ import "@fontsource/poppins/400.css"; import "@fontsource/poppins/500.css"; import "@fontsource/poppins/600.css"; import "@fontsource/poppins/700.css"; +import "@fontsource/source-code-pro/400.css"; +import "@fontsource/source-code-pro/600.css"; import { FontSize, Theme, extendTheme } from "@mui/joy/styles"; import { SxProps } from "@mui/joy/styles/types"; import { isNullish } from "remeda"; @@ -47,8 +49,6 @@ const noBoxShadow = { boxShadow: "none", }; -export const radioGroupLabelClassName = "radio-group-label"; - export function multiLineEllipsis(linesToShow = 2): SxProps { return { display: "-webkit-box", @@ -262,11 +262,10 @@ export const theme = extendTheme({ ? theme.palette.text.secondary : theme.palette.text.primary, }, - [`& .MuiRadio-root label, & .MuiCheckbox-label, & .${radioGroupLabelClassName}`]: - { - fontWeight: 400, - fontSize: theme.fontSize.md, - }, + [`& .MuiRadio-root label, & .MuiCheckbox-label`]: { + fontWeight: 400, + fontSize: theme.fontSize.md, + }, }), }, defaultProps: { @@ -413,6 +412,12 @@ export const theme = extendTheme({ root: ({ ownerState, theme }) => ({ ...buttonStyle(theme, ownerState.variant, ownerState.color), }), + startDecorator: ({ theme }) => ({ + ".MuiSvgIcon-root": { + width: theme.spacing(3), + height: theme.spacing(3), + }, + }), }, }, JoyIconButton: { diff --git a/employee-portal/src/lib/businessModules/chat/api/clients.ts b/employee-portal/src/lib/businessModules/chat/api/clients.ts index 7cf294c52a187e1b115cf87fb66be002de184369..f098d50cfaa402111ef77e56ca10c208decdd32c 100644 --- a/employee-portal/src/lib/businessModules/chat/api/clients.ts +++ b/employee-portal/src/lib/businessModules/chat/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/api/mutations/userSettingsApi.ts b/employee-portal/src/lib/businessModules/chat/api/mutations/userSettingsApi.ts index f64c4bb357dac05e238f712a1691ddfdbc5c44e2..94854799a22656e718aba224bb8bdd48713c8ac9 100644 --- a/employee-portal/src/lib/businessModules/chat/api/mutations/userSettingsApi.ts +++ b/employee-portal/src/lib/businessModules/chat/api/mutations/userSettingsApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/chat/api/queries/apiQueryKeys.ts index 6063eef4abc14c0b4e86a5d2dcec31c90114a1a6..1b48d407a09ef6b192307447050fa3c2df6410ea 100644 --- a/employee-portal/src/lib/businessModules/chat/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/chat/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/api/queries/department.ts b/employee-portal/src/lib/businessModules/chat/api/queries/department.ts index 9abb64e1e7458c0253bb1425ce3fb13fcdfaf863..2185b24dc35e8b3a0ea865b5602f7fae0e0c52a3 100644 --- a/employee-portal/src/lib/businessModules/chat/api/queries/department.ts +++ b/employee-portal/src/lib/businessModules/chat/api/queries/department.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/api/queries/featureTogglesApi.ts b/employee-portal/src/lib/businessModules/chat/api/queries/featureTogglesApi.ts index f2f8c88ca9a41bdb4bc60c12806e0181f4663649..5ee36065830c96254b6182ffe95b84a0f6be40a8 100644 --- a/employee-portal/src/lib/businessModules/chat/api/queries/featureTogglesApi.ts +++ b/employee-portal/src/lib/businessModules/chat/api/queries/featureTogglesApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/api/queries/userSettingsApi.ts b/employee-portal/src/lib/businessModules/chat/api/queries/userSettingsApi.ts index 4457cb5dd6eee2968fea4d31ed92796fa6e3ab9c..451f7a829cbb331bc7830796681c0bec4d376c7b 100644 --- a/employee-portal/src/lib/businessModules/chat/api/queries/userSettingsApi.ts +++ b/employee-portal/src/lib/businessModules/chat/api/queries/userSettingsApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/assets/NewChatIllustration.tsx b/employee-portal/src/lib/businessModules/chat/assets/NewChatIllustration.tsx index 6dca66eb54a61879159cc90da4cdc1018f79495f..e711c4133202b4c4c42e23f60cc14527288ffab7 100644 --- a/employee-portal/src/lib/businessModules/chat/assets/NewChatIllustration.tsx +++ b/employee-portal/src/lib/businessModules/chat/assets/NewChatIllustration.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/assets/NoMessagesIllustration.tsx b/employee-portal/src/lib/businessModules/chat/assets/NoMessagesIllustration.tsx index 6ff1b72a600f70e668d8e0a82e8f8ab73caf07ee..9bb5718b27c885d5ff583dd9bd2b96e7bd6e08a5 100644 --- a/employee-portal/src/lib/businessModules/chat/assets/NoMessagesIllustration.tsx +++ b/employee-portal/src/lib/businessModules/chat/assets/NoMessagesIllustration.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/Chat.tsx b/employee-portal/src/lib/businessModules/chat/components/Chat.tsx index 65fe22d403a384fb9126879a5062e5825bbb8956..282ef4dc468ba582eeffb4e23d58ee35153a932e 100644 --- a/employee-portal/src/lib/businessModules/chat/components/Chat.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/Chat.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatAvatar.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatAvatar.tsx index 7050bb662738d1709d8785697cbd948f21aaed23..b68e637e32cfcb9182d70c6dd59f66492ebda8d0 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatAvatar.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatAvatar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatColumnHeaderWrapper.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatColumnHeaderWrapper.tsx index e1e3fa0ff4afbae3d83e30e411a5a2d181459e90..90203ea31f392a742b19c6feef59e7c807ce9fc5 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatColumnHeaderWrapper.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatColumnHeaderWrapper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatConsentModal.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatConsentModal.tsx index cc640907af52c395c5d845fadf4e1e5122326d3b..c9d91f157c08b20ec3482a48e227fd71ea8e90b4 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatConsentModal.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatConsentModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatErrorBoundary.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatErrorBoundary.tsx index b5181ad7a167b1aa9d2f452476cc453b2f13fcf5..848c7dff23902618dd41b4f1cc5da6aec3f54a58 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatErrorBoundary.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatErrorBoundary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatIllustrationBackground.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatIllustrationBackground.tsx index 1f90581f45a6a12ecfaad1387baacf725935db1c..1359f173b6808bcc0ad52b11d51bbc66b53015de 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatIllustrationBackground.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatIllustrationBackground.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatInputField.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatInputField.tsx index 29a5bb3ad4180b6693bfa787eebe80fafebcdbf6..635b8735b4b7f28b626623065881be1f27420707 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatInputField.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatInputField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatMessageCounter.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatMessageCounter.tsx index d5cc4253c684de6059543faee622d3e0081795c3..f25a6c4700e207d3429cf7a53ed6eeaab70e8d88 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatMessageCounter.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatMessageCounter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatNoAccessAlert.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatNoAccessAlert.tsx index 0bb1d30be2e104eb415ee9b29e12956e5c4eefa7..5bcc2738a41aa5d5143f42967d9dc5dbbc46ae7c 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatNoAccessAlert.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatNoAccessAlert.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ChatUserId.tsx b/employee-portal/src/lib/businessModules/chat/components/ChatUserId.tsx index 816cdfa4a91bb0f3fa336c3afbdb020a9a50288c..ba7200d250a19eced0226635de55c11096c2b336 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ChatUserId.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ChatUserId.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,9 +12,14 @@ import { useCopy } from "@/lib/shared/hooks/useCopy"; interface ChatUserIdProps { userId?: string | null; noLabel?: boolean; + isParagraph?: boolean; } -export function ChatUserId({ userId, noLabel = false }: ChatUserIdProps) { +export function ChatUserId({ + userId, + noLabel = false, + isParagraph = false, +}: ChatUserIdProps) { const copy = useCopy(); if (!userId) return null; @@ -28,6 +33,7 @@ export function ChatUserId({ userId, noLabel = false }: ChatUserIdProps) { )} <Stack spacing={2} direction="row" sx={{ alignItems: "center" }}> <Typography + component={isParagraph ? "p" : "span"} level="title-md" sx={{ ...multiLineEllipsis(2), diff --git a/employee-portal/src/lib/businessModules/chat/components/GroupChatMember.tsx b/employee-portal/src/lib/businessModules/chat/components/GroupChatMember.tsx index dff05d0d04d56ff48d8f7a9c48703420990cd4cf..7b5f04862add20033ecebda8d3895d2c278cf8db 100644 --- a/employee-portal/src/lib/businessModules/chat/components/GroupChatMember.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/GroupChatMember.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/LeaveChatConfirmation.tsx b/employee-portal/src/lib/businessModules/chat/components/LeaveChatConfirmation.tsx index 524937d78d49d4e478615a4d598270301226ce6b..090e8e37cb24346de2c16b5643630d68fe1492ab 100644 --- a/employee-portal/src/lib/businessModules/chat/components/LeaveChatConfirmation.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/LeaveChatConfirmation.tsx @@ -1,16 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { - ConfirmationDialog, - ConfirmationDialogProps, -} from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; +import { ConfirmationDialogProps } from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialog"; + +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; export function LeaveChatConfirmation(props: ConfirmationDialogProps) { return ( - <ConfirmationDialog + <EmployeePortalConfirmationDialog color="danger" title="Wollen Sie den Chat wirklich verlassen?" description="Wenn Sie den Chat verlassen, können Sie keine neuen Nachrichten mehr empfangen." diff --git a/employee-portal/src/lib/businessModules/chat/components/MemberInfo.tsx b/employee-portal/src/lib/businessModules/chat/components/MemberInfo.tsx index 16edf3d9cc967e49fad088910ba29dbbd87afef1..bca0435e06abb41eaf03eeeddd40f86c9de35724 100644 --- a/employee-portal/src/lib/businessModules/chat/components/MemberInfo.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/MemberInfo.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/OnlineStatus.tsx b/employee-portal/src/lib/businessModules/chat/components/OnlineStatus.tsx index 1085a1e664825704a7b07893ec60119ac93b5bab..bc55a35e7e100a4467efa34f57bb47065b4eabab 100644 --- a/employee-portal/src/lib/businessModules/chat/components/OnlineStatus.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/OnlineStatus.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/ReadConfirmations.tsx b/employee-portal/src/lib/businessModules/chat/components/ReadConfirmations.tsx index e2d4218e14ac02c3ec7c03b04342948b7b99ecfd..f0f1575cb138ffd2e5ecd55c4d055ee95c2edd1b 100644 --- a/employee-portal/src/lib/businessModules/chat/components/ReadConfirmations.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/ReadConfirmations.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/UserPanel.tsx b/employee-portal/src/lib/businessModules/chat/components/UserPanel.tsx index c8534df0b77b0869f139521db65ea1d86eecdd9c..75c16bfe5a2da4c97ee54854346088094990b6e3 100644 --- a/employee-portal/src/lib/businessModules/chat/components/UserPanel.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/UserPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/UsersAutocomplete.tsx b/employee-portal/src/lib/businessModules/chat/components/UsersAutocomplete.tsx index a5116ab85f3e501da0260d4426bd1c2079b0f6dc..e9e1c0d9f107842fb09870a53a3614b231f3226e 100644 --- a/employee-portal/src/lib/businessModules/chat/components/UsersAutocomplete.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/UsersAutocomplete.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatBubble.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatBubble.tsx index aeeff81162fb3b2edebb812a9db7eb9d8d35e6bc..139db481746bc6727c754ef9876d9273612a9056 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatBubble.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatBubble.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatHeader.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatHeader.tsx index 92672ef15b40879261d437aed4f4695bbdca66ce..7669d3adc9ac6680cae9f41b9d5629c9d44baf77 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatHeader.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatMessages.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatMessages.tsx index 316241dc38e1fb3927103b04fbac563d26dcb530..da80826f544b51df20c17727b8e64210cb73a2d2 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatMessages.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatMessages.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanel.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanel.tsx index d8a3c1fda7eefd00d5228a8b2cc242ab43fb7763..69d0f68d887f537282f56be08deca7df47db1c5a 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanel.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanelHeader.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanelHeader.tsx index ce8a6e5d83d33a470fa407b169de407c79bd234b..e070dc339d75139adcdb16c26215688bf18526b7 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanelHeader.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatPanelHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatSystemMessages.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatSystemMessages.tsx index 899f146949a11fb74ebb689804a9c8360c264e59..25a9f51d052d28a713fc6e3fdefc1791e7fc272e 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatSystemMessages.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ChatSystemMessages.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/DeletedMessage.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/DeletedMessage.tsx index dde07acfaa85d64b599a077cb1f753d28c0f17f8..8f570bfb63c158f480a906c69a09e581c37e9ca4 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/DeletedMessage.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/DeletedMessage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/DirectChatContent.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/DirectChatContent.tsx index 67200539ebf210fafad7406f284e830cbb231200..4f6de483c31be6d224cdfc86863c120eb19798d6 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/DirectChatContent.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/DirectChatContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/InputComponent.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/InputComponent.tsx index c8e065d219a9e5219abc3f8a63388ca35ebd8e53..f531218de0245584eea2e9d31d83dc25fc07a2bf 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/InputComponent.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/InputComponent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/MessageInput.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/MessageInput.tsx index c802f0040e3479e8a283507a23dfdf1ef96eece3..8b5cae13bf836b8e89247566e0ef9b0ee69eefc3 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/MessageInput.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/MessageInput.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewDirectChat.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewDirectChat.tsx index 03b5239c853ed4bc34fd4221c0212359e2fb9944..54e1ae2cc71341d4f73dd4dc1c7fcb12bc9b4f73 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewDirectChat.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewDirectChat.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewGroupChat.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewGroupChat.tsx index f85846c9252b5dfc730732c0fe3338a7472d6814..f6f1ca4586abb15e3a0a0dab70a39fbba9448cc9 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewGroupChat.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/NewGroupChat.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ReadingReceipt.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ReadingReceipt.tsx index feab87b3216b027c4ed602eec22f8dda5e29d92c..6f4a0c0ab11f6de3d9cbdeaf8da029326e6035ea 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/ReadingReceipt.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/ReadingReceipt.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/UndecipheredMessage.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/UndecipheredMessage.tsx index 2fe85277e4aafcec933063f81bc14e7d5067f17c..2a8fe49d71138a70dc4f84ee6f2574554433dd16 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/UndecipheredMessage.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/UndecipheredMessage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/chatPanel/UserList.tsx b/employee-portal/src/lib/businessModules/chat/components/chatPanel/UserList.tsx index ef45507a99339d98623ade0cc45cfb6d01e79691..88cfaff48eddaf26b50c4b81afb1f503e38518f3 100644 --- a/employee-portal/src/lib/businessModules/chat/components/chatPanel/UserList.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/chatPanel/UserList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivateModal.tsx b/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivateModal.tsx index 9a2e5f6ec991dab49339c568412b1da3811a548c..3ccc05672a6d98e89659bb05e4044ac5ce75eaa9 100644 --- a/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivateModal.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivateModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,7 +11,6 @@ import { useEffect, useRef } from "react"; import { SSOAuth } from "@/lib/businessModules/chat/components/deactivate/SSOAuth"; import { MakeRequest } from "@/lib/businessModules/chat/components/secureBackup/CreateBackupSidebar"; import { useChatClientContext } from "@/lib/businessModules/chat/shared/ChatClientProvider"; -import { logger } from "@/lib/businessModules/chat/shared/helpers"; export interface DeactivateModalProps { makeRequest: MakeRequest | undefined; @@ -33,7 +32,6 @@ export function DeactivateModal({ if (!session) return; const ssoUrl = matrixClient.getFallbackAuthUrl(AuthType.Sso, session); popup.current = window.open(ssoUrl); - logger.debug(popup.current); } function handleCancel() { diff --git a/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivationMessage.tsx b/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivationMessage.tsx index d964e76239735f98cfc2d68d4d3c12239979509f..660f3f3d60087489c525437c98bc534af7739f78 100644 --- a/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivationMessage.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/deactivate/DeactivationMessage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/deactivate/SSOAuth.tsx b/employee-portal/src/lib/businessModules/chat/components/deactivate/SSOAuth.tsx index eb4ccd904fdd984dab30a448525ff493fc8579b2..40f0f74242a3c7c64448c93a418b6f6336af8f33 100644 --- a/employee-portal/src/lib/businessModules/chat/components/deactivate/SSOAuth.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/deactivate/SSOAuth.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/AddChatMember.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/AddChatMember.tsx index a81efc5e6b05636841df659235fd5708b19b6cf8..f90cda98a829c7dd414f2210172bffa4618ad7f3 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/AddChatMember.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/AddChatMember.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/AdminSettings.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/AdminSettings.tsx index 2cd50e0847af3a8cb0dec2165e6de26056ac204f..f72b9bc4d14d7889c7226fb6c0ef101a9c08e22c 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/AdminSettings.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/AdminSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/AssignAdminView.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/AssignAdminView.tsx index cee8c39ee876d2db3fb84ccc991aae09c1be0b37..7a721835c73c7a366739fb0f4e427249dae22a7b 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/AssignAdminView.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/AssignAdminView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanel.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanel.tsx index 144399ebdc9f8130b7ded78467571de4797e7cc8..5a5228f1b625a2742ba62a95aa53a7bd5af40366 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanel.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanelHeader.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanelHeader.tsx index 8ea5faa06614556ad302c1414793a2f94c355bd5..fbf6a6a338b5d1f27eefc1e7f44dc7858f559dcd 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanelHeader.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/InfoPanelHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/MemberInfoView.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/MemberInfoView.tsx index 9aaa0a60ddcce200b67058c4e884ca740aa0a67e..e62e0178b33064a5367bc0e9190d60e5e5975616 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/MemberInfoView.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/MemberInfoView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/RenameChat.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/RenameChat.tsx index 5b0079510060503f9185e59dd7a8149b1346afe8..41b74240ca0a35d8cd8ad6ddb1d1c475f27fd5b8 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/RenameChat.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/RenameChat.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomAvatar.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomAvatar.tsx index 5f7e024417bfd0d86ec5fa0d65379be89ad03997..ed091d93daecd9eca98f32f75a9db2f2a44ddec8 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomAvatar.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomAvatar.tsx @@ -1,10 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ButtonLink } from "@eshg/lib-portal/components/buttons/ButtonLink"; import { FormPlus } from "@eshg/lib-portal/components/form/FormPlus"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; +import { FileLike } from "@eshg/lib-portal/components/formFields/file/validators"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import DeleteOutlineOutlinedIcon from "@mui/icons-material/DeleteOutlineOutlined"; import FileUploadOutlinedIcon from "@mui/icons-material/FileUploadOutlined"; @@ -18,8 +20,6 @@ import { useChatClientContext } from "@/lib/businessModules/chat/shared/ChatClie import { logger } from "@/lib/businessModules/chat/shared/helpers"; import { useRoomInfo } from "@/lib/businessModules/chat/shared/hooks/useRoomInfo"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; -import { FileLike } from "@/lib/shared/components/formFields/file/validators"; interface RoomAvatarProps { roomId: string; diff --git a/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomInfoView.tsx b/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomInfoView.tsx index 101d9b4d903f72becdd4093e5b63f706738f4de0..3d0e7de40c91330be03d2e947c42db354d431c80 100644 --- a/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomInfoView.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/infoPanel/RoomInfoView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -27,7 +27,7 @@ import { logger } from "@/lib/businessModules/chat/shared/helpers"; import { useChatSearchParams } from "@/lib/businessModules/chat/shared/hooks/useChatSearchParams"; import { useRoomInfo } from "@/lib/businessModules/chat/shared/hooks/useRoomInfo"; import { useRoomMembers } from "@/lib/businessModules/chat/shared/hooks/useRoomMembers"; -import { ConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; export interface RoomInfoViewProps { roomId: string; @@ -179,7 +179,7 @@ export function RoomInfoView({ roomId, onClose }: Readonly<RoomInfoViewProps>) { onClose={() => setLeaveDialogOpen(false)} onConfirm={handleLeaveRoomClick} /> - <ConfirmationDialog + <EmployeePortalConfirmationDialog open={!!kickUserId} onClose={() => setKickUserId(undefined)} onConfirm={handleRemoveUser} diff --git a/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaser.tsx b/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaser.tsx index a1fd7b38475a6c36198b538620e0d501f0713d1b..1f72443add9ed19386c643496a2545a4ddfa5ce2 100644 --- a/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaser.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaser.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaserProvider.tsx b/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaserProvider.tsx index e5cb9e56fa437a69a5a811d928e11eb04cd3fd45..5b210e4b027d68b3899f251445d0f17e3936ee93 100644 --- a/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaserProvider.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/messageTeaser/MessageTeaserProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/roomList/HighlightedText.tsx b/employee-portal/src/lib/businessModules/chat/components/roomList/HighlightedText.tsx index 9951b4c19f3ccdc2719356b92391895712df50b2..2dc502ce5f4738ef73045b06d4df8af99730f086 100644 --- a/employee-portal/src/lib/businessModules/chat/components/roomList/HighlightedText.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/roomList/HighlightedText.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/roomList/ReceiptStatus.tsx b/employee-portal/src/lib/businessModules/chat/components/roomList/ReceiptStatus.tsx index e2827b1ff2f2332c9e499f353437664ed4d5808d..97821c6af2855b217703ae831a8d68fa5b647392 100644 --- a/employee-portal/src/lib/businessModules/chat/components/roomList/ReceiptStatus.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/roomList/ReceiptStatus.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/roomList/RoomList.tsx b/employee-portal/src/lib/businessModules/chat/components/roomList/RoomList.tsx index f74143295ab2b24976bee8f8c2c2c9d71d0ff817..33ef5d6ac654cdad1ab32a45abafb4b7a90b7eca 100644 --- a/employee-portal/src/lib/businessModules/chat/components/roomList/RoomList.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/roomList/RoomList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/roomList/RoomListItem.tsx b/employee-portal/src/lib/businessModules/chat/components/roomList/RoomListItem.tsx index edc7b672800adec1c6191ccd6493091c33a09b0e..00ee4187380b7e59cc999bb0d0be0973b40e31bc 100644 --- a/employee-portal/src/lib/businessModules/chat/components/roomList/RoomListItem.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/roomList/RoomListItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanel.tsx b/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanel.tsx index a477ef7bdbca818997a80ff3cf0e2f489144de75..6cacf6f4ccd3f8d3cede5440d802f6ce81e5b890 100644 --- a/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanel.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanelHeader.tsx b/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanelHeader.tsx index f0598173bc0ec5b9d12de456c5d4bcd20c00cce7..a7dc07f95f00cbe094a5880ffcf208474df508cf 100644 --- a/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanelHeader.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/roomsPanel/RoomsPanelHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/secureBackup/BackupSetupView.tsx b/employee-portal/src/lib/businessModules/chat/components/secureBackup/BackupSetupView.tsx index bfed28a47e435c90c0551442914fc00894a0afb6..7fc7824f55cbd3c9608cd86ae5d7994de869ead8 100644 --- a/employee-portal/src/lib/businessModules/chat/components/secureBackup/BackupSetupView.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/secureBackup/BackupSetupView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/secureBackup/CreateBackupSidebar.tsx b/employee-portal/src/lib/businessModules/chat/components/secureBackup/CreateBackupSidebar.tsx index 620a318da4764f1fc3028bc7debf97771c4e528e..31a96726dbde4ffec31b913aa1450b318bde8a3f 100644 --- a/employee-portal/src/lib/businessModules/chat/components/secureBackup/CreateBackupSidebar.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/secureBackup/CreateBackupSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/secureBackup/ResetBackupModal.tsx b/employee-portal/src/lib/businessModules/chat/components/secureBackup/ResetBackupModal.tsx index bf10f7fe8d6a95a4b7178b039429adacbf12ece0..86fabbec73874393548bf467c36996335482f298 100644 --- a/employee-portal/src/lib/businessModules/chat/components/secureBackup/ResetBackupModal.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/secureBackup/ResetBackupModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/secureBackup/RestoreBackupSidebar.tsx b/employee-portal/src/lib/businessModules/chat/components/secureBackup/RestoreBackupSidebar.tsx index 9497f46acaa1d579037643ad7c49713a5d69c57d..bce8a8672d41f86bfd6adeacff184a3cd649089d 100644 --- a/employee-portal/src/lib/businessModules/chat/components/secureBackup/RestoreBackupSidebar.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/secureBackup/RestoreBackupSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/components/secureBackup/SSOAuthModal.tsx b/employee-portal/src/lib/businessModules/chat/components/secureBackup/SSOAuthModal.tsx index 9a973927145d3c9f942a8c9e16aba6a583c316e6..c0a066d1ab22cfbeaf89b74ce2f91dc6b3595706 100644 --- a/employee-portal/src/lib/businessModules/chat/components/secureBackup/SSOAuthModal.tsx +++ b/employee-portal/src/lib/businessModules/chat/components/secureBackup/SSOAuthModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/matrix/crypto.ts b/employee-portal/src/lib/businessModules/chat/matrix/crypto.ts index 1b53b6e58ac62cd96101c45b8da5fe72ce39425b..844100857e3aa18ee9235b9e222ca146a076f020 100644 --- a/employee-portal/src/lib/businessModules/chat/matrix/crypto.ts +++ b/employee-portal/src/lib/businessModules/chat/matrix/crypto.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/matrix/cryptoCallbacks.ts b/employee-portal/src/lib/businessModules/chat/matrix/cryptoCallbacks.ts index e6ef25623465af6b37c0a7fb49316349acfb7767..c3a9c85d4626736b93e64abaf566451c578ee775 100644 --- a/employee-portal/src/lib/businessModules/chat/matrix/cryptoCallbacks.ts +++ b/employee-portal/src/lib/businessModules/chat/matrix/cryptoCallbacks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/matrix/idb.ts b/employee-portal/src/lib/businessModules/chat/matrix/idb.ts index b13baae6a1105c97b9985dc3c54b1066016eaf6c..073e4ca630a81c81fd234c993918b8ef0b5861ee 100644 --- a/employee-portal/src/lib/businessModules/chat/matrix/idb.ts +++ b/employee-portal/src/lib/businessModules/chat/matrix/idb.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/matrix/login.ts b/employee-portal/src/lib/businessModules/chat/matrix/login.ts index b48ed456dfd0c3f1be3637c46bfe28f955bc8f1f..e059239df9bdd8e2be8e9fb7f190ce41073e0d23 100644 --- a/employee-portal/src/lib/businessModules/chat/matrix/login.ts +++ b/employee-portal/src/lib/businessModules/chat/matrix/login.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -105,7 +105,7 @@ async function createLoggedInClient(payload: ILoginParams) { // Clear stores await clearCachedCredentials(); - await clearMatrixStores(); + void clearMatrixStores(); // Start SSO, redirect the page to receive the login token. // Once the token is received in the search parameters, we can initiate the login process. diff --git a/employee-portal/src/lib/businessModules/chat/matrix/pickling.ts b/employee-portal/src/lib/businessModules/chat/matrix/pickling.ts index 60df4393678d115f4f826077d54f28d8efa03e8f..2c76f6d4003129fa84576440ce8d56ae976933e2 100644 --- a/employee-portal/src/lib/businessModules/chat/matrix/pickling.ts +++ b/employee-portal/src/lib/businessModules/chat/matrix/pickling.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/matrix/secretStorage.ts b/employee-portal/src/lib/businessModules/chat/matrix/secretStorage.ts index cfadf7b57d1e978e2843455e6c52bb2a92e17f74..d1ff608c1ddacb8176122cb37a459b71da742803 100644 --- a/employee-portal/src/lib/businessModules/chat/matrix/secretStorage.ts +++ b/employee-portal/src/lib/businessModules/chat/matrix/secretStorage.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/matrix/tokens.ts b/employee-portal/src/lib/businessModules/chat/matrix/tokens.ts index ba3a1ccf3f63d6d41678c758d4ea7fdf5cc242ed..98800c7cd0266d148f4a9e64762ea5f84a7bba1f 100644 --- a/employee-portal/src/lib/businessModules/chat/matrix/tokens.ts +++ b/employee-portal/src/lib/businessModules/chat/matrix/tokens.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/ChatClientProvider.tsx b/employee-portal/src/lib/businessModules/chat/shared/ChatClientProvider.tsx index 569326f1da3ed22e9f89f1484ddcd0bf213338dd..d70143e58ee1d02b4cd6515ae0d73c31591b6c76 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/ChatClientProvider.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/ChatClientProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -59,7 +59,7 @@ export const ChatClientContext = createContext<ChatClientContextType | null>( export function ChatClientProvider({ children }: Readonly<RequiresChildren>) { const showMessageTeaser = useMessageTeaser(); const { configuration, userSettings } = useChat(); - const baseUrl = configuration.MATRIX_SERVER_URL; + const baseUrl = configuration.PUBLIC_MATRIX_SERVER_URL; const matrixClient = useRef<MatrixClient>(createClient({ baseUrl })); diff --git a/employee-portal/src/lib/businessModules/chat/shared/ChatProvider.tsx b/employee-portal/src/lib/businessModules/chat/shared/ChatProvider.tsx index e16bb53e22a2ff3887a4f540b07472dea85da1ba..837df2abf8052dc960268619cfd484d742ff26a1 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/ChatProvider.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/ChatProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/InfoPanelProvider.tsx b/employee-portal/src/lib/businessModules/chat/shared/InfoPanelProvider.tsx index 35cca1946160a0f6fe044f95355d855f2c584f69..5b580041ee3439e7b1f84ed5113ef553b5eb2c9d 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/InfoPanelProvider.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/InfoPanelProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/NotificationProvider.tsx b/employee-portal/src/lib/businessModules/chat/shared/NotificationProvider.tsx index 1e6a0179be518a9e62092e9880209e16c2a76f93..626fec21b61bf86ccbf39f759258c781d13cbeae 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/NotificationProvider.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/NotificationProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/PresenceProvider.tsx b/employee-portal/src/lib/businessModules/chat/shared/PresenceProvider.tsx index a493f7c4f28876edc90227dcd34e8bb2bbf08678..8c579ddb837a61396e8db573e727f340fd796196 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/PresenceProvider.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/PresenceProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/config.ts b/employee-portal/src/lib/businessModules/chat/shared/config.ts index 97ac5f20c35e3f943dc9d686d92ba59202a3a05d..8bacfe1d6171c47106a31ffa00f7a1a2cda36fdd 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/config.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,9 +7,9 @@ import { env } from "@/env/server"; export interface ChatConfiguration { PUBLIC_FRONTEND_URL: string; - MATRIX_SERVER_URL: string; + PUBLIC_MATRIX_SERVER_URL: string; } export const CHAT_CONFIGURATION: ChatConfiguration = { PUBLIC_FRONTEND_URL: env.PUBLIC_FRONTEND_URL, - MATRIX_SERVER_URL: env.MATRIX_SERVER_URL, + PUBLIC_MATRIX_SERVER_URL: env.PUBLIC_MATRIX_SERVER_URL, }; diff --git a/employee-portal/src/lib/businessModules/chat/shared/constants.ts b/employee-portal/src/lib/businessModules/chat/shared/constants.ts index 2dbc3cd32b88598e4ebcd9ffbcf0249b3c39f2b6..546643162de77bc1f2690004471ee157587a0990 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/enums.ts b/employee-portal/src/lib/businessModules/chat/shared/enums.ts index 5fa89cdcef4eaeaeaa14b438510bb28b0baf05fa..4e0c02393b8ecf71ba4d96f5142548afef4c5519 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/enums.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/enums.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/helpers.ts b/employee-portal/src/lib/businessModules/chat/shared/helpers.ts index 60221117de6436451d33eb52cf69627f6e5e852b..d55a6d1e0188e914d6b3d19b73431de98ebd76ca 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/helpers.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useBackupInfo.ts b/employee-portal/src/lib/businessModules/chat/shared/hooks/useBackupInfo.ts index 6d7730fa218fd4ca0cdf80452bb15f574fcd23eb..688875218c2cf179045a9f6d98c7525866d82a89 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useBackupInfo.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useBackupInfo.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatLifecycle.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatLifecycle.tsx index 8f912249de43ccd796734b1ac32ca8ef47f56b89..950b39b4bbb299203b39b6d8446d70993864a06e 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatLifecycle.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatLifecycle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -61,7 +61,7 @@ export function useChatLifecycle( const { configuration } = useChat(); - const baseUrl = configuration.MATRIX_SERVER_URL; + const baseUrl = configuration.PUBLIC_MATRIX_SERVER_URL; const [credentials, setCredentials] = useState<IStoredCredentials>(); const wasAuthenticated = useRef(false); @@ -70,7 +70,7 @@ export function useChatLifecycle( logger.warn("RESTARTING CHAT"); await deleteCachedCredentials(); - await clearMatrixStores(); + void clearMatrixStores(); wasAuthenticated.current = false; setClientState(ClientState.Idle); diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatRoomList.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatRoomList.tsx index a7bc664612a85f4afb0088322972497f9d07e591..9780a7cc9418fc6b77caa7e3c77d5017483db8a6 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatRoomList.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatRoomList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatSearchParams.ts b/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatSearchParams.ts index b70407b90d556716c8d2f82373ee03dab97a495f..6f6188e47de940f62e97db6ef6896754aa9c771e 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatSearchParams.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useChatSearchParams.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useCreateNewChat.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useCreateNewChat.tsx index 8eabd713796ea68151ed09571f671314b93016fd..38bfb5e89395333fa477588322ec7191d341a59c 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useCreateNewChat.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useCreateNewChat.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useCrossSigningInfo.ts b/employee-portal/src/lib/businessModules/chat/shared/hooks/useCrossSigningInfo.ts index 2fb2564ac2b7ed98dede5a42fac5c98427c52274..f3e168165316d12ebf60e7f3389049dc0cef43cd 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useCrossSigningInfo.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useCrossSigningInfo.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useGetSelfUserPresence.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useGetSelfUserPresence.tsx index 0c3bfd78e5e9ec53c4b234aa678325894bcb939a..45e8a72e6df2a64a0ce35b592c9b0a1364891e02 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useGetSelfUserPresence.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useGetSelfUserPresence.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useNewMessages.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useNewMessages.tsx index 17ae4fc415d196c2d66ff961baeecc2d79ee61bd..81b0e44f10194f6d2e806ab3300d33d58a3f0331 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useNewMessages.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useNewMessages.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/usePresence.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/usePresence.tsx index b12ee439898060dedbce1d82aa962c349a7cdfd0..ac43b0da88985857515fc24b17d144f95f95f9b4 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/usePresence.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/usePresence.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useReadConfirmation.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useReadConfirmation.tsx index 4121acc79d3b1bd2d4511a74ce3e71374750ca45..d012f2dc73d2c8f6439d35898f5edaab78fa0c98 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useReadConfirmation.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useReadConfirmation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomInfo.ts b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomInfo.ts index 24d7798c6a5ddb19a06e6ae059b9dd2fbe2763bb..dbff907a3f31e0996a40e915875e25b2dd1b3636 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomInfo.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomInfo.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomMembers.ts b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomMembers.ts index d7cad5a743abdde977037e81e8939ecb602baacc..6840aa2776bbc761c6298c2013a4db1f8034ab4c 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomMembers.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomMembers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomStateEventUpdate.ts b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomStateEventUpdate.ts index bee3c0c023ab7d9d9d1cb9fa392bb923fa933331..b5a2b710bdb7320e9c16d98b3137baa0a5b4f13b 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomStateEventUpdate.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomStateEventUpdate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomTimeline.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomTimeline.tsx index bd411e2b927fd4d1852964271300c7bc6d62618f..4d0ac29b5f28b72efd341475378c52733daf7a71 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomTimeline.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useRoomTimeline.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useSendMessage.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useSendMessage.tsx index a353dfaa2811db0d00bfe465466d620434e4e6aa..72c2ad985360f174de2cf8120a9d82bd140428bc 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useSendMessage.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useSendMessage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useTyping.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useTyping.tsx index 2590aca5d0d1d8c5f9db3a9bef4583289e488565..e8cbffae8efbba06288838ef6f2786b693094522 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useTyping.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useTyping.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/hooks/useUserSettings.tsx b/employee-portal/src/lib/businessModules/chat/shared/hooks/useUserSettings.tsx index e3d984b07f47a15603053af20d7df5a620ba5d3c..5da0902120196c2fb3994be625392ac32b58153f 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/hooks/useUserSettings.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/hooks/useUserSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/routes.ts b/employee-portal/src/lib/businessModules/chat/shared/routes.ts index d64f8a7a4d641b3f2de06f52ecf87d943675bb0a..6bb213309ab8c2b9264ad44471b804c7e9a28553 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/chat/shared/sideNavigationItem.tsx index 50d0159ba2841fd2817716a5bacd6da75921268d..970c224b8d5a0acdb57b1d34547f35d60312dad9 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/chat/shared/sideNavigationItem.tsx @@ -1,10 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiUserRole } from "@eshg/employee-portal-api/base"; -import { Chat } from "@mui/icons-material"; +import { ChatOutlined } from "@mui/icons-material"; import { SideNavigationItem, @@ -19,7 +19,7 @@ import { routes } from "./routes"; export const sideNavigationItem: SideNavigationItem = { name: "Chat", href: routes.index, - decorator: <Chat />, + decorator: <ChatOutlined />, accessCheck: hasUserRole(ApiUserRole.ChatManagementWrite), chip: <ChatMessageCounter />, }; diff --git a/employee-portal/src/lib/businessModules/chat/shared/termsOfUseText.ts b/employee-portal/src/lib/businessModules/chat/shared/termsOfUseText.ts index a1b77df9aa5fe4661718313b71b261df75784293..fa4e7882858c73658e0e80feb0d6d3e1d624916c 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/termsOfUseText.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/termsOfUseText.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/types.ts b/employee-portal/src/lib/businessModules/chat/shared/types.ts index 982fd18eaf8fc16bf7bc9fd7f704348dfd777b55..a78332d77cc604403d6b2e94cc0d1960815c0f7c 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/types.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/chat/shared/utils.ts b/employee-portal/src/lib/businessModules/chat/shared/utils.ts index a475339237589164a774255ce80d75b5b747f6b1..dabf74d3f3bb70bf9670a3255d64af80b297ef69 100644 --- a/employee-portal/src/lib/businessModules/chat/shared/utils.ts +++ b/employee-portal/src/lib/businessModules/chat/shared/utils.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/clients.ts b/employee-portal/src/lib/businessModules/dental/api/clients.ts index 77751df1093ca6cc3edd72c0731f8576ca0adec2..3b1750b0d9c83a954f6ee73c4b7b048d51d747dc 100644 --- a/employee-portal/src/lib/businessModules/dental/api/clients.ts +++ b/employee-portal/src/lib/businessModules/dental/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/downloads/files.ts b/employee-portal/src/lib/businessModules/dental/api/downloads/files.ts index acb4817b1e8d0c0ee5cf2a1e2a8d9d7cf60eb2a2..2f24b17e8e704e88ee02fbf1d08e8430cde9b48b 100644 --- a/employee-portal/src/lib/businessModules/dental/api/downloads/files.ts +++ b/employee-portal/src/lib/businessModules/dental/api/downloads/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/models/Child.ts b/employee-portal/src/lib/businessModules/dental/api/models/Child.ts index 54ef9718852f9e2388fcd7843ab0ffbc50c21998..13f3993bbbf0c2f868f3f6e6e7c97b33e94a767d 100644 --- a/employee-portal/src/lib/businessModules/dental/api/models/Child.ts +++ b/employee-portal/src/lib/businessModules/dental/api/models/Child.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/models/ChildDetails.ts b/employee-portal/src/lib/businessModules/dental/api/models/ChildDetails.ts index 5d2aca086cd87b056e46d13787649152660d341c..479b005786925bc47a738acc9a09a86a91dedac4 100644 --- a/employee-portal/src/lib/businessModules/dental/api/models/ChildDetails.ts +++ b/employee-portal/src/lib/businessModules/dental/api/models/ChildDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/models/Examination.ts b/employee-portal/src/lib/businessModules/dental/api/models/Examination.ts index efde323a8ff42868c0b502c87f71e60683a2b5c5..2781059de9bd7dca96db8e8347d703f36e0ffd31 100644 --- a/employee-portal/src/lib/businessModules/dental/api/models/Examination.ts +++ b/employee-portal/src/lib/businessModules/dental/api/models/Examination.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,14 +8,18 @@ import { ApiProphylaxisType, } from "@eshg/employee-portal-api/dental"; -export interface Examination { +import { BaseEntity } from "@/lib/shared/api/models/BaseEntity"; + +export interface Examination extends BaseEntity { readonly dateAndTime: Date; readonly prophylaxisType: ApiProphylaxisType; readonly note?: string; + readonly version: number; } export function mapExamination(response: ApiExamination): Examination { return { + ...response, dateAndTime: response.dateAndTime, prophylaxisType: response.prophylaxisType, note: response.note, diff --git a/employee-portal/src/lib/businessModules/dental/api/models/Institution.ts b/employee-portal/src/lib/businessModules/dental/api/models/Institution.ts index fc7edb9fefbf3843a03bbadf067b3f1995c96eca..e7e073826bd9e3c2b294517c2ac631f2d1e65731 100644 --- a/employee-portal/src/lib/businessModules/dental/api/models/Institution.ts +++ b/employee-portal/src/lib/businessModules/dental/api/models/Institution.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,11 +9,13 @@ import { BaseEntity, mapBaseEntity } from "@/lib/shared/api/models/BaseEntity"; export interface Institution extends BaseEntity { readonly name: string; + readonly hexColor: string; } export function mapInstitution(response: ApiInstitution): Institution { return { ...mapBaseEntity(response), name: response.name, + hexColor: response.hexColor, }; } diff --git a/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSession.ts b/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSession.ts index 3687b67646e6149aa700ec763c24edaa6f814957..fa334db464effdc83e230d94b0553edf50ee416e 100644 --- a/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSession.ts +++ b/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSession.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSessionDetails.ts b/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSessionDetails.ts index bef33e7fdff6fb4b0b7f8e93fe8af774b4652c8e..ae7c80389427370b93ed2ee6be0911144c45b43c 100644 --- a/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSessionDetails.ts +++ b/employee-portal/src/lib/businessModules/dental/api/models/ProphylaxisSessionDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -13,29 +13,31 @@ import { mapProphylaxisSession, } from "@/lib/businessModules/dental/api/models/ProphylaxisSession"; -export interface ChildKeyAttributes { +export interface ChildResult { + readonly id: string; readonly firstName: string; readonly lastName: string; readonly dateOfBirth: Date; + readonly groupName: string; } export interface ProphylaxisSessionDetails extends ProphylaxisSession { - participants: ChildKeyAttributes[]; + version: number; + participants: ChildResult[]; } -function mapChildKeyAttributes( - participants: ApiChildResult, -): ChildKeyAttributes { +function mapChildKeyAttributes(participant: ApiChildResult): ChildResult { return { - ...participants, + ...participant, }; } export function mapProphylaxisSessionDetails( response: ApiProphylaxisSessionDetails, -) { +): ProphylaxisSessionDetails { return { ...mapProphylaxisSession(response), participants: response.participants.map(mapChildKeyAttributes), + version: response.version, }; } diff --git a/employee-portal/src/lib/businessModules/dental/api/mutations/approvalRequestApi.ts b/employee-portal/src/lib/businessModules/dental/api/mutations/approvalRequestApi.ts index b49f5c5d2a64d0b07fd43a3f61a2329f5ba62f8c..fc50279b76440e505abdab16ab06876b06fbce80 100644 --- a/employee-portal/src/lib/businessModules/dental/api/mutations/approvalRequestApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/mutations/approvalRequestApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/mutations/childApi.ts b/employee-portal/src/lib/businessModules/dental/api/mutations/childApi.ts index f081fbcb81e1b7201eeb3f3412233f48cc4a5f85..376aa1a216d0876c75307344560c287a09abee72 100644 --- a/employee-portal/src/lib/businessModules/dental/api/mutations/childApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/mutations/childApi.ts @@ -1,17 +1,23 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiCreateChildRequest } from "@eshg/employee-portal-api/dental"; -import { UpdateChildRequest } from "@eshg/employee-portal-api/dental"; +import { + ApiCreateChildRequest, + UpdateChildRequest, + UpdateExaminationRequest, +} from "@eshg/employee-portal-api/dental"; import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { useQueryClient } from "@tanstack/react-query"; import { useChildApi } from "@/lib/businessModules/dental/api/clients"; -import { getChildDetailsQuery } from "@/lib/businessModules/dental/api/queries/childApi"; +import { + getChildDetailsQuery, + getExaminationQuery, +} from "@/lib/businessModules/dental/api/queries/childApi"; export function useCreateChild() { const childApi = useChildApi(); @@ -41,3 +47,31 @@ export function useUpdateAnnualChild(childId: string) { }, }); } + +export function useCloseSchoolYear() { + const childApi = useChildApi(); + const snackbar = useSnackbar(); + return useHandledMutation({ + mutationFn: () => childApi.closeSchoolYear(), + onSuccess: () => { + snackbar.confirmation("Das Schuljahr wurde erfolgreich abgeschlossen"); + }, + }); +} + +export function useUpdateExamination(examinationId: string) { + const childApi = useChildApi(); + const snackbar = useSnackbar(); + const { queryKey } = getExaminationQuery(childApi, examinationId); + const queryClient = useQueryClient(); + + return useHandledMutation({ + meta: { updatesQuery: queryKey }, + mutationFn: (request: UpdateExaminationRequest) => + childApi.updateExaminationRaw(request).then(unwrapRawResponse), + onSuccess: (response) => { + queryClient.setQueryData(queryKey, response); + snackbar.confirmation("Die Untersuchung wurde erfolgreich geändert."); + }, + }); +} diff --git a/employee-portal/src/lib/businessModules/dental/api/mutations/fileApi.ts b/employee-portal/src/lib/businessModules/dental/api/mutations/fileApi.ts index 90e85232a15aae774aae4080ff584a740175ba9f..d6290a2996d0e10681faa6d52bcf0b1b58473277 100644 --- a/employee-portal/src/lib/businessModules/dental/api/mutations/fileApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/mutations/fileApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/mutations/importApi.ts b/employee-portal/src/lib/businessModules/dental/api/mutations/importApi.ts index a56accb5554efc476b3ce79e704fb617ae648a5a..2f5eef917cafd88012c3ad6f12a4134d83d26aed 100644 --- a/employee-portal/src/lib/businessModules/dental/api/mutations/importApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/mutations/importApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/mutations/progressEntryApi.ts b/employee-portal/src/lib/businessModules/dental/api/mutations/progressEntryApi.ts index 3e8d2e1b2c7479287c8f5aba2b014ea8eb40e0b8..6a155ad467849b7950451f9079e7fc95ebb983fe 100644 --- a/employee-portal/src/lib/businessModules/dental/api/mutations/progressEntryApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/mutations/progressEntryApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/mutations/prophylaxisSessionApi.ts b/employee-portal/src/lib/businessModules/dental/api/mutations/prophylaxisSessionApi.ts index d5bfb1e5e1b94557ea825058a5e1af11919f499f..07f2dadefcfe6f62b73ab50f9d38f35cdbc07dfc 100644 --- a/employee-portal/src/lib/businessModules/dental/api/mutations/prophylaxisSessionApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/mutations/prophylaxisSessionApi.ts @@ -1,13 +1,19 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiCreateProphylaxisSessionRequest } from "@eshg/employee-portal-api/dental"; +import { + ApiCreateProphylaxisSessionRequest, + ApiProphylaxisSessionDetails, + ApiUpdateProphylaxisSessionParticipantsRequest, +} from "@eshg/employee-portal-api/dental"; import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; +import { useQueryClient } from "@tanstack/react-query"; import { useProphylaxisSessionApi } from "@/lib/businessModules/dental/api/clients"; +import { getProphylaxisSessionQuery } from "@/lib/businessModules/dental/api/queries/prophylaxisSessionApi"; export function useCreateProphylaxisSession() { const prophylaxisSessionApi = useProphylaxisSessionApi(); @@ -20,3 +26,25 @@ export function useCreateProphylaxisSession() { }, }); } + +export function useUpdateProphylaxisSessionParticipants( + prophylaxisSessionId: string, +) { + const prophylaxisSessionApi = useProphylaxisSessionApi(); + const queryClient = useQueryClient(); + const { queryKey } = getProphylaxisSessionQuery(prophylaxisSessionApi, { + prophylaxisSessionId, + }); + + return useHandledMutation({ + meta: { updatesQuery: queryKey }, + mutationFn: (request: ApiUpdateProphylaxisSessionParticipantsRequest) => + prophylaxisSessionApi.updateProphylaxisSessionParticipants( + prophylaxisSessionId, + request, + ), + onSuccess: (response: ApiProphylaxisSessionDetails) => { + queryClient.setQueryData(queryKey, response); + }, + }); +} diff --git a/employee-portal/src/lib/businessModules/dental/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/dental/api/queries/apiQueryKeys.ts index 852d4856e9c6aceeb9e2961953fa97e156f0f7b6..bb6ec1dbfb3ed81a13637882de6b5dc40308feb2 100644 --- a/employee-portal/src/lib/businessModules/dental/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/dental/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/queries/childApi.ts b/employee-portal/src/lib/businessModules/dental/api/queries/childApi.ts index 57202b804e5bbd508e17abb02b5b18e84f05f408..73c47927d824cdb8a20affe5fd678b76519cc79d 100644 --- a/employee-portal/src/lib/businessModules/dental/api/queries/childApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/queries/childApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,10 +11,12 @@ import { import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; import { isBlankString } from "@eshg/lib-portal/helpers/guards"; import { queryOptions, useQuery } from "@tanstack/react-query"; +import { isDefined } from "remeda"; import { useChildApi } from "@/lib/businessModules/dental/api/clients"; import { mapChild } from "@/lib/businessModules/dental/api/models/Child"; import { mapChildDetails } from "@/lib/businessModules/dental/api/models/ChildDetails"; +import { mapExamination } from "@/lib/businessModules/dental/api/models/Examination"; import { mapPaginatedList } from "@/lib/shared/api/models/PaginatedList"; import { childApiQueryKey } from "./apiQueryKeys"; @@ -37,6 +39,14 @@ export function getChildDetailsQuery(childApi: ChildApi, childId: string) { }); } +export function getExaminationQuery(childApi: ChildApi, examinationId: string) { + return queryOptions({ + queryKey: childApiQueryKey(["getExamination", examinationId]), + queryFn: () => childApi.getExamination(examinationId), + select: mapExamination, + }); +} + export function useSearchInstitutionGroups(institutionId: string) { const childApi = useChildApi(); @@ -51,3 +61,29 @@ export function useSearchInstitutionGroups(institutionId: string) { return response.groups; } } + +export function getChildrenByPersonQuery( + childApi: ChildApi, + personId: string | undefined, +) { + return queryOptions({ + queryKey: childApiQueryKey(["getChildrenByPerson", personId]), + queryFn: () => + isDefined(personId) + ? childApi.getChildrenByPersonRaw({ personId }).then(unwrapRawResponse) + : Promise.reject(new Error("Expected personId to be defined")), + select: (response) => response.children, + enabled: isDefined(personId), + }); +} + +export function useSearchChildren(institutionId: string, searchString: string) { + const childApi = useChildApi(); + const enabled = !isBlankString(institutionId) && searchString.length > 2; + return useQuery({ + queryKey: childApiQueryKey(["searchChildren", institutionId, searchString]), + queryFn: () => childApi.searchChildren(institutionId, searchString), + enabled, + select: (response) => (enabled ? response.children : []), + }); +} diff --git a/employee-portal/src/lib/businessModules/dental/api/queries/fileApi.ts b/employee-portal/src/lib/businessModules/dental/api/queries/fileApi.ts index b599dbf154e2422548b818e1bfb9f565b7fd74ea..a10ab4e609a23946532a5992ad9b304b3dd41c77 100644 --- a/employee-portal/src/lib/businessModules/dental/api/queries/fileApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/queries/fileApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/queries/progressEntryApi.ts b/employee-portal/src/lib/businessModules/dental/api/queries/progressEntryApi.ts index 5d66ed98da0f866ed07d1cf7024df02cb4358002..96776eb228bec550540b3633003e361bf6df7e12 100644 --- a/employee-portal/src/lib/businessModules/dental/api/queries/progressEntryApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/queries/progressEntryApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/api/queries/prophylaxisSessionApi.ts b/employee-portal/src/lib/businessModules/dental/api/queries/prophylaxisSessionApi.ts index 9629a7e7c66bee7b895fe5cf84b372a69b52a828..e6b334be5703dc465f41dfc3b972c906747c967b 100644 --- a/employee-portal/src/lib/businessModules/dental/api/queries/prophylaxisSessionApi.ts +++ b/employee-portal/src/lib/businessModules/dental/api/queries/prophylaxisSessionApi.ts @@ -1,14 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { GetProphylaxisSessionRequest, GetProphylaxisSessionsRequest, + ProphylaxisSessionApi, } from "@eshg/employee-portal-api/dental"; import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; -import { useSuspenseQuery } from "@tanstack/react-query"; +import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; import { useProphylaxisSessionApi } from "@/lib/businessModules/dental/api/clients"; import { mapProphylaxisSession } from "@/lib/businessModules/dental/api/models/ProphylaxisSession"; @@ -35,12 +36,11 @@ export function useGetProphylaxisSessions( }); } -export function useGetProphylaxisSession( +export function getProphylaxisSessionQuery( + prophylaxisSessionApi: ProphylaxisSessionApi, request: GetProphylaxisSessionRequest, ) { - const prophylaxisSessionApi = useProphylaxisSessionApi(); - - return useSuspenseQuery({ + return queryOptions({ queryKey: prophylaxisSessionApiQueryKey(["getProphylaxisSession", request]), queryFn: () => prophylaxisSessionApi @@ -49,3 +49,13 @@ export function useGetProphylaxisSession( select: mapProphylaxisSessionDetails, }); } + +export function useGetProphylaxisSession( + request: GetProphylaxisSessionRequest, +) { + const prophylaxisSessionApi = useProphylaxisSessionApi(); + + return useSuspenseQuery( + getProphylaxisSessionQuery(prophylaxisSessionApi, request), + ); +} diff --git a/employee-portal/src/lib/businessModules/dental/features/children/ChildrenTable.tsx b/employee-portal/src/lib/businessModules/dental/features/children/ChildrenTable.tsx index 3272d0d27431518b95b7689abe5ad7e1836c1eeb..3cd14e436060e9e416a0ea93eace3cd2789ee407 100644 --- a/employee-portal/src/lib/businessModules/dental/features/children/ChildrenTable.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/children/ChildrenTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -16,6 +16,7 @@ import { useGetChildrenQuery } from "@/lib/businessModules/dental/api/queries/ch import { routes } from "@/lib/businessModules/dental/shared/routes"; import { useGetGdprValidationBannerQuery } from "@/lib/shared/api/queries/gdpr"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; +import { ChipWithTooltip } from "@/lib/shared/components/chip/ChipWithTooltip"; import { useGdprValidationTasksAlert } from "@/lib/shared/components/gdpr/useGdprValidationTasksAlert"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; @@ -130,15 +131,19 @@ const COLUMNS = [ }, }, }), - columnHelper.accessor("institution.name", { + columnHelper.accessor("institution", { header: "Einrichtung", - cell: (props) => props.getValue(), + cell: (props) => ( + <ChipWithTooltip + key={props.getValue().id} + name={props.getValue().name} + hexColor={props.getValue().hexColor} + modalTitle="Institution" + /> + ), enableSorting: false, meta: { width: 180, - canNavigate: { - parentRow: true, - }, }, }), columnHelper.accessor("groupName", { diff --git a/employee-portal/src/lib/businessModules/dental/features/children/CloseSchoolYearButton.tsx b/employee-portal/src/lib/businessModules/dental/features/children/CloseSchoolYearButton.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0c8df84199eb711ef59c0e01bf266898269c53e6 --- /dev/null +++ b/employee-portal/src/lib/businessModules/dental/features/children/CloseSchoolYearButton.tsx @@ -0,0 +1,54 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { PublishedWithChanges } from "@mui/icons-material"; +import { Button } from "@mui/joy"; +import { useState } from "react"; + +import { useCloseSchoolYear } from "@/lib/businessModules/dental/api/mutations/childApi"; +import { BUTTON_SIZE } from "@/lib/businessModules/schoolEntry/features/procedures/new/constants"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; + +export function CloseSchoolYearButton() { + const [isInConfirmation, setInConfirmation] = useState(false); + const closeSchoolYear = useCloseSchoolYear(); + + function openConfirmation() { + setInConfirmation(true); + } + + async function confirm() { + try { + await closeSchoolYear.mutateAsync(); + } finally { + closeConfirmation(); + } + } + + function closeConfirmation() { + setInConfirmation(false); + } + + return ( + <> + <Button + size={BUTTON_SIZE} + onClick={openConfirmation} + variant="outlined" + startDecorator={<PublishedWithChanges />} + > + Schuljahr abschließen + </Button> + <EmployeePortalConfirmationDialog + title="Schuljahr abschließen?" + description="Soll das aktuelle Schuljahr abgeschlossen werden?" + confirmLabel="Abschließen" + onConfirm={confirm} + onClose={closeConfirmation} + open={isInConfirmation} + /> + </> + ); +} diff --git a/employee-portal/src/lib/businessModules/dental/features/children/details/ChildDetails.tsx b/employee-portal/src/lib/businessModules/dental/features/children/details/ChildDetails.tsx index e4874fa460282db7ae814efaef90b036005be212..caff34532c38b3f156996464000fd7715f7068df 100644 --- a/employee-portal/src/lib/businessModules/dental/features/children/details/ChildDetails.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/children/details/ChildDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/features/children/details/ChildToolbar.tsx b/employee-portal/src/lib/businessModules/dental/features/children/details/ChildToolbar.tsx index 9f9ecaf0af42c7dc19a66ef64241c78c523579ba..f070bca6c0759634e7705c4e76646d4f63577b1b 100644 --- a/employee-portal/src/lib/businessModules/dental/features/children/details/ChildToolbar.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/children/details/ChildToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -51,12 +51,12 @@ function buildTabItems(childId: string): TabNavigationItem[] { }, { tabButtonName: "Untersuchungen", - href: routes.children.byId(childId).examinations, + href: routes.children.byId(childId).examinations.overview, decorator: <FormatListBulletedOutlined />, }, { tabButtonName: "Verlaufseinträge", - href: routes.children.byId(childId).progressEntries.overview, + href: routes.children.byId(childId).progressEntries, decorator: <TimelineOutlined />, }, ]; diff --git a/employee-portal/src/lib/businessModules/dental/features/children/details/ExaminationDetails.tsx b/employee-portal/src/lib/businessModules/dental/features/children/details/ExaminationDetails.tsx new file mode 100644 index 0000000000000000000000000000000000000000..b22a039660496c3ee90e074f298232dfa795a5d7 --- /dev/null +++ b/employee-portal/src/lib/businessModules/dental/features/children/details/ExaminationDetails.tsx @@ -0,0 +1,36 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { FormProps, OptionalFieldValue } from "@eshg/lib-portal/types/form"; +import { Formik } from "formik"; + +import { FormFooter } from "@/lib/businessModules/schoolEntry/features/procedures/examinations/FormFooter"; +import { FormStack } from "@/lib/shared/components/form/FormStack"; + +export interface ExaminationFormValues { + note: OptionalFieldValue<string>; +} + +export function ExaminationDetails(props: FormProps<ExaminationFormValues>) { + return ( + <Formik + initialValues={props.initialValues} + onSubmit={props.onSubmit} + enableReinitialize + > + {({ handleSubmit, isSubmitting }) => { + return ( + <FormStack onSubmit={handleSubmit}> + <InputField type="text" label="Bemerkung" name="note" /> + <FormFooter isSubmitting={isSubmitting} /> + </FormStack> + ); + }} + </Formik> + ); +} diff --git a/employee-portal/src/lib/businessModules/dental/features/children/details/ExaminationsTable.tsx b/employee-portal/src/lib/businessModules/dental/features/children/details/ExaminationsTable.tsx index 22eabe1cf42b4024ac3ed789055da38fd98ac552..67a1048c44bdb4b0b6f274b69297790a309a74f5 100644 --- a/employee-portal/src/lib/businessModules/dental/features/children/details/ExaminationsTable.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/children/details/ExaminationsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,6 +10,7 @@ import { ColumnSort, createColumnHelper } from "@tanstack/react-table"; import { Examination } from "@/lib/businessModules/dental/api/models/Examination"; import { PROPHYLAXIS_TYPES } from "@/lib/businessModules/dental/features/prophylaxisSessions/translations"; +import { routes } from "@/lib/businessModules/dental/shared/routes"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; @@ -23,6 +24,7 @@ const COLUMNS = [ enableSorting: false, meta: { width: 150, + canNavigate: { parentRow: true }, }, }), columnHelper.accessor("prophylaxisType", { @@ -31,12 +33,16 @@ const COLUMNS = [ enableSorting: false, meta: { width: 250, + canNavigate: { parentRow: true }, }, }), columnHelper.accessor("note", { header: "Bemerkung", cell: (props) => props.getValue(), enableSorting: false, + meta: { + canNavigate: { parentRow: true }, + }, }), ]; @@ -47,6 +53,7 @@ const initialSorting: ColumnSort = { interface ExaminationsTableProps { examinations: Examination[]; + childId: string; } export function ExaminationsTable(props: ExaminationsTableProps) { @@ -65,6 +72,13 @@ export function ExaminationsTable(props: ExaminationsTableProps) { columns={COLUMNS} sorting={tableControl.tableSorting} enableSortingRemoval={false} + rowNavigation={{ + route: (row) => + routes.children + .byId(props.childId) + .examinations.byId(row.original.id), + focusColumnAccessorKey: "dateAndTime", + }} minWidth={600} /> </TableSheet> diff --git a/employee-portal/src/lib/businessModules/dental/features/children/details/UpdateAnnualChildSidebar.tsx b/employee-portal/src/lib/businessModules/dental/features/children/details/UpdateAnnualChildSidebar.tsx index 3331ccb5fceffdefb9485f3d4221e517cb551b81..d17ac58afb18f57301ab7afd124ea70c05ff486e 100644 --- a/employee-portal/src/lib/businessModules/dental/features/children/details/UpdateAnnualChildSidebar.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/children/details/UpdateAnnualChildSidebar.tsx @@ -1,14 +1,14 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiContactCategory } from "@eshg/employee-portal-api/base"; import { UpdateChildRequest } from "@eshg/employee-portal-api/dental"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { Divider, Stack } from "@mui/joy"; import { FormikProvider, useFormik } from "formik"; +import { SCHOOL_OR_DAYCARE } from "@/lib/baseModule/api/queries/contacts"; import { ChildDetails } from "@/lib/businessModules/dental/api/models/ChildDetails"; import { Institution } from "@/lib/businessModules/dental/api/models/Institution"; import { useUpdateAnnualChild } from "@/lib/businessModules/dental/api/mutations/childApi"; @@ -90,9 +90,7 @@ function UpdateAnnualChildSidebar(props: UpdateAnnualChildSidebarProps) { <SelectMultipleContactsField name="institution" label="Einrichtung" - categories={new Set<ApiContactCategory>() - .add(ApiContactCategory.School) - .add(ApiContactCategory.Daycare)} + categories={SCHOOL_OR_DAYCARE} /> <Divider /> <SearchGroupField diff --git a/employee-portal/src/lib/businessModules/dental/features/children/new/ChildProcedureCard.tsx b/employee-portal/src/lib/businessModules/dental/features/children/new/ChildProcedureCard.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5f70e9bcefb5f2744474b7f042615bd6c65c2132 --- /dev/null +++ b/employee-portal/src/lib/businessModules/dental/features/children/new/ChildProcedureCard.tsx @@ -0,0 +1,85 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiChildDetails } from "@eshg/employee-portal-api/dental"; +import { Row } from "@eshg/lib-portal/components/Row"; +import { InternalLinkIconButton } from "@eshg/lib-portal/components/navigation/InternalLinkIconButton"; +import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; +import OpenInNewIcon from "@mui/icons-material/OpenInNew"; +import { Chip, Grid, Sheet, Typography } from "@mui/joy"; + +import { routes } from "@/lib/businessModules/dental/shared/routes"; +import { + procedureStatusNames, + statusColors, +} from "@/lib/shared/components/procedures/constants"; +import { formatSchoolYear } from "@/lib/shared/helpers/formatters"; + +export function ChildProcedureCard(props: { procedure: ApiChildDetails }) { + const child = props.procedure; + + return ( + <Sheet sx={{ marginBottom: 2 }}> + <Row marginBottom={1} justifyContent="space-between"> + <Chip color={statusColors[child.status]}> + {procedureStatusNames[child.status]} + </Chip> + <InternalLinkIconButton + color="primary" + size="sm" + href={routes.children.byId(child.id).details} + aria-label="Kinddetails öffnen" + > + <OpenInNewIcon /> + </InternalLinkIconButton> + </Row> + + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid xs={5}> + <Typography>Vorname:</Typography> + </Grid> + <Grid xs={5}> + <Typography fontWeight={700}>{child.firstName}</Typography> + </Grid> + </Grid> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid xs={5}> + <Typography>Nachname:</Typography> + </Grid> + <Grid xs={5}> + <Typography fontWeight={700}>{child.lastName}</Typography> + </Grid> + </Grid> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid xs={5}> + <Typography>Geburtstag:</Typography> + </Grid> + <Grid xs={5}> + <Typography fontWeight={700}> + {formatDate(child.dateOfBirth)} + </Typography> + </Grid> + </Grid> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid xs={5}> + <Typography>Schule:</Typography> + </Grid> + <Grid xs={5}> + <Typography fontWeight={700}>{child.institution.name}</Typography> + </Grid> + </Grid> + <Grid container spacing={2} sx={{ flexGrow: 1 }}> + <Grid xs={5}> + <Typography>Schuljahr:</Typography> + </Grid> + <Grid xs={5}> + <Typography fontWeight={700}> + {formatSchoolYear(child.year)} + </Typography> + </Grid> + </Grid> + </Sheet> + ); +} diff --git a/employee-portal/src/lib/businessModules/dental/features/children/new/CreateChildSidebar.tsx b/employee-portal/src/lib/businessModules/dental/features/children/new/CreateChildSidebar.tsx index 4553a14e6ea175bfb1b0e3323fdc6fd423b2193a..3156ff766ce103ec82d33eb286032a251b647338 100644 --- a/employee-portal/src/lib/businessModules/dental/features/children/new/CreateChildSidebar.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/children/new/CreateChildSidebar.tsx @@ -1,11 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; -import { ApiContactCategory } from "@eshg/employee-portal-api/base"; import { ApiCreateChildRequest } from "@eshg/employee-portal-api/dental"; import { ApiCreatePerson } from "@eshg/employee-portal-api/schoolEntry"; import { mapRequiredValue } from "@eshg/lib-portal/helpers/form"; @@ -15,11 +14,14 @@ import { Button } from "@mui/joy"; import { useRouter } from "next/navigation"; import { useRef, useState } from "react"; +import { SCHOOL_OR_DAYCARE } from "@/lib/baseModule/api/queries/contacts"; +import { useChildApi } from "@/lib/businessModules/dental/api/clients"; import { useCreateChild } from "@/lib/businessModules/dental/api/mutations/childApi"; +import { getChildrenByPersonQuery } from "@/lib/businessModules/dental/api/queries/childApi"; +import { ChildProcedureCard } from "@/lib/businessModules/dental/features/children/new/ChildProcedureCard"; import { SearchGroupField } from "@/lib/businessModules/dental/features/prophylaxisSessions/SearchGroupField"; import { routes } from "@/lib/businessModules/dental/shared/routes"; import { BUTTON_SIZE } from "@/lib/businessModules/schoolEntry/features/procedures/new/constants"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; import { SearchMultipleContactsField } from "@/lib/shared/components/formFields/SearchMultipleContactsField"; import { SchoolYearField } from "@/lib/shared/components/formFields/schoolYear"; @@ -35,6 +37,7 @@ import { SearchPersonFormValues, } from "@/lib/shared/components/personSidebar/search/SearchPersonSidebar"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface DentalSearchForm extends SearchPersonFormValues { schoolYear: OptionalFieldValue<number>; @@ -66,9 +69,7 @@ function DentalSearchFormComponent( <SearchMultipleContactsField name="institutionId" label="Einrichtung" - categories={new Set<ApiContactCategory>() - .add(ApiContactCategory.School) - .add(ApiContactCategory.Daycare)} + categories={SCHOOL_OR_DAYCARE} /> <SearchGroupField name="groupName" @@ -119,6 +120,7 @@ export function CreateChildSidebar() { ); } + const childApi = useChildApi(); return ( <> <Button @@ -155,6 +157,11 @@ export function CreateChildSidebar() { searchFormComponent={DentalSearchFormComponent} initialSearchState={personSearchFormInitialValues} addressRequired + associatedProcedures={{ + getQuery: (personId) => + getChildrenByPersonQuery(childApi, personId), + cardComponent: ChildProcedureCard, + }} /> )} </Sidebar> diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/AddChildToProphylaxisSessionSidebar.tsx b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/AddChildToProphylaxisSessionSidebar.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0211ce79e002812fd802a5baa7a58f41a8c99a0f --- /dev/null +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/AddChildToProphylaxisSessionSidebar.tsx @@ -0,0 +1,223 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; +import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; +import { formatPersonName } from "@eshg/lib-portal/formatters/person"; +import { mapRequiredValue } from "@eshg/lib-portal/helpers/form"; +import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; +import Cake from "@mui/icons-material/CakeOutlined"; +import Groups from "@mui/icons-material/GroupsOutlined"; +import SearchRounded from "@mui/icons-material/SearchRounded"; +import { + Chip, + CircularProgress, + Stack, + SvgIconTypeMap, + Typography, +} from "@mui/joy"; +import { OverridableComponent } from "@mui/types"; +import { Formik } from "formik"; +import { ReactNode } from "react"; +import { useDebounce } from "use-debounce"; + +import { + ChildResult, + ProphylaxisSessionDetails, +} from "@/lib/businessModules/dental/api/models/ProphylaxisSessionDetails"; +import { useUpdateProphylaxisSessionParticipants } from "@/lib/businessModules/dental/api/mutations/prophylaxisSessionApi"; +import { useSearchChildren } from "@/lib/businessModules/dental/api/queries/childApi"; +import { NoSearchResults } from "@/lib/shared/components/NoSearchResult"; +import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; +import { DrawerProps } from "@/lib/shared/components/drawer/drawerContext"; +import { + UseSidebarResult, + useSidebar, +} from "@/lib/shared/components/drawer/useSidebar"; +import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; +import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; +import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; +import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; + +export function useAddChildToProphylaxisSessionSidebar(): UseSidebarResult<AddChildToProphylaxisSessionSidebarProps> { + return useSidebar({ + component: AddChildToProphylaxisSessionSidebar, + }); +} + +interface AddChildToProphylaxisSessionSidebarFormFields { + searchString: OptionalFieldValue<string>; + selected: OptionalFieldValue<string>; +} + +const RADIO_GROUP_FIELD_NAME = "selected"; +const INITIAL_VALUES: AddChildToProphylaxisSessionSidebarFormFields = { + searchString: "", + selected: "", +}; + +interface AddChildToProphylaxisSessionSidebarProps extends DrawerProps { + prophylaxisSession: ProphylaxisSessionDetails; +} + +function AddChildToProphylaxisSessionSidebar( + props: AddChildToProphylaxisSessionSidebarProps, +) { + const { prophylaxisSession, onClose } = props; + const { mutateAsync: updateParticipants } = + useUpdateProphylaxisSessionParticipants(prophylaxisSession.id); + const snackbar = useSnackbar(); + + const participantsIds = prophylaxisSession.participants.map( + (child) => child.id, + ); + + async function handleSubmit( + values: AddChildToProphylaxisSessionSidebarFormFields, + ) { + await updateParticipants( + { + version: prophylaxisSession.version, + participants: [...participantsIds, mapRequiredValue(values.selected)], + }, + { + onSuccess: () => { + onClose(); + snackbar.confirmation("Kind erfolgreich hinzugefügt."); + }, + }, + ); + } + + return ( + <Formik initialValues={INITIAL_VALUES} onSubmit={handleSubmit}> + {({ values, isSubmitting }) => ( + <SidebarForm> + <SidebarContent title="Kind hinzufügen"> + <Stack gap={2}> + <InputField + name="searchString" + label={"Kind suchen"} + startDecorator={<SearchRounded />} + autoFocus + /> + <SearchChildrenResults + institutionId={props.prophylaxisSession.institution.id} + searchString={values.searchString} + participantsIds={participantsIds} + /> + </Stack> + </SidebarContent> + <SidebarActions> + <FormButtonBar + submitLabel="Hinzufügen" + onCancel={props.onClose} + submitting={isSubmitting} + submitDisabled={values.selected === ""} + /> + </SidebarActions> + </SidebarForm> + )} + </Formik> + ); +} + +function SearchChildrenResults(props: { + institutionId: string; + searchString: string; + participantsIds: string[]; +}) { + const { institutionId, searchString, participantsIds } = props; + const [debouncedSearchString] = useDebounce(searchString, 250, { + trailing: true, + }); + + const { + data: matches, + isLoading, + isSuccess, + } = useSearchChildren(institutionId, debouncedSearchString); + + function childToResultCardProps(child: ChildResult): ResultCardProps { + const alreadyParticipating = participantsIds.includes(child.id); + return { + child, + badge: alreadyParticipating ? <AlreadyParticipatingBadge /> : undefined, + disabled: alreadyParticipating, + }; + } + + return ( + <RadioGroupField name={RADIO_GROUP_FIELD_NAME}> + {isLoading && <Spinner />} + {isSuccess && ( + <Stack gap={1}> + {matches.map(childToResultCardProps).map((props) => ( + <ResultCard key={props.child.id} {...props} /> + ))} + </Stack> + )} + {isSuccess && matches.length === 0 && ( + <NoSearchResults info="Kein Kind gefunden" /> + )} + </RadioGroupField> + ); +} + +interface ResultCardProps { + child: ChildResult; + badge?: ReactNode; + disabled?: boolean; +} + +function ResultCard(props: ResultCardProps) { + const { child, badge, disabled } = props; + return ( + <SelectableCard + key={child.id} + value={child.id} + forGroupName={RADIO_GROUP_FIELD_NAME} + radioProps={{ + disabled, + }} + > + <Stack gap={1}> + <Typography component="h3" sx={{ fontWeight: "bold" }}> + {formatPersonName(child)} + </Typography> + <TextWithIcon icon={Cake} text={formatDate(child.dateOfBirth)} /> + <TextWithIcon icon={Groups} text={child.groupName} /> + {badge} + </Stack> + </SelectableCard> + ); +} + +function TextWithIcon(props: { + icon: OverridableComponent<SvgIconTypeMap<object, "svg">>; + text: string; +}) { + const { text, icon: IconComponent } = props; + return ( + <Stack gap={1} direction="row"> + <IconComponent color="neutral" size="sm" /> + <Typography>{text}</Typography> + </Stack> + ); +} + +function Spinner() { + return ( + <Stack alignItems="center" justifyContent="center" gap={2}> + <CircularProgress aria-label="Suche Kinder…" /> + </Stack> + ); +} + +function AlreadyParticipatingBadge() { + return <Chip color="warning">Nimmt bereits teil</Chip>; +} diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/CreateProphylaxisSessionSidebar.tsx b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/CreateProphylaxisSessionSidebar.tsx index 48a56981924626df32d9acb679b104f8ad0fcdd4..0c12b67570e4babb708c39f62ffdac34077a338a 100644 --- a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/CreateProphylaxisSessionSidebar.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/CreateProphylaxisSessionSidebar.tsx @@ -1,11 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; -import { ApiContactCategory } from "@eshg/employee-portal-api/base"; import { ApiProphylaxisType } from "@eshg/employee-portal-api/dental"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; import { mapRequiredValue } from "@eshg/lib-portal/helpers/form"; @@ -15,6 +14,7 @@ import { Stack } from "@mui/joy"; import { FormikProvider, useFormik } from "formik"; import { useEffect } from "react"; +import { SCHOOL_OR_DAYCARE } from "@/lib/baseModule/api/queries/contacts"; import { useCreateProphylaxisSession } from "@/lib/businessModules/dental/api/mutations/prophylaxisSessionApi"; import { SearchGroupField } from "@/lib/businessModules/dental/features/prophylaxisSessions/SearchGroupField"; import { PROPHYLAXIS_TYPE_OPTIONS } from "@/lib/businessModules/dental/features/prophylaxisSessions/options"; @@ -89,9 +89,7 @@ function CreateProphylaxisSessionSidebar(props: SidebarWithFormRefProps) { <SearchMultipleContactsField name="institutionId" label="Einrichtung" - categories={new Set<ApiContactCategory>() - .add(ApiContactCategory.School) - .add(ApiContactCategory.Daycare)} + categories={SCHOOL_OR_DAYCARE} /> <SearchGroupField name="groupName" diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionDetails.tsx b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionDetails.tsx index 034df8ff9d30cef2b55009ac141fb5460c94eecc..b566f4305a896ad5c6dbb8217e4b5da5d1bad342 100644 --- a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionDetails.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionDetails.tsx @@ -1,63 +1,132 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { formatDate, formatDateTime, } from "@eshg/lib-portal/formatters/dateTime"; -import { Stack, Typography } from "@mui/joy"; +import { Add } from "@mui/icons-material"; +import DeleteIcon from "@mui/icons-material/DeleteOutlined"; +import { Button, Stack, Typography } from "@mui/joy"; import { createColumnHelper } from "@tanstack/react-table"; import { - ChildKeyAttributes, + ChildResult, ProphylaxisSessionDetails as ProphylaxisSessionDetailsType, } from "@/lib/businessModules/dental/api/models/ProphylaxisSessionDetails"; +import { useUpdateProphylaxisSessionParticipants } from "@/lib/businessModules/dental/api/mutations/prophylaxisSessionApi"; +import { useAddChildToProphylaxisSessionSidebar } from "@/lib/businessModules/dental/features/prophylaxisSessions/AddChildToProphylaxisSessionSidebar"; import { PROPHYLAXIS_TYPES } from "@/lib/businessModules/dental/features/prophylaxisSessions/translations"; +import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; +import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { ContentPanel } from "@/lib/shared/components/contentPanel/ContentPanel"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { DetailsColumn } from "@/lib/shared/components/detailsSection/DetailsColumn"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; -import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface ProphylaxisSessionDetailsProps { prophylaxisSession: ProphylaxisSessionDetailsType; } -const columnHelper = createColumnHelper<ChildKeyAttributes>(); -const PARTICIPANTS_COLUMNS = [ - columnHelper.accessor("lastName", { - header: "Name", - cell: (props) => props.getValue(), - enableSorting: false, - meta: { - width: 120, - }, - }), - columnHelper.accessor("firstName", { - header: "Vorname", - cell: (props) => props.getValue(), - enableSorting: false, - meta: { - width: 120, - }, - }), - columnHelper.accessor("dateOfBirth", { - header: "Geburtsdatum", - cell: (props) => formatDate(props.getValue()), - enableSorting: false, - meta: { - width: 90, - }, - }), -]; +const columnHelper = createColumnHelper<ChildResult>(); + +function columnDefs(onRemoveParticipant: (participantId: string) => void) { + return [ + columnHelper.accessor("lastName", { + header: "Name", + cell: (props) => props.getValue(), + enableSorting: false, + meta: { + width: 120, + }, + }), + columnHelper.accessor("firstName", { + header: "Vorname", + cell: (props) => props.getValue(), + enableSorting: false, + meta: { + width: 120, + }, + }), + columnHelper.accessor("dateOfBirth", { + header: "Geburtsdatum", + cell: (props) => formatDate(props.getValue()), + enableSorting: false, + meta: { + width: 120, + }, + }), + columnHelper.accessor("groupName", { + header: "Gruppe", + cell: (props) => props.getValue(), + enableSorting: false, + meta: { + width: 90, + }, + }), + columnHelper.display({ + header: "Aktionen", + id: "actions", + cell: (props) => ( + <ActionsMenu + actionItems={[ + { + label: "Entfernen", + startDecorator: <DeleteIcon />, + onClick: () => onRemoveParticipant(props.row.original.id), + color: "danger", + }, + ]} + /> + ), + meta: { + width: 80, + cellStyle: "button", + textAlign: "right", + }, + }), + ]; +} export function ProphylaxisSessionDetails( props: ProphylaxisSessionDetailsProps, ) { + const { mutateAsync: updateParticipants } = + useUpdateProphylaxisSessionParticipants(props.prophylaxisSession.id); + const { openConfirmationDialog } = useConfirmationDialog(); + const sidebar = useAddChildToProphylaxisSessionSidebar(); + const snackbar = useSnackbar(); + + function handleRemoveParticipant(childExternalId: string) { + openConfirmationDialog({ + color: "danger", + title: "Kind entfernen?", + confirmLabel: "Entfernen", + description: "Möchten Sie das Kind aus der Prophylaxe entfernen?", + onConfirm: async () => { + await updateParticipants( + { + version: props.prophylaxisSession.version, + participants: props.prophylaxisSession.participants + .map((childResult) => childResult.id) + .filter((id) => id !== childExternalId), + }, + { + onSuccess: () => { + snackbar.confirmation("Kind erfolgreich entfernt."); + }, + }, + ); + }, + }); + } + return ( <Stack gap={4}> <ContentPanel testId="prophylaxis-session-panel"> @@ -86,19 +155,33 @@ export function ProphylaxisSessionDetails( </DetailsSection> </ContentPanel> <ContentPanel> - <TablePage> - <TableSheet - title={ - <Typography level="h3" component="h2" marginBottom={1}> - Teilnehmende Kinder - </Typography> - } - > - <DataTable - data={props.prophylaxisSession.participants} - columns={PARTICIPANTS_COLUMNS} + <TablePage + controls={ + <ButtonBar + left={ + <Typography level="h4" component="h2" marginBottom={1}> + Teilnehmende Kinder + </Typography> + } + right={ + <Button + startDecorator={<Add />} + onClick={() => + sidebar.open({ + prophylaxisSession: props.prophylaxisSession, + }) + } + > + Kind hinzufügen + </Button> + } /> - </TableSheet> + } + > + <DataTable + data={props.prophylaxisSession.participants} + columns={columnDefs(handleRemoveParticipant)} + /> </TablePage> </ContentPanel> </Stack> diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionFilterSettings.tsx b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionFilterSettings.tsx index 762e04906231ebe970a6ff5c83a2fc225c398bb2..26730a853ccd7238a074940dae39cba6cf759896 100644 --- a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionFilterSettings.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionFilterSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,7 +9,7 @@ import { FormControl, FormLabel, Select } from "@mui/joy"; import { isDefined } from "remeda"; import { PROPHYLAXIS_TYPE_OPTIONS } from "@/lib/businessModules/dental/features/prophylaxisSessions/options"; -import { SearchSchoolFilter } from "@/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchSchoolFilter"; +import { SearchInstitutionFilter } from "@/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchInstitutionFilter"; import { ResetButton } from "@/lib/shared/components/ResetButton"; import { ActiveFilter } from "@/lib/shared/components/filterSettings/ActiveFilter"; import { FilterSettingsContent } from "@/lib/shared/components/filterSettings/FilterSettingsContent"; @@ -66,8 +66,8 @@ export function ProphylaxisSessionFilterSettings( > <FormControl> <FormLabel>Einrichtung</FormLabel> - <SearchSchoolFilter - schoolId={props.filterFormValues.institutionIdFilter} + <SearchInstitutionFilter + institutionId={props.filterFormValues.institutionIdFilter} onChange={(institutionId) => props.setFilterFormValue("institutionIdFilter", institutionId) } diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionsTable.tsx b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionsTable.tsx index da78262f6e84680b70454fa9d775a3faaf484e54..2577477b5bca3403c42f85f8f7d1bd71cf5476e4 100644 --- a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionsTable.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/ProphylaxisSessionsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,8 +7,9 @@ import { ApiProphylaxisSessionSortKey } from "@eshg/employee-portal-api/dental"; import { formatDateTime } from "@eshg/lib-portal/formatters/dateTime"; +import { useToggleableState } from "@eshg/lib-portal/hooks/useToggleableState"; import { ColumnSort, createColumnHelper } from "@tanstack/react-table"; -import { ReactNode, useState } from "react"; +import { ReactNode } from "react"; import { ProphylaxisSession } from "@/lib/businessModules/dental/api/models/ProphylaxisSession"; import { useGetProphylaxisSessions } from "@/lib/businessModules/dental/api/queries/prophylaxisSessionApi"; @@ -19,6 +20,7 @@ import { import { routes } from "@/lib/businessModules/dental/shared/routes"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; +import { ChipWithTooltip } from "@/lib/shared/components/chip/ChipWithTooltip"; import { useFilterDictionary } from "@/lib/shared/components/filterSettings/useFilterDictionary"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; @@ -40,7 +42,7 @@ interface ProphylaxisSessionsTableProps { } export function ProphylaxisSessionsTable(props: ProphylaxisSessionsTableProps) { - const [activePanel, toggleActivePanel] = useState<"filters" | undefined>(); + const [activePanel, toggleActivePanel] = useToggleableState<"filters">(); const tableControl = useTableControl({ serverSideSorting: true, @@ -146,13 +148,19 @@ const COLUMNS = [ canNavigate: { parentRow: true }, }, }), - columnHelper.accessor("institution.name", { + columnHelper.accessor("institution", { header: "Einrichtung", - cell: (props) => props.getValue(), + cell: (props) => ( + <ChipWithTooltip + key={props.getValue().id} + name={props.getValue().name} + hexColor={props.getValue().hexColor} + modalTitle="Institution" + /> + ), enableSorting: false, meta: { width: 180, - canNavigate: { parentRow: true }, }, }), columnHelper.accessor("groupName", { diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/SearchGroupField.tsx b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/SearchGroupField.tsx index ee93f6a8fbb40ad4375d875606de51f3f15d32df..005cc83d31f04db5cfd678f01370ba37b13222f1 100644 --- a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/SearchGroupField.tsx +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/SearchGroupField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/options.ts b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/options.ts index 6f58c5e5cfde6a403e1bbde4f6a431bb10f4b5e5..b0bf77a7968df8c0d2b2b58fd690a0de2ca64a31 100644 --- a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/options.ts +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/translations.ts b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/translations.ts index 6bea3754635bc928bd6646dd4aa8e4bcdc5a7e56..7ce5081681f333d884b12dfab92b92ba603cf9e6 100644 --- a/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/translations.ts +++ b/employee-portal/src/lib/businessModules/dental/features/prophylaxisSessions/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/import/ImportChildrenSidebar.tsx b/employee-portal/src/lib/businessModules/dental/import/ImportChildrenSidebar.tsx index 8ac03553c57e53d173d432f4629aeba7a85bf4c9..50dfc063e627edfe194ea1907e1e97b3c93470e2 100644 --- a/employee-portal/src/lib/businessModules/dental/import/ImportChildrenSidebar.tsx +++ b/employee-portal/src/lib/businessModules/dental/import/ImportChildrenSidebar.tsx @@ -1,17 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiContactCategory } from "@eshg/employee-portal-api/base"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; import { Stack } from "@mui/joy"; import { Formik } from "formik"; +import { SCHOOL_OR_DAYCARE } from "@/lib/baseModule/api/queries/contacts"; import { useImportChildren } from "@/lib/businessModules/dental/api/mutations/importApi"; import { SearchMultipleContactsField } from "@/lib/shared/components/formFields/SearchMultipleContactsField"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; import { SchoolYearField } from "@/lib/shared/components/formFields/schoolYear"; import { ImportDataForm } from "@/lib/shared/components/import/ImportDataForm"; import { @@ -57,9 +57,7 @@ function ImportChildrenSidebar(props: SidebarWithFormRefProps) { <SearchMultipleContactsField name="institutionId" label="Einrichtung" - categories={new Set<ApiContactCategory>() - .add(ApiContactCategory.School) - .add(ApiContactCategory.Daycare)} + categories={SCHOOL_OR_DAYCARE} /> <SchoolYearField name="schoolYear" diff --git a/employee-portal/src/lib/businessModules/dental/shared/constants.ts b/employee-portal/src/lib/businessModules/dental/shared/constants.ts index d840f783a67743fb0f2691133044c21de9f01cdb..6d47664126b33e166b8c11571e5ed26b3b0018c7 100644 --- a/employee-portal/src/lib/businessModules/dental/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/dental/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/dental/shared/moduleUserGroup.ts index ef03e16830e9aaed2638ee612564303a989a2f86..9909102dc5a7ec233e4bbcd0b0eab272f8e9f9dc 100644 --- a/employee-portal/src/lib/businessModules/dental/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/dental/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/dental/shared/routes.ts b/employee-portal/src/lib/businessModules/dental/shared/routes.ts index aa96a95c4ef6c74ab69886f143be1d272d3c7908..1fb64b22d0ecc732c991c7d134cc22e57b2d2f9f 100644 --- a/employee-portal/src/lib/businessModules/dental/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/dental/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -24,15 +24,15 @@ export const routes = defineRoutes("/dental", (dentalPath) => ({ byId: (childId: string) => defineRoutes(childrenPath(`/${childId}`), (childPath) => ({ details: childPath("/details"), - examinations: childPath("/examinations"), - progressEntries: defineRoutes( - childPath("/progress-entries"), - (progressEntriesPath) => ({ - overview: progressEntriesPath("/"), - byId: (progressEntryId: string) => - progressEntriesPath(`/${progressEntryId}`), + examinations: defineRoutes( + childPath("/examinations"), + (examinationsPath) => ({ + overview: examinationsPath("/"), + byId: (examinationId: string) => + examinationsPath(`/${examinationId}`), }), ), + progressEntries: childPath("/progress-entries"), })), })), })); diff --git a/employee-portal/src/lib/businessModules/dental/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/dental/shared/sideNavigationItem.tsx index d3298547153c7deae2448373c68d73f27c7b4e2c..3be3ffad57705804196b75d3ceef06b2c1046bf2 100644 --- a/employee-portal/src/lib/businessModules/dental/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/dental/shared/sideNavigationItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/clients.ts b/employee-portal/src/lib/businessModules/inspection/api/clients.ts index 43e9c09832b730c8c427a17e9f9c5cb437b8721a..8d814fbb34febad962eff10d932082fe5670a9f7 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/clients.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/download/files.ts b/employee-portal/src/lib/businessModules/inspection/api/download/files.ts index bb035d597bb7b8dad317ea20c6fa66163160d6dd..5585b30cbad3e89e2ea03787e2d0b5b041dab4ce 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/download/files.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/download/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/approvalRequests.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/approvalRequests.ts index 2700683810f83027dc3bdc24a749a3817021512c..d8bd15465d5c2eccec5aa70e8cd3d24679c9a644 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/archiving.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/archiving.ts index 7bd25ae217fcf72ce7bddd22064c6c3b2ea491da..4cf3331f8d0c29786a6ba7258f973679a967a445 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/archiving.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/checklist.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/checklist.ts index ac04b5cba1589354a0ff25a74b83af031bd0a240..c4635a1684184c208b09203e4fc4dd8ecaa43945 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/checklist.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/checklist.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/checklistDefinition.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/checklistDefinition.ts index 30e3cd4ba41327f4e9b4767105a5995d5b3c85ec..3d7637df8920baefb2a0fe1b770142bc3ec30c2d 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/checklistDefinition.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/checklistDefinition.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/facility.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/facility.ts index bc7630ee497d5104a5cfebe11a64cdbb5ccd6cc5..94db6e7f9e09b7ea52fc94ee80bc04953bdfe8ea 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/facility.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/facility.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/files.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/files.ts index 1b9a1436ae9ac8359897da6706011e704498a182..f5d1e8afc38a491315599d214190a22a23e786c9 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/files.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/inbox.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/inbox.ts index fa7b7e8c57837bf74509b33a89e00a55fe71c9ae..6d6e00392e5ba0372f2c90c9384414afb9ed9306 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/inbox.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/inbox.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/incidents.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/incidents.ts index 253008517d8f9c903f5a0670a49d48fedd5f2f1b..9bd704e6ff303f445573840135bf912d6452961e 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/incidents.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/incidents.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/inspection.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/inspection.ts index 5432051e8e9a201e362d63d9c6189a422d94add0..a72e01f72f046a48d5bd83053e05d63190cf70c1 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/inspection.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/inspection.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/inventory.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/inventory.ts index 3ba76994d9d5aec6089eed7a18c8dda791fc61fd..167a22e872bfbb9dcb996c95dbfc97f1eac4ad26 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/inventory.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/inventory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/objectTypes.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/objectTypes.ts index 6896fd9051de458d24404f77661b74967db1d784..4461fafb316eeab8e3678eff2d0fc6b182d88d49 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/objectTypes.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/objectTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/packlist.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/packlist.ts index 96a3b50f4d476dffe8aa3b7b855ee15109415243..51a6bb4ba05744aaeb56acf2126fa29595a78d8c 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/packlist.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/packlist.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/packlistDefinition.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/packlistDefinition.ts index 6a10e99d956cd31613054b061924206a2b061b7e..6ceab5ef0ca54e6559981d169ace2739fcf55593 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/packlistDefinition.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/packlistDefinition.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/processImport.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/processImport.ts index 9e001c39c23689f824ffe111cc004009657ba2bf..db55b928caff5ebf9dae16f220e27c5a845b4836 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/processImport.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/processImport.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/progressEntries.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/progressEntries.ts index 8fcce56bd4506a83b467ce5ebc1e23c25f504a1b..6b042966b0060b076c086d91de507d8fc2a5460e 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/resources.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/resources.ts index fed03c4739f0b82fccab1a224effabc64805c7fa..8016467f1744e532d7a567d40a887238b6fe84c1 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/resources.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/resources.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/textblocks.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/textblocks.ts index fcaa42c387ee6ce7b79d75d66d11f172567fdb01..c95b013876142d3f0f9e2380d3f34189e304908f 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/textblocks.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/textblocks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/mutations/webSearch.ts b/employee-portal/src/lib/businessModules/inspection/api/mutations/webSearch.ts index 8861e78b35512b1c561dc100a5b5f7c8e9dee56b..cac7cbdaabd027e7b333a53b6c19da864c3d9ab0 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/mutations/webSearch.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/mutations/webSearch.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/apiQueryKeys.ts index 1ad865161aacd075f186e96c3e8d12e85253b598..7e69af23424a2ad07ae0ba1b8301de6923a9fe17 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/archiving.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/archiving.ts index 8542230cf588b63504650e34bb7f0a71971187ff..6af542a46e240218ee81abc9cf30bbeacd778b34 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/archiving.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/checklist.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/checklist.ts index 929250d18718613ed958780ae79b1417c6c5d0d6..4f1e6653b0346bcd89fa7a4aa4b6b7775df7c6aa 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/checklist.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/checklist.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/checklistDefinition.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/checklistDefinition.ts index 3bc46560e9550d88e8ce719c1e06d8db58c6604b..46cabb9d94d234a3308b24086730678177d2ade3 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/checklistDefinition.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/checklistDefinition.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/department.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/department.ts index 38a53fa73bdcfd8514051195349ec1e4fe663d51..94be9d6bb83ad5edf1a582c6f6f90e90a1860b0d 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/department.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/department.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/facility.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/facility.ts index 91cb9bcbc294b8fdc9e9f8443fe145855810811a..6149b37d568d8af0f0157d9d8782501ec2d9689b 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/facility.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/facility.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/feature.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/feature.ts index cf254e53c1d11b92b65e3a9ff3fd602c873687f2..c4d9df1609437b68577fdd82df4fc79e043a0526 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/feature.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/feature.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/files.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/files.ts index 53c327db099825e7749ab7d9dc2e0b105daf709f..239b8ec8b7cd5ee364dc585e089adf49bff6475a 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/files.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/geo.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/geo.ts index d3876b6b209104733c4530814fe4af9d973a27e0..04e54c370986f91924a257c2863562e4e6381c64 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/geo.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/geo.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/inboxProcedures.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/inboxProcedures.ts index e690c75f68631edc9cad77d11412029ef1943a42..aa0775c31cba9fdb5e24398b4ab65fc0ab685bc3 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/inboxProcedures.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/inboxProcedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/incidents.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/incidents.ts index 5b96a8aa871402435a8aee2e74ee86f88c1573e2..0a02ba5cb7eebe5d5807132667f0c8d4eb444d19 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/incidents.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/incidents.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/inspection.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/inspection.ts index 976893b7ffae33a744f2e7bb4d5b40272661f9e8..5c4838b5d35401b1aaf9ea73e963db5c194d5fc2 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/inspection.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/inspection.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/inspectionReport.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/inspectionReport.ts index 9f3acc96ebfd8c311559d68502d336899931bb0e..5d0daeb650c11fe2952091b282c57de5b3cf68d0 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/inspectionReport.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/inspectionReport.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/inventory.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/inventory.ts index a7b781eea3450346a9c8d94fc0ee6da381700070..7ee327789084522cca492521214b4e70aff0cf58 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/inventory.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/inventory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/objectTypes.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/objectTypes.ts index 3de5e4fac706e8b038ffc2759dbc5b014ce20748..60550f063d17565c56d7e539c65c954f8e13f45a 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/objectTypes.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/objectTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/packlist.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/packlist.ts index aaa2ab34239d4c6e09f62eb131fb803da8412c4c..5318882581cdf106d9f49bd3484739023c772055 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/packlist.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/packlist.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/packlistDefinition.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/packlistDefinition.ts index 67024f95ef0d1c7eb0270e4c5a68ba1d594b6644..e996bfdf77cd50a7dda1f2627bedca0ff618c4f9 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/packlistDefinition.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/packlistDefinition.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/progressEntries.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/progressEntries.ts index 5b4d4b1a0ee99270f9f03efbdeeb5e4f24999dd8..80e2464d32ff0095cc338288a2f86e52a5a12c0c 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/resources.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/resources.ts index dc78cef336561c0cc3eb1229ff625b736f7a2796..42e285809ff9812174cb0c6ec658ff06c82f3095 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/resources.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/resources.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/textblocks.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/textblocks.ts index b60edd4532800d45bc4bf74bbb323388a8c62463..bf85dab6e4f913a61e5e4deb4c6bc2767a26910f 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/textblocks.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/textblocks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/useFetchTasksForTeamViewOptions.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/useFetchTasksForTeamViewOptions.ts index 9c64b1520b16b01c2fe78727d8db457157093584..c8c797853ec534b35c284624a7dc1df78f4fcf69 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/useFetchTasksForTeamViewOptions.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/useFetchTasksForTeamViewOptions.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/users.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/users.ts index f4bf024819538e56914318182c6e3e55f5eda4da..36fa43133fa44bd405ddc6ccc3d2edcac18a308e 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/users.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/users.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/api/queries/webSearch.ts b/employee-portal/src/lib/businessModules/inspection/api/queries/webSearch.ts index 175972e122958ed60d8f36dd5cc92b08d037230c..d1147640882386b6eb403e215d312a343c070102 100644 --- a/employee-portal/src/lib/businessModules/inspection/api/queries/webSearch.ts +++ b/employee-portal/src/lib/businessModules/inspection/api/queries/webSearch.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/EditChecklistDefinition.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/EditChecklistDefinition.tsx index ba071bf2aa127ccf0340292a807e1789ddae5f55..360324e0178cb6183bf15151a45a02e95c98bace 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/EditChecklistDefinition.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/EditChecklistDefinition.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElement.tsx index 44dc0efe7ea46a95620dc42a658f7aa85e86c070..fd12c537b334e4fe3392bb7ad75b15ebaf8334d3 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElementsList.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElementsList.tsx index 1d7cd2bd4a99e28155182044b859a71ccbb6efe5..6c989ada1c3d788f15c22c1af82b5db983eea68f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElementsList.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/ChecklistDefinitionElementsList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/NoteAndHelpTextInput.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/NoteAndHelpTextInput.tsx index 282d4fd58eb5076132117df418d3a113c84bd9ed..fe5e26824c419f32adaebb0fe3e7a8bb3bd5179d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/NoteAndHelpTextInput.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/NoteAndHelpTextInput.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionAnswerItem.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionAnswerItem.tsx index 48c6a7940bb9b29e3017a65d51b45bfe1c0ab0b6..4661d02a9926de25ebb341ebea1407d27b1928c1 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionAnswerItem.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionAnswerItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementCheckboxInner.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementCheckboxInner.tsx index c01393be88a6f3bec1ac79e05deb2d49d0436a88..bb056b08531bb8486ed328c94aae9d530a52aaf2 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementCheckboxInner.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementCheckboxInner.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementInner.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementInner.tsx index 3e4282a7ecc2cd857f76c13c34522121508d16c7..88e433165f541e24ac61e0a93cf6206373c33e78 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementInner.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementInner.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementMultiInner.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementMultiInner.tsx index e985635f0bc0de46d6ba0077939f127591ba45ea..1d43e5fda033c72bd1a195ca0c845656a55b84c5 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementMultiInner.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/elements/inner/ChecklistDefinitionElementMultiInner.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderCard.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderCard.tsx index 407e44f6163a62eb8395f8881306f389b42f8e56..97213445b6500640b81fe9f2d2f235aa3fdf6264 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderCard.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderRow.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderRow.tsx index 1cbc7c3babce00048eee4efc191011f9c260a9bd..346bcffdfd9656171b1e74444c4b584ffe927db7 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderRow.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/header/ChecklistDefinitionHeaderRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSection.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSection.tsx index 822d315d430bb700f21501c27a1fdb59fb8f0600..f56454a1c139ff2710e2dc4d2d9394a446c0e8a0 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSection.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSectionsList.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSectionsList.tsx index 1ca05de8e407897620e7bc9afe04002a69a03eb7..b2489775eae36f04053f931cc48079cd9c210224 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSectionsList.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/editor/sections/ChecklistDefinitionSectionsList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/CopyDeleteDropdown.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/CopyDeleteDropdown.tsx index 4a041eb041da10cf885cceb0c5c8fd6e6f886042..f03ce6bb0b17b9b1d65da110b6719f4c1d7e031f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/CopyDeleteDropdown.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/CopyDeleteDropdown.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/DragHandle.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/DragHandle.tsx index a10d96ca328062ceaa9e35fd7ad287667ef45318..4d0bb9f8cb983826e5df2810b856c11d7208b430 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/DragHandle.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/DragHandle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/FlexInputField.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/FlexInputField.tsx index ea435e23e498a6ef8d2529a2dea9ad66891a01e9..81d9408923c5ccda43bd51b7601c50abd653bc00 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/FlexInputField.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/FlexInputField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputFieldBar.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputFieldBar.tsx index d86cb2aa41644a96ce2b75175bc228e6ceda00e0..fed75185a2ba2323b12f6cad5589b0a2ec665685 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputFieldBar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputFieldBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputWithDeleteButton.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputWithDeleteButton.tsx index 701ad4350929dfa704d9c76396bf64bcb4f5276d..3e57c58c01ccd72033435a187615a8beb98829e4 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputWithDeleteButton.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/InputWithDeleteButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/OptionalInputField.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/OptionalInputField.tsx index 0b60288b0d7fd2305fd8fb83409834f373172cc0..725eb65157a30866d0fe00e044611e801683930a 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/OptionalInputField.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/OptionalInputField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/TextModuleToggle.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/TextModuleToggle.tsx index d6f2c410c53a35fa8082efde8e4328165f22b698..d5d19b91de621cd6f00b285e661b0724db24283e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/TextModuleToggle.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/TextModuleToggle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/helpers.ts b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/helpers.ts index c251d14da9d7d08ac4396a45e8ed7166826f27bd..19e352a4c52b8116275c975bdc5c8949d654c571 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/helpers.ts +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/helpers/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,9 +15,9 @@ import { type ApiCLTextElementContext, ApiChecklistDefinitionVersion, } from "@eshg/employee-portal-api/inspection"; +import { ConfirmationDialogProps } from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialog"; import { v4 as uuidv4 } from "uuid"; -import { ConfirmationDialogProps } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; import { useHasUserRolesCheck } from "@/lib/shared/hooks/useAccessControl"; function getId( diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/ChecklistDefinitionOverviewTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/ChecklistDefinitionOverviewTable.tsx index baee7a808a4e8994b36ba2c77b7f3b1bf3521085..7e8945f41438435fd81894c8e59d5560bc002520 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/ChecklistDefinitionOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/ChecklistDefinitionOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -20,11 +20,11 @@ import { generateChecklistDefinitionOverviewTableColumns } from "@/lib/businessM import { UploadChecklistToRepoSidebar } from "@/lib/businessModules/inspection/components/checklistDefinition/sidebars/UploadChecklistToRepoSidebar"; import { ChecklistVersionsSidebar } from "@/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/ChecklistVersionsSidebar"; import { routes } from "@/lib/businessModules/inspection/shared/routes"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; import { useHasUserRolesCheck } from "@/lib/shared/hooks/useAccessControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; type UserActivityState = | { type: "view-table" } diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/columns.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/columns.tsx index 16d439103fe730d5cdd17083c29c17a4c4b29641..6e76b3c0feaabeb25d4400abeef460dacfb3c2ec 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/columns.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/overview/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,7 @@ import { ApiChecklistDefinition, ApiChecklistDefinitionVersion, } from "@eshg/employee-portal-api/inspection"; +import { ConfirmationDialogProps } from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialog"; import { Snackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { formatDateTime } from "@eshg/lib-portal/formatters/dateTime"; import { @@ -35,7 +36,6 @@ import { ActionsItem, ActionsMenu, } from "@/lib/shared/components/buttons/ActionsMenu"; -import { ConfirmationDialogProps } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; const columnHelper = createColumnHelper<ApiChecklistDefinition>(); diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/CLDInfoCard.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/CLDInfoCard.tsx index 64c94c80d973028cacdc18f3fd2a0d1e7d554cb3..e95a28675979cf2f8d39e671717b70766d69b4de 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/CLDInfoCard.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/CLDInfoCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDContent.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDContent.tsx index 38b66f0e1ab9f3486b074fa30b7359bd456bb8f5..d6855f2dbf75bf7dae584a1b8a02c8e8cc7c450a 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDContent.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDPage.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDPage.tsx index 3f13cb2f0efc1a3881c1d6a75e8216d11aaf2020..1182b75f39dee7703aba44087d8cd76a45d8af9a 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDPage.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,10 +8,8 @@ import { InfoOutlined } from "@mui/icons-material"; import { Alert, Box } from "@mui/joy"; import { ReactNode } from "react"; -import { - headerHeightDesktop, - simpleToolbarHeight, -} from "@/lib/baseModule/components/layout/sizes"; +import { simpleToolbarHeight } from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; import { CLDInfoCard } from "@/lib/businessModules/inspection/components/checklistDefinition/readOnly/CLDInfoCard"; import { ReadOnlyCLDContent } from "@/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDContent"; @@ -24,6 +22,7 @@ export function ReadOnlyCLDPage({ cldVersion, infoCard, }: Readonly<ReadOnlyCLDPageProps>) { + const { headerHeightDesktop } = useHeaderHeights(); return ( <Box sx={{ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDSection.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDSection.tsx index 44c0b690873e47909a813aebf8e790b24ec87811..717be100c26809b69d8d7639520088a1ce732c22 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDSection.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/ReadOnlyCLDSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/ReadOnlyCLDElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/ReadOnlyCLDElement.tsx index 616b5418c8b10c645c400deefeac889903bca348..a9afcd8a42138e13f9e754d1223e8bf499dc1c3c 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/ReadOnlyCLDElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/ReadOnlyCLDElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementCheckbox.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementCheckbox.tsx index 58ce609acfbcc4c74db082147f229022a3e0ac35..677e56affe17ab559fc1e83a1d2a2b958008cf5e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementCheckbox.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementCheckbox.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementFile.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementFile.tsx index 8e788569e42078893c90adeeae27a0f9c464dc0a..4a9af66440d2c853a404baaa42e2c8be2ab062f3 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementFile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementFile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementMultiSelect.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementMultiSelect.tsx index 23c8d0ab379279e702db2511ee4fb811630bd1c6..704ef1ed76355b3550a676f521268a1fe26410e7 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementMultiSelect.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementMultiSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementText.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementText.tsx index 7dae3ae952b549ccee767b888b6579ad97b63781..46c13bf6eb42e5d8159029c116bdbd4301b99e2a 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementText.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementText.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementTextModule.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementTextModule.tsx index ac18817b04f24f71847d1b0ad7859d89015001ec..d3eb9e527f370d65027236fc684bd9f800d7037f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementTextModule.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementTextModule.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementWrapper.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementWrapper.tsx index fa312b65dade25962ec424f880bc9ffceeb56f6e..22499ad5e466267b3aca139251e9aa19534646aa 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementWrapper.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/readOnly/elements/inner/ReadOnlyCLDElementWrapper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/UploadChecklistToRepoSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/UploadChecklistToRepoSidebar.tsx index 8cc445e665c396a8fbee45240e62ca8c46e1fae5..c4365d7069e8a7a4c12e4400482a39944fd13445 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/UploadChecklistToRepoSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/UploadChecklistToRepoSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/ChecklistVersionsSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/ChecklistVersionsSidebar.tsx index 6dacedf2927b5e8c17d4f0dfdb4d8674c2093097..762e643acb7c50e15cdf2534e1a1b3b2e9721c70 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/ChecklistVersionsSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/ChecklistVersionsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/VersionSheet.tsx b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/VersionSheet.tsx index 29804be380bceb7ca3ba0114d3bf4ec9f36541a2..2a6154aa7c4e933a1a30cae4a4914859519188bf 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/VersionSheet.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/checklistDefinition/sidebars/history/VersionSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,6 +9,7 @@ import { ApiChecklistDefinitionVersion, } from "@eshg/employee-portal-api/inspection"; import { Alert } from "@eshg/lib-portal/components/Alert"; +import { ConfirmationDialogProps } from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialog"; import { Snackbar, useSnackbar, @@ -50,9 +51,8 @@ import { ActionsItem, ActionsMenu, } from "@/lib/shared/components/buttons/ActionsMenu"; -import { ConfirmationDialogProps } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { useHasUserRolesCheck } from "@/lib/shared/hooks/useAccessControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function VersionSheet({ definition, diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/DuplicateTileLine.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/DuplicateTileLine.tsx index 42ccbab242421db977d01b47ae74d9e7cf2d398e..f5cf6f94cdbd988d990bb7d749bb715e6384c01e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/DuplicateTileLine.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/DuplicateTileLine.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ExportBannedFacilitiesButton.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ExportBannedFacilitiesButton.tsx index 8ee4796e0c08356e4f0d7e4fa4721a743db8cd91..c02b2af84fe864b31e58113ef828d389fe60a4fa 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ExportBannedFacilitiesButton.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ExportBannedFacilitiesButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,7 +10,7 @@ import { Button } from "@mui/joy"; import { useExportBannedFacilities } from "@/lib/businessModules/inspection/api/mutations/facility"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function ExportBannedFacilitiesButton() { return ( diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/FacilityDuplicateTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/FacilityDuplicateTile.tsx index 3bb05ed3f8f5c68f2d6b41b323bd19a560d5f58c..227cb6726dd1af3dda2ec1f4172b1ab3ee4e80ad 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/FacilityDuplicateTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/FacilityDuplicateTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/InspectionDuplicateTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/InspectionDuplicateTile.tsx index 7a9b5816ac818919fbd0c3ed801471ec007bb86d..f6476a1bd1e9c1635c8bf37f56a78a85894e4339 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/InspectionDuplicateTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/InspectionDuplicateTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/LineWithPossibleExclamationMark.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/LineWithPossibleExclamationMark.tsx index 98d530b4d6e498175f3e8fcd534f9f3715c8043e..03fa2591237894beb4fa5cff1914e5200bd27e2f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/LineWithPossibleExclamationMark.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/LineWithPossibleExclamationMark.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/NewFacilityButton.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/NewFacilityButton.tsx index b75adafa22a5a58799ecad455fb4fe6710d7bffa..3731c23a26177dc5260a149d87d3c606c8589ab3 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/NewFacilityButton.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/NewFacilityButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesIncidentsSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesIncidentsSidebar.tsx index 37b4c8cef478a9e87a391dda6d062eccfeee6d64..e460c227a662d9322db0a6a0af5303d9bcf3d713 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesIncidentsSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesIncidentsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesOfflineTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesOfflineTable.tsx index 4f230abcabe0238f57c178d1645ab7186760a56e..bf9e0218e6988ace0102dc5e5dfdf4256d51fe43 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesOfflineTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesOfflineTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -35,7 +35,6 @@ export function PendingFacilitiesOfflineTable() { () => undefined, () => undefined, false, - false, ); const [userActivity, setUserActivity] = diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTable.tsx index d73813f2f104ca0163d1fa29790f371dac89831f..e59f75a28e0995a198defe48ea5758dd2a58e9c8 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTable.tsx @@ -1,15 +1,12 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; import { ApiBusinessModule } from "@eshg/employee-portal-api/businessProcedures"; -import { - ApiInspectionFeature, - ApiObjectType, -} from "@eshg/employee-portal-api/inspection"; +import { ApiObjectType } from "@eshg/employee-portal-api/inspection"; import { optionsFromRecord } from "@eshg/lib-portal/components/formFields/SelectOptions"; import { useSuspenseQueries } from "@tanstack/react-query"; import { addDays, formatISO } from "date-fns"; @@ -18,7 +15,6 @@ import { useMemo, useState } from "react"; import { procedureStatusNames } from "@/lib/baseModule/api/procedures/enums"; import { useFacilityApi } from "@/lib/businessModules/inspection/api/clients"; import { getPendingFacilitiesQuery } from "@/lib/businessModules/inspection/api/queries/facility"; -import { useIsNewFeatureEnabled } from "@/lib/businessModules/inspection/api/queries/feature"; import { useGetObjectTypes } from "@/lib/businessModules/inspection/api/queries/objectTypes"; import { ExportBannedFacilitiesButton } from "@/lib/businessModules/inspection/components/facility/pending/ExportBannedFacilitiesButton"; import { NewFacilityButton } from "@/lib/businessModules/inspection/components/facility/pending/NewFacilityButton"; @@ -69,14 +65,13 @@ const initialUserActivity: UserActivityState = { type: "view-table" }; function createFilterDefinitions( objectTypes: ApiObjectType[], - isImportFeatureEnabled: boolean, ): FilterDefinition[] { const objectTypeOptions = objectTypes.map((o) => ({ label: o.name, value: o.id, })); - const filterDefinitions: FilterDefinition[] = [ + return [ { type: "EnumSingle", key: "kind", @@ -117,40 +112,28 @@ function createFilterDefinitions( key: "isAfter", name: "Begehung nach", }, - ]; - - if (isImportFeatureEnabled) { - filterDefinitions.push({ + { type: "EnumSingle", key: "hasDuplicates", name: "Duplikat", options: optionsFromRecord(inspectionDuplicateFilterNames), - }); - } - - filterDefinitions.push({ - type: "EnumSingle", - key: "banned", - name: "Untersagte Einrichtung", - options: optionsFromRecord(inspectionBannedFacilityFilterNames), - }); - - return filterDefinitions; + }, + { + type: "EnumSingle", + key: "banned", + name: "Untersagte Einrichtung", + options: optionsFromRecord(inspectionBannedFacilityFilterNames), + }, + ]; } export function PendingFacilitiesTable( props: Readonly<{ filter: PendingFacilitiesFilters }>, ) { const isOfflineFeatureEnabled = useIsOfflineFeatureEnabled(); - const isImportFeatureEnabled = useIsNewFeatureEnabled( - ApiInspectionFeature.Import, - ); const { data: objectTypes } = useGetObjectTypes(); - const filterDefinitions = createFilterDefinitions( - objectTypes, - isImportFeatureEnabled, - ); + const filterDefinitions = createFilterDefinitions(objectTypes); const paramStateProvider = useSearchParamStateProvider( filterDefinitions, true, @@ -213,7 +196,6 @@ export function PendingFacilitiesTable( openReviewFacilityDuplicateSidebar, openReviewInspectionDuplicateSidebar, isOfflineFeatureEnabled, - isImportFeatureEnabled, ); const [userActivity, setUserActivity] = @@ -256,13 +238,12 @@ export function PendingFacilitiesTable( return ( <> - {isImportFeatureEnabled && - procedures.numberOfPossibleDuplicates !== 0 && ( - <PotentialDuplicatesWarning - numberOfDuplicates={procedures.numberOfPossibleDuplicates} - onFilterForDuplicates={filterForDuplicates} - /> - )} + {procedures.numberOfPossibleDuplicates !== 0 && ( + <PotentialDuplicatesWarning + numberOfDuplicates={procedures.numberOfPossibleDuplicates} + onFilterForDuplicates={filterForDuplicates} + /> + )} <TablePage fullHeight controls={ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTableWrapper.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTableWrapper.tsx index d17320a5baa4a6ea9fe17674a9c96e36cdabd179..bd2fe283fb814d37f9336e8983e39e4f572d6fff 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTableWrapper.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PendingFacilitiesTableWrapper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PotentialDuplicatesWarning.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PotentialDuplicatesWarning.tsx index c8275dbb15917f247bb9a028d818dd999f11bc95..6b3fabe5c107825f0fe9888bb4e8a070df58bff0 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PotentialDuplicatesWarning.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/PotentialDuplicatesWarning.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewFacilityDuplicateSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewFacilityDuplicateSidebar.tsx index b4006a0867d411dad2dcbfc6d31880407544a0b2..9ba04f40da991ebeebde6fa11397ec271650e74d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewFacilityDuplicateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewFacilityDuplicateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewInspectionDuplicateSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewInspectionDuplicateSidebar.tsx index 2e570542f3536ce4a4449363e26f9a50f763c5c7..5a65646b887f9741ef46ee3180ee406b02742e01 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewInspectionDuplicateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/ReviewInspectionDuplicateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/columns.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/columns.tsx index ce5be279cbb4531ab443c69b35430b3194be6541..3a558839b155669f0567b8c57137abd3967de86d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/pending/columns.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/pending/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -33,47 +33,44 @@ export function createPendingFacilitiesColumns( openReviewFacilityDuplicateSidebar: (inspectionId: string) => void, openInspectionFacilityDuplicateSidebar: (inspectionId: string) => void, showOfflineColumn: boolean, - isImportFeatureEnabled: boolean, ) { return [ - isImportFeatureEnabled - ? columnHelper.display({ - id: "possibleDuplicate", - header: "", - cell: (ctx) => - (ctx.row.original.possibleFacilityDuplicate && ( - <IconButton - aria-label="Einrichtungsduplikat" - sx={{ color: "warning.900" }} - onClick={() => - openReviewFacilityDuplicateSidebar( - ctx.row.original.inspection!.id, - ) - } - > - <DuplicateIcon /> - </IconButton> - )) || - (ctx.row.original.inspection!.possibleInspectionDuplicate && ( - <IconButton - aria-label="Vorgangsduplikat" - sx={{ color: "warning.900" }} - onClick={() => - openInspectionFacilityDuplicateSidebar( - ctx.row.original.inspection!.id, - ) - } - > - <DuplicateIcon /> - </IconButton> - )), - meta: { - width: 48, - cellStyle: "icon", - headerLabel: "Mögliche Duplikate", - }, - }) - : null, + columnHelper.display({ + id: "possibleDuplicate", + header: "", + cell: (ctx) => + (ctx.row.original.possibleFacilityDuplicate && ( + <IconButton + aria-label="Einrichtungsduplikat" + sx={{ color: "warning.900" }} + onClick={() => + openReviewFacilityDuplicateSidebar( + ctx.row.original.inspection!.id, + ) + } + > + <DuplicateIcon /> + </IconButton> + )) || + (ctx.row.original.inspection!.possibleInspectionDuplicate && ( + <IconButton + aria-label="Vorgangsduplikat" + sx={{ color: "warning.900" }} + onClick={() => + openInspectionFacilityDuplicateSidebar( + ctx.row.original.inspection!.id, + ) + } + > + <DuplicateIcon /> + </IconButton> + )), + meta: { + width: 48, + cellStyle: "icon", + headerLabel: "Mögliche Duplikate", + }, + }), columnHelper.accessor("kind", { header: "Art", cell: (ctx) => translatePendingFacilityKind(ctx.getValue()), diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchForm.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchForm.tsx index 4bd38ec2d1bfa7424f82d0c4648d3235c3f658c7..1adb09f70dba8633c9c0c908ee52d03bc9b4f71d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchForm.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchImportSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchImportSidebar.tsx index 5ea9ec349849944e986feecba9bc6551fa7ed000..b50143d3ce2c40827e1f6204be4dd7a0533a933f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchImportSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchImportSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchPageContent.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchPageContent.tsx index fb1feebb349cc8b349e48c2e7c2716d086eb52cc..f3a4a16fb8742e87fcb59aef27c268090f0f2bbf 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchPageContent.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchPageContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchTable.tsx index a3a4138c10c8aabe6505b928b0c2c84ddad8a8cc..7f7cfba6e8ab2f25185c8d9ac1689d7ea7eeb19b 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/search/FacilityWebSearchTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -25,9 +25,9 @@ import { } from "@/lib/businessModules/inspection/api/mutations/webSearch"; import { routes } from "@/lib/businessModules/inspection/shared/routes"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; const columnHelper: ColumnHelper<ApiWebSearchOverviewEntry> = createColumnHelper<ApiWebSearchOverviewEntry>(); diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/FacilityWebSearchResultsTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/FacilityWebSearchResultsTable.tsx index 99406739bc73018190ee8193624740f42f56bd0a..99ce013af6515298fba36e60da1776645b46d442 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/FacilityWebSearchResultsTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/FacilityWebSearchResultsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/columns.tsx b/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/columns.tsx index b2d2b93375a75f7b971e4c161cd315e05c3339be..1fdd607a9464921ad598bf7225f8a4abec927cdc 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/columns.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/facility/search/results/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/icons/ActiveChecklistIcon.tsx b/employee-portal/src/lib/businessModules/inspection/components/icons/ActiveChecklistIcon.tsx index 67c339f846c566329de8c184a6d18a6e23dd413f..04cb212c05babfa4431644bcd7d1ba0b83ec3626 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/icons/ActiveChecklistIcon.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/icons/ActiveChecklistIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/icons/CorechecklistIcon.tsx b/employee-portal/src/lib/businessModules/inspection/components/icons/CorechecklistIcon.tsx index 487633ca715e202d38c3b11c8abf4112b92475e0..040a3b00d2fa7047cde60839f4d78e31fb8e9971 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/icons/CorechecklistIcon.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/icons/CorechecklistIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/icons/DuplicateIcon.tsx b/employee-portal/src/lib/businessModules/inspection/components/icons/DuplicateIcon.tsx index 92b3c49a7fd68972b444ffcfb278ea305cd54a4b..b74c5e3c640f4e7b7cab1842c017f136b36f20de 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/icons/DuplicateIcon.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/icons/DuplicateIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/icons/EditDraftIcon.tsx b/employee-portal/src/lib/businessModules/inspection/components/icons/EditDraftIcon.tsx index fcc6b4f9b04c6264959b1dbb26ed0a70dd8fedee..4e4275fe95152b8e18430d2d6717e18005b265ff 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/icons/EditDraftIcon.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/icons/EditDraftIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/icons/ExclusiveCorechecklistIcon.tsx b/employee-portal/src/lib/businessModules/inspection/components/icons/ExclusiveCorechecklistIcon.tsx index 12d1a7f6328fce2aba37e70ba495104d7a6c6a98..696b8f2ba3ef05c5d3e38a11b3837c44c7519197 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/icons/ExclusiveCorechecklistIcon.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/icons/ExclusiveCorechecklistIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/icons/InactiveChecklistIcon.tsx b/employee-portal/src/lib/businessModules/inspection/components/icons/InactiveChecklistIcon.tsx index ee4543310a0a78c25f18a5edc16030df0190fe7c..f66b8c043631342368be9e9a1a7e97e44f835be5 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/icons/InactiveChecklistIcon.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/icons/InactiveChecklistIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inbox/InspectionInboxProcedureCreateSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inbox/InspectionInboxProcedureCreateSidebar.tsx index 86c1cd0adaf88970ee353c12d0fc9e3504d8b4f6..f461f74cc5effaeaa3191b42c600dc11b4ef5c58 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inbox/InspectionInboxProcedureCreateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inbox/InspectionInboxProcedureCreateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/EditFacilitySidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/EditFacilitySidebar.tsx index ef4b2fd737bb5453dd0ce02f949c452e68ea7791..6c06d8c82644be5234aade7b5dd03fd9b9e11562 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/EditFacilitySidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/EditFacilitySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionLockInfo.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionLockInfo.tsx new file mode 100644 index 0000000000000000000000000000000000000000..fbc5e44b0270b9a285192d8e0b51fbacf7e511cb --- /dev/null +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionLockInfo.tsx @@ -0,0 +1,74 @@ +/** + * Copyright 2025 SCOOP Software GmbH, cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiUserRole } from "@eshg/employee-portal-api/base"; +import { type ApiInspection } from "@eshg/employee-portal-api/inspection"; +import { Clear } from "@mui/icons-material"; +import { Box, IconButton, Typography } from "@mui/joy"; + +import { useUpdateInspection } from "@/lib/businessModules/inspection/api/mutations/inspection"; +import { UserLink } from "@/lib/shared/components/users/UserLink"; +import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; +import { useIsOffline } from "@/lib/shared/hooks/useIsOffline"; + +export function InspectionLockInfo({ + inspection, +}: { + inspection: ApiInspection; +}) { + const { openCancelDialog } = useConfirmationDialog(); + const { mutateAsync: updateInspection } = useUpdateInspection(); + + const isOffline = useIsOffline(); + const isTeamlead = useHasUserRoleCheck(ApiUserRole.InspectionLeader); + + function handleUnlockClick() { + openCancelDialog({ + onConfirm: unlockInspection, + title: "Vorgang entsperren", + description: + "Soll der Vorgang wirklich entsperrt werden? Beim Entsperren könnten Informationen, die Offline erfasst wurden, verloren gehen.", + confirmLabel: "Entsperren", + }); + } + + async function unlockInspection() { + await updateInspection({ + id: inspection.externalId, + apiUpdateInspectionRequest: { lock: false }, + }); + } + + return ( + <> + {inspection?.lockedByUser && ( + <Box + sx={{ + display: "flex", + ml: "auto", + mr: "auto", + }} + > + <Typography level="body-md" color="neutral" noWrap> + Gesperrt durch {<UserLink user={inspection?.lockedByUser} />} + </Typography> + {isTeamlead && !isOffline && ( + <IconButton + aria-label="Sperrung aufheben" + variant="plain" + color="danger" + size="sm" + sx={{ minHeight: 0 }} + onClick={() => handleUnlockClick()} + > + <Clear /> + </IconButton> + )} + </Box> + )} + </> + ); +} diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionPhaseSelect.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionPhaseSelect.tsx index ab81e9c8d12aa7a1d674db690fb183fa78e9503f..9df78c100912f606a3897771c21a6c822bc99d08 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionPhaseSelect.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionPhaseSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -16,7 +16,7 @@ export function InspectionPhaseSelect({ inspection: ApiInspection; }>) { return ( - <Typography level="body-md" color="neutral"> + <Typography sx={{ ml: "auto" }} level="body-md" color="neutral" noWrap> Phase: {translateInspectionPhase(inspection.phase)} </Typography> ); diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabHeader.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabHeader.tsx index 46ec1994d1525bc493cc09ad4c5e3c2e8a7a77c9..be274d01259fe047d95141c7ffac8ce4d0745f41 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabHeader.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabHeader.tsx @@ -1,23 +1,16 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiUserRole } from "@eshg/employee-portal-api/base"; import { type ApiInspection } from "@eshg/employee-portal-api/inspection"; -import { Clear } from "@mui/icons-material"; -import { Box, IconButton, Stack, Typography } from "@mui/joy"; -import { useUpdateInspection } from "@/lib/businessModules/inspection/api/mutations/inspection"; +import { InspectionLockInfo } from "@/lib/businessModules/inspection/components/inspection/InspectionLockInfo"; import { InspectionPhaseSelect } from "@/lib/businessModules/inspection/components/inspection/InspectionPhaseSelect"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { TabNavigationHeader, TabNavigationHeaderTypography, } from "@/lib/shared/components/tabNavigationToolbar/TabNavigationHeader"; -import { UserLink } from "@/lib/shared/components/users/UserLink"; -import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; -import { useIsOffline } from "@/lib/shared/hooks/useIsOffline"; export function InspectionTabHeader({ inspection, @@ -29,70 +22,15 @@ export function InspectionTabHeader({ const postalAddress = facility?.baseFacility.contactAddress; const postalCode = postalAddress?.postalCode ?? ""; const city = postalAddress?.city ?? ""; - const { openCancelDialog } = useConfirmationDialog(); - const { mutateAsync: updateInspection } = useUpdateInspection(); - - const isOffline = useIsOffline(); - const isTeamlead = useHasUserRoleCheck(ApiUserRole.InspectionLeader); - - function handleUnlockClick() { - openCancelDialog({ - onConfirm: unlockInspection, - title: "Vorgang entsperren", - description: - "Soll der Vorgang wirklich entsperrt werden? Beim Entsperren könnten Informationen, die Offline erfasst wurden, verloren gehen.", - confirmLabel: "Entsperren", - }); - } - - async function unlockInspection() { - await updateInspection({ - id: inspection.externalId, - apiUpdateInspectionRequest: { lock: false }, - }); - } return ( <TabNavigationHeader titleAsH1> - <Stack - direction="row" - sx={{ justifyContent: "space-between", width: "100%" }} - > - <Stack direction="row" gap={4}> - <TabNavigationHeaderTypography>{name}</TabNavigationHeaderTypography> - <TabNavigationHeaderTypography> - {postalCode} {city} - </TabNavigationHeaderTypography> - </Stack> - <Stack direction="row" gap={4}> - {inspection?.lockedByUser && ( - <Box - sx={{ - display: "flex", - }} - > - <Typography level="body-md" color="neutral"> - Gesperrt durch {<UserLink user={inspection?.lockedByUser} />} - </Typography> - {isTeamlead && !isOffline && ( - <IconButton - aria-label="Sperrung aufheben" - variant="plain" - color="danger" - size="sm" - sx={{ minHeight: 0 }} - onClick={() => handleUnlockClick()} - > - <Clear /> - </IconButton> - )} - </Box> - )} - </Stack> - <Stack direction="row" gap={4}> - <InspectionPhaseSelect inspection={inspection} /> - </Stack> - </Stack> + <TabNavigationHeaderTypography>{name}</TabNavigationHeaderTypography> + <TabNavigationHeaderTypography> + {postalCode} {city} + </TabNavigationHeaderTypography> + <InspectionLockInfo inspection={inspection} /> + <InspectionPhaseSelect inspection={inspection} /> </TabNavigationHeader> ); } diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabNavigationToolbar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabNavigationToolbar.tsx index d5fa54006de7dec6b3e1a08cf644809b5192f445..28eee363bc285c8aafb23823b343680ebbdf6867 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabNavigationToolbar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/InspectionTabNavigationToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,14 +14,17 @@ import { TimelapseOutlined, TimelineOutlined, } from "@mui/icons-material"; +import { Stack } from "@mui/joy"; import { useGetInspection } from "@/lib/businessModules/inspection/api/queries/inspection"; +import { InspectionLockInfo } from "@/lib/businessModules/inspection/components/inspection/InspectionLockInfo"; import { InspectionTabHeader } from "@/lib/businessModules/inspection/components/inspection/InspectionTabHeader"; import { OfflineSwitch } from "@/lib/businessModules/inspection/components/inspection/OfflineSwitch"; import { routes } from "@/lib/businessModules/inspection/shared/routes"; import { TabNavigationItem } from "@/lib/shared/components/tabNavigation/types"; import { TabNavigationToolbar } from "@/lib/shared/components/tabNavigationToolbar/TabNavigationToolbar"; import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; +import { useIsMobile } from "@/lib/shared/hooks/useIsMobile"; export function InspectionTabNavigationToolbar({ inspectionId, @@ -33,6 +36,7 @@ export function InspectionTabNavigationToolbar({ ); const { data: inspection } = useGetInspection(inspectionId); const tabItems = createTabItems(inspectionId); + const isMobile = useIsMobile(); return ( <TabNavigationToolbar @@ -40,11 +44,14 @@ export function InspectionTabNavigationToolbar({ routeBack={hasProcedureEditRole ? routes.procedures.index : undefined} header={<InspectionTabHeader inspection={inspection} />} afterTabs={ - <OfflineSwitch - procedureId={inspection.externalId} - currentPhase={inspection.phase} - label="Offline-Modus" - /> + <Stack direction="row"> + {isMobile && <InspectionLockInfo inspection={inspection} />} + <OfflineSwitch + procedureId={inspection.externalId} + currentPhase={inspection.phase} + label="Offline-Modus" + /> + </Stack> } /> ); @@ -74,7 +81,7 @@ function createTabItems(id: string): TabNavigationItem[] { }, { tabButtonName: "Verlaufseinträge", - href: routes.procedures.progressEntries(id).index, + href: routes.procedures.progressEntries(id), decorator: <TimelineOutlined />, }, { diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/OfflineSwitch.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/OfflineSwitch.tsx index b5bbdafd7a2a7cbada7bfdaa7885a7d008336b1a..819f268c2bd30ac635f1a6a790431567716fc7dc 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/OfflineSwitch.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/OfflineSwitch.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/TrackInspectionView.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/TrackInspectionView.tsx index b950369a2c56bd8d50e84a5470e86a6bd815e9c8..c6fcb3b885bf0bce51f95a306fcb6c5f66e39ae6 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/TrackInspectionView.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/TrackInspectionView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeAutocompleteField.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeAutocompleteField.tsx index c3ae6cf2e657b1d9dbf0c3691f075d9939c5041e..2ff8acd0a4c0b80602bb2b6c177935fb9860a3d8 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeAutocompleteField.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeAutocompleteField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeInfo.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeInfo.tsx index 3c8a118fda45ece300ced44968396f362a37967f..db5763438829bfdb8eb0e41220915f363bb3681e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeInfo.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/AssigneeInfo.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/InspectionAssigneeSelection.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/InspectionAssigneeSelection.tsx index 8abf13f73ba86ad9556443e1e235a15984bb127c..df2d98073d1c33125740937042074cb5621b4c6f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/InspectionAssigneeSelection.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/assignee/InspectionAssigneeSelection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTabBasedata.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTabBasedata.tsx index 41ebd221a83915fa365ae10f6ed1f55a7ce34e0f..3ec36bda76b06dad78395dfb867c066a2dea9e62 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTabBasedata.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTabBasedata.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTypeCard.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTypeCard.tsx index 0cb2eddade4bda93a66fd69294265c52c3472487..f07945fd2735ea5ff3369e5362955e5b977211db 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTypeCard.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/InspectionTypeCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/billingaddress/BillingAddressTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/billingaddress/BillingAddressTile.tsx index 2015fdf5dfce975e817cc4a922aae2e9920d0c49..d6627ff36e5d3abbda8b26f689fb48f16225ca13 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/billingaddress/BillingAddressTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/billingaddress/BillingAddressTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/contactperson/ContactPersonTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/contactperson/ContactPersonTile.tsx index 745d28d628fa8998f8d782392690ae4118edf134..1a365207b419e178a5bd4b2a8b172e00417cebf7 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/contactperson/ContactPersonTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/basedata/contactperson/ContactPersonTile.tsx @@ -1,11 +1,12 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; import { ApiFacilityContactPerson } from "@eshg/employee-portal-api/base"; +import { SALUTATION_VALUES } from "@eshg/lib-portal/components/formFields/constants"; import { Grid } from "@mui/joy"; import { isNonNullish } from "remeda"; @@ -15,7 +16,6 @@ import { TileDivider } from "@/lib/businessModules/inspection/components/inspect import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { InfoTile } from "@/lib/shared/components/infoTile/InfoTile"; import { InfoTileAddButton } from "@/lib/shared/components/infoTile/InfoTileAddButton"; -import { SALUTATION_VALUES } from "@/lib/shared/components/personSidebar/constants"; export interface ContactPersonTileProps { contactPerson?: ApiFacilityContactPerson; diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/EmailSection.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/EmailSection.tsx index 4c453c974a9af970d37ca99ab15994ce3d149cc3..604a47617b7b4008e4a893be2dbf22812424e81f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/EmailSection.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/EmailSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/InspectionTabDisabled.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/InspectionTabDisabled.tsx index 16e2f1611f290a8c26b567af1f3976e88cf125e6..fed894b94c439f661ae597600a7254e7a81d399d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/InspectionTabDisabled.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/InspectionTabDisabled.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/PhoneNumberSection.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/PhoneNumberSection.tsx index 40a79ff946649021ce925f490d4bd27d96c9aae8..fbffdee0354d6ccaea101222198ce2f7bd88d391 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/PhoneNumberSection.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/PhoneNumberSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/TileDivider.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/TileDivider.tsx index f82012632d4951ec63bc310ff5acd5c7653274e0..81e16da7973d78e1a286b804ac5c6a2e0a85d2bb 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/TileDivider.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/TileDivider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/AppointmentSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/AppointmentSidebar.tsx index b1322fbae651ebccf089a5203e0d3e22e4c575ae..92e7ad81c46c23950727c118af0004ab0b80d6d0 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/AppointmentSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/AppointmentSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/appointmentUtils.ts b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/appointmentUtils.ts index 7f6756b7ae36f36854e9a64f0eb6825088ddacde..5277068728b29fa8aa0afb97ab9d0f184f29895c 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/appointmentUtils.ts +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/appointment/appointmentUtils.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/facility/FacilityTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/facility/FacilityTile.tsx index 7f317732dda2888bd63543dfb9b7777dda8d8f5b..7d5910bd2e13a888e43d7507c9d446d6e32a6c47 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/common/facility/FacilityTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/common/facility/FacilityTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/ExecutionSidePanel.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/ExecutionSidePanel.tsx index 37c93e2b7324f4620126a134a2fe2b1c34400bd0..9df913809c69c1be9caeb5b9bbef32246d28fd4c 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/ExecutionSidePanel.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/ExecutionSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -26,11 +26,11 @@ import { SidePanelNavigationTab, } from "@/lib/businessModules/inspection/components/inspection/execution/SidePanelNavigation"; import { useChecklistValidateContext } from "@/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistValidateContext"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { SidePanel } from "@/lib/shared/components/sidePanel/SidePanel"; import { SidePanelTitle } from "@/lib/shared/components/sidePanel/SidePanelTitle"; import { UserLink } from "@/lib/shared/components/users/UserLink"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useIsOffline } from "@/lib/shared/hooks/useIsOffline"; interface ExecutionSidePanelProps { diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModal.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModal.tsx index 81b2241c8e0a09e3de4b82f1d4d51c7d60dae678..a4e90ad20b2d2d25549f58c7567e2228a5068fb2 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModal.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModalContent.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModalContent.tsx index 2f7f550cec38a5e111c4ecf6ea9dfbeb1a3340db..237595967354fac78844848e77ad8ff4e3fd3cba 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModalContent.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/FinalizeInspectionModalContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/InspectionTabExecution.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/InspectionTabExecution.tsx index 56ed2107652b65227f6010aae707047f59e153cc..16955318d977a3d0b1727e4bf8f1c92e09aec36b 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/InspectionTabExecution.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/InspectionTabExecution.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -43,7 +43,7 @@ import { ChecklistValidationProvider } from "@/lib/businessModules/inspection/co import { IncidentsPanel } from "@/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsPanel"; import { ChecklistSelectSidebar } from "@/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebar"; import { inspectionIsBeforePhase } from "@/lib/businessModules/inspection/shared/enums"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export enum InspectionExecutionTabType { CHECKLIST, diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/SidePanelNavigation.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/SidePanelNavigation.tsx index 9244ff299a89bcdc528bd35ac379ee1adde2617e..50094ebcdf76d33937a7a124639a6c55e7a0b8e0 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/SidePanelNavigation.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/SidePanelNavigation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/Checklist.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/Checklist.tsx index bad46a051636223cbb1119d08637a53b7824daae..1bf4a1b6924abfa4a6f0244dc19c307a57879d28 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/Checklist.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/Checklist.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistSection.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistSection.tsx index 8a50f32b56da18a26fad0f810334bbd6fd8eafc7..6bfe8c95ae7dbd282c6457b6f2587f20912b741c 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistSection.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistValidateContext.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistValidateContext.tsx index e0cd36d116977872f9d5ae5855f2f4e188f9ddb5..819423bf15c1db12860d6e833152fd494dc148a3 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistValidateContext.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/ChecklistValidateContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistCheckboxElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistCheckboxElement.tsx index 1394d0e866f641a497e990e53ff49999ebe7427c..0896ec2d65455379a7a1d8f6f7d8add7c5458403 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistCheckboxElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistCheckboxElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistFileElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistFileElement.tsx index f150f27906767292fcb1acee60ea73885db1cc3f..839376ab7561a30f81e794465f7ad135b524df56 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistFileElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistFileElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,10 @@ import { ApiFileType } from "@eshg/employee-portal-api/inspection"; import { FormPlus } from "@eshg/lib-portal/components/form/FormPlus"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; +import { FileLike } from "@eshg/lib-portal/components/formFields/file/validators"; +import { formatFileSize } from "@eshg/lib-portal/helpers/file"; +import { validateFile } from "@eshg/lib-portal/helpers/validators"; import { DeleteOutlined, OpenInNew } from "@mui/icons-material"; import { Stack, Typography } from "@mui/joy"; import { useId } from "react"; @@ -23,10 +27,6 @@ import { } from "@/lib/shared/components/FileCard"; import { InfoIconTooltipButton } from "@/lib/shared/components/buttons/IconTooltipButton"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; -import { FileLike } from "@/lib/shared/components/formFields/file/validators"; -import { formatFileSize } from "@/lib/shared/helpers/file"; -import { validateFile } from "@/lib/shared/helpers/validators"; interface ChecklistFileElementProps { inspectionExternalId: string; diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistIncidentToggle.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistIncidentToggle.tsx index d36c7aa43918b543ea6c88562f2e8cce819ce257..ada883e52d1031644cc006c049270c0b906cc734 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistIncidentToggle.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistIncidentToggle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistLabel.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistLabel.tsx index 8193284c49a2f7a4843cac20b134f4f02941a0f9..8865ef27cb8b83e11f6795a261d5d075aaa45e9d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistLabel.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistLabel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistMultiSelectElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistMultiSelectElement.tsx index c40edec6d892fd25d4fedc15ab9273b80ba750b1..d20f94077fb4544e7f065b7c7673d1a591d1c88a 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistMultiSelectElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistMultiSelectElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistRadioButtonElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistRadioButtonElement.tsx index 377cc476179b73d118925d80397d47c7263f8618..59c7f5a95b684b343642eddc2ea04dcfb6422e85 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistRadioButtonElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistRadioButtonElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistSectionElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistSectionElement.tsx index f0b1156d0f31187e38f223e4b1fd74e2f0ccb34d..67e9c6bf37b583651229da6eefea7da7bc5581f4 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistSectionElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistSectionElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistTextareaElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistTextareaElement.tsx index 6c0b3226a19c85f8fbc5dc7882cf150c1df48c58..99e126e152bc4b9bc2a623b497bcbb7d5ba8356e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistTextareaElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/ChecklistTextareaElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/helpers.ts b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/helpers.ts index 7ca53281202b28da13d92392d65774b1e6075157..bb1e096320688e660c56914508684a168f1820b1 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/helpers.ts +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/checklist/form/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentSidebar.tsx index 2464472f37a4aedaface02ef40df747221e85ddf..c3cdf803d3a0369165e92643bcb3dc6d6f820122 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsPanel.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsPanel.tsx index e2afc4531e5b77223db3887cadabb8c51b4f2728..b7d63b628655b9d80b9b6c75b85b6037c9cb10a4 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsPanel.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsTable.tsx index 9f3b81892636e50f11623d41a3da1c19d44f3624..e70225152baf8720c815e0d5974fdffebe456d75 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/execution/incident/IncidentsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,8 +10,8 @@ import { ColumnHelper, createColumnHelper } from "@tanstack/react-table"; import { useDeleteIncident } from "@/lib/businessModules/inspection/api/mutations/incidents"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface IncidentsTableProps { incidents: ApiInspectionIncident[]; diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionHistoryTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionHistoryTable.tsx index df9b6a4aa647c108b78532afa4167403af8f3179..909524ee49ea484a1c42153d184c71114e7ad170 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionHistoryTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionHistoryTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionTabHistory.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionTabHistory.tsx index 3b856978dc74c47b4aab3b9fe47a4a7254f2e078..265a324fb39d35efd62e6c8732862be6f9f6e281 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionTabHistory.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/history/InspectionTabHistory.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/history/columns.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/history/columns.tsx index dd7e817658421997508ea5899d8c01ac62fc283b..e72becc7b349a8aebac06ea8828db0cc72fcc51d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/history/columns.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/history/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AddInspectionTiles.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AddInspectionTiles.tsx index 6d2281c6f09e3d88b2709e096142e2ae84fd5ccf..fc080bb41fe9286f451aba8067eaa9ea18c941c1 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AddInspectionTiles.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AddInspectionTiles.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AdditionalInfoTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AdditionalInfoTile.tsx index 14b4f1f12037242223f7cef1f018cb592371f677..a3b6d0be03ac7138cdd4c7e3e15db5013c5efb02 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AdditionalInfoTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/new/AdditionalInfoTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/InspectionTabPlanning.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/InspectionTabPlanning.tsx index 0bedd39d7c50378bbca290b642238e6698ae3e5c..2760ad7910420d5ad95e8a775278e7ecc6a7c33f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/InspectionTabPlanning.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/InspectionTabPlanning.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -13,7 +13,7 @@ import { Box, useTheme } from "@mui/joy"; import { useSuspenseQueries } from "@tanstack/react-query"; import { useUserApi } from "@/lib/baseModule/api/clients"; -import { headerHeightDesktop } from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; import { useInspectionApi } from "@/lib/businessModules/inspection/api/clients"; import { getAvailableCLDVsQuery, @@ -51,6 +51,7 @@ export function InspectionTabPlanning({ const theme = useTheme(); const { width } = useWindowDimensions(); + const { headerHeightDesktop } = useHeaderHeights(); const isLargeLayout = width && width >= theme.breakpoints.values.lg; const isOffline = useIsOffline(); diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementSidebar.tsx index 9a88d19dfa8f7750064d0eac3a41ff9d32339289..11d02144649f1ebb6c3552f73c79f5a276e66ba1 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementTile.tsx index 097f6fc029570c696b296b28df851d845ca55c26..3c30660f78daad7c6d9a4ae9db81bdfad8ef76fe 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/announcement/AnnouncementTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/appointment/AppointmentTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/appointment/AppointmentTile.tsx index 0edec27d9e82c83893397c713a0dbaae738e3b3d..16d827bde17abf9f0dc1fe8e0ad89a4b38582c19 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/appointment/AppointmentTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/appointment/AppointmentTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebar.tsx index bf0e78cdda12433c004af1ae0376cdbf2410131a..0808570df3673f799f84dfb6e57ef670ec2dc9c9 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebarForm.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebarForm.tsx index 9b03686da789d61937a890f7e025a1b499948759..4c593daf8421fbb8bb6166743b895d96156de2ad 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebarForm.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebarForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistTile.tsx index 4ee21a4960ba8752332a489b26aa4818c73c1c23..8308f63c0a94ba21e7dae2875b537cc1dfc560d8 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -20,9 +20,9 @@ import { useState } from "react"; import { useUpdateInspection } from "@/lib/businessModules/inspection/api/mutations/inspection"; import { inspectionGettersQueryKey } from "@/lib/businessModules/inspection/api/queries/inspection"; import { ChecklistSelectSidebar } from "@/lib/businessModules/inspection/components/inspection/planning/checklist/ChecklistSelectSidebar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { InfoTile } from "@/lib/shared/components/infoTile/InfoTile"; import { InfoTileAddButton } from "@/lib/shared/components/infoTile/InfoTileAddButton"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface ChecklistTileProps { readonly?: boolean; diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventorySidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventorySidebar.tsx index 8ea0b6dc7420de1b45310ff019ed0f7e7d6c304e..4724fa9a2b6c332e63ff08739d8256584fc48773 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventorySidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventorySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTable.tsx index 899ce2d61226fe0b2ab1f6527094a1b7f705501f..5edc302c77617f047e7d97f0f858f020a1fbee6e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,8 +11,8 @@ import { isDefined } from "remeda"; import { inventoryItemTypeNames } from "@/lib/baseModule/components/inventory/constants"; import { useModifyInventory } from "@/lib/businessModules/inspection/api/mutations/inventory"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface InventoryTableProps { readonly?: boolean; diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTile.tsx index 7198e1c2e14ed472782dbf8f4fe16e07946284e3..0d38cf35672af53e28758e3d9babf27dfaab9dbb 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/inventory/InventoryTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/Packlist.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/Packlist.tsx index ca8e0172f7d3cf50f4faec436c1bcc85ae80a2da..fe6d5d79509ed52da17b37a0182ea64bf2a67468 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/Packlist.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/Packlist.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebar.tsx index 6bb4d687766ee602babbe74fce72b996e08f7641..101863040667ac6b07fff1498c6f7b1e39158022 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebarForm.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebarForm.tsx index a974014252772c141e92ad89df3521f8abedc115..ad8f5550f90c023490cf886873e8576e6f074596 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebarForm.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebarForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistTile.tsx index 18583e0c81cff69657167de857d15ab1a961db4e..8f9a669aa1595106a46822b035659f47eda5230b 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -23,9 +23,9 @@ import { } from "@/lib/businessModules/inspection/api/queries/packlist"; import { Packlist } from "@/lib/businessModules/inspection/components/inspection/planning/packlist/Packlist"; import { PacklistSelectSidebar } from "@/lib/businessModules/inspection/components/inspection/planning/packlist/PacklistSelectSidebar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { InfoTile } from "@/lib/shared/components/infoTile/InfoTile"; import { InfoTileAddButton } from "@/lib/shared/components/infoTile/InfoTileAddButton"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface PacklistTileProps { readonly?: boolean; diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceSidebar.tsx index cee9fcb2c1e8e3fd4d1a86f713c6ea76337e63bc..ccb1fab0a0f61db48bda2c57d016da23399da652 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceTile.tsx index 6fb99416bbc035430588fbb048c13a8c5221062d..07aa0815e5c4fb28ff3a5eab356b3f49ee59a8ce 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourceTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourcesTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourcesTable.tsx index bf7fe169de94cb2741b2580d44deb030f36ee98d..4495f3440c5d0f07a57565e61ff0aedab6f6af81 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourcesTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/resource/ResourcesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -22,9 +22,9 @@ import { isDefined } from "remeda"; import { resourceTypeNames } from "@/lib/baseModule/components/resources/constants"; import { useDeleteResource } from "@/lib/businessModules/inspection/api/mutations/resources"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { formatDateTimeRange } from "@/lib/shared/helpers/dateTime"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface ResourcesTableProps { readonly?: boolean; diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeSidebar.tsx index 296c2d2d2a446f3912cb33794ff3afb80550c242..9a2fcaeadcb0a3afaa5bd96d5f698d44a7be70a2 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeTile.tsx index f48673df876f9d8560cee59a8236120d773c09ac..455a75188f8994347b47608da365b5f3c3795fa7 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/planning/traveltime/TravelTimeTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidePanel.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidePanel.tsx index 88ebcb0cdda92aeaf0956d1743772dc72c88c139..e375d10b8154f0a671a27af050d6df8dd8ab665f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidePanel.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidebar.tsx index cd3f72f0966ad810d33d1c5ae0ffe22c538b9621..7312e0a33039bfd75d24d97b69ebd729462742c9 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionResultSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionTabReportResult.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionTabReportResult.tsx index 9e8d6690c54e7a77d2f3fd4ff62be89365d442c2..12a935742869ab649843269126b38433c7720407 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionTabReportResult.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/InspectionTabReportResult.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportApprovalButtons.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportApprovalButtons.tsx index 263e684f423e07b2e8a871cec63a25d6b12f2fbf..75389c9dcdffb39af66288a230ef054b168fae49 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportApprovalButtons.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportApprovalButtons.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -19,7 +19,7 @@ import { useApproveInspection } from "@/lib/businessModules/inspection/api/mutat import { inspectionHasResult } from "@/lib/businessModules/inspection/components/inspection/reportresult/reportutils"; import { inspectionIsBeforePhase } from "@/lib/businessModules/inspection/shared/enums"; import { routes } from "@/lib/businessModules/inspection/shared/routes"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useIsOffline } from "@/lib/shared/hooks/useIsOffline"; export function ReportApprovalButtons({ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportDownloadButtons.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportDownloadButtons.tsx index 4d8d7acb3a1ef23fa3f6944649a02fedbeeb4de6..9486f251ff990c960a582be348b22266377b2ccc 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportDownloadButtons.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/ReportDownloadButtons.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/editor/InspectionReportEditor.tsx b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/editor/InspectionReportEditor.tsx index f78fc6777d2f9a191c7eb9ffc8764fab3637c65d..e3124eb2a04cce34fd2b2b746409f7e29c2c9c60 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/editor/InspectionReportEditor.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/editor/InspectionReportEditor.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/reportutils.ts b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/reportutils.ts index ad3826429587f8f8502ec603af515cf4446c1286..7a5bfc3e54e8cb0e2775fa295145db580281f7cf 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/reportutils.ts +++ b/employee-portal/src/lib/businessModules/inspection/components/inspection/reportresult/reportutils.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/objectType/EditObjectTypeSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/objectType/EditObjectTypeSidebar.tsx index baa4f65b7856b6c4bba7107529a3322f60043851..37e213cc9234fe8296d6708be067c8eb30b9f5e9 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/objectType/EditObjectTypeSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/objectType/EditObjectTypeSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,12 +14,12 @@ import { Grid } from "@mui/joy"; import { Formik } from "formik"; import { useUpdateObjectType } from "@/lib/businessModules/inspection/api/mutations/objectTypes"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { CheckboxField } from "@/lib/shared/components/formFields/CheckboxField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { SidebarWithFormRefProps, useSidebarWithFormRef, diff --git a/employee-portal/src/lib/businessModules/inspection/components/objectType/ObjectTypesTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/objectType/ObjectTypesTable.tsx index ba34952bfba2fe059f6b2eddbaefae65087a6024..345169128e2a02f4782138eff756a62ef982a89d 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/objectType/ObjectTypesTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/objectType/ObjectTypesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreateOrEditPacklistDefinitionSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreateOrEditPacklistDefinitionSidebar.tsx index d9c68267d85d8b3c6edd8601fcda989c70e28baa..079f6319a3c4799b669004a19a472b2241066c78 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreateOrEditPacklistDefinitionSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreateOrEditPacklistDefinitionSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreatePacklistDefinitionSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreatePacklistDefinitionSidebar.tsx index 58dc8b902962700876418d550dd277139b84a437..cb4aaf04adef2a2a0e9478bcf14fb45beb1068ed 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreatePacklistDefinitionSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/CreatePacklistDefinitionSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/EditPacklistDefinitionSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/EditPacklistDefinitionSidebar.tsx index 48523f5af1fda0d5760c39d65b8a1e5729ebde42..d6219d46f67359777f7416af633f025018b34c9a 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/EditPacklistDefinitionSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/EditPacklistDefinitionSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/PacklistDefinitionOverviewTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/PacklistDefinitionOverviewTable.tsx index 8a99a74ae4cd7c13021171e2939ca2a315307aa7..4bea82918b0ef5fa50aa4252c5bfb3dae9825f45 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/PacklistDefinitionOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/PacklistDefinitionOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElement.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElement.tsx index 852283d1fb64708bd30b150b8d7e07eeb68b5d37..723270f28a7969675cba0d25ab9ce89d9f12122f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElement.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElementsList.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElementsList.tsx index 726b23ee3da34c066dde051e91b0c43d8eb6bbdb..bc2e0e3f2d6da140aff5ec4d65925be41f2e8b47 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElementsList.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/elements/PacklistDefinitionElementsList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderCard.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderCard.tsx index 3dae8a27270be9a17f6d8bbae5838cdb14fbcb67..e8c1fab8425fc1e1bb45defd0cec5d038fb20e88 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderCard.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderRow.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderRow.tsx index 65c6c832334e1b1294575a9e76c2d85a8e68d144..ee8f863e3787c45ab7ff739e7b4f6341e895de3e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderRow.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/header/PacklistDefinitionHeaderRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/helpers/CopyDeleteDropdown.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/helpers/CopyDeleteDropdown.tsx index 4a041eb041da10cf885cceb0c5c8fd6e6f886042..f03ce6bb0b17b9b1d65da110b6719f4c1d7e031f 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/helpers/CopyDeleteDropdown.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/helpers/CopyDeleteDropdown.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistDefinitionRevisionTile.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistDefinitionRevisionTile.tsx index d9530580f4c1517257995f86350bdd529f6453c9..2f5c68095641f6fd41f34e232e2939dd08efc8ef 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistDefinitionRevisionTile.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistDefinitionRevisionTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistRevisionsSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistRevisionsSidebar.tsx index dd37bcfde622f488f254d7323a83098f791ebd31..0690b7f4f159ecb09dab3fb9d6451dbd76b35440 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistRevisionsSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/packlistDefinition/sidebars/PacklistRevisionsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportButton.tsx b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportButton.tsx index 79ed7102b9d9e6e74e8489ae75ddfa7326f85271..3fc5140e31d0de18de5dee57986b5390384698a5 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportButton.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportButton.tsx @@ -1,14 +1,12 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiUserRole } from "@eshg/employee-portal-api/base"; -import { ApiInspectionFeature } from "@eshg/employee-portal-api/inspection"; import FileUploadOutlinedIcon from "@mui/icons-material/FileUploadOutlined"; import { Button } from "@mui/joy"; -import { useIsNewFeatureEnabled } from "@/lib/businessModules/inspection/api/queries/feature"; import { PotentialDuplicatesFilterProps } from "@/lib/businessModules/inspection/components/facility/pending/PotentialDuplicatesWarning"; import { useProcessImportSidebar } from "@/lib/businessModules/inspection/components/processImport/ProcessImportSidebar"; import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; @@ -16,11 +14,10 @@ import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; export function ProcessImportButton({ onFilterForDuplicates, }: PotentialDuplicatesFilterProps) { - const isEnabled = useIsNewFeatureEnabled(ApiInspectionFeature.Import); const hasImportRole = useHasUserRoleCheck(ApiUserRole.InspectionImport); const { open } = useProcessImportSidebar({ onFilterForDuplicates }); - if (!isEnabled || !hasImportRole) { + if (!hasImportRole) { return null; } diff --git a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportForm.tsx b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportForm.tsx index aaf992c0c2040571324bb41eebaf33e327314870..9ef66f5309939504f7cbea519ca7fae1599f257e 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportForm.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportForm.tsx @@ -1,11 +1,12 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { DownloadLink } from "@eshg/lib-portal/api/files/DownloadLink"; import { useFileDownload } from "@eshg/lib-portal/api/files/download"; import { SubmitButton } from "@eshg/lib-portal/components/buttons/SubmitButton"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { FileDownload } from "@mui/icons-material"; import { Button, Stack } from "@mui/joy"; import { Formik } from "formik"; @@ -14,7 +15,6 @@ import { useImportApi } from "@/lib/businessModules/inspection/api/clients"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportPending.tsx b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportPending.tsx index 22a1e88ca2b306be8d9f1408e355bbf6573443a8..c8a206f51857bbbec4ca1282a89cdb7284598ef1 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportPending.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportPending.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportResult.tsx b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportResult.tsx index 1f0187fda4cc4a2dbcca7c4727fee35c092c8180..58e844b2a9fe7ffd1ed31c99880b785680bbb5c1 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportResult.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportResult.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportSidebar.tsx index e86718bc8cd161c4e149263850201b5016927b6a..4d5387501d0dc21ac0904c756068c6a7b9b57a05 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/processImport/ProcessImportSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/processImport/formatters.ts b/employee-portal/src/lib/businessModules/inspection/components/processImport/formatters.ts index dc81b732d1296ab6899179ddbf6142a0a7ede433..f543cc9c7e6ce3e4167345ef7cd21fb3da61bb25 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/processImport/formatters.ts +++ b/employee-portal/src/lib/businessModules/inspection/components/processImport/formatters.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/repository/ChecklistDefinitionRepoOverviewTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/repository/ChecklistDefinitionRepoOverviewTable.tsx index fb096f17febbc868e07367a96ca0ab9fdc7eb69e..cbaa779abbf02d0404d0c4d74b0310baa1384ed5 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/repository/ChecklistDefinitionRepoOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/repository/ChecklistDefinitionRepoOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -19,11 +19,11 @@ import { createCldRepoOverviewTableColumns, getRepoOverviewRowRoute, } from "@/lib/businessModules/inspection/components/repository/overviewTableColumns"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; import { useHasUserRolesCheck } from "@/lib/shared/hooks/useAccessControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function ChecklistDefinitionRepoOverviewTable() { const { data: repoMetadataList, isFetching } = diff --git a/employee-portal/src/lib/businessModules/inspection/components/repository/MetadataDetailsSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/repository/MetadataDetailsSidebar.tsx index 8e0fe8e5c44922f480d7554f00d148259cd7c613..743d7ba34eaf0abf98d4cb08f02b3caee8d520ad 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/repository/MetadataDetailsSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/repository/MetadataDetailsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/repository/RepoCLDInfoCard.tsx b/employee-portal/src/lib/businessModules/inspection/components/repository/RepoCLDInfoCard.tsx index d90af2b4f15ec270c762fc218af8efa68f4f4717..091434ef1f0bce154dee9ad208e6337a461f7747 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/repository/RepoCLDInfoCard.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/repository/RepoCLDInfoCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/repository/overviewTableColumns.tsx b/employee-portal/src/lib/businessModules/inspection/components/repository/overviewTableColumns.tsx index a1a8ce172d54599c30d6ffbf5cb7c8978e197b64..4f39f0df016bb8f7fc8c4903364bfeac929ac96a 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/repository/overviewTableColumns.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/repository/overviewTableColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/repository/utils.ts b/employee-portal/src/lib/businessModules/inspection/components/repository/utils.ts index c35ef571ca06b6d31f0923255fa643447b84106e..d129b7721034b8cf294c826e4a19876749207bc6 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/repository/utils.ts +++ b/employee-portal/src/lib/businessModules/inspection/components/repository/utils.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/textBlock/EditTextBlockSidebar.tsx b/employee-portal/src/lib/businessModules/inspection/components/textBlock/EditTextBlockSidebar.tsx index 872b39c7a8e5294deff306f391e2406fac57ddb1..99d209afc7bd970e8222fdc42efa9c700cd13ede 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/textBlock/EditTextBlockSidebar.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/textBlock/EditTextBlockSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/components/textBlock/TextBlocksTable.tsx b/employee-portal/src/lib/businessModules/inspection/components/textBlock/TextBlocksTable.tsx index 2bd96f74669212530d46c333484f739db27e9112..ea5af95b25f7f36634b09efa3ad13313c57ce681 100644 --- a/employee-portal/src/lib/businessModules/inspection/components/textBlock/TextBlocksTable.tsx +++ b/employee-portal/src/lib/businessModules/inspection/components/textBlock/TextBlocksTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,13 +15,13 @@ import { useDeleteTextBlock } from "@/lib/businessModules/inspection/api/mutatio import { EditTextBlockSidebar } from "@/lib/businessModules/inspection/components/textBlock/EditTextBlockSidebar"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; import { SearchFilter } from "@/lib/shared/components/tableFilters/SearchFilter"; import { useTableControl } from "@/lib/shared/hooks/searchParams/useTableControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; const columnHelper = createColumnHelper<ApiTextBlock>(); diff --git a/employee-portal/src/lib/businessModules/inspection/shared/constants.ts b/employee-portal/src/lib/businessModules/inspection/shared/constants.ts index 3b117eaee8a665b91ad2a4b991d6be5f2bacd919..5bfbe80e1cd7b6ef4ab2e27e5bdd9b47908f18ad 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/enums.ts b/employee-portal/src/lib/businessModules/inspection/shared/enums.ts index 5e35550f948cc125b4ac3530e4348fb8592c9784..5471ef5f71608b73b2a05494fa046d423163f61a 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/enums.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/enums.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/isSafari.ts b/employee-portal/src/lib/businessModules/inspection/shared/isSafari.ts index 19a0f64b1f2267b06517a9235b66594595c00eec..8e6495575fd19edde5bf5e27b7c6bcf5516254df 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/isSafari.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/isSafari.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/isUnknownUser.ts b/employee-portal/src/lib/businessModules/inspection/shared/isUnknownUser.ts index 853999ce1b0522681cceed3900271b7afc184a44..bd6b7531c794e018349317334800aecfd7cd9771 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/isUnknownUser.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/isUnknownUser.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/inspection/shared/moduleUserGroup.ts index 26f638007bc99a5a14724eb05a3192078094eef8..78dd97b8082238185653648ba71afecf33a96a9f 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/ServiceWorkerProvider.tsx b/employee-portal/src/lib/businessModules/inspection/shared/offline/ServiceWorkerProvider.tsx index 9a4979cb41c661189dc3bb23f13c499236c72345..1c386832b7e995c70a4fe82180c86bdcae996396 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/ServiceWorkerProvider.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/ServiceWorkerProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/deleteInspectionFromAllCaches.tsx b/employee-portal/src/lib/businessModules/inspection/shared/offline/deleteInspectionFromAllCaches.tsx index 41eed7e21ebe118aa055c199b4310bdd7964d4f0..90b7105e1b098d9eb9c4132be993fa2e46145eb0 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/deleteInspectionFromAllCaches.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/deleteInspectionFromAllCaches.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/getHeadersForOfflineCaching.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/getHeadersForOfflineCaching.ts index dba4529fcaeff980f636b90344313b9b3a00fdbc..3ae1faa1862f2449b73eaba118a703283068dbf8 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/getHeadersForOfflineCaching.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/getHeadersForOfflineCaching.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineExistingPasswordDialog.tsx b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineExistingPasswordDialog.tsx index 51b4e13ae833f0bbd392ca1504f86d35a885de99..796201fc39304be3772f14bd5dc47e8c74f050e3 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineExistingPasswordDialog.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineExistingPasswordDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineNewPasswordDialog.tsx b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineNewPasswordDialog.tsx index 59c5f93e0f97a33e90e64e5943340a10f900cb69..fc8ed931e472be8e61cf854189477d691a4e18fb 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineNewPasswordDialog.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflineNewPasswordDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordDialog.tsx b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordDialog.tsx index 8fc226e6a47950f2bbc085da5a0de8b209e37638..8f811d700789a1678eb8ef8b417da0ca950cbdc7 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordDialog.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordPrompt.tsx b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordPrompt.tsx index 9a6f2f3c05c9704c53120c6138dfd3c98e83e48c..7fa56b2325525e89eb97ef2d10c8c67f4b99fb3b 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordPrompt.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/OfflinePasswordPrompt.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -18,7 +18,7 @@ import { OfflineNewPasswordDialog } from "@/lib/businessModules/inspection/share import { hasQueuedRequests } from "@/lib/businessModules/inspection/shared/offline/password/hasQueuedRequests"; import { isServiceWorkerRegistered } from "@/lib/businessModules/inspection/shared/offline/registerServiceWorker"; import { useIsOfflineFeatureEnabled } from "@/lib/businessModules/inspection/shared/offline/useIsOfflineFeatureEnabled"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { SALT, getInspectionOfflineDb, diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/chunkArray.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/chunkArray.ts index 7741189b6b201d56095ac5a55752cf00a8816ee6..9f066a9f4f291d8726c1bcbed715901b160e89c1 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/chunkArray.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/chunkArray.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/hasQueuedRequests.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/hasQueuedRequests.ts index 2bc4d42693950e5b85b6aef63a5c9ff49ca9df0a..710b9d7292bea0fe3a96f9f816664b192cd79e98 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/password/hasQueuedRequests.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/password/hasQueuedRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/registerServiceWorker.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/registerServiceWorker.ts index ae02a0ab54cb77918827cbaeafeeb6fe1cf94dc8..e7a0d221230da512f038a159c7d0f88008fad0bb 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/registerServiceWorker.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/registerServiceWorker.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/unregisterServiceWorker.tsx b/employee-portal/src/lib/businessModules/inspection/shared/offline/unregisterServiceWorker.tsx index 77383cea7a9a0c55ba3dc2e697d71bd945bfd563..fd6da91944c7610c7dd437db0934f40a46fccf63 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/unregisterServiceWorker.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/unregisterServiceWorker.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/useInspectionPrecacheState.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/useInspectionPrecacheState.ts index 5fa12e3893f774dda59c5f705b93a146198d4c69..0ade7561f33bec6e8313da73d7e399afa4ac296d 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/useInspectionPrecacheState.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/useInspectionPrecacheState.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/useIsOfflineFeatureEnabled.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/useIsOfflineFeatureEnabled.ts index 5c60511afa5d72ad847fa282c24df69eb20a02b1..7252bd8d6396f14bbb54e9632591fdff6ad17116 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/useIsOfflineFeatureEnabled.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/useIsOfflineFeatureEnabled.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/usePrecacheInspections.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/usePrecacheInspections.ts index e63c27f604fcba41e76166c0e8ea35aaa4be1666..3be0d511dbd5a08cca80281ef21e8b6169108b52 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/usePrecacheInspections.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/usePrecacheInspections.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -311,15 +311,6 @@ async function prefetchAll({ progressEntryApi.getProgressEntry(inspectionId, entryId, headers), }), ); - // pre-fetch progress entry details page - inspPromises.push( - ...precachePage( - inspectionRoutes.procedures - .progressEntries(inspectionId) - .details(entryId), - headers, - ), - ); } // 1.8.3 pre-fetch progress entries file details inspPromises.push( @@ -368,7 +359,7 @@ async function prefetchAll({ inspectionRoutes.procedures.planning, inspectionRoutes.procedures.execution, inspectionRoutes.procedures.reportResult, - (id: string) => inspectionRoutes.procedures.progressEntries(id).index, + (id: string) => inspectionRoutes.procedures.progressEntries(id), inspectionRoutes.procedures.details, inspectionRoutes.procedures.history, ]; diff --git a/employee-portal/src/lib/businessModules/inspection/shared/offline/useServiceWorkerSyncQueue.ts b/employee-portal/src/lib/businessModules/inspection/shared/offline/useServiceWorkerSyncQueue.ts index e2fb5dd8c448876c6a47e38b946f976150b942f0..bfa041593923851ba5b84911fff2c2eaa6f73d92 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/offline/useServiceWorkerSyncQueue.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/offline/useServiceWorkerSyncQueue.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/routes.ts b/employee-portal/src/lib/businessModules/inspection/shared/routes.ts index 59c16dfbf819a5652880c225d2b868f583bea36b..95c1b26e5fb650902e064c79c627e145c2614976 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -73,11 +73,8 @@ export const routes = { `${proceduresPath}/${procedureId}/reportresult`, reportEditor: (procedureId: string, reportId: string) => `${proceduresPath}/${procedureId}/reportresult/edit/${reportId}`, - progressEntries: (procedureId: string) => ({ - index: `${proceduresPath}/${procedureId}/progress-entries`, - details: (entryId: string) => - `${routes.procedures.progressEntries(procedureId).index}/${entryId}/details`, - }), + progressEntries: (procedureId: string) => + `${proceduresPath}/${procedureId}/progress-entries`, history: (procedureId: string) => `${proceduresPath}/${procedureId}/history`, new: (procedureId: string) => `${proceduresPath}/new/${procedureId}`, diff --git a/employee-portal/src/lib/businessModules/inspection/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/inspection/shared/sideNavigationItem.tsx index 51f9e85dc21f8c30b883e7fb5187afb924bdb675..f561a5b8c2c632b859c9a64db2a33d0a43882888 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/inspection/shared/sideNavigationItem.tsx @@ -1,10 +1,10 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiUserRole } from "@eshg/employee-portal-api/base"; -import { EmojiTransportation } from "@mui/icons-material"; +import { OtherHousesOutlined } from "@mui/icons-material"; import { SideNavigationSubItem, @@ -16,7 +16,7 @@ import { routes } from "./routes"; const sideNavigationItem = { name: "Begehung", - decorator: <EmojiTransportation />, + decorator: <OtherHousesOutlined />, }; const defaultSubItems: SideNavigationSubItem[] = [ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/types.ts b/employee-portal/src/lib/businessModules/inspection/shared/types.ts index 52542c1acc99062ee40897dd2c777f2a095082fb..a87805ded7eae48348a76c0562084e8e01129519 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/types.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/inspection/shared/useCreateInboxProcedure.ts b/employee-portal/src/lib/businessModules/inspection/shared/useCreateInboxProcedure.ts index c3d678ee5b4f7d610b9dc13e0fa785941689f4b8..7abe282ff0d1956ad650299e09c50af12cf016b1 100644 --- a/employee-portal/src/lib/businessModules/inspection/shared/useCreateInboxProcedure.ts +++ b/employee-portal/src/lib/businessModules/inspection/shared/useCreateInboxProcedure.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/clients.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/clients.ts index 11913eb3ebffd963eb4174dd806b8097f8f9b4a4..06fd320256fb925be96fbbca09628215d40976cd 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/clients.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/download/files.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/download/files.ts index e192015131ce73b04d20dceb746e75729bb958de..31cdf3fbb73e941e5045df05b9b07e612d5859e3 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/download/files.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/download/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/models/AppointmentBlockGroup.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/models/AppointmentBlockGroup.ts index 401024df93f794bf6a3963d26b3e87a09807d5ed..0ef6db7cba443ea2b68eb765ba025879bbd8b3ba 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/models/AppointmentBlockGroup.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/models/AppointmentBlockGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBlockApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBlockApi.ts index ae03362e05f083d0e6752f5374afedb0a0e3ef5c..cfc0afaf338194403a50749ff097ae517e485495 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBlockApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBlockApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBookingApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBookingApi.ts index abf57e795a9b567b6915a1e4e2725b88c9cb996b..5a74b9a01b5858d1615afe6db3f88cbb0025c147 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBookingApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/appointmentBookingApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/approvalRequests.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/approvalRequests.ts index 86f8fc21eaab766247f04cc7d56eca263e06a6a3..a7c43eff0689983c998aa0652f8ccf801fcd7342 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/archiving.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/archiving.ts index 1773314df02f25e03176fa47184a7a8738c5a960..a39b5f66faf8a88fa501009a51c11d1f091256b8 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/archiving.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/files.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/files.ts index 8e1083a105d8f21719ffbed3cdb4cb1d939dbb5a..6affc7dd3c88bb8f52c55c73cc573a29f46d2dbf 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/files.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/inbox.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/inbox.ts index 3bc7ec6eb6359a3d5b88f29d10fa415e5dd5e759..f466db85f7311bb80107929fa4fa81bdff325e0b 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/inbox.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/inbox.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/measlesProtectionApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/measlesProtectionApi.ts index dfea3c3ea5b71ba7e94a3f326761f934f1622dfb..9989852bb6a304620475589413c850d6a07b2b02 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/measlesProtectionApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/measlesProtectionApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/procedures.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/procedures.ts index df093dff14b450ba12494d71e9da2a4f855d062d..57096279f1805dbe09c53a9ff5996432660425e8 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/procedures.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/procedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/progressEntries.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/progressEntries.ts index 2cd9cd7c0275aff87d318f9709cf406645730bcc..6691ed0c37e67220a29d589e8892168050021ff1 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/statusTransitionApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/statusTransitionApi.ts index dafbb41a8d4ded63666a36f4c359cd73c6d810ec..0c312f69d687fe18fe0008aa951920c39084b075 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/statusTransitionApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/mutations/statusTransitionApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/apiQueryKeys.ts index 30618280c35786f0f27836cab72ab1bc76ecc5fd..c6580ea8c941612b4632cfa3a76d55f00908afcd 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBlockApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBlockApi.ts index 7e280729de3a73da3a2001e067beee4c27307109..f6e37d610d84682c7b2152f0cf40a904d6585dcf 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBlockApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBlockApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBookingApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBookingApi.ts index 2402a5050e90a93f010e0097197a2374bf6f0334..e4db2764b15f865c8900eb47e30ed5526e6eec45 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBookingApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentBookingApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentTypeApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentTypeApi.ts index 7dec2daa1b8809f84edf615b1b34226c5d995369..1575d15a6e2f972f9b810b42fe4736e1329efecf 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentTypeApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/appointmentTypeApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/archiving.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/archiving.ts index 6af19e7495febf67d3dd8985d4ff6be5229ac2a5..bfa5b4387a429d9121806b11703dba35a23221c9 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/archiving.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/featureTogglesApi.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/featureTogglesApi.ts index fe5e1968f0ff44c67e4ebdac9dee893ef6e71791..2713718ee6bd09bf52f928d6b3c9c3f53bcdd7ed 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/featureTogglesApi.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/featureTogglesApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/files.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/files.ts index 445fc76de1099a6ac0661aa22ae8dc06054fcfd5..010b7a7e4ab9f96bab89685c549c60bc9607c909 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/files.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/inboxProcedures.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/inboxProcedures.ts index e934ba4247360171d534978497f4fa8766f76644..ced6b9da7889e4b85ee90c4ee87c71ea78c8a96b 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/inboxProcedures.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/inboxProcedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/procedures.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/procedures.ts index 427299b7f2d80497f25fe696e2064adeb733bf06..44e93557791c63b6983b649a1a96ef64accd0d25 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/procedures.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/procedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/progressEntries.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/progressEntries.ts index a7396b896fac02d273582336ac89735d8d9e1168..05f44467d9a136469105dd3fbbe4c394383be1c4 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/proofRequestLetters.ts b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/proofRequestLetters.ts index 9027a05431ea47ba23caa7904593378ac63baee8..cda71f2087865a08cf2fe17778cfc60e93d1b3ed 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/api/queries/proofRequestLetters.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/api/queries/proofRequestLetters.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx index 47a6fca248f79c81b77324e6cac2a769dbc406ff..f49d06b5451fcf6b186c59b508f32b50ccb92c2f 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx index cf0fde3b1901f4ab9eaa7c9c3e8d3cbb737d0887..9a50c7e4ed4fe328f28b8fb922d279dae008bbed 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,10 +9,8 @@ import { ApiAppointmentBlockSortKey, ApiAppointmentType, } from "@eshg/employee-portal-api/measlesProtection"; -import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; import { formatDateTime } from "@eshg/lib-portal/formatters/dateTime"; -import { Schedule, TodayOutlined } from "@mui/icons-material"; -import { Chip, Stack, Typography } from "@mui/joy"; +import { Chip } from "@mui/joy"; import { ColumnSort, Row, createColumnHelper } from "@tanstack/react-table"; import { ReactNode } from "react"; import { unique } from "remeda"; @@ -28,6 +26,7 @@ import { type WeekdayCheckboxOption, getWeekdayFromDate, } from "@/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays"; +import { NoAppointmentBlocksAvailable } from "@/lib/shared/components/appointmentBlocks/NoAppointmentBlocksAvailable"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; @@ -269,33 +268,13 @@ export function AppointmentBlockGroupsTable( columns={COLUMNS} getSubRows={getSubRows} sorting={tableControl.tableSorting} - noDataComponent={() => <NoAppointmentBlocksAvailable />} + noDataComponent={() => ( + <NoAppointmentBlocksAvailable + href={routes.appointmentBlockGroups.new} + /> + )} /> </TableSheet> </TablePage> ); } - -function NoAppointmentBlocksAvailable() { - return ( - <Stack - sx={{ - alignItems: "center", - justifyContent: "center", - flex: 1, - }} - > - <TodayOutlined sx={{ height: "40px", width: "40px" }} /> - <Typography sx={{ mt: 2, mb: 3 }}> - Aktuell keine Terminblöcke vorhanden - </Typography> - <InternalLinkButton - href={routes.appointmentBlockGroups.new} - size="sm" - startDecorator={<Schedule />} - > - Neuen Terminblock planen - </InternalLinkButton> - </Stack> - ); -} diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx index b286517c96c2148ea65e7b706ce30ca1cc0b7807..8f97f51b60a35f2903f0cf612a3751345f031a95 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/options.ts b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/options.ts index 37853bbab1796ccd211a0b43db4d0a4eb08c2ac7..fc39b47f036800cc8eabe4bdcd2124f314ccd449 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/options.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/appointmentBlocks/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/constants.ts b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/constants.ts index 7913fadc91a37535937d39de83d8d248f4628057..ee7e4415d20bc1c84b055e104177a94fe7ded6e0 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/constants.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/createProceduresForm/NewPersonButton.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/createProceduresForm/NewPersonButton.tsx index 555a61c3ea26ed3ef67b07214c66c97f4c5ce86b..1b22e2da0b36759d9e31a320b1d2abf43aac9906 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/createProceduresForm/NewPersonButton.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/createProceduresForm/NewPersonButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionLetterSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionLetterSidebar.tsx index 15c758cdb65f3d0cff19826915f8ecbb9ed4742f..9d5fff0678f0ee380259834cbdf88d7ed2bf39ee 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionLetterSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionLetterSidebar.tsx @@ -1,9 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiGetProcedure200Response } from "@eshg/employee-portal-api/measlesProtection"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { Stack } from "@mui/joy"; import { Formik, useFormikContext } from "formik"; @@ -22,7 +23,6 @@ import { WrappedSelectField } from "@/lib/businessModules/measlesProtection/shar import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionSidebar.tsx index 90b898540d94ea2115391f83d31759552cc67d21..4688466f32d11c9a6437b75bab7d96404f9178e5 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AccessRestrictionSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddCustodianSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddCustodianSidebar.tsx index 62a08bd74c1cf4d43960eb21238cf4337d549b22..a83b8fb94f6862139f69dfc90c0d60f98a1b4c8b 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddCustodianSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddCustodianSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoSection.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoSection.tsx index 9e2d4af478738ef4654d73251510dbb81a77137d..4b21a183db05a568d7c037b7bb83912579d89ec6 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoSection.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -20,7 +20,7 @@ import { } from "@/lib/businessModules/measlesProtection/components/procedures/constants"; import { ReopenProcedureModal } from "@/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ReopenProcedureModal"; import { useProceduresContext } from "@/lib/businessModules/measlesProtection/shared/ProceduresContext"; -import { ConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; import { useSearchParam } from "@/lib/shared/hooks/searchParams/useSearchParam"; @@ -119,7 +119,7 @@ export function AdditionalInfoSection({ </Button> )} </Sheet> - <ConfirmationDialog + <EmployeePortalConfirmationDialog title={"Vorgang abschließen?"} description={"Möchten Sie diesen Vorgang wirklich abschließen?"} confirmLabel={"Abschließen"} diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoUpdateSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoUpdateSidebar.tsx index 9a6858110da3457b4aabefdaecec33c2d61909a7..4164792f79daa3f2365125c7f39022eb4e88c6de 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoUpdateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AdditionalInfoUpdateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddressDetails.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddressDetails.tsx index 0d9ac0b59f0033888f2ddf504822002fc8dfdeba..be238dc930e646250d9f991aecac8a448fc4eb7c 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddressDetails.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AddressDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AffectedPerson.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AffectedPerson.tsx index 3ec89b9894e0b80561652311e832294f50ced245..13539b04d04cd6ca70c71b6c7fc56e485474cca0 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AffectedPerson.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AffectedPerson.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AppointmentSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AppointmentSidebar.tsx index 5f0bb861fa47140cc1c8e517d7ab1308644fd2ba..01d2dd4b6104251b350edf49f71b259cec6b5adb 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AppointmentSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/AppointmentSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/CaseStatusSelect.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/CaseStatusSelect.tsx index 457e28b39bb8cdade85033a3959edec33ef66f16..58648cf67d8ff4caacf4e4b179ee48b5ac5fb344 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/CaseStatusSelect.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/CaseStatusSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Custodians.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Custodians.tsx index e651bb5402c2902b37e6302dac6ccc1640542b7c..a5392234a9b237e0b0f5f93742305a39f8cc40a1 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Custodians.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Custodians.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DateAndButtonRow.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DateAndButtonRow.tsx index b47f68fa681b236171aa1ea62e5c8ad3fc833538..3e04aed78ead097da59325ca7ccf61673a9ef23b 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DateAndButtonRow.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DateAndButtonRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DropMenu.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DropMenu.tsx index 62d1d6cf22691dd9421168d9ece0dcc8edb65282..277e4197b1337a2f713b00d445b082c9b06c4510 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DropMenu.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/DropMenu.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAccessRestrictionSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAccessRestrictionSidebar.tsx index 36c868d7d185483aabe1d530a45a97a66eb60ac3..83002f3486177a922fbb319dddd786bccacfe7a4 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAccessRestrictionSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAccessRestrictionSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAffectedPersonSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAffectedPersonSidebar.tsx index b5f570176454462df3b5d1d7d27ceb480a279720..c56cb6a3d6632ced1486a8737b3187505ed56c63 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAffectedPersonSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditAffectedPersonSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianButton.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianButton.tsx index 97840334ef3226af8fed3b82b8fc427a95918b12..4b8b00d964cd1694be507ca35d25b94b00b39427 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianButton.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianSidebar.tsx index 60711bee6bccfae172562c9ef429d964349d1dcf..83fc19307dc82b0a56ee3dae616914d5c5a28175 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditCustodianSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilityButton.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilityButton.tsx index bc63a19738333f7eed79943aa563c6772969e563..fbefcf998549f34e43f276a183ba982660cf6bce 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilityButton.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilityButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilitySidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilitySidebar.tsx index 5f4ceb37153e7051fede9c2c61bf23dc5d43fd81..423070f9394993e58ebc93c78589329e3fcb2c40 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilitySidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/EditFacilitySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Facility.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Facility.tsx index 029167e8d5fe089733b2ffb7d386f0e08098c5e2..118f11d90821011f3db8c8e4856377d97c1ffc62 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Facility.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/Facility.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FacilityContact.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FacilityContact.tsx index 4e44a119e082b6b6618352629b48b35f4d0dd617..543a42f19cd0a27d5567ab51d6f47017ce035b2d 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FacilityContact.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FacilityContact.tsx @@ -1,10 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiFacilityContactPerson } from "@eshg/employee-portal-api/measlesProtection"; import { Row } from "@eshg/lib-portal/components/Row"; +import { SALUTATION_VALUES } from "@eshg/lib-portal/components/formFields/constants"; import { Grid, Sheet, Stack } from "@mui/joy"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; @@ -13,7 +14,6 @@ import { ExternalLinkDetailsCell, emailHref, } from "@/lib/shared/components/detailsSection/ExternalLinkDetailsCell"; -import { SALUTATION_VALUES } from "@/lib/shared/components/personSidebar/constants"; export function FacilityContact({ person, diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FineSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FineSidebar.tsx index f92c911af2ec1588d23cc610074a2a00d983ea93..d468b8ec6458c3a70092800b725eb205cb9319c7 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FineSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/FineSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/LetterRecipientField.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/LetterRecipientField.tsx index 3c89018566d37f80562ed8c536c2b8b050a62b2e..1082478e4e1a66bf233f140d485ad12c2d6efc2e 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/LetterRecipientField.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/LetterRecipientField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesFacilityTypeSelect.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesFacilityTypeSelect.tsx index 51939d0f6e8e6894adcbf7045c6ade5e1ba15c27..949fcf82f81def14c9ad40c5d6b8e4ee5e4665b5 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesFacilityTypeSelect.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesFacilityTypeSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureData.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureData.tsx index f0a049f4bba80a856442631b1437b68ecd61f05a..53ea7a9b8adcc329d93ab6cc30205e610e21cbd3 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureData.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureData.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureDraftClientPage.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureDraftClientPage.tsx index 3de8d1b5517bd260ca14e01c37df60558f2b0046..8222ec3046b5333b2cb29bbdeca9bdeb38bf12c5 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureDraftClientPage.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionProcedureDraftClientPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionTabHeader.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionTabHeader.tsx index 26b33dbd73a6a1d5cc0be05f8391adf316dcfc11..b27e65e824b82334088a9c15f3dc953b18fed8fc 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionTabHeader.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/MeaslesProtectionTabHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewCustodianButton.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewCustodianButton.tsx index 564acadb2cfcfe5cfe6de4a5a0a975df162da5bd..cebea31916fc2d06f2702c885694b460190a66c9 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewCustodianButton.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewCustodianButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilityButton.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilityButton.tsx index 2ee40662ead17617afe39f3a275d7d6bd2d1f1cd..eb0cba7d0d593cecdd5267bfec81e505683badff 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilityButton.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilityButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilitySidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilitySidebar.tsx index f8ac6f6ea0e2d9cabafb10313c974b269546bf32..58b2f1e9385daa6e09a2d6d9af5ae701b69e4d6f 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilitySidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/NewFacilitySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofRequestLetterSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofRequestLetterSidebar.tsx index 25881e4c843f96708ca46fd2831692b018ccc1d9..cfa58b0c6eb8b3052cda47c9ec4ea23e8534736a 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofRequestLetterSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofRequestLetterSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofSidebar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofSidebar.tsx index 9cd3afa3620ac71da0a0cb16c9454df2982a331a..6c9eee2be160c867c41d67cf019cc1daec5ff82a 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofSidebar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,6 +10,7 @@ import { CreateProofSubmissionRequest, } from "@eshg/employee-portal-api/measlesProtection"; import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { Stack } from "@mui/joy"; import { Formik, useFormikContext } from "formik"; @@ -23,7 +24,6 @@ import { WrappedSelectField } from "@/lib/businessModules/measlesProtection/shar import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofTab.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofTab.tsx index 50b72c24178fac7e810182bb56095c1e610c2f10..f16fccfd26811ecdf29fd266fd2e55ff8568fbae 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofTab.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/ProofTab.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/UpdateProcedureSection.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/UpdateProcedureSection.tsx index 18e3bc7b937cf30b5b36535ad3bc178dc93040c1..d0c826bb73bff15f010f52c20f11d991626aee2b 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/UpdateProcedureSection.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/UpdateProcedureSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/helpers.ts b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/helpers.ts index 7f25e3288bffb5ae63b4760acc72b962fbaabc88..5ca13a292a819e172cbed5a1b7e77876cf684327 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/helpers.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AccessRestrictionCard.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AccessRestrictionCard.tsx index 0096db1dae079696e394ec82bcbaa64be8ae6131..1ea5942b3ad2f2de207907b8c4c0d7f3c80d6f0e 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AccessRestrictionCard.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AccessRestrictionCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AppointmentCard.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AppointmentCard.tsx index 9bac42e1ba25ce6314047116700aff021f349fcd..ec50a63f7bef9ae47d118b1e5693274193824745 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AppointmentCard.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/AppointmentCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -13,10 +13,10 @@ import { ActionsItem, ActionsMenu, } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; import { useSearchParam } from "@/lib/shared/hooks/searchParams/useSearchParam"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface AppointmentCardProps { appointment?: ApiAppointment; diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabEntry.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabEntry.tsx index 1a53c8096509086dfd05833fe001b21787654ecf..9ec4f55d103190ae7dc9614714e8b5768d3057f8 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabEntry.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabEntry.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabFileCard.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabFileCard.tsx index bf54002f1b53e56a1b876670f743e255e30f8d8f..163f4274581c788c12d8f462f4b50e8c5b2405ec 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabFileCard.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/procedureDetails/proof/ProofTabFileCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProcedureSearchBar.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProcedureSearchBar.tsx index c9588c9404f5cb16a0746fd325a50044caeb7e93..925a39a5eebb8a7da7cdcda9840d98d6993a5bfc 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProcedureSearchBar.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProcedureSearchBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTable.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTable.tsx index 73269af7942278dae052692007759e122d1482c4..f9184f96914d9361976722c37c1e87efa0364dfb 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTable.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTableFilters.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTableFilters.tsx index 09feef8a5cacf78152d193e1ed1881b9098d0f29..9db38c2ebea39695809c94e4b57d1ed1c52c60f4 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTableFilters.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ProceduresTableFilters.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ReopenProcedureModal.tsx b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ReopenProcedureModal.tsx index 760e86cc5f2fa474b16493e773a36c224bfe2957..c260ff41b51dfb77a006371500b8662d3b5516de 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ReopenProcedureModal.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/components/procedures/proceduresTable/ReopenProcedureModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionLayout.tsx b/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionLayout.tsx index 70c3c03d3432a0c99ec746e41af2e854b9cef590..69cb5f6e827b1d9d93acf676b1337505505aafa8 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionLayout.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionProcedureLayout.tsx b/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionProcedureLayout.tsx index d868fefbf21a877e194b6396ba21c2bd040f3f57..8de07f9de47429f352bb1fef1a119543b491b1f8 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionProcedureLayout.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/layout/MeaslesProtectionProcedureLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/ProceduresContext.tsx b/employee-portal/src/lib/businessModules/measlesProtection/shared/ProceduresContext.tsx index f7dddbd652a061320421c5ccb2f996adf35c3326..958a7feb54215c7aacddfcb967c1ec91c0e0a116 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/ProceduresContext.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/ProceduresContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/WrappedSelectField.tsx b/employee-portal/src/lib/businessModules/measlesProtection/shared/WrappedSelectField.tsx index 13bc72bf2dbf190c27922d5be3ec8086d11d0928..707c7c253ac9315a313b57ef7890c66fa4c50657 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/WrappedSelectField.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/WrappedSelectField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/constants.ts b/employee-portal/src/lib/businessModules/measlesProtection/shared/constants.ts index 79ef04c71411fd3fdb6b827fb77adf372fe867e2..cae8c23d6f2b68610fc1a5203fc5028c40adff02 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -37,4 +37,5 @@ export const APPOINTMENT_TYPES: EnumMap<ApiAppointmentType> = { [ApiAppointmentType.HivStiConsultation]: "HIV-STI-Beratung", [ApiAppointmentType.SexWork]: "Sexarbeit", [ApiAppointmentType.ResultsReview]: "Ergebnisbesprechung", + [ApiAppointmentType.OfficialMedicalService]: "Amtsärtzlicher Dienst", }; diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/helpers.ts b/employee-portal/src/lib/businessModules/measlesProtection/shared/helpers.ts index 538ca43156706ce56715a2ab54bfaca51e3cbd55..9f3b20cb4f90523cde4f1095bb253d872e9ced5a 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/helpers.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/measlesProtection/shared/moduleUserGroup.ts index 27b9c79ac4f4f0e2b713a163bc9545842caf113b..0ebc4ee8f39e7aaa4b4dc064af36a191b00b1783 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/routes.ts b/employee-portal/src/lib/businessModules/measlesProtection/shared/routes.ts index 715e6cd08704c075d08f9b7cad7d919c2e5f5c5c..c180f38b0e823dae7e52dce2243b48a07c064b56 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,11 +14,7 @@ export const routes = { details: (procedureId: string) => ({ index: `${proceduresPath}/${procedureId}`, proof: `${proceduresPath}/${procedureId}/proof`, - progressEntries: { - index: `${proceduresPath}/${procedureId}/progress-entries`, - details: (entryId: string) => - `${proceduresPath}/${procedureId}/progress-entries/${entryId}/details`, - }, + progressEntries: `${proceduresPath}/${procedureId}/progress-entries`, }), draft: (procedureId: string) => `${proceduresPath}/draft/${procedureId}`, }, diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/measlesProtection/shared/sideNavigationItem.tsx index ccbfd7a1ccd681572587f058d3ffafbdc2dc4dc4..a76540337ca34239f7a38fa7f037d7a7ffe25dc5 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/sideNavigationItem.tsx @@ -1,10 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiBaseFeature, ApiUserRole } from "@eshg/employee-portal-api/base"; -import { Coronavirus } from "@mui/icons-material"; +import { HubOutlined } from "@mui/icons-material"; import { useIsNewFeatureEnabled } from "@/lib/baseModule/api/queries/feature"; import { @@ -17,7 +17,7 @@ import { routes } from "./routes"; const sideNavigationItem = { name: "Masernschutz", - decorator: <Coronavirus />, + decorator: <HubOutlined />, }; const defaultSubItems: SideNavigationSubItem[] = [ diff --git a/employee-portal/src/lib/businessModules/measlesProtection/shared/useCreateInboxProcedure.ts b/employee-portal/src/lib/businessModules/measlesProtection/shared/useCreateInboxProcedure.ts index 7178baa3e97671100e7c2b2424ec7861d0fa5729..47a6a766ceae8edc091c54787f757d36c0a77213 100644 --- a/employee-portal/src/lib/businessModules/measlesProtection/shared/useCreateInboxProcedure.ts +++ b/employee-portal/src/lib/businessModules/measlesProtection/shared/useCreateInboxProcedure.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/clients.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/clients.ts index 395c70acd6e4f1c86e8e4219ead5f10375df9fc2..306b535b1c7cf37e23c350193805dca4afc3a916 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/clients.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/approvalRequests.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/approvalRequests.ts index 4bff2b89397502fdf568b7302787814ae2dddf94..bf5c18cbba8edbc69a60c31bed0df6bde95d5f7c 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/archiving.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/archiving.ts index 40bbbd14c5003b1c0d3a753f366f5442c647e141..8faa3dc2d7aa9654c2fec923ffa7d4aa78aac5be 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/archiving.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/files.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/files.ts index 04248490a73a32e2c1ebf52c9b113dc63c78f3ae..a3dc4430308b5b1fe1fce8f534f4d12d74dee366 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/files.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/import.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/import.ts index a7ad95f3c70e2e7df8e0ab6d031163917b849dfe..42c5130b2a27ceb5b1df088c9af01b12cbee0999 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/import.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/import.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries.ts index d373cab0758fd7dece900b43bab7992842f9ecbe..80b85e3f2af3ff3c971111b26e0dd639379e7b12 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/progressEntries.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/progressEntries.ts index 12f33d76f7d7343a3c9bc29e903f618e51d287ff..6495a14a460d674ae861c11b725f497f817a2dea 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys.ts index b2a07913cf12c67900bfda034404c0564f0fa45a..341e2237acf84a621d957109321b41e8cc4463d6 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/archiving.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/archiving.ts index 5fd392dc61e03a33eed657cba13677882118e5b1..d53dc5431c4ba60cde087bce3804cb276a909bd9 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/archiving.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/draft.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/draft.ts index 0393528950e2852f667e65fac2718d9c363ff3b5..5c3c7db6b821933fbc435793b0e3b97bcd4939ed 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/draft.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/draft.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -58,6 +58,7 @@ export function useSearchDraftReferences( applicant.lastName, applicant.dateOfBirth, ), + isDefined(applicant.nameAtBirth) && applicant.lastName !== applicant.nameAtBirth ? procedureApi.searchProceduresByPerson( applicant.firstName, diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/files.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/files.ts index 2302145f21070af62917ce039fbcfb55d130dccf..f1b36ea568ad829e6d7561cda71a4df6f1bab90d 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/files.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/import.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/import.ts index 2653eae40b92ba386fb1cc72634c430a9d57eb65..0cfdb160ad68ce2e947f35a83bf7aaebb7564946 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/import.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/import.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/medicalRegistryEntries.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/medicalRegistryEntries.ts index 1c806175051b0894c7cb7f6febe43c914ee61e29..79dc850f046f7ac47c19b782810d8dac6d88ca70 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/medicalRegistryEntries.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/medicalRegistryEntries.ts @@ -1,15 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; -import { - ApiProcedureStatus, - ApiProcedureType, -} from "@eshg/employee-portal-api/businessProcedures"; -import { ApiProfessionalTitle } from "@eshg/employee-portal-api/medicalRegistry"; +import { GetProcedureOverviewRequest } from "@eshg/employee-portal-api/medicalRegistry"; import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; @@ -17,32 +13,29 @@ import { useMedicalRegistryApi } from "@/lib/businessModules/medicalRegistry/api import { medicalRegistryApiQueryKey } from "./apiQueryKeys"; -interface PageRequest { - pageNumber?: number; - pageSize?: number; - filterByCertificateRequested?: boolean; - filterByStatus?: Set<ApiProcedureStatus>; - filterByType?: Set<ApiProcedureType>; - filterByProfessionalTitle?: Set<ApiProfessionalTitle>; -} - -export function useGetMedicalRegistryProcedureOverviewQuery(page: PageRequest) { +export function useGetMedicalRegistryProcedureOverviewQuery( + request: GetProcedureOverviewRequest | string, +) { const medicalRegistryApi = useMedicalRegistryApi(); + + if (typeof request === "string") { + return queryOptions({ + queryFn: () => medicalRegistryApi.searchProcedures1(request), + queryKey: medicalRegistryApiQueryKey(["searchProcedures", request]), + }); + } + return queryOptions({ - queryFn: ({ signal }) => - medicalRegistryApi.getProcedureOverview( - page.pageSize, - page.pageNumber, - page.filterByCertificateRequested, - page.filterByStatus, - page.filterByType, - page.filterByProfessionalTitle, - { signal }, - ), + queryFn: () => + medicalRegistryApi + .getProcedureOverviewRaw(request) + .then(unwrapRawResponse), queryKey: medicalRegistryApiQueryKey([ "getProcedureOverview", - page, - Array.from(page.filterByStatus ?? []), + request, + Array.from(request.procedureStatus ?? []), + Array.from(request.procedureType ?? []), + Array.from(request.professionalTitle ?? []), ]), }); } diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/progressEntries.ts b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/progressEntries.ts index c43dff3b058fd251917eb99b8a8fb906cb0209f9..57617912b613cc8a9a6ce790c12edff490fb69cc 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryProcedureChip.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryProcedureChip.tsx index 2c02d4c74c2baab8a3eb60adc76459d544140596..f0f165a9f3d1100331452fe4b180c18a2d4f06dc 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryProcedureChip.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryProcedureChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,11 @@ import { } from "@eshg/employee-portal-api/medicalRegistry"; import { Chip, ChipProps } from "@mui/joy"; +import { + EntryStatus, + entryStatusNames, +} from "@/lib/businessModules/medicalRegistry/shared/constants"; + interface MedicalRegistryProcedureChipProps { status: ApiProcedureStatus; type: ApiProcedureType; @@ -25,28 +30,28 @@ export function MedicalRegistryProcedureChip({ if (status === ApiProcedureStatus.Closed) { return ( <Chip {...props} color="success"> - Geschlossen + {entryStatusNames[EntryStatus.Closed]} </Chip> ); } if (type === "MEDICAL_REGISTRY_ENTRY") { return ( <Chip {...props} color="neutral"> - Offen + {entryStatusNames[EntryStatus.Open]} </Chip> ); } if (type === "MEDICAL_REGISTRY_CITIZEN_DRAFT") { return ( <Chip {...props} color="danger"> - Externer Entwurf + {entryStatusNames[EntryStatus.DraftCitizen]} </Chip> ); } if (type === "MEDICAL_REGISTRY_EMPLOYEE_DRAFT") { return ( <Chip {...props} color="warning"> - Interner Entwurf + {entryStatusNames[EntryStatus.DraftEmployee]} </Chip> ); } diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryTabNavigationToolbar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryTabNavigationToolbar.tsx index 542c4afa66177aad19ee072e9a91e111cb85a013..94743dee9a236ae8317f2a402f302fc7a3e05349 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryTabNavigationToolbar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryTabNavigationToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -40,7 +40,7 @@ export function MedicalRegistryTabNavigationToolbar({ }, { tabButtonName: "Verlaufseinträge", - href: routes.procedures.byId(procedureId).progressEntries.index, + href: routes.procedures.byId(procedureId).progressEntries, decorator: <TimelineOutlined />, }, ]; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/DataPrivacyForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/DataPrivacyForm.tsx deleted file mode 100644 index 83d045473810d18dd700d6ba2cb6296ec2cdf2f1..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/DataPrivacyForm.tsx +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -export interface DataPrivacyFormValues { - agreed: boolean; -} diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/EmployeeInformationForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/EmployeeInformationForm.tsx index de7a175645b995f3b92bb6459ea9e1a2d6ee7c18..5ebe5a980804787c3ab10b2cfd9426c7d73b4426 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/EmployeeInformationForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/EmployeeInformationForm.tsx @@ -1,27 +1,20 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { EmployeeInformationFormValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; import { BooleanRadioField } from "@eshg/lib-portal/components/formFields/BooleanRadioField"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; -import { - NestedFormProps, - NullableFieldValue, -} from "@eshg/lib-portal/types/form"; +import { validateFile } from "@eshg/lib-portal/helpers/validators"; +import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Grid, Typography } from "@mui/joy"; import { useField } from "formik"; import { useServerConfig } from "@/lib/baseModule/api/queries/config"; import { requiredFieldMessage } from "@/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; -import { validateFile } from "@/lib/shared/helpers/validators"; - -export interface EmployeeInformationFormValues { - employeesEmployed: boolean; - employeesFile: NullableFieldValue<File>; -} export function EmployeeInformationForm(props: NestedFormProps) { const { data: config } = useServerConfig(); diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/GeneralInformationForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/GeneralInformationForm.tsx index 1d8eb3135f34593f6ff073fe2aae3f7d74367d22..7e79bc3f0eff8230e229bb93c78d9d440eb4165d 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/GeneralInformationForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/GeneralInformationForm.tsx @@ -1,28 +1,20 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiTypeOfChange } from "@eshg/employee-portal-api/medicalRegistry"; +import { changeTypeNames } from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; +import { GeneralInformationFormValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; import { buildEnumOptions, createFieldNameMapper, } from "@eshg/lib-portal/helpers/form"; -import { - NestedFormProps, - OptionalFieldValue, -} from "@eshg/lib-portal/types/form"; +import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Grid, Typography } from "@mui/joy"; -import { changeTypeNames } from "@/lib/businessModules/medicalRegistry/shared/constants"; - import { requiredFieldMessage } from "./MedicalRegistryCreateProcedureForm"; -export interface GeneralInformationFormValues { - changeType: OptionalFieldValue<ApiTypeOfChange>; -} - export function GeneralInformationForm(props: NestedFormProps) { const fieldName = createFieldNameMapper<GeneralInformationFormValues>( props.name, diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm.tsx index 0279e5065ce36d54b87240765b8ac29fb9aa60c5..2321d73c0d400a67c9228e401c6690fabd999f78 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm.tsx @@ -1,158 +1,30 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { - ApiEmploymentStatus, - ApiEmploymentType, - ApiTypeOfChange, -} from "@eshg/employee-portal-api/medicalRegistry"; +import { mapCreateProcedureRequest } from "@eshg/lib-portal/businessModules/medicalRegistry/api/mapper"; +import { initialValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { shouldEnable } from "@eshg/lib-portal/businessModules/medicalRegistry/sections"; import { Divider } from "@mui/joy"; import { Formik } from "formik"; import { useRouter } from "next/navigation"; import { logger } from "@/lib/businessModules/chat/shared/helpers"; -import { mapCreateProcedureRequest } from "@/lib/businessModules/medicalRegistry/api/mapper"; import { useCreateProcedure } from "@/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries"; -import { DataPrivacyFormValues } from "@/lib/businessModules/medicalRegistry/components/procedures/create/DataPrivacyForm"; -import { - EmployeeInformationForm, - EmployeeInformationFormValues, -} from "@/lib/businessModules/medicalRegistry/components/procedures/create/EmployeeInformationForm"; -import { - RequiredDocumentsForm, - RequiredDocumentsFormValues, -} from "@/lib/businessModules/medicalRegistry/components/procedures/create/RequiredDocumentsForm"; -import { - WrittenConfirmationForm, - WrittenConfirmationFormValues, -} from "@/lib/businessModules/medicalRegistry/components/procedures/create/WrittenConfirmationForm"; +import { EmployeeInformationForm } from "@/lib/businessModules/medicalRegistry/components/procedures/create/EmployeeInformationForm"; +import { RequiredDocumentsForm } from "@/lib/businessModules/medicalRegistry/components/procedures/create/RequiredDocumentsForm"; +import { WrittenConfirmationForm } from "@/lib/businessModules/medicalRegistry/components/procedures/create/WrittenConfirmationForm"; import { routes } from "@/lib/businessModules/medicalRegistry/shared/routes"; import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { FormGroupGrid } from "@/lib/shared/components/form/FormGroupGrid"; import { FormSheet } from "@/lib/shared/components/form/FormSheet"; -import { - GeneralInformationForm, - GeneralInformationFormValues, -} from "./GeneralInformationForm"; -import { - OccupationalInformationForm, - OccupationalInformationFormValues, -} from "./OccupationalInformationForm"; -import { - PersonalInformationForm, - PersonalInformationFormValues, -} from "./PersonalInformationForm"; -import { - PracticeInformationForm, - PracticeInformationFormValues, -} from "./PracticeInformationForm"; -import { - ProfessionalismInformationForm, - ProfessionalismInformationFormValues, -} from "./ProfessionalismInformationForm"; - -export interface MedicalRegistryCreateProcedureFormValues { - generalInformationForm: GeneralInformationFormValues; - personalInformationForm: PersonalInformationFormValues; - occupationalInformationForm: OccupationalInformationFormValues; - professionalismInformationForm: ProfessionalismInformationFormValues; - practiceInformationForm: PracticeInformationFormValues; - employeeInformationForm: EmployeeInformationFormValues; - requiredDocumentsForm: RequiredDocumentsFormValues; - dataPrivacyForm: DataPrivacyFormValues; - writtenConfirmationForm: WrittenConfirmationFormValues; -} - -const initialGeneralInformationFormValues: GeneralInformationFormValues = { - changeType: "", -}; - -const initialPersonalInformationFormValues: PersonalInformationFormValues = { - title: "", - firstName: "", - lastName: "", - birthName: "", - gender: "", - street: "", - houseNumber: "", - postalCode: "", - city: "", - country: "", - phoneNumber: "", - email: "", - birthDate: "", - birthPlace: "", - nationality: "", -}; - -const initialOccupationalInformationFormValues: OccupationalInformationFormValues = - { - professionalTitle: "", - fieldOfExpertise: "", - specialistTitle: "", - furtherTraining: "", - qualifications: "", - approbationGrantedOn: "", - approbationIssuingAuthority: "", - lifetimeDoctorNumber: "", - }; - -const initialProfessionalismInformationFormValues: ProfessionalismInformationFormValues = - { - employmentType: ApiEmploymentType.FullTime, - employmentStatus: ApiEmploymentStatus.Employee, - }; - -const initialPracticeInformationFormValues: PracticeInformationFormValues = { - proprietaryPractice: false, - practiceName: "", - street: "", - houseNumber: "", - postalCode: "", - city: "", - phoneNumber: "", - email: "", - website: "", - openingHours: "", - institutionIdentifier: "", - establishmentNumber: "", - healthInsuranceAuthorization: true, -}; - -const initialEmployeeInformationFormValues: EmployeeInformationFormValues = { - employeesEmployed: false, - employeesFile: null, -}; - -const initialRequiredDocumentsFormValues: RequiredDocumentsFormValues = { - license: null, - identificationDocument: null, - workPermit: null, - otherRelevantDocuments: [], -}; - -const initialDataPrivacyFormValues: DataPrivacyFormValues = { - agreed: true, -}; - -const initialWrittenConfirmationFormValues: WrittenConfirmationFormValues = { - requestForWrittenConfirmation: false, -}; - -const initialValues: MedicalRegistryCreateProcedureFormValues = { - generalInformationForm: initialGeneralInformationFormValues, - personalInformationForm: initialPersonalInformationFormValues, - occupationalInformationForm: initialOccupationalInformationFormValues, - professionalismInformationForm: initialProfessionalismInformationFormValues, - practiceInformationForm: initialPracticeInformationFormValues, - employeeInformationForm: initialEmployeeInformationFormValues, - requiredDocumentsForm: initialRequiredDocumentsFormValues, - dataPrivacyForm: initialDataPrivacyFormValues, - writtenConfirmationForm: initialWrittenConfirmationFormValues, -}; +import { GeneralInformationForm } from "./GeneralInformationForm"; +import { OccupationalInformationForm } from "./OccupationalInformationForm"; +import { PersonalInformationForm } from "./PersonalInformationForm"; +import { PracticeInformationForm } from "./PracticeInformationForm"; +import { ProfessionalismInformationForm } from "./ProfessionalismInformationForm"; export const requiredFieldMessage = "Pflichtfeld!"; @@ -160,54 +32,6 @@ interface MedicalRegistryCreateProcedureFormProps { setShowSuccessPage: (showSuccessPage: boolean) => void; } -type Section = "profession" | "practice" | "employees" | "optionalDocuments"; -const sectionEnabled: Record<Section, ApiTypeOfChange[]> = { - profession: [ - ApiTypeOfChange.NewRegistration, - ApiTypeOfChange.ReRegistration, - ApiTypeOfChange.Other, - ], - practice: [ - ApiTypeOfChange.NewRegistration, - ApiTypeOfChange.ReRegistration, - ApiTypeOfChange.Other, - ApiTypeOfChange.SecondPractice, - ApiTypeOfChange.ChangeOfRegistration, - ], - employees: [ - ApiTypeOfChange.NewRegistration, - ApiTypeOfChange.ReRegistration, - ApiTypeOfChange.Other, - ApiTypeOfChange.SecondPractice, - ], - optionalDocuments: [ - ApiTypeOfChange.NewRegistration, - ApiTypeOfChange.ReRegistration, - ApiTypeOfChange.Other, - ], -}; - -function shouldEnable( - section: Section, - values: MedicalRegistryCreateProcedureFormValues, -): boolean { - const typeOfChange = values.generalInformationForm.changeType; - if (typeOfChange === "") { - return true; - } - return sectionEnabled[section].includes(typeOfChange); -} - -function forceProprietaryPractice( - values: MedicalRegistryCreateProcedureFormValues, -) { - const typeOfChange = values.generalInformationForm.changeType; - return ( - typeOfChange === ApiTypeOfChange.SecondPractice || - typeOfChange === ApiTypeOfChange.ChangeOfRegistration - ); -} - export function MedicalRegistryCreateProcedureForm( props: MedicalRegistryCreateProcedureFormProps, ) { @@ -247,7 +71,10 @@ export function MedicalRegistryCreateProcedureForm( </FormGroupGrid> <Divider /> - {shouldEnable("profession", values) && ( + {shouldEnable( + "profession", + values.generalInformationForm.changeType, + ) && ( <> <FormGroupGrid columns={{ xxs: 6, xxl: 12 }} @@ -267,7 +94,10 @@ export function MedicalRegistryCreateProcedureForm( </> )} - {shouldEnable("practice", values) && ( + {shouldEnable( + "practice", + values.generalInformationForm.changeType, + ) && ( <> <FormGroupGrid columns={{ xxs: 6, xxl: 12 }} @@ -275,14 +105,22 @@ export function MedicalRegistryCreateProcedureForm( > <PracticeInformationForm name="practiceInformationForm" - forceProprietaryPractice={forceProprietaryPractice(values)} + forceProprietaryPractice={ + !shouldEnable( + "practiceChoice", + values.generalInformationForm.changeType, + ) + } /> </FormGroupGrid> <Divider /> </> )} - {shouldEnable("employees", values) && ( + {shouldEnable( + "employees", + values.generalInformationForm.changeType, + ) && ( <> <FormGroupGrid columns={{ xxs: 6, xxl: 12 }} @@ -299,7 +137,7 @@ export function MedicalRegistryCreateProcedureForm( name="requiredDocumentsForm" enableOptionalDocuments={shouldEnable( "optionalDocuments", - values, + values.generalInformationForm.changeType, )} /> </FormGroupGrid> diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureSuccessPage.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureSuccessPage.tsx index 4fde52b6ef45c293cdf495eb1cba3282c05fabc5..b9d1059cedd207751f2fff0f3de8c480272ccb91 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureSuccessPage.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureSuccessPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/OccupationalInformationForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/OccupationalInformationForm.tsx index 45d1d836dd0dae2df6d8287bbd32ec00a85dcd89..390598ab1b61650680ca4e1c69b341d01a0985ed 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/OccupationalInformationForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/OccupationalInformationForm.tsx @@ -1,9 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiProfessionalTitle } from "@eshg/employee-portal-api/medicalRegistry"; +import { professionalTitleNames } from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; +import { OccupationalInformationFormValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { lifetimeDoctorNumberValidator } from "@eshg/lib-portal/businessModules/medicalRegistry/validator"; import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; @@ -11,26 +13,10 @@ import { buildEnumOptions, createFieldNameMapper, } from "@eshg/lib-portal/helpers/form"; -import { - NestedFormProps, - OptionalFieldValue, -} from "@eshg/lib-portal/types/form"; +import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Grid, Typography } from "@mui/joy"; import { requiredFieldMessage } from "@/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm"; -import { lifetimeDoctorNumberValidator } from "@/lib/businessModules/medicalRegistry/components/procedures/create/validator"; -import { professionalTitleNames } from "@/lib/businessModules/medicalRegistry/shared/constants"; - -export interface OccupationalInformationFormValues { - professionalTitle: OptionalFieldValue<ApiProfessionalTitle>; - fieldOfExpertise: OptionalFieldValue<string>; - specialistTitle: OptionalFieldValue<string>; - furtherTraining: OptionalFieldValue<string>; - qualifications: OptionalFieldValue<string>; - approbationGrantedOn: OptionalFieldValue<Date>; - approbationIssuingAuthority: string; - lifetimeDoctorNumber: OptionalFieldValue<string>; -} export function OccupationalInformationForm(props: NestedFormProps) { const fieldName = createFieldNameMapper<OccupationalInformationFormValues>( @@ -46,7 +32,9 @@ export function OccupationalInformationForm(props: NestedFormProps) { <SelectField name={fieldName("professionalTitle")} label="Berufsbezeichnung" - options={buildEnumOptions(professionalTitleNames)} + options={buildEnumOptions(professionalTitleNames).sort((a, b) => + a.label.localeCompare(b.label), + )} required={requiredFieldMessage} /> </Grid> diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PersonalInformationForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PersonalInformationForm.tsx index 2f0e87ccaad227d2a8749654c9e07c1687d91b10..ee18590999f9392ece5c0396f11e9f1e8ceead81 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PersonalInformationForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PersonalInformationForm.tsx @@ -1,43 +1,22 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiCountryCode, ApiGender } from "@eshg/employee-portal-api/base"; +import { PersonalInformationFormValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { PhoneNumberField } from "@eshg/lib-portal/components/formFields/PhoneNumberField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { GENDER_OPTIONS } from "@eshg/lib-portal/components/formFields/constants"; +import { COUNTRY_CODE_OPTIONS } from "@eshg/lib-portal/components/formFields/countryCodes"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; -import { - NestedFormProps, - OptionalFieldValue, -} from "@eshg/lib-portal/types/form"; +import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Grid, Typography } from "@mui/joy"; import { requiredFieldMessage } from "@/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm"; -import { COUNTRY_CODE_OPTIONS } from "@/lib/businessModules/stiProtection/shared/countryCodes"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; -import { PhoneNumberField } from "@/lib/shared/components/formFields/PhoneNumberField"; -import { GENDER_OPTIONS } from "@/lib/shared/components/personSidebar/constants"; - -export interface PersonalInformationFormValues { - title: OptionalFieldValue<string>; - firstName: string; - lastName: string; - birthName: string; - gender: OptionalFieldValue<ApiGender>; - street: string; - houseNumber: string; - postalCode: string; - city: string; - country: OptionalFieldValue<ApiCountryCode>; - phoneNumber: string; - email: string; - birthDate: OptionalFieldValue<Date>; - birthPlace: string; - nationality: OptionalFieldValue<ApiCountryCode>; -} export function PersonalInformationForm(props: NestedFormProps) { const fieldName = createFieldNameMapper<PersonalInformationFormValues>( @@ -81,7 +60,6 @@ export function PersonalInformationForm(props: NestedFormProps) { <InputField name={fieldName("birthName")} label={"Geburtsname"} - required={requiredFieldMessage} validate={validateLength(1, 40)} /> </Grid> @@ -154,11 +132,7 @@ export function PersonalInformationForm(props: NestedFormProps) { <Grid xxl={6} /> <Grid xxs={6}> - <EmailField - name={fieldName("email")} - label={"Email"} - required={requiredFieldMessage} - /> + <EmailField name={fieldName("email")} label={"Email"} /> </Grid> <Grid xxl={6} /> diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PracticeInformationForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PracticeInformationForm.tsx index d754415decdcb40d6af6ccc6c01ec23ae9f67943..b02b3be703e87a4c57faefc3538ef6ae2cdf02ad 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PracticeInformationForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/PracticeInformationForm.tsx @@ -1,51 +1,32 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { PracticeInformationFormValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; import { Alert } from "@eshg/lib-portal/components/Alert"; import { BooleanRadioField } from "@eshg/lib-portal/components/formFields/BooleanRadioField"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength, validateNumber, } from "@eshg/lib-portal/helpers/validators"; -import { - NestedFormProps, - OptionalFieldValue, -} from "@eshg/lib-portal/types/form"; +import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Grid, Typography } from "@mui/joy"; import { useField } from "formik"; import { requiredFieldMessage } from "@/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; interface PracticeInformationFormProps extends NestedFormProps { forceProprietaryPractice: boolean; } -export interface PracticeInformationFormValues { - proprietaryPractice: boolean; - practiceName: string; - street: string; - houseNumber: string; - postalCode: string; - city: string; - phoneNumber: string; - email: string; - website: OptionalFieldValue<string>; - openingHours: OptionalFieldValue<string>; - institutionIdentifier: OptionalFieldValue<string>; - establishmentNumber: OptionalFieldValue<string>; - healthInsuranceAuthorization: boolean; -} - export function PracticeInformationForm(props: PracticeInformationFormProps) { const fieldName = createFieldNameMapper<PracticeInformationFormValues>( props.name, ); - const [proprietaryPractice] = useField<boolean>( fieldName("proprietaryPractice"), ); diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/ProfessionalismInformationForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/ProfessionalismInformationForm.tsx index 7b066c1c87e05706a21892fe61baf3d91ae8894f..eb7152bf10ec5304a0964fba642f04f0e9bac900 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/ProfessionalismInformationForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/ProfessionalismInformationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,21 +7,17 @@ import { ApiEmploymentStatus, ApiEmploymentType, } from "@eshg/employee-portal-api/medicalRegistry"; +import { + employmentStatusNames, + employmentTypeNames, +} from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; +import { ProfessionalismInformationFormValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Grid, Radio, Typography } from "@mui/joy"; import { requiredFieldMessage } from "@/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm"; -import { - employmentStatusNames, - employmentTypeNames, -} from "@/lib/businessModules/medicalRegistry/shared/constants"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; - -export interface ProfessionalismInformationFormValues { - employmentType: ApiEmploymentType; - employmentStatus: ApiEmploymentStatus; -} export function ProfessionalismInformationForm(props: NestedFormProps) { const fieldName = createFieldNameMapper<ProfessionalismInformationFormValues>( diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/RequiredDocumentsForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/RequiredDocumentsForm.tsx index 240633ea97820321406b371afc50ee8c5adf474c..75746d7764eb949cb1a4ffe2feae16a1c1185719 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/RequiredDocumentsForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/RequiredDocumentsForm.tsx @@ -1,14 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiCountryCode } from "@eshg/employee-portal-api/base"; -import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { - NestedFormProps, - NullableFieldValue, -} from "@eshg/lib-portal/types/form"; + PersonalInformationFormValues, + RequiredDocumentsFormValues, +} from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; +import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; +import { validateFile } from "@eshg/lib-portal/helpers/validators"; +import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Add, DeleteOutlined } from "@mui/icons-material"; import { Button, Grid, IconButton, Stack, Typography } from "@mui/joy"; import { FieldArray, useField } from "formik"; @@ -16,10 +19,7 @@ import { Fragment } from "react"; import { useServerConfig } from "@/lib/baseModule/api/queries/config"; import { requiredFieldMessage } from "@/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm"; -import { PersonalInformationFormValues } from "@/lib/businessModules/medicalRegistry/components/procedures/create/PersonalInformationForm"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; -import { validateFile } from "@/lib/shared/helpers/validators"; const MAX_OTHER_RELEVANT_DOCUMENTS = 3; @@ -27,13 +27,6 @@ interface RequiredDocumentsFormProps extends NestedFormProps { enableOptionalDocuments: boolean; } -export interface RequiredDocumentsFormValues { - license: NullableFieldValue<File>; - identificationDocument: NullableFieldValue<File>; - workPermit: NullableFieldValue<File>; - otherRelevantDocuments: File[]; -} - export function RequiredDocumentsForm(props: RequiredDocumentsFormProps) { const { data: config } = useServerConfig(); diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/WrittenConfirmationForm.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/WrittenConfirmationForm.tsx index 41733c4cf1d2d6f90b093c58b27037540380edd4..26369dbb6c3564d93369d30ea3d4fd33b2f72fe8 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/WrittenConfirmationForm.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/WrittenConfirmationForm.tsx @@ -1,17 +1,14 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { WrittenConfirmationFormValues } from "@eshg/lib-portal/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues"; import { BooleanRadioField } from "@eshg/lib-portal/components/formFields/BooleanRadioField"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { NestedFormProps } from "@eshg/lib-portal/types/form"; import { Typography } from "@mui/joy"; -export interface WrittenConfirmationFormValues { - requestForWrittenConfirmation: boolean; -} - export function WrittenConfirmationForm(props: NestedFormProps) { const fieldName = createFieldNameMapper<WrittenConfirmationFormValues>( props.name, diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ContactData.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ContactData.tsx index 3f36771c96043634b777549fce6b6aef932bbba0..0e1b069cba94d64a170fc028633ae2683b5fd864 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ContactData.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ContactData.tsx @@ -1,14 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { PERSON_FIELD_NAME } from "@eshg/lib-portal/components/formFields/constants"; + import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { ExternalLinkDetailsCell, emailHref, } from "@/lib/shared/components/detailsSection/ExternalLinkDetailsCell"; -import { PERSON_FIELD_NAME } from "@/lib/shared/components/personSidebar/constants"; interface ContactDataProps { subject: { diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/MedicalRegistryProcedureDetails.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/MedicalRegistryProcedureDetails.tsx index c02f4bed235e8169915cf92f1774e950b2be1e77..a9092ccf7539124102a6fabf338120e58eb38f10 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/MedicalRegistryProcedureDetails.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/MedicalRegistryProcedureDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -23,10 +23,10 @@ import { TypeOfChangeSection } from "@/lib/businessModules/medicalRegistry/compo import { WrittenConfirmationSection } from "@/lib/businessModules/medicalRegistry/components/procedures/details/WrittenConfirmationSection"; import { useFinalizeDraft } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar"; import { routes } from "@/lib/businessModules/medicalRegistry/shared/routes"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { InformationSheet } from "@/lib/shared/components/infoTile/InformationSheet"; import { PageGrid } from "@/lib/shared/components/page/PageGrid"; import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface MedicalRegistryProcedureDetailsProps { procedureId: string; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/PracticesDetailsSection.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/PracticesDetailsSection.tsx index afc3914c68480d0b3b5df3b048133af2771fea7e..f91bb4940654f903b656729bdbe65ca218051db8 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/PracticesDetailsSection.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/PracticesDetailsSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ProfessionalDetailsSection.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ProfessionalDetailsSection.tsx index d75208304498803aaee4dd5956e6693c6eb92b12..d89552d62bf3958fa9eff694e5b470d37e1d1cd6 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ProfessionalDetailsSection.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/ProfessionalDetailsSection.tsx @@ -1,19 +1,20 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiGetProcedure200Response } from "@eshg/employee-portal-api/medicalRegistry"; +import { + employmentStatusNames, + employmentTypeNames, + professionalTitleNames, +} from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; +import { PERSON_FIELD_NAME } from "@eshg/lib-portal/components/formFields/constants"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { Stack } from "@mui/joy"; import { isDefined } from "remeda"; import { ContactData } from "@/lib/businessModules/medicalRegistry/components/procedures/details/ContactData"; -import { - employmentStatusNames, - employmentTypeNames, - professionalTitleNames, -} from "@/lib/businessModules/medicalRegistry/shared/constants"; import { GENDER_VALUES } from "@/lib/businessModules/stiProtection/shared/constants"; import { ResponsiveDivider } from "@/lib/shared/components/ResponsiveDivider"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; @@ -21,7 +22,6 @@ import { DetailsColumn } from "@/lib/shared/components/detailsSection/DetailsCol import { DetailsRow } from "@/lib/shared/components/detailsSection/DetailsRow"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; import { InformationSheet } from "@/lib/shared/components/infoTile/InformationSheet"; -import { PERSON_FIELD_NAME } from "@/lib/shared/components/personSidebar/constants"; import { streetAndHouseNumber } from "@/lib/shared/helpers/facilityUtils"; import { translateCountry } from "@/lib/shared/helpers/i18n"; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/TypeOfChangeSection.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/TypeOfChangeSection.tsx index 36a2a0d221a54a901c1252f3fb4901bf5faa3d04..625f30c5abc61d3fdd11eb2d2c6ef97ff297a15a 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/TypeOfChangeSection.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/TypeOfChangeSection.tsx @@ -1,12 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiGetProcedureDraftResponse } from "@eshg/employee-portal-api/medicalRegistry"; +import { changeTypeNames } from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; import { Typography } from "@mui/joy"; -import { changeTypeNames } from "@/lib/businessModules/medicalRegistry/shared/constants"; import { ContentPanel } from "@/lib/shared/components/contentPanel/ContentPanel"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/WrittenConfirmationSection.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/WrittenConfirmationSection.tsx index 568e4f23013ddf2af371ba701c331247105927e8..1c4ce4da6c4b507da1febb4d2291067f9b1e4d63 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/WrittenConfirmationSection.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/details/WrittenConfirmationSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FacilitySidebarContent.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FacilitySidebarContent.tsx index 295ff9baa8318dfee95a705c6f83fd3d3b65ed20..a77e0facb4af3c752de68c33957d930d801b14a2 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FacilitySidebarContent.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FacilitySidebarContent.tsx @@ -1,9 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiGetProcedureDraftResponse } from "@eshg/employee-portal-api/medicalRegistry"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { Stack, Typography } from "@mui/joy"; import { isDefined } from "remeda"; @@ -11,7 +12,6 @@ import { SearchDraftReferencesResponse } from "@/lib/businessModules/medicalRegi import { FORM_OPTION_NEW } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar"; import { SelectCard } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/SelectCard"; import { mapToOptionalPhoneNumbers } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/helper"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { fullAddress } from "@/lib/shared/helpers/facilityUtils"; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar.tsx index 999a09fead5e5a8d258f02c626c0767cda16c6bc..edaf8eef98e3248403f6136a1a4d375a3c4e53bc 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PartialEntryErrorSidebar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PartialEntryErrorSidebar.tsx index 6e84384faed44f1562fc5df61181824906375b55..0d0a1fae96f75748a16dbefa2a328b72e7b975be 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PartialEntryErrorSidebar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PartialEntryErrorSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PersonSidebarContent.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PersonSidebarContent.tsx index 7dd49c3b9b8badacc9b6c2128b62648d769b2111..34a13e22d17b874337f3fe5a27233facea1c4731 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PersonSidebarContent.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/PersonSidebarContent.tsx @@ -1,9 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiGetProcedureDraftResponse } from "@eshg/employee-portal-api/medicalRegistry"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { Stack, Typography } from "@mui/joy"; @@ -14,7 +15,6 @@ import { } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar"; import { SelectCard } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/SelectCard"; import { mapToOptionalPhoneNumbers } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/helper"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { fullAddress } from "@/lib/shared/helpers/facilityUtils"; import { join } from "@/lib/shared/helpers/strings"; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/ProcedureSidebarContent.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/ProcedureSidebarContent.tsx index 9f8e18e3f668131d40b041651efdcc69b4f7a7b0..c86f6dddeb7f57be674ff8900808b6f0942edafa 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/ProcedureSidebarContent.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/ProcedureSidebarContent.tsx @@ -1,11 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiGetReferencePersonResponse } from "@eshg/employee-portal-api/base"; import { ApiMedicalRegistryEntrySearchResult } from "@eshg/employee-portal-api/medicalRegistry"; import { Alert } from "@eshg/lib-portal/components/Alert"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { formatDate, formatDateTime, @@ -19,7 +20,6 @@ import { FORM_OPTION_NO_MATCH, } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/FinalizeDraftSidebar"; import { SelectCard } from "@/lib/businessModules/medicalRegistry/components/procedures/finalize/SelectCard"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { procedureStatusNames } from "@/lib/shared/components/procedures/constants"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { fullAddress } from "@/lib/shared/helpers/facilityUtils"; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/SelectCard.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/SelectCard.tsx index b57704e747c3be8babbeeaa344d21500c6f044db..7750fa07e12a5ffeb038213a6f3a659c91c03e6f 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/SelectCard.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/SelectCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/helper.ts b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/helper.ts index e6fe4ee19ca597219953fc347af3a5018e694bc8..5023dd0b194cea04fd83fce6d7fc03c1965954bd 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/helper.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/helper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/useConfirmDraftDialog.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/useConfirmDraftDialog.tsx index 407173735c174637f390c3c05a4bc81430a91fd3..e57e143681546efc109880d26965cb89a231b3c9 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/useConfirmDraftDialog.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/finalize/useConfirmDraftDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,12 +9,10 @@ import { ApiProcedureReference, ApiProfessionalReferencePerson, } from "@eshg/employee-portal-api/medicalRegistry"; +import { ConfirmationDialogOptions } from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; import { useConfirmDraft } from "@/lib/businessModules/medicalRegistry/api/mutations/medicalRegistryEntries"; -import { - ConfirmationDialogOptions, - useConfirmationDialog, -} from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface ConfirmDraftParams { procedure: ApiGetProcedureDraftResponse; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/DownloadTemplateLink.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/DownloadTemplateLink.tsx index 559b264d142fa831379f57954608017664cb9070..ab82b89a66d1d0a9bf1c13f6419717d0448ecb03 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/DownloadTemplateLink.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/DownloadTemplateLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataErrorSidebar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataErrorSidebar.tsx index 9e03f00adef868b8f475880065e0069683ca817c..fc1aaeb40be64a1185cc1e9ce45139be52ee95e4 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataErrorSidebar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataErrorSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataFormSidebar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataFormSidebar.tsx index 24b7489fc521d08cdd7236ae3c560a192c814bfb..4e614d840bd7241aeb213083e34cfcf07a409c62 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataFormSidebar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataFormSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,7 @@ import { Alert } from "@eshg/lib-portal/components/Alert"; import { SubmitButton } from "@eshg/lib-portal/components/buttons/SubmitButton"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { Button, List, ListItem, Stack } from "@mui/joy"; import { useFormikContext } from "formik"; @@ -14,7 +15,6 @@ import { DownloadTemplateLink } from "@/lib/businessModules/medicalRegistry/comp import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataPendingSidebar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataPendingSidebar.tsx index 75c659cfe1f9b4be619bdd7cba852fa0c6260dd6..93226fbf433bb022f77de5fd70763e3d014a59fd 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataPendingSidebar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataPendingSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSidebar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSidebar.tsx index 25a1d0b2c899df4b51325656b7648b348af4f6ec..61f821d71d9df47d5737d3ff92de5465918b225d 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSidebar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -16,9 +16,9 @@ import { ImportDataErrorSidebar } from "@/lib/businessModules/medicalRegistry/co import { ImportDataFormSidebar } from "@/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataFormSidebar"; import { ImportDataPendingSidebar } from "@/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataPendingSidebar"; import { ImportDataSummarySidebar } from "@/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSummarySidebar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DrawerProps } from "@/lib/shared/components/drawer/drawerContext"; import { useSidebar } from "@/lib/shared/components/drawer/useSidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; type TryAbortCallback = (onAbort: (close: boolean) => void) => void; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSummarySidebar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSummarySidebar.tsx index f07194aa41720077b734312ba3aa48011094fcfa..26d1a951d3c4c7ad0324beca49ed870ca3e1911a 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSummarySidebar.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/ImportDataSummarySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/MedicalRegistryImportButton.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/MedicalRegistryImportButton.tsx index 8a24a6de44cef12ed6ff9ee135240f9760b95d1e..83ff578f1e136508761da8433ce1d1e63fc44635 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/MedicalRegistryImportButton.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/import/MedicalRegistryImportButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryEntryOverviewControls.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryEntryOverviewControls.tsx new file mode 100644 index 0000000000000000000000000000000000000000..dca26fca2f4813cae5f93c8a5c756fd624777e12 --- /dev/null +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryEntryOverviewControls.tsx @@ -0,0 +1,70 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { NavigationLink } from "@eshg/lib-portal/components/navigation/NavigationLink"; +import { Add } from "@mui/icons-material"; +import { Button } from "@mui/joy"; + +import { MedicalRegistryImportButton } from "@/lib/businessModules/medicalRegistry/components/procedures/import/MedicalRegistryImportButton"; +import { routes } from "@/lib/businessModules/medicalRegistry/shared/routes"; +import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; +import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; +import { UseFilterSettings } from "@/lib/shared/components/filterSettings/useFilterSettings"; +import { SearchFilter } from "@/lib/shared/components/tableFilters/SearchFilter"; +import { useTableControl } from "@/lib/shared/hooks/searchParams/useTableControl"; + +interface MedicalRegistryEntryOverviewControlProps { + filterSettings: UseFilterSettings; + toggleActivePanel: (panelName: "filters" | "entrySearch") => void; + activePanel: "filters" | "entrySearch" | undefined; +} + +export function MedicalRegistryEntryOverviewControls( + props: MedicalRegistryEntryOverviewControlProps, +) { + const tableControl = useTableControl({ + serverSideSorting: true, + sortFieldName: "sortKey", + }); + + return ( + <ButtonBar + left={ + <> + <FilterButton + {...props.filterSettings.filterButtonProps} + isFilterVisible={props.activePanel === "filters"} + onClick={() => props.toggleActivePanel("filters")} + activeFilters={ + props.activePanel !== "entrySearch" + ? props.filterSettings.filterButtonProps.activeFilters + : 0 + } + /> + <Button onClick={() => props.toggleActivePanel("entrySearch")}> + Suche + </Button> + {props.activePanel === "entrySearch" && ( + <SearchFilter + tableControl={tableControl} + searchParamName="name" + label="Suche" + /> + )} + </> + } + right={ + <> + <MedicalRegistryImportButton /> + <NavigationLink href={routes.procedures.create} passHref> + <Button startDecorator={<Add />}>Eintrag erstellen</Button> + </NavigationLink> + </> + } + /> + ); +} diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryProceduresSearchBar.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryProceduresSearchBar.tsx deleted file mode 100644 index 252b2bda4b8cbc8ca0e1d2ab41674dce812e4492..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryProceduresSearchBar.tsx +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -"use client"; - -import { Row } from "@eshg/lib-portal/components/Row"; -import { NavigationLink } from "@eshg/lib-portal/components/navigation/NavigationLink"; -import { Add } from "@mui/icons-material"; -import { Button } from "@mui/joy"; - -import { MedicalRegistryImportButton } from "@/lib/businessModules/medicalRegistry/components/procedures/import/MedicalRegistryImportButton"; -import { routes } from "@/lib/businessModules/medicalRegistry/shared/routes"; - -export function MedicalRegistryProceduresSearchBar() { - return ( - <Row justifyContent="flex-end"> - <MedicalRegistryImportButton /> - <NavigationLink href={routes.procedures.create} passHref> - <Button startDecorator={<Add />}>Eintrag erstellen</Button> - </NavigationLink> - </Row> - ); -} diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryProceduresTable.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryProceduresTable.tsx index f1d9b627dd0dcdbb9f6715a2ca5187e8f0546cff..02aeacb30856d2d5700ca7ad818e7e13958e9fd0 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryProceduresTable.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/proceduresTable/MedicalRegistryProceduresTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -13,11 +13,19 @@ import { import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { useSuspenseQueries } from "@tanstack/react-query"; import { createColumnHelper } from "@tanstack/react-table"; +import { useSearchParams } from "next/navigation"; +import { useReducer } from "react"; import { useGetMedicalRegistryProcedureOverviewQuery } from "@/lib/businessModules/medicalRegistry/api/queries/medicalRegistryEntries"; import { MedicalRegistryProcedureChip } from "@/lib/businessModules/medicalRegistry/components/procedures/MedicalRegistryProcedureChip"; +import { + getMedicalRegistryEntryFilters, + useMedicalRegistryFilterSettings, +} from "@/lib/businessModules/medicalRegistry/shared/hooks/useMedicalRegistryFilterSettings"; import { routes } from "@/lib/businessModules/medicalRegistry/shared/routes"; import { useGetGdprValidationBannerQuery } from "@/lib/shared/api/queries/gdpr"; +import { FilterSettings } from "@/lib/shared/components/filterSettings/FilterSettings"; +import { FilterSettingsSheet } from "@/lib/shared/components/filterSettings/FilterSettingsSheet"; import { useGdprValidationTasksAlert } from "@/lib/shared/components/gdpr/useGdprValidationTasksAlert"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; @@ -26,7 +34,7 @@ import { TableSheet } from "@/lib/shared/components/table/TableSheet"; import { translateCountry } from "@/lib/shared/helpers/i18n"; import { useTableControl } from "@/lib/shared/hooks/searchParams/useTableControl"; -import { MedicalRegistryProceduresSearchBar } from "./MedicalRegistryProceduresSearchBar"; +import { MedicalRegistryEntryOverviewControls } from "./MedicalRegistryEntryOverviewControls"; const columnHelper = createColumnHelper<ApiMedicalRegistryEntry>(); @@ -108,14 +116,47 @@ function getProceduresColumns() { }, }, }), + columnHelper.accessor("createdAt", { + header: "Erstellungsdatum", + cell: ({ getValue }) => formatDate(getValue()), + enableSorting: false, + meta: { + width: 180, + canNavigate: { + parentRow: true, + }, + }, + }), ]; } export function MedicalRegistryProceduresTable() { const tableControl = useTableControl(); + const filterSettings = useMedicalRegistryFilterSettings(); + + const [activePanel, toggleActivePanel] = useReducer( + reduceActivePanel, + undefined, + ); + + type PanelName = "filters" | "entrySearch"; + + function reduceActivePanel( + state: PanelName | undefined, + newState: PanelName, + ): PanelName | undefined { + return newState === state ? undefined : newState; + } + + const searchParams = useSearchParams(); + const searchQuery = searchParams.get("name") ?? ""; const proceduresQuery = useGetMedicalRegistryProcedureOverviewQuery( - tableControl.paginationProps, + activePanel === "entrySearch" + ? searchQuery + : { + ...getMedicalRegistryEntryFilters(filterSettings.activeValues), + }, ); const gdprBannerQuery = useGetGdprValidationBannerQuery( ApiBusinessModule.MedicalRegistry, @@ -137,7 +178,20 @@ export function MedicalRegistryProceduresTable() { return ( <TablePage aria-label="Vorgänge" - controls={<MedicalRegistryProceduresSearchBar />} + controls={ + <MedicalRegistryEntryOverviewControls + filterSettings={filterSettings} + activePanel={activePanel} + toggleActivePanel={toggleActivePanel} + /> + } + filterSettings={ + activePanel === "filters" && ( + <FilterSettingsSheet {...filterSettings.filterSettingsSheetProps}> + <FilterSettings {...filterSettings.filterSettingsProps} /> + </FilterSettingsSheet> + ) + } > {" "} <TableSheet @@ -155,7 +209,7 @@ export function MedicalRegistryProceduresTable() { rowNavigation={{ route: ({ original: { id: procedureId } }) => routes.procedures.byId(procedureId).details, - focusColumnAccessorKey: "id", + focusColumnAccessorKey: "lastName", }} /> </TableSheet> diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/shared/constants.ts b/employee-portal/src/lib/businessModules/medicalRegistry/shared/constants.ts index adf21bd1a99da1300834fd00034472d671092a03..ff59a2f00d7c9e064c530d42af27d5fca17166f6 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/shared/constants.ts @@ -1,29 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { - ApiEmploymentStatus, - ApiEmploymentType, - ApiProcedureType, - ApiProfessionalTitle, - ApiTypeOfChange, -} from "@eshg/employee-portal-api/medicalRegistry"; +import { ApiProcedureType } from "@eshg/employee-portal-api/medicalRegistry"; export const archivableProcedureTypes = [ApiProcedureType.MedicalRegistryEntry]; -export const changeTypeNames = { - [ApiTypeOfChange.NewRegistration]: "Neuanmeldung", - [ApiTypeOfChange.SecondPractice]: "Zweitpraxis", - [ApiTypeOfChange.ReRegistration]: "Wiederanmeldung", - [ApiTypeOfChange.ChangeOfRegistration]: "Ummeldung", - [ApiTypeOfChange.ChangeOfName]: "Namensänderung", - [ApiTypeOfChange.Relocation]: "Wegzug", - [ApiTypeOfChange.Deregistration]: "Abmeldung", - [ApiTypeOfChange.Other]: "Sonstiges", -} satisfies Record<ApiTypeOfChange, string>; - export const systemProgressEntryTypeTitles: Record<string, string> = { NEW_REGISTRATION: "Neuanmeldung beantragt", SECOND_PRACTICE: "Zweitpraxis beantragt", @@ -45,68 +28,17 @@ export const keyDocumentTypes: Record<string, string> = { OTHER_RELEVANT_DOCUMENTS: "Weitere relevante Dokumente", }; -export const professionalTitleNames = { - [ApiProfessionalTitle.Doctor]: "Arzt", - [ApiProfessionalTitle.Dentist]: "Zahnarzt", - [ApiProfessionalTitle.PsychologicalPsychotherapist]: - "Psychologischer Psychotherapeut", - [ApiProfessionalTitle.NursingAssistant]: "Altenpflegehelfer", - [ApiProfessionalTitle.GeriatricNurse]: "Altenpfleger", - [ApiProfessionalTitle.Dietician]: "Diätassistent", - [ApiProfessionalTitle.Disinfector]: "Desinfektor", - [ApiProfessionalTitle.OccupationalTherapist]: "Ergotherapeut", - [ApiProfessionalTitle.HealthSupervisor]: "Gesundheitsaufseher", - [ApiProfessionalTitle.HealthcareAndPediatricNurse]: - "Gesundheits- und Kinderkrankenpfleger (ehem. Kinderkrankenschwester / Kinderkrankenpfleger)", - [ApiProfessionalTitle.HealthcareAndNursingAssistant]: - "Gesundheits- und Krankenpflegehelfer (ehem. Krankenpflegehelfer)", - [ApiProfessionalTitle.HealthcareAndNursingAssistantsHelper]: - "Gesundheits- und Krankenpfleger (ehem. Krankenschwester / Krankenpfleger)", - [ApiProfessionalTitle.MidwiveMaternityNurse]: "Hebamme / Entbindungspfleger", - [ApiProfessionalTitle.AlternativePractitioner]: "Heilpraktiker (HP)", - [ApiProfessionalTitle.NonMedicalPractitionerForChiropractic]: - "Heilpraktiker für Chiropraktik", - [ApiProfessionalTitle.AlternativePractitionerForSpeechTherapy]: - "Heilpraktiker für Logopädie", - [ApiProfessionalTitle.NonMedicalPractitionerForPhysiotherapy]: - "Heilpraktiker für Physiotherapie", - [ApiProfessionalTitle.NonMedicalPractitionerForPsychotherapy]: - "Heilpraktiker für Psychotherapie", - [ApiProfessionalTitle.ChildAndYouthPsychotherapist]: - "Kinder- und Jugendpsychotherapeut", - [ApiProfessionalTitle.SpeechTherapist]: "Logopäde", - [ApiProfessionalTitle.MasseurAndMedicalBathAttendant]: - "Masseur und medizinischer Bademeister", - [ApiProfessionalTitle.MedicalDocumentalist]: "Medizinischer Dokumentar", - [ApiProfessionalTitle.MedicalTechnicalLaboratoryAssistant]: - "Medizinisch-Technischer Laboratoriums-Assistent", - [ApiProfessionalTitle.MedicalTechnicalRadiologyAssistant]: - "Medizinisch-Technischer Radiologie-Assistent", - [ApiProfessionalTitle.MedicalTechnicalAssistantForFunctionalDiagnostics]: - "Medizinisch-Technischer Assistent für Funktionsdiagnostik", - [ApiProfessionalTitle.EmergencyParamedic]: - "Notfallsanitäter (ehem. Rettungsassistent)", - [ApiProfessionalTitle.Orthoptist]: "Orthoptist", - [ApiProfessionalTitle.CareAssistant]: "Pflegehelfer", - [ApiProfessionalTitle.NursingService]: "Pflegedienst", - [ApiProfessionalTitle.NursingServiceManager]: "Pflegedienstleiter", - [ApiProfessionalTitle.PharmaceuticalTechnicalAssistant]: - "Pharmazeutisch-Technischer Assistent", - [ApiProfessionalTitle.Physiotherapist]: "Physiotherapeut", - [ApiProfessionalTitle.Podiatrist]: "Podologe", - [ApiProfessionalTitle.RadiologyAssistant]: "Radiologieassistent", - [ApiProfessionalTitle.SportsTherapist]: "Sporttherapeut", - [ApiProfessionalTitle.Pharmacist]: "Apotheker", - [ApiProfessionalTitle.Veterinarian]: "Tierarzt", -} satisfies Record<ApiProfessionalTitle, string>; - -export const employmentTypeNames = { - [ApiEmploymentType.FullTime]: "Hauptberuflich", - [ApiEmploymentType.PartTime]: "Nebenberuflich", -} satisfies Record<ApiEmploymentType, string>; - -export const employmentStatusNames = { - [ApiEmploymentStatus.SelfEmployed]: "Selbstständig", - [ApiEmploymentStatus.Freelance]: "Freiberuflich", - [ApiEmploymentStatus.Employee]: "Angestellt", -} satisfies Record<ApiEmploymentStatus, string>; +export const EntryStatus = { + DraftCitizen: "DRAFT_CITIZEN", + DraftEmployee: "DRAFT_EMPLOYEE", + Open: "OPEN", + Closed: "CLOSED", +} as const; +export type EntryStatus = (typeof EntryStatus)[keyof typeof EntryStatus]; + +export const entryStatusNames = { + [EntryStatus.DraftCitizen]: "Externer Entwurf", + [EntryStatus.DraftEmployee]: "Interner Entwurf", + [EntryStatus.Open]: "Offen", + [EntryStatus.Closed]: "Geschlossen", +} satisfies Record<EntryStatus, string>; diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/shared/hooks/useMedicalRegistryFilterSettings.ts b/employee-portal/src/lib/businessModules/medicalRegistry/shared/hooks/useMedicalRegistryFilterSettings.ts new file mode 100644 index 0000000000000000000000000000000000000000..22a0e162830ef53ea5ea6190b0e6135f1cd6cf6b --- /dev/null +++ b/employee-portal/src/lib/businessModules/medicalRegistry/shared/hooks/useMedicalRegistryFilterSettings.ts @@ -0,0 +1,163 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiProcedureStatus, + ApiProcedureType, + ApiProfessionalTitle, +} from "@eshg/employee-portal-api/medicalRegistry"; +import { GetProcedureOverviewRequest } from "@eshg/employee-portal-api/medicalRegistry/apis"; +import { professionalTitleNames } from "@eshg/lib-portal/businessModules/medicalRegistry/constants"; + +import { + EntryStatus, + entryStatusNames, +} from "@/lib/businessModules/medicalRegistry/shared/constants"; +import { FilterDefinition } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; +import { + UseFilterSettings, + useFilterSettings, +} from "@/lib/shared/components/filterSettings/useFilterSettings"; +import { + getFilterSelectedValue, + getFilterSelectedValues, +} from "@/lib/shared/helpers/filter"; + +const FILTER_KEYS = { + status: "status", + certificateRequested: "certificateRequested", + professionalTitle: "professionalTitle", +}; + +const initialProfessionalTitles = "initialProfessionalTitles"; + +export function useMedicalRegistryFilterSettings(): UseFilterSettings { + const filterDefinitions: FilterDefinition[] = [ + { + type: "EnumSingle", + key: FILTER_KEYS.certificateRequested, + name: "Meldebestätigung", + options: [ + { value: "true", label: "Ja" }, + { value: "false", label: "Nein" }, + ], + }, + { + type: "Enum", + key: FILTER_KEYS.status, + name: "Status", + options: buildOptionsFromStatus(), + }, + { + type: "Enum", + key: FILTER_KEYS.professionalTitle, + name: "Berufsbezeichnung", + options: buildOptionsFromProfessionalTitles(), + }, + ]; + + function getInitialValues(): FilterValue[] | undefined { + const storedTitles = localStorage.getItem(initialProfessionalTitles); + return storedTitles + ? [ + { + type: "Enum", + key: "professionalTitle", + selectedValues: JSON.parse(storedTitles) as [], + }, + ] + : undefined; + } + + return useFilterSettings({ + definitions: filterDefinitions, + initialValues: getInitialValues(), + onValuesSubmit: (values) => { + const selectedProfessionalTitles = getFilterSelectedValues( + values, + FILTER_KEYS.professionalTitle, + ApiProfessionalTitle, + ); + const stringifiedTitles = JSON.stringify(selectedProfessionalTitles); + if (selectedProfessionalTitles !== undefined) { + localStorage.setItem(initialProfessionalTitles, stringifiedTitles); + } else { + localStorage.removeItem(initialProfessionalTitles); + } + // active values are synced via SearchParamStateProvider + }, + showSearch: false, + }); +} + +function buildOptionsFromProfessionalTitles() { + return Object.entries(professionalTitleNames).map(([key, label]) => ({ + value: key, + label, + })); +} + +function buildOptionsFromStatus() { + return Object.entries(entryStatusNames).map(([key, label]) => ({ + value: key, + label: label, + })); +} + +export function getMedicalRegistryEntryFilters( + filterValues: FilterValue[], +): Pick< + GetProcedureOverviewRequest, + | "certificateRequested" + | "procedureStatus" + | "procedureType" + | "professionalTitle" +> { + const { status, type } = mapStatusToStatusAndType( + getFilterSelectedValues(filterValues, FILTER_KEYS.status, EntryStatus) ?? + [], + ); + + const professionalTitle = + getFilterSelectedValues( + filterValues, + FILTER_KEYS.professionalTitle, + ApiProfessionalTitle, + ) ?? []; + return { + certificateRequested: evaluateStringAsBoolean( + getFilterSelectedValue(filterValues, FILTER_KEYS.certificateRequested), + ), + procedureStatus: status.length !== 0 ? new Set(status) : undefined, + procedureType: type.length !== 0 ? new Set(type) : undefined, + professionalTitle: + professionalTitle.length !== 0 ? new Set(professionalTitle) : undefined, + }; +} + +function mapStatusToStatusAndType(statusValues: EntryStatus[]) { + const status: ApiProcedureStatus[] = []; + const type: ApiProcedureType[] = []; + for (const value of statusValues) { + if (value === EntryStatus.Closed) { + status.push(ApiProcedureStatus.Closed); + type.push(ApiProcedureType.MedicalRegistryEntry); + } else if (value === EntryStatus.Open) { + status.push(ApiProcedureStatus.Open); + type.push(ApiProcedureType.MedicalRegistryEntry); + } else if (value === EntryStatus.DraftEmployee) { + status.push(ApiProcedureStatus.Draft); + type.push(ApiProcedureType.MedicalRegistryEmployeeDraft); + } else if (value === EntryStatus.DraftCitizen) { + status.push(ApiProcedureStatus.Draft); + type.push(ApiProcedureType.MedicalRegistryCitizenDraft); + } + } + return { status, type }; +} +function evaluateStringAsBoolean(value: string | undefined) { + return value === "true" ? true : value === "false" ? false : undefined; +} diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/medicalRegistry/shared/moduleUserGroup.ts index 11f722a5567e749b7d630b3691133766980fc6e5..a01c8d7bbc0f1d99d595c653f5957ceed1a9495e 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/shared/routes.ts b/employee-portal/src/lib/businessModules/medicalRegistry/shared/routes.ts index 0f1ad8b575e7eb24371b46bae97f789451ccf4c9..88e214021ce557d3b5ca44598ed17f282a0c85fa 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/medicalRegistry/shared/routes.ts @@ -1,11 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ const basePath = "/medical-registry"; const proceduresPath = `${basePath}/procedures`; -const proceduresSearchPath = `${basePath}/search-procedure`; +const proceduresSearchPath = `${basePath}/search`; const proceduresCreatePath = `${proceduresPath}/create`; export const routes = { @@ -14,12 +14,7 @@ export const routes = { byId: (procedureId: string) => ({ index: `${proceduresPath}/${procedureId}`, details: `${proceduresPath}/${procedureId}/details`, - progressEntries: { - index: `${proceduresPath}/${procedureId}/progress-entries`, - byId: (progressEntryId: string) => ({ - details: `${proceduresPath}/${procedureId}/progress-entries/${progressEntryId}/details`, - }), - }, + progressEntries: `${proceduresPath}/${procedureId}/progress-entries`, }), create: `${proceduresCreatePath}`, }, diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/medicalRegistry/shared/sideNavigationItem.tsx index b6559cf30e1a37986a1cfe6c8eaaa49a5eaaf6e9..eefb791f7aa778ded910f0e5d7eb5f59e5e676b9 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/medicalRegistry/shared/sideNavigationItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/clients.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/clients.ts index c2c0bd7a8b823cce0e77669b5b45dce55ca4453d..baf32ac76e19c70f6f7c1edd7222e632fad8b4a6 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/clients.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/clients.ts @@ -1,9 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { + AppointmentBlockApi, + AppointmentTypeApi, ApprovalRequestApi, Configuration, EmployeeOmsProcedureApi, @@ -20,6 +22,14 @@ function useConfiguration() { return new Configuration(configurationParameters); } +export function useAppointmentBlockApi() { + return new AppointmentBlockApi(useConfiguration()); +} + +export function useAppointmentTypeApi() { + return new AppointmentTypeApi(useConfiguration()); +} + export function useProgressEntryApi() { return new ProgressEntryApi(useConfiguration()); } diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/download/files.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/download/files.ts index d7cbc2afa6749fa2d6f9e1ef2fcc34c7d91d8b45..8393b57aa9670d08ce62eb9fc0d65049659b975a 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/download/files.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/download/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/models/AppointmentBlockGroup.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/models/AppointmentBlockGroup.ts new file mode 100644 index 0000000000000000000000000000000000000000..d6c8308cd060daef669516bf324984a84aed9527 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/models/AppointmentBlockGroup.ts @@ -0,0 +1,67 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiAppointmentType, + ApiGetAppointmentBlock, + ApiGetAppointmentBlockGroup, +} from "@eshg/employee-portal-api/officialMedicalService"; +import { assertNonEmptyArray } from "@eshg/lib-portal/helpers/assertions"; +import { first, last, sumBy } from "remeda"; + +import { BaseEntity, mapBaseEntity } from "@/lib/shared/api/models/BaseEntity"; + +export interface AppointmentBlockGroup extends AppointmentBlock { + readonly type: ApiAppointmentType; + readonly parallelExaminations: number; + readonly appointmentBlocks: AppointmentBlock[]; +} + +export interface AppointmentBlock extends BaseEntity { + readonly start: Date; + readonly end: Date; + readonly numberOfFreeAppointments: number; + readonly numberOfBookedAppointments: number; +} + +export function mapAppointmentBlockGroup( + response: ApiGetAppointmentBlockGroup, +): AppointmentBlockGroup { + assertNonEmptyArray(response.appointmentBlocks); + + const firstAppointmentBlock = first(response.appointmentBlocks); + const lastAppointmentBlock = last(response.appointmentBlocks); + const aggregatedNumberOfFreeAppointments = sumBy( + response.appointmentBlocks, + (appointmentBlock) => appointmentBlock.numberOfFreeAppointments, + ); + const aggregatedNumberOfBookedAppointments = sumBy( + response.appointmentBlocks, + (appointmentBlock) => appointmentBlock.numberOfBookedAppointments, + ); + + return { + ...mapBaseEntity(response), + type: response.type, + parallelExaminations: response.parallelExaminations, + start: firstAppointmentBlock.start, + end: lastAppointmentBlock.end, + numberOfFreeAppointments: aggregatedNumberOfFreeAppointments, + numberOfBookedAppointments: aggregatedNumberOfBookedAppointments, + appointmentBlocks: response.appointmentBlocks.map(mapAppointmentBlock), + }; +} + +export function mapAppointmentBlock( + response: ApiGetAppointmentBlock, +): AppointmentBlock { + return { + ...mapBaseEntity(response), + start: response.start, + end: response.end, + numberOfFreeAppointments: response.numberOfFreeAppointments, + numberOfBookedAppointments: response.numberOfBookedAppointments, + }; +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/models/AppointmentTypeConfig.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/models/AppointmentTypeConfig.ts new file mode 100644 index 0000000000000000000000000000000000000000..a7190f68a812ddad3532b4f9d2232da2b1027755 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/models/AppointmentTypeConfig.ts @@ -0,0 +1,26 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiAppointmentType, + ApiAppointmentTypeConfig, +} from "@eshg/employee-portal-api/officialMedicalService"; + +import { BaseEntity, mapBaseEntity } from "@/lib/shared/api/models/BaseEntity"; + +export interface AppointmentTypeConfig extends BaseEntity { + appointmentTypeDto: ApiAppointmentType; + standardDurationInMinutes: number; +} + +export function mapAppointmentTypeConfig( + response: ApiAppointmentTypeConfig, +): AppointmentTypeConfig { + return { + ...mapBaseEntity(response), + appointmentTypeDto: response.appointmentTypeDto, + standardDurationInMinutes: response.standardDurationInMinutes, + }; +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/appointmentBlocksApi.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/appointmentBlocksApi.ts new file mode 100644 index 0000000000000000000000000000000000000000..52844b5669f18537a76672f76eddd5f14756a8fc --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/appointmentBlocksApi.ts @@ -0,0 +1,23 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiCreateDailyAppointmentBlockGroupRequest } from "@eshg/employee-portal-api/officialMedicalService"; +import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; + +import { useAppointmentBlockApi } from "@/lib/businessModules/officialMedicalService/api/clients"; + +export function useCreateDailyAppointmentBlocksForGroup() { + const snackbar = useSnackbar(); + const appointmentBlockApi = useAppointmentBlockApi(); + return useHandledMutation({ + mutationFn: (data: ApiCreateDailyAppointmentBlockGroupRequest) => { + return appointmentBlockApi.createDailyAppointmentBlocksForGroup(data); + }, + onSuccess: () => { + snackbar.confirmation("Der Terminblock wurde angelegt."); + }, + }); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/approvalRequests.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/approvalRequests.ts index a477266c21c6d899cb235ed71c912d45b4e2aaa9..4609cc8a67df87573c5bc148071b1b4b5268b7f8 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi.ts index bdcd74c40b545615a83fc1f5f5f39c6fbde1a1c3..2e7e4ec3dbf715c7403a7e89299ea97fa3ca6f2f 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi.ts @@ -1,13 +1,19 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiPostEmployeeOmsProcedureRequest } from "@eshg/employee-portal-api/officialMedicalService"; +import { + ApiPatchEmployeeOmsProcedureFacilityRequest, + ApiPostEmployeeOmsProcedureRequest, + UpdateAffectedPersonRequest, +} from "@eshg/employee-portal-api/officialMedicalService"; import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { useEmployeeOmsProcedureApi } from "@/lib/businessModules/officialMedicalService/api/clients"; +import { DefaultFacilityFormValues } from "@/lib/shared/components/facilitySidebar/create/FacilityForm"; +import { mapFacilityFormValuesToApiAddFacilityFileStateRequest } from "@/lib/shared/helpers/facilityUtils"; export function usePostEmployeeProcedure() { const snackbar = useSnackbar(); @@ -21,3 +27,60 @@ export function usePostEmployeeProcedure() { }, }); } + +export function usePatchAffectedPerson() { + const snackbar = useSnackbar(); + const employeeOmsProcedureApi = useEmployeeOmsProcedureApi(); + + return useHandledMutation({ + mutationFn: (request: UpdateAffectedPersonRequest) => + employeeOmsProcedureApi.updateAffectedPersonRaw(request), + onSuccess: () => { + snackbar.confirmation("Die betroffene Person wurde bearbeitet."); + }, + }); +} + +export function usePostFacility() { + const snackbar = useSnackbar(); + const employeeOmsProcedureApi = useEmployeeOmsProcedureApi(); + + return useHandledMutation({ + mutationFn: ({ + id, + facility, + }: { + id: string; + facility: DefaultFacilityFormValues; + }) => { + const baseFacility = + mapFacilityFormValuesToApiAddFacilityFileStateRequest(facility); + return employeeOmsProcedureApi.postFacility(id, { + facility: { ...baseFacility, version: 0 }, + }); + }, + onSuccess: () => { + snackbar.confirmation("Der Auftraggeber wurde hinzugefügt."); + }, + }); +} + +export function usePatchFacility() { + const snackbar = useSnackbar(); + const employeeOmsProcedureApi = useEmployeeOmsProcedureApi(); + + return useHandledMutation({ + mutationFn: ({ + id, + request, + }: { + id: string; + request: ApiPatchEmployeeOmsProcedureFacilityRequest; + }) => { + return employeeOmsProcedureApi.patchFacility(id, request); + }, + onSuccess: () => { + snackbar.confirmation("Der Auftraggeber wurde bearbeitet."); + }, + }); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/files.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/files.ts index d1b5f8ea2a705b30e7555d9145d21decbd658465..d252cebd7565913269c0cc6cacc12522c12ede84 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/files.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/progressEntries.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/progressEntries.ts index 8e74e3340b747fa8ca2690766605877fbbcc9ada..d803d0be76cf52cebc2b7c72277e1408948c8d15 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/queryKeys.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys.ts similarity index 58% rename from employee-portal/src/lib/businessModules/officialMedicalService/api/queries/queryKeys.ts rename to employee-portal/src/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys.ts index 6e8b6329c31c50a56f86c23827b765f1ffcdab35..097ef36ec38f61c1abc3e12c74effc5071c6a756 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/queryKeys.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,18 @@ import { queryKeyFactory } from "@eshg/lib-portal/api/queryKeyFactory"; const apiQueryKey = queryKeyFactory(["officialMedicalService"]); +export const appointmentBlockApiQueryKey = queryKeyFactory( + apiQueryKey(["appointmentBlockApi"]), +); + +export const appointmentTypesApiQueryKey = queryKeyFactory( + apiQueryKey(["appointmentTypesApi"]), +); + +export const appointmentStaffApiQueryKey = queryKeyFactory( + apiQueryKey(["appointtingStaffApi"]), +); + export const progressEntryApiQueryKey = queryKeyFactory( apiQueryKey(["progressEntryApi"]), ); diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentBlocksApi.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentBlocksApi.ts new file mode 100644 index 0000000000000000000000000000000000000000..28fa38d824d8d7e44dba8661f7fcfeead83e948d --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentBlocksApi.ts @@ -0,0 +1,49 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiCreateDailyAppointmentBlockGroupRequest, + GetAppointmentBlockGroupsRequest, +} from "@eshg/employee-portal-api/officialMedicalService"; +import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; +import { queryOptions, useQuery } from "@tanstack/react-query"; + +import { useAppointmentBlockApi } from "@/lib/businessModules/officialMedicalService/api/clients"; +import { mapAppointmentBlockGroup } from "@/lib/businessModules/officialMedicalService/api/models/AppointmentBlockGroup"; +import { appointmentBlockApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys"; +import { mapPaginatedList } from "@/lib/shared/api/models/PaginatedList"; + +export function useGetAppointmentBlockGroupsQuery( + request: GetAppointmentBlockGroupsRequest, +) { + const appointmentApi = useAppointmentBlockApi(); + return queryOptions({ + queryKey: appointmentBlockApiQueryKey([ + "getAppointmentBlockGroups", + request, + ]), + queryFn: () => + appointmentApi + .getAppointmentBlockGroupsRaw(request) + .then(unwrapRawResponse), + select: mapPaginatedList(mapAppointmentBlockGroup), + }); +} + +export function useValidateDailyAppointmentBlocksForGroup( + data: ApiCreateDailyAppointmentBlockGroupRequest | null, +) { + const appointmentApi = useAppointmentBlockApi(); + return useQuery({ + queryKey: appointmentBlockApiQueryKey([ + "validateDailyAppointmentBlocksForGroup", + data, + ]), + queryFn: () => + data != null + ? appointmentApi.validateDailyAppointmentBlocksForGroup(data) + : null, + }); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentStaffApi.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentStaffApi.ts new file mode 100644 index 0000000000000000000000000000000000000000..c4adebb9a3bc3cccf4d5aea1a9844fc0a38208f2 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentStaffApi.ts @@ -0,0 +1,18 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { queryOptions } from "@tanstack/react-query"; + +import { useUserApi } from "@/lib/baseModule/api/clients"; +import { appointmentStaffApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys"; + +export function useGetAllPhysiciansQuery() { + const userApi = useUserApi(); + return queryOptions({ + queryKey: appointmentStaffApiQueryKey(["getAllPhysicians"]), + queryFn: () => userApi.getUsersByGroup("[System] AÄD-Arzt"), + select: (response) => response.users ?? [], + }); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentTypeApi.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentTypeApi.ts new file mode 100644 index 0000000000000000000000000000000000000000..a221a86fc63fa9cd59b1e4ef9c2dfd059070be73 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/appointmentTypeApi.ts @@ -0,0 +1,20 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { queryOptions } from "@tanstack/react-query"; + +import { useAppointmentTypeApi } from "@/lib/businessModules/officialMedicalService/api/clients"; +import { mapAppointmentTypeConfig } from "@/lib/businessModules/officialMedicalService/api/models/AppointmentTypeConfig"; +import { appointmentTypesApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys"; + +export function useGetAllAppointmentTypesQuery() { + const appointmentTypesApi = useAppointmentTypeApi(); + return queryOptions({ + queryKey: appointmentTypesApiQueryKey(["getAppointmentTypes"]), + queryFn: () => appointmentTypesApi.getAppointmentTypes(), + select: (response) => + response.appointmentTypeConfigDtos.map(mapAppointmentTypeConfig), + }); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/employeeOmsProcedureApi.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/employeeOmsProcedureApi.ts index aa453a93b7a4a608adc5703c46d1787e87e9e0a9..7fc4f5272daa24083cca54245bebac4b86052cea 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/employeeOmsProcedureApi.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/employeeOmsProcedureApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,7 +11,7 @@ import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; import { useEmployeeOmsProcedureApi } from "@/lib/businessModules/officialMedicalService/api/clients"; -import { employeeOmsProcedureApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/queryKeys"; +import { employeeOmsProcedureApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys"; export function useGetAllProceduresQuery( request: GetAllEmployeeProceduresRequest, diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/files.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/files.ts index 0fda93116d56e5c9dba6c8776881432ef92a8676..e08bcc98e4703f121a5a7c90ae2415280baa34fe 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/files.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/files.ts @@ -1,10 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { useFileApi } from "@/lib/businessModules/officialMedicalService/api/clients"; -import { fileApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/queryKeys"; +import { fileApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys"; import { useGetMetaDataHistoryTemplate } from "@/lib/shared/api/queries/files"; export function useGetMetaDataHistory(fileId: string) { diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/progressEntries.ts b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/progressEntries.ts index 6ee6c529947525ae937e45ce6807dab0ad83da3e..54264bc21ebc07f3be0d6e62d8e87c3156fea978 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,7 +9,7 @@ import { useProcedureApi, useProgressEntryApi, } from "@/lib/businessModules/officialMedicalService/api/clients"; -import { progressEntryApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/queryKeys"; +import { progressEntryApiQueryKey } from "@/lib/businessModules/officialMedicalService/api/queries/apiQueryKeys"; import { useFetchProgressEntriesTemplate, useFetchProgressEntryDetailsTemplate, diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx new file mode 100644 index 0000000000000000000000000000000000000000..1ed26200a7e5f8f9468fbcc772c5f4e9cf3c59eb --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx @@ -0,0 +1,161 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiUser } from "@eshg/employee-portal-api/base"; +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; +import { isEmptyString } from "@eshg/lib-portal/helpers/guards"; +import { Divider, Stack } from "@mui/joy"; +import { Formik, FormikErrors } from "formik"; +import { isDefined, isEmpty } from "remeda"; + +import { AppointmentTypeConfig } from "@/lib/businessModules/officialMedicalService/api/models/AppointmentTypeConfig"; +import { CreateAppointmentBlockGroupValues } from "@/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm"; +import { APPOINTMENT_TYPE_OPTIONS } from "@/lib/businessModules/officialMedicalService/components/appointmentBlocks/options"; +import { routes } from "@/lib/businessModules/officialMedicalService/shared/routes"; +import { AppointmentBlockGroupFields } from "@/lib/shared/components/appointmentBlocks/AppointmentBlockGroupFields"; +import { + AppointmentCountWithDays, + calculateAppointmentCount, +} from "@/lib/shared/components/appointmentBlocks/AppointmentCountWithDays"; +import { AppointmentStaffSelection } from "@/lib/shared/components/appointmentBlocks/AppointmentStaffSelection"; +import { validateAppointmentBlock } from "@/lib/shared/components/appointmentBlocks/validateAppointmentBlock"; +import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; +import { FormSheet } from "@/lib/shared/components/form/FormSheet"; +import { fullName } from "@/lib/shared/components/users/userFormatter"; +import { validateFieldArray } from "@/lib/shared/helpers/validators"; + +const DEFAULT_PARALLEL_EXAMINATIONS = 1; + +function validateForm( + values: CreateAppointmentBlockGroupValues, + appointmentDurations: Record<string, number>, +) { + const errors: FormikErrors<CreateAppointmentBlockGroupValues> = {}; + + const appointmentBlockErrors = validateFieldArray( + values.appointmentBlocks, + (appointmentBlock) => + validateAppointmentBlock( + values.type, + appointmentBlock, + appointmentDurations, + ), + ); + if (isDefined(appointmentBlockErrors)) { + errors.appointmentBlocks = appointmentBlockErrors; + } + + if (isEmpty(values.physicians)) { + errors.physicians = + "Es muss mindestens ein Arzt/eine Ärztin ausgewählt sein."; + } + + return errors; +} + +function hasAtLeastOneAppointmentInGroup( + values: CreateAppointmentBlockGroupValues, + appointmentDurations: Record<string, number>, +) { + return ( + calculateAppointmentCount({ + ...values, + appointmentDurations: appointmentDurations, + parallelExaminations: isEmptyString(values.parallelExaminations) + ? DEFAULT_PARALLEL_EXAMINATIONS + : Math.max(values.parallelExaminations, DEFAULT_PARALLEL_EXAMINATIONS), + skipCalculatingOfBlocks: + validateForm(values, appointmentDurations).appointmentBlocks != + undefined, + }) > 0 + ); +} + +interface AppointmentBlockGroupFormProps { + initialValues: CreateAppointmentBlockGroupValues; + onSubmit: (values: CreateAppointmentBlockGroupValues) => Promise<void>; + allPhysicians: ApiUser[]; + allAppointmentTypes: AppointmentTypeConfig[]; + blockedStaff: string[]; + freeStaff: string[]; + validateAvailability: (values: CreateAppointmentBlockGroupValues) => void; +} + +export function AppointmentBlockGroupForm( + props: Readonly<AppointmentBlockGroupFormProps>, +) { + const snackbar = useSnackbar(); + const physicianOptions = props.allPhysicians.map((option) => ({ + value: option.userId, + label: fullName(option), + })); + const appointmentDurations = Object.fromEntries( + props.allAppointmentTypes.map((currentType) => [ + currentType.appointmentTypeDto, + currentType.standardDurationInMinutes, + ]), + ); + const appointmentTypesRecord: Record<string, number> = {}; + props.allAppointmentTypes.forEach( + (currentType) => + (appointmentTypesRecord[currentType.appointmentTypeDto] = + currentType.standardDurationInMinutes), + ); + return ( + <Formik + initialValues={props.initialValues} + onSubmit={async (values) => { + if (hasAtLeastOneAppointmentInGroup(values, appointmentTypesRecord)) { + await props.onSubmit(values); + } else { + snackbar.notification( + "Es muss mindestens ein Termin enthalten sein.", + ); + } + }} + validate={(values) => validateForm(values, appointmentTypesRecord)} + > + {({ values, isSubmitting, handleSubmit }) => ( + <FormSheet gap={5} onSubmit={handleSubmit}> + <Stack gap={5}> + <AppointmentBlockGroupFields + appointmentBlocksWithDays={values.appointmentBlocks} + options={APPOINTMENT_TYPE_OPTIONS} + showParallelExaminations + /> + </Stack> + <Stack gap={5}> + <AppointmentStaffSelection + physicianOptions={physicianOptions} + freeStaff={props.freeStaff} + blockedStaff={props.blockedStaff} + validateAvailability={() => props.validateAvailability(values)} + /> + </Stack> + <Divider /> + <FormButtonBar + left={ + <AppointmentCountWithDays + appointments={values} + appointmentDurations={appointmentDurations} + parallelExaminations={ + isEmptyString(values.parallelExaminations) + ? DEFAULT_PARALLEL_EXAMINATIONS + : Math.max( + values.parallelExaminations, + DEFAULT_PARALLEL_EXAMINATIONS, + ) + } + /> + } + submitLabel="Planen" + submitting={isSubmitting} + onCancel={routes.appointmentBlockGroups.index} + /> + </FormSheet> + )} + </Formik> + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a0ee8bc9f2981577c85aaee48a586a5ad9437e0b --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx @@ -0,0 +1,135 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { + ApiAppointmentType, + ApiCreateDailyAppointmentBlock, + ApiCreateDailyAppointmentBlockGroupRequest, +} from "@eshg/employee-portal-api/officialMedicalService"; +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; +import { mapRequiredValue } from "@eshg/lib-portal/helpers/form"; +import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; +import { useSuspenseQueries } from "@tanstack/react-query"; +import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; + +import { useCreateDailyAppointmentBlocksForGroup } from "@/lib/businessModules/officialMedicalService/api/mutations/appointmentBlocksApi"; +import { useValidateDailyAppointmentBlocksForGroup } from "@/lib/businessModules/officialMedicalService/api/queries/appointmentBlocksApi"; +import { useGetAllPhysiciansQuery } from "@/lib/businessModules/officialMedicalService/api/queries/appointmentStaffApi"; +import { useGetAllAppointmentTypesQuery } from "@/lib/businessModules/officialMedicalService/api/queries/appointmentTypeApi"; +import { AppointmentBlockGroupForm } from "@/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm"; +import { routes } from "@/lib/businessModules/officialMedicalService/shared/routes"; +import { + AppointmentBlockGroupValuesWithDays, + emptyAppointmentBlockGroup, +} from "@/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays"; +import { isTimeString, toLocalDateTime } from "@/lib/shared/helpers/dateTime"; + +const INITIAL_VALUES: CreateAppointmentBlockGroupValues = { + type: "", + parallelExaminations: 1, + appointmentBlocks: [emptyAppointmentBlockGroup()], + physicians: [], +}; + +function mapFormValues( + values: CreateAppointmentBlockGroupValues, +): ApiCreateDailyAppointmentBlockGroupRequest { + return { + type: mapRequiredValue(values.type), + parallelExaminations: mapRequiredValue(values.parallelExaminations), + appointmentBlocks: values.appointmentBlocks.map(mapAppointmentBlock), + physicians: values.physicians, + }; +} + +function mapAppointmentBlock( + values: AppointmentBlockGroupValuesWithDays, +): ApiCreateDailyAppointmentBlock { + if (!isTimeString(values.startTime) || !isTimeString(values.endTime)) { + throw new Error("Invalid time string"); + } + return { + daysOfWeek: values.daysOfWeek, + start: toLocalDateTime(values.startDate, values.startTime), + end: toLocalDateTime(values.endDate, values.endTime), + }; +} + +export interface CreateAppointmentBlockGroupValues { + type: OptionalFieldValue<ApiAppointmentType>; + parallelExaminations: OptionalFieldValue<number>; + appointmentBlocks: AppointmentBlockGroupValuesWithDays[]; + physicians: string[]; +} + +export function CreateAppointmentBlockGroupForm() { + const snackbar = useSnackbar(); + const router = useRouter(); + const createDailyAppointmentBlocksForGroup = + useCreateDailyAppointmentBlocksForGroup(); + const [validateRequest, setValidateRequest] = + useState<ApiCreateDailyAppointmentBlockGroupRequest | null>(null); + const validateDailyAppointmentBlocksForGroup = + useValidateDailyAppointmentBlocksForGroup(validateRequest); + + const [{ data: allPhysicians }, { data: allAppointmentTypes }] = + useSuspenseQueries({ + queries: [useGetAllPhysiciansQuery(), useGetAllAppointmentTypesQuery()], + }); + + const initialValues = { ...INITIAL_VALUES, allAppointmentTypes }; + const [freeStaff, setFreeStaff] = useState<string[]>([]); + const [blockedStaff, setBlockedStaff] = useState<string[]>([]); + + function validateAvailability(values: CreateAppointmentBlockGroupValues) { + try { + mapFormValues(values); + } catch { + snackbar.notification( + "Bitte Terminblöcke für die Validierung konfigurieren", + ); + return; + } + if (values.physicians.length == 0) { + snackbar.notification( + "Bitte mindestens einen Arzt/eine Ärztin für die Validierung auswählen", + ); + return; + } + setValidateRequest(mapFormValues(values)); + } + + useEffect(() => { + if (validateDailyAppointmentBlocksForGroup.data) { + const result = validateDailyAppointmentBlocksForGroup.data; + setFreeStaff(result.userIdsWithoutEventConflicts); + setBlockedStaff(result.userIdsWithEventConflicts); + } + }, [validateDailyAppointmentBlocksForGroup]); + + async function handleSubmit(values: CreateAppointmentBlockGroupValues) { + await createDailyAppointmentBlocksForGroup.mutateAsync( + mapFormValues(values), + { + onSuccess: () => router.push(routes.appointmentBlockGroups.index), + }, + ); + } + + return ( + <AppointmentBlockGroupForm + initialValues={initialValues} + allPhysicians={allPhysicians} + allAppointmentTypes={allAppointmentTypes} + onSubmit={handleSubmit} + validateAvailability={validateAvailability} + freeStaff={freeStaff} + blockedStaff={blockedStaff} + /> + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupTable.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupTable.tsx new file mode 100644 index 0000000000000000000000000000000000000000..86decc820d5cfd89cc729de1db55ebe5119b232f --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupTable.tsx @@ -0,0 +1,192 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { + ApiAppointmentBlockSortKey, + ApiAppointmentType, +} from "@eshg/employee-portal-api/officialMedicalService"; +import { formatDateTime } from "@eshg/lib-portal/formatters/dateTime"; +import { Chip } from "@mui/joy"; +import { useSuspenseQueries } from "@tanstack/react-query"; +import { ColumnSort, createColumnHelper } from "@tanstack/react-table"; +import { ReactNode } from "react"; + +import { + AppointmentBlock, + AppointmentBlockGroup, +} from "@/lib/businessModules/officialMedicalService/api/models/AppointmentBlockGroup"; +import { useGetAppointmentBlockGroupsQuery } from "@/lib/businessModules/officialMedicalService/api/queries/appointmentBlocksApi"; +import { routes } from "@/lib/businessModules/officialMedicalService/shared/routes"; +import { NoAppointmentBlocksAvailable } from "@/lib/shared/components/appointmentBlocks/NoAppointmentBlocksAvailable"; +import { Pagination } from "@/lib/shared/components/pagination/Pagination"; +import { DataTable } from "@/lib/shared/components/table/DataTable"; +import { TablePage } from "@/lib/shared/components/table/TablePage"; +import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { + getSortDirection, + getSortKey, +} from "@/lib/shared/components/table/sorting"; +import { + formatCalendarWeek, + formatCalendarWeekRange, +} from "@/lib/shared/helpers/dateTime"; +import { useTableControl } from "@/lib/shared/hooks/searchParams/useTableControl"; + +const columnHelper = createColumnHelper<AppointmentBlockRow>(); + +const COLUMNS = [ + columnHelper.accessor("start", { + id: "calendarWeek", + header: "Woche", + cell: (props) => + props.row.depth === 0 + ? formatCalendarWeekRange( + props.row.original.start, + props.row.original.end, + ) + : formatCalendarWeek(props.getValue()), + enableSorting: false, + }), + columnHelper.accessor("start", { + header: "Start", + cell: (props) => formatDateTime(props.getValue()), + enableSorting: true, + }), + columnHelper.accessor("end", { + header: "Ende", + cell: (props) => formatDateTime(props.getValue()), + enableSorting: true, + }), + + columnHelper.accessor("numberOfFreeAppointments", { + header: "Verfügbar", + cell: (props) => ( + <Chip size="md" color="primary"> + {props.getValue()} + </Chip> + ), + enableSorting: false, + }), + columnHelper.accessor("numberOfBookedAppointments", { + header: "Gebucht", + cell: (props) => ( + <Chip size="md" color="success"> + {props.getValue()} + </Chip> + ), + enableSorting: true, + }), +]; + +const initialSorting: ColumnSort = { + id: "start", + desc: false, +}; + +interface AppointmentBlockRow { + type: ApiAppointmentType; + start: Date; + end: Date; + numberOfFreeAppointments: number; + numberOfBookedAppointments: number; + subRows?: AppointmentBlockRow[]; +} + +interface AppointmentBlockGroupsTableProps { + controls?: ReactNode; +} + +function toAggregatedAppointmentBlockRow( + appointmentBlockGroup: AppointmentBlockGroup, +): AppointmentBlockRow { + return { + type: appointmentBlockGroup.type, + start: appointmentBlockGroup.start, + end: appointmentBlockGroup.end, + numberOfFreeAppointments: appointmentBlockGroup.numberOfFreeAppointments, + numberOfBookedAppointments: + appointmentBlockGroup.numberOfBookedAppointments, + subRows: appointmentBlockGroup.appointmentBlocks.map((appointmentBlock) => + toAppointmentBlockRow(appointmentBlock, appointmentBlockGroup), + ), + }; +} + +function toAppointmentBlockRow( + appointmentBlock: AppointmentBlock, + appointmentBlockGroup: AppointmentBlockGroup, +): AppointmentBlockRow { + return { + type: appointmentBlockGroup.type, + start: appointmentBlock.start, + end: appointmentBlock.end, + numberOfFreeAppointments: appointmentBlock.numberOfFreeAppointments, + numberOfBookedAppointments: appointmentBlock.numberOfBookedAppointments, + }; +} + +function getSubRows(appointmentBlockRow: AppointmentBlockRow) { + return appointmentBlockRow.subRows; +} + +export function AppointmentBlockGroupsTable( + props: AppointmentBlockGroupsTableProps, +) { + const tableControl = useTableControl({ + serverSideSorting: true, + sortFieldName: "sortKey", + sortDirectionName: "sortDirection", + initialSorting: initialSorting, + }); + + const [getAppointmentBlockGroups] = useSuspenseQueries({ + queries: [ + useGetAppointmentBlockGroupsQuery({ + pageNumber: tableControl.paginationProps.pageNumber, + pageSize: tableControl.paginationProps.pageSize, + sortKey: getSortKey<ApiAppointmentBlockSortKey>( + tableControl.tableSorting, + ), + sortDirection: getSortDirection(tableControl.tableSorting), + }), + ], + }); + + const rows = getAppointmentBlockGroups.data.elements.map( + toAggregatedAppointmentBlockRow, + ); + + return ( + <TablePage + fullHeight + controls={props.controls} + data-testid="appointmentBlockGroupsTable" + > + <TableSheet + loading={getAppointmentBlockGroups.isFetching} + footer={ + <Pagination + totalCount={getAppointmentBlockGroups.data.totalNumberOfElements} + {...tableControl.paginationProps} + /> + } + > + <DataTable + data={rows} + columns={COLUMNS} + noDataComponent={() => ( + <NoAppointmentBlocksAvailable + href={routes.appointmentBlockGroups.new} + /> + )} + getSubRows={getSubRows} + sorting={tableControl.tableSorting} + /> + </TableSheet> + </TablePage> + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/constants.ts b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/constants.ts new file mode 100644 index 0000000000000000000000000000000000000000..8ba90a24538f330ef8770d41c6e3694309c3315d --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/constants.ts @@ -0,0 +1,21 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiAppointmentType } from "@eshg/employee-portal-api/officialMedicalService"; +import { EnumMap } from "@eshg/lib-portal/types/helpers"; + +export const APPOINTMENT_TYPES: EnumMap<ApiAppointmentType> = { + [ApiAppointmentType.RegularExamination]: "Regeluntersuchung", + [ApiAppointmentType.CanChild]: "Kann-Kinder", + [ApiAppointmentType.EntryLevel]: "Eingangsstufe", + [ApiAppointmentType.SpecialNeeds]: "Besonderer Förderbedarf", + [ApiAppointmentType.Consultation]: "Beratung", + [ApiAppointmentType.Vaccination]: "Impfung", + [ApiAppointmentType.ProofSubmission]: "Nachweisvorlage", + [ApiAppointmentType.HivStiConsultation]: "HIV-STI-Beratung", + [ApiAppointmentType.SexWork]: "Sexarbeit", + [ApiAppointmentType.ResultsReview]: "Ergebnisbesprechung", + [ApiAppointmentType.OfficialMedicalService]: "Amtsärtzlicher Dienst", +}; diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/options.ts b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/options.ts new file mode 100644 index 0000000000000000000000000000000000000000..61be359ce8c743ee7b615f7ab69cda11133bbc14 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/appointmentBlocks/options.ts @@ -0,0 +1,17 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiAppointmentType } from "@eshg/employee-portal-api/officialMedicalService"; +import { buildEnumOptions } from "@eshg/lib-portal/helpers/form"; + +import { APPOINTMENT_TYPES } from "@/lib/businessModules/officialMedicalService/components/appointmentBlocks/constants"; + +const SUPPORTED_APPOINTMENT_TYPES: string[] = [ + ApiAppointmentType.OfficialMedicalService, +]; + +export const APPOINTMENT_TYPE_OPTIONS = buildEnumOptions( + APPOINTMENT_TYPES, +).filter((option) => SUPPORTED_APPOINTMENT_TYPES.includes(option.value)); diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/icons/StethoscopeIcon.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/icons/StethoscopeIcon.tsx index a6e5727c6f95ece929284c8dc2a355407cb2e593..92b1d0d664247823797eaed385c07987b45ea920 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/icons/StethoscopeIcon.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/icons/StethoscopeIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,7 +17,7 @@ export function StethoscopeIcon(props: SvgIconProps) { > <path d="M540-80q-108 0-184-76t-76-184v-23q-86-14-143-80.5T80-600v-240h120v-40h80v160h-80v-40h-40v160q0 66 47 113t113 47q66 0 113-47t47-113v-160h-40v40h-80v-160h80v40h120v240q0 90-57 156.5T360-363v23q0 75 52.5 127.5T540-160q75 0 127.5-52.5T720-340v-67q-35-12-57.5-43T640-520q0-50 35-85t85-35q50 0 85 35t35 85q0 39-22.5 70T800-407v67q0 108-76 184T540-80Zm220-400q17 0 28.5-11.5T800-520q0-17-11.5-28.5T760-560q-17 0-28.5 11.5T720-520q0 17 11.5 28.5T760-480Zm0-40Z" - fill="#636b74" + fill="currentColor" /> </svg> </SvgIcon> diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AddFacility.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AddFacility.tsx new file mode 100644 index 0000000000000000000000000000000000000000..93285653a7dcc521b4b96e700ef8758c78e564fa --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AddFacility.tsx @@ -0,0 +1,76 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiGetReferenceFacilityResponse } from "@eshg/employee-portal-api/base"; +import { Add } from "@mui/icons-material"; +import { Button } from "@mui/joy"; +import { useState } from "react"; + +import { usePostFacility } from "@/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi"; +import { mapToDefaultFacilityFormValues } from "@/lib/businessModules/officialMedicalService/shared/helpers"; +import { FacilitySidebar } from "@/lib/shared/components/facilitySidebar/FacilitySidebar"; +import { DefaultFacilityFormValues } from "@/lib/shared/components/facilitySidebar/create/FacilityForm"; +import { useSidebarForm } from "@/lib/shared/hooks/useSidebarForm"; + +export function AddFacility({ id }: Readonly<{ id: string }>) { + const [sidebarOpen, setSidebarOpen] = useState(false); + const postFacility = usePostFacility(); + const { handleClose, closeSidebar, sidebarFormRef } = useSidebarForm({ + onClose: () => setSidebarOpen(false), + }); + + async function handleSubmit(facility: DefaultFacilityFormValues) { + await postFacility.mutateAsync( + { + id: id, + facility: facility, + }, + { + onSuccess: () => { + closeSidebar(); + }, + }, + ); + } + + async function handleSelectFacility( + facility: ApiGetReferenceFacilityResponse, + ) { + await postFacility.mutateAsync( + { + id: id, + facility: mapToDefaultFacilityFormValues(facility), + }, + { + onSuccess: () => { + closeSidebar(); + }, + }, + ); + } + + return ( + <> + <div> + <Button + startDecorator={<Add />} + variant="plain" + onClick={() => setSidebarOpen(true)} + > + Hinzufügen + </Button> + </div> + <FacilitySidebar + title="Auftraggeber hinzufügen" + submitLabel="Speichern" + sidebarFormRef={sidebarFormRef} + onCreateNew={(values) => handleSubmit(values.createInputs)} + onSelect={(values) => handleSelectFacility(values.facility)} + onClose={handleClose} + open={sidebarOpen} + /> + </> + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPerson.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPerson.tsx deleted file mode 100644 index 6ad5469e34733e7f4040479804259ca4249203ff..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPerson.tsx +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -"use client"; - -import { ApiEmployeeOmsProcedureDetails } from "@eshg/employee-portal-api/officialMedicalService"; -import { Sheet } from "@mui/joy"; -import { SxProps } from "@mui/joy/styles/types"; - -import { CentralFilePersonDetails } from "@/lib/shared/components/centralFile/display/CentralFilePersonDetails"; -import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; - -const COLUMN_STYLE: SxProps = { - flexGrow: 1, - maxWidth: (theme) => ({ md: `calc(100%/3 - 2 * ${theme.spacing(2)})` }), -}; - -export function AffectedPerson({ - procedure, -}: Readonly<{ - procedure: ApiEmployeeOmsProcedureDetails; -}>) { - const title = "Betroffene Person"; - const person = procedure.affectedPerson; - - return ( - person && ( - <Sheet data-testid="affected-person"> - <DetailsSection title={title}> - <CentralFilePersonDetails person={person} columnSx={COLUMN_STYLE} /> - </DetailsSection> - </Sheet> - ) - ); -} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPersonPanel.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPersonPanel.tsx new file mode 100644 index 0000000000000000000000000000000000000000..faba36bb0d8c6c0313358fc2a02d81be74934b93 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPersonPanel.tsx @@ -0,0 +1,57 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { ApiEmployeeOmsProcedureDetails } from "@eshg/employee-portal-api/officialMedicalService"; +import { Sheet } from "@mui/joy"; +import { SxProps } from "@mui/joy/styles/types"; + +import { UpdateAffectedPersonSidebar } from "@/lib/businessModules/officialMedicalService/components/procedures/details/UpdateAffectedPersonSidebar"; +import { EditButton } from "@/lib/shared/components/buttons/EditButton"; +import { CentralFilePersonDetails } from "@/lib/shared/components/centralFile/display/CentralFilePersonDetails"; +import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; +import { useToggle } from "@/lib/shared/hooks/useToggle"; + +const COLUMN_STYLE: SxProps = { + flexGrow: 1, + maxWidth: (theme) => ({ md: `calc(100%/3 - 2 * ${theme.spacing(2)})` }), +}; + +export function AffectedPersonPanel({ + procedure, +}: Readonly<{ + procedure: ApiEmployeeOmsProcedureDetails; +}>) { + const [editing, toggleEditing] = useToggle(false); + const title = "Betroffene Person"; + const person = procedure.affectedPerson; + + return ( + person && ( + <> + <Sheet data-testid="affected-person"> + <DetailsSection + title={title} + buttons={ + <EditButton + aria-label="Person bearbeiten" + onClick={toggleEditing} + /> + } + > + <CentralFilePersonDetails person={person} columnSx={COLUMN_STYLE} /> + </DetailsSection> + <UpdateAffectedPersonSidebar + affectedPerson={person} + onClose={toggleEditing} + open={editing} + procedureId={procedure.id} + /> + </Sheet> + </> + ) + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/DetailsGrid.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/DetailsGrid.tsx new file mode 100644 index 0000000000000000000000000000000000000000..eabffced008bcb8598e82e4d5d827158a7c5b2d9 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/DetailsGrid.tsx @@ -0,0 +1,24 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { RequiresChildren } from "@eshg/lib-portal/types/react"; +import { Grid } from "@mui/joy"; + +interface DetailsGridProps extends RequiresChildren { + "data-testid"?: string; +} + +export function DetailsGrid(props: Readonly<DetailsGridProps>) { + return ( + <Grid + container + columnSpacing={2} + rowSpacing={2} + data-testid={props["data-testid"]} + > + {props.children} + </Grid> + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/FacilityPanel.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/FacilityPanel.tsx new file mode 100644 index 0000000000000000000000000000000000000000..c029c5d2d5bba0fa22ca82c9e68c1304a997179b --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/FacilityPanel.tsx @@ -0,0 +1,69 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiEmployeeOmsProcedureDetails, + ApiProcedureStatus, +} from "@eshg/employee-portal-api/officialMedicalService"; +import { Sheet } from "@mui/joy"; +import { SxProps } from "@mui/joy/styles/types"; +import { isDefined } from "remeda"; + +import { AddFacility } from "@/lib/businessModules/officialMedicalService/components/procedures/details/AddFacility"; +import { UpdateFacilitySidebar } from "@/lib/businessModules/officialMedicalService/components/procedures/details/UpdateFacilitySidebar"; +import { EditButton } from "@/lib/shared/components/buttons/EditButton"; +import { CentralFileFacilityDetails } from "@/lib/shared/components/centralFile/display/CentralFileFacilityDetails"; +import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; +import { useSidebarWithFormRef } from "@/lib/shared/hooks/useSidebarWithFormRef"; + +const COLUMN_STYLE: SxProps = { + flexGrow: 1, + maxWidth: (theme) => ({ md: `calc(100%/3 - 2 * ${theme.spacing(2)})` }), +}; + +export function FacilityPanel({ + procedure, +}: Readonly<{ + procedure: ApiEmployeeOmsProcedureDetails; +}>) { + const updateFacilitySidebar = useSidebarWithFormRef({ + component: UpdateFacilitySidebar, + }); + + function procedureClosed() { + return procedure.status === ApiProcedureStatus.Closed; + } + + return ( + <Sheet data-testid="facility"> + <DetailsSection + title={"Auftraggeber"} + buttons={ + isDefined(procedure.facility) && + !procedureClosed() && ( + <EditButton + aria-label="Auftraggeber bearbeiten" + onClick={() => + updateFacilitySidebar.open({ + procedureId: procedure.id, + facility: procedure.facility!, + }) + } + /> + ) + } + > + {!isDefined(procedure.facility) ? ( + <AddFacility id={procedure.id} /> + ) : ( + <CentralFileFacilityDetails + facility={{ ...procedure.facility }} + columnSx={COLUMN_STYLE} + ></CentralFileFacilityDetails> + )} + </DetailsSection> + </Sheet> + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTab.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTab.tsx index d1ef61d19ee5105eb5ac64acc44138ea545c1b64..6a3950c763a8e23a2e2d78af606dd3468ca4fa90 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTab.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTab.tsx @@ -1,12 +1,18 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; +import { Grid, Stack } from "@mui/joy"; + import { useGetProcedureDetails } from "@/lib/businessModules/officialMedicalService/api/queries/employeeOmsProcedureApi"; -import { AffectedPerson } from "@/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPerson"; +import { AffectedPersonPanel } from "@/lib/businessModules/officialMedicalService/components/procedures/details/AffectedPersonPanel"; +import { DetailsGrid } from "@/lib/businessModules/officialMedicalService/components/procedures/details/DetailsGrid"; +import { FacilityPanel } from "@/lib/businessModules/officialMedicalService/components/procedures/details/FacilityPanel"; + +const SPACING = { xxs: 2, sm: 3, md: 3, xxl: 3 }; interface ProcedureDetailsTabProps { procedureId: string; @@ -17,5 +23,17 @@ export function ProcedureDetailsTab({ }: Readonly<ProcedureDetailsTabProps>) { const { data: procedure } = useGetProcedureDetails(procedureId); - return <AffectedPerson procedure={procedure} />; + return ( + <DetailsGrid data-testid="procedure-detail-page"> + <Grid xs={9}> + <Stack spacing={SPACING}> + <AffectedPersonPanel procedure={procedure} /> + <FacilityPanel procedure={procedure} /> + </Stack> + </Grid> + <Grid xs={3}> + <Stack spacing={SPACING}>{/*todo sidepanel*/}</Stack> + </Grid> + </DetailsGrid> + ); } diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTabHeader.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTabHeader.tsx index 77f9e82776cbfd6ab1c818f844ae35fae5224a72..92126eefe888382788e402df58a278ed6cdde31d 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTabHeader.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProcedureDetailsTabHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProceduresDetailsToolbar.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProceduresDetailsToolbar.tsx index 27054f3b9351ac089d4d5ace0d98ee9c2418eec1..eb0372a9125e4ea1642c091c9ba3aa621b1999d5 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProceduresDetailsToolbar.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/ProceduresDetailsToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -46,7 +46,7 @@ function buildTabItems(id: string): TabNavigationItem[] { }, { tabButtonName: "Verlaufseinträge", - href: routes.procedures.byId(id).progressEntries.index, + href: routes.procedures.byId(id).progressEntries, decorator: <TimelineOutlined />, }, ]; diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/UpdateAffectedPersonSidebar.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/UpdateAffectedPersonSidebar.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5c84fa14c9960da651fa480ca047266aaab3d5b0 --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/UpdateAffectedPersonSidebar.tsx @@ -0,0 +1,89 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiAffectedPerson } from "@eshg/employee-portal-api/officialMedicalService"; +import { toDateString } from "@eshg/lib-portal/helpers/dateTime"; + +import { usePatchAffectedPerson } from "@/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi"; +import { mapToPatchAffectedPersonRequest } from "@/lib/businessModules/officialMedicalService/shared/helpers"; +import { mapOptional } from "@/lib/shared/api/models/utils"; +import { mapApiAddressToForm } from "@/lib/shared/components/form/address/helpers"; +import { PersonEditSidebar } from "@/lib/shared/components/personSidebar/PersonEditSidebar"; +import { + DefaultPersonForm, + DefaultPersonFormValues, +} from "@/lib/shared/components/personSidebar/form/DefaultPersonForm"; +import { normalizeListInputs } from "@/lib/shared/components/personSidebar/helpers"; +import { useSidebarForm } from "@/lib/shared/hooks/useSidebarForm"; + +interface UpdateAffectedPersonSidebarProps { + affectedPerson: ApiAffectedPerson; + procedureId: string; + open: boolean; + onClose: () => void; +} + +export function UpdateAffectedPersonSidebar({ + affectedPerson, + procedureId, + open, + onClose, +}: UpdateAffectedPersonSidebarProps) { + const { closeSidebar, handleClose, sidebarFormRef } = useSidebarForm({ + onClose, + }); + + const updateAffectedPerson = usePatchAffectedPerson(); + + const version = affectedPerson.version; + + async function handleSubmit(values: DefaultPersonFormValues) { + await updateAffectedPerson.mutateAsync( + { + procedureId, + apiPatchAffectedPersonRequest: mapToPatchAffectedPersonRequest( + values, + version, + ), + }, + { + onSuccess: closeSidebar, + }, + ); + } + + return ( + <PersonEditSidebar + open={open} + title={"Betroffene Person bearbeiten"} + onCancel={handleClose} + onSubmit={handleSubmit} + sidebarFormRef={sidebarFormRef} + initialValues={mapPersonDetailsToForm(affectedPerson)} + component={DefaultPersonForm} + addressRequired + /> + ); +} + +function mapPersonDetailsToForm( + person: ApiAffectedPerson, +): DefaultPersonFormValues { + return { + salutation: person.salutation ?? "", + title: person.title ?? "", + firstName: person.firstName, + lastName: person.lastName, + dateOfBirth: toDateString(person.dateOfBirth), + gender: person.gender ?? "", + countryOfBirth: person.countryOfBirth ?? "", + nameAtBirth: person.nameAtBirth ?? "", + placeOfBirth: person.placeOfBirth ?? "", + emailAddresses: normalizeListInputs(person.emailAddresses), + phoneNumbers: normalizeListInputs(person.phoneNumbers), + contactAddress: mapOptional(person.contactAddress, mapApiAddressToForm), + differentBillingAddress: undefined, + }; +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/UpdateFacilitySidebar.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/UpdateFacilitySidebar.tsx new file mode 100644 index 0000000000000000000000000000000000000000..99f90a53dd4a1f3b274339cecc1c53db322e873a --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/details/UpdateFacilitySidebar.tsx @@ -0,0 +1,57 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiFacility } from "@eshg/employee-portal-api/officialMedicalService"; + +import { usePatchFacility } from "@/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi"; +import { + mapApiFacilityToDefaultFacilityFormValues, + mapToApiPatchFacilityRequest, +} from "@/lib/businessModules/officialMedicalService/shared/helpers"; +import { + DefaultFacilityFormValues, + FacilityForm, +} from "@/lib/shared/components/facilitySidebar/create/FacilityForm"; +import { SidebarWithFormRefProps } from "@/lib/shared/hooks/useSidebarWithFormRef"; + +interface UpdateFacilitySidebarProps extends SidebarWithFormRefProps { + procedureId: string; + facility: ApiFacility; +} + +export function UpdateFacilitySidebar({ + procedureId, + facility, + formRef, + onClose, +}: Readonly<UpdateFacilitySidebarProps>) { + const patchFacility = usePatchFacility(); + + async function handleSubmit(values: DefaultFacilityFormValues) { + await patchFacility.mutateAsync( + { + id: procedureId, + request: mapToApiPatchFacilityRequest(values, facility.version), + }, + { + onSuccess: () => { + onClose(true); + }, + }, + ); + } + + return ( + <FacilityForm + title="Auftraggeber bearbeiten" + onSubmit={handleSubmit} + onCancel={onClose} + sidebarFormRef={formRef} + initialValues={mapApiFacilityToDefaultFacilityFormValues(facility)} + mode="edit" + submitLabel="Speichern" + /> + ); +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/CreateProcedure.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/CreateProcedure.tsx index ba48c021c4ace58cc74d5f3568972d7cc499ee0d..e25e4d6d6154189434f55661c657d85b6c9e9ddf 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/CreateProcedure.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/CreateProcedure.tsx @@ -1,32 +1,28 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; -import { - ApiAddPersonFileStateRequest, - ApiGetReferencePersonResponse, -} from "@eshg/employee-portal-api/base"; -import { - ApiAffectedPerson, - ApiPostEmployeeOmsProcedureRequest, -} from "@eshg/employee-portal-api/officialMedicalService"; -import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; +import { ApiGetReferencePersonResponse } from "@eshg/employee-portal-api/base"; +import { ApiPostEmployeeOmsProcedureRequest } from "@eshg/employee-portal-api/officialMedicalService"; import { Add } from "@mui/icons-material"; import { Button } from "@mui/joy"; import { useRouter } from "next/navigation"; import { useRef, useState } from "react"; import { usePostEmployeeProcedure } from "@/lib/businessModules/officialMedicalService/api/mutations/employeeOmsProcedureApi"; +import { + mapToAffectedPerson, + mapToCreateProcedureRequest, +} from "@/lib/businessModules/officialMedicalService/shared/helpers"; import { routes } from "@/lib/businessModules/officialMedicalService/shared/routes"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; import { PersonSidebar } from "@/lib/shared/components/personSidebar/PersonSidebar"; import { DefaultPersonFormValues } from "@/lib/shared/components/personSidebar/form/DefaultPersonForm"; -import { mapToPersonAddRequest } from "@/lib/shared/components/personSidebar/helpers"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function CreateProcedure() { const router = useRouter(); @@ -34,7 +30,6 @@ export function CreateProcedure() { const [sidebarOpen, setSidebarOpen] = useState(false); const sidebarFormRef = useRef<SidebarFormHandle>(null); const { openCancelDialog } = useConfirmationDialog(); - const snackbar = useSnackbar(); async function createProcedureWithNewPerson(person: DefaultPersonFormValues) { const request: ApiPostEmployeeOmsProcedureRequest = @@ -42,7 +37,6 @@ export function CreateProcedure() { await postEmployeeProcedure.mutateAsync(request, { onSuccess: (response) => { if (response) { - snackbar.confirmation("Vorgang wurde angelegt"); router.push(routes.procedures.byId(response).details); } }, @@ -58,7 +52,6 @@ export function CreateProcedure() { await postEmployeeProcedure.mutateAsync(request, { onSuccess: (response) => { if (response) { - snackbar.confirmation("Vorgang wurde angelegt"); router.push(routes.procedures.byId(response).details); } }, @@ -110,21 +103,3 @@ export function CreateProcedure() { </> ); } - -function mapToAffectedPerson( - person: ApiAddPersonFileStateRequest, -): ApiAffectedPerson { - return { - ...person, - contactAddress: person.contactAddress!, - }; -} - -function mapToCreateProcedureRequest( - values: DefaultPersonFormValues, -): ApiPostEmployeeOmsProcedureRequest { - const person = mapToPersonAddRequest(values); - return { - affectedPerson: mapToAffectedPerson(person), - }; -} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/ProceduresOverviewTable.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/ProceduresOverviewTable.tsx index b796c52697c940404d70a20a9148661e2ee01671..8416e0a8004ca7ec341b78e47363ad6b394d607a 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/ProceduresOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/ProceduresOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -89,7 +89,7 @@ export function ProceduresOverviewTable( route: (row) => routes.procedures.byId(row.original.id).details, focusColumnAccessorKey: "lastName", }} - minWidth={450} + minWidth={780} /> </TableSheet> </TablePage> diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/procedureOverviewColumns.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/procedureOverviewColumns.tsx index de5029ae78f20903e08ba03c6fc776525dc073f4..c9ee4448fa501ec920dfe2f6a251164b1e1a8bd1 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/procedureOverviewColumns.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/components/procedures/overview/procedureOverviewColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -39,7 +39,7 @@ export function procedureOverviewTableColumns() { cell: (props) => formatDate(props.getValue()), enableSorting: false, meta: { - width: 90, + width: 120, canNavigate: { parentRow: true, }, @@ -56,5 +56,16 @@ export function procedureOverviewTableColumns() { }, }, }), + columnHelper.accessor("facilityName", { + header: "Auftraggeber", + cell: (props) => props.getValue(), + enableSorting: false, + meta: { + width: 200, + canNavigate: { + parentRow: true, + }, + }, + }), ]; } diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/shared/constants.ts b/employee-portal/src/lib/businessModules/officialMedicalService/shared/constants.ts index 1457910fa773c69dae51493d166b1546a25a7975..5be10c9872e5310fad67ddc359583fc29d4e58eb 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/shared/helpers.ts b/employee-portal/src/lib/businessModules/officialMedicalService/shared/helpers.ts new file mode 100644 index 0000000000000000000000000000000000000000..188ee54f176084055c5116c27f873b964be5481c --- /dev/null +++ b/employee-portal/src/lib/businessModules/officialMedicalService/shared/helpers.ts @@ -0,0 +1,111 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiAddPersonFileStateRequest, + ApiGetReferenceFacilityResponse, +} from "@eshg/employee-portal-api/base"; +import { + ApiAffectedPerson, + ApiFacility, + ApiPatchAffectedPersonRequest, + ApiPatchEmployeeOmsProcedureFacilityRequest, + ApiPostEmployeeOmsProcedureRequest, +} from "@eshg/employee-portal-api/officialMedicalService"; + +import { DefaultFacilityFormValues } from "@/lib/shared/components/facilitySidebar/create/FacilityForm"; +import { + mapApiAddressToForm, + mapBaseAddressToApi, +} from "@/lib/shared/components/form/address/helpers"; +import { DefaultPersonFormValues } from "@/lib/shared/components/personSidebar/form/DefaultPersonForm"; +import { + mapToPersonAddRequest, + mapToPersonUpdateRequest, +} from "@/lib/shared/components/personSidebar/helpers"; +import { + mapApiContactPersonToForm, + mapContactPersonToApi, +} from "@/lib/shared/helpers/facilityUtils"; + +export function mapToAffectedPerson( + person: ApiAddPersonFileStateRequest, +): ApiAffectedPerson { + return { + ...person, + contactAddress: person.contactAddress!, + version: 0, + }; +} + +export function mapToCreateProcedureRequest( + values: DefaultPersonFormValues, +): ApiPostEmployeeOmsProcedureRequest { + const person = mapToPersonAddRequest(values); + return { + affectedPerson: mapToAffectedPerson(person), + }; +} + +export function mapToAffectedPersonWithVersionNumber( + person: ApiAddPersonFileStateRequest & { version: number }, +): ApiAffectedPerson { + return { + ...person, + contactAddress: person.contactAddress!, + }; +} + +export function mapToPatchAffectedPersonRequest( + values: DefaultPersonFormValues, + version: number, +): ApiPatchAffectedPersonRequest { + const person = mapToPersonUpdateRequest(values, version); + return { + affectedPerson: mapToAffectedPersonWithVersionNumber(person), + }; +} + +export function mapToDefaultFacilityFormValues( + facility: ApiGetReferenceFacilityResponse, +): DefaultFacilityFormValues { + return { + name: facility.name, + contactAddress: mapApiAddressToForm(facility.contactAddress!), + contactPersons: + facility.contactPersons?.map(mapApiContactPersonToForm) ?? [], + emailAddresses: facility.emailAddresses, + phoneNumbers: facility.phoneNumbers, + }; +} + +export function mapApiFacilityToDefaultFacilityFormValues( + facility: ApiFacility, +): DefaultFacilityFormValues { + return { + name: facility.name, + contactAddress: mapApiAddressToForm(facility.contactAddress!), + contactPersons: + facility.contactPersons?.map(mapApiContactPersonToForm) ?? [], + emailAddresses: facility.emailAddresses ?? [], + phoneNumbers: facility.phoneNumbers ?? [], + }; +} + +export function mapToApiPatchFacilityRequest( + facility: DefaultFacilityFormValues, + version: number, +): ApiPatchEmployeeOmsProcedureFacilityRequest { + return { + updatedFacility: { + version: version, + name: facility.name, + contactAddress: mapBaseAddressToApi(facility.contactAddress!), + contactPersons: facility.contactPersons?.map(mapContactPersonToApi) ?? [], + emailAddresses: facility.emailAddresses ?? [], + phoneNumbers: facility.phoneNumbers ?? [], + }, + }; +} diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/officialMedicalService/shared/moduleUserGroup.ts index c239b37ffd7591be50aad8d19df6d0a20bc880ec..938c450c75e6fef35f1fa52b1ce6847f414f62c0 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts b/employee-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts index bef10f50c8bc363c9bf9d28c54a0865611b15b1b..bfa35db106aafe4f447d143ddf35c58796b8d6e7 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/officialMedicalService/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,19 +11,14 @@ export const routes = defineRoutes("/official-medical-service", (omsPath) => ({ byId: (procedureId: string) => defineRoutes(proceduresPath(`/${procedureId}`), (procedurePath) => ({ details: procedurePath("/details"), - progressEntries: defineRoutes( - procedurePath("/progress-entries"), - (progressEntriesPath) => ({ - index: progressEntriesPath("/"), - byId: (progressEntryId: string) => - defineRoutes( - progressEntriesPath(`/${progressEntryId}`), - (entryPath) => ({ - details: entryPath("/details"), - }), - ), - }), - ), + progressEntries: procedurePath("/progress-entries"), })), })), + appointmentBlockGroups: defineRoutes( + omsPath("/appointment-block-groups"), + (appointmentBlockGroupsPath) => ({ + index: appointmentBlockGroupsPath("/"), + new: appointmentBlockGroupsPath("/new"), + }), + ), })); diff --git a/employee-portal/src/lib/businessModules/officialMedicalService/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/officialMedicalService/shared/sideNavigationItem.tsx index 3c8816e7306a27f409d672cd033715cdc5e7b09b..3588462aabdddccdf947d1efe6b1f9fc4b95a2dc 100644 --- a/employee-portal/src/lib/businessModules/officialMedicalService/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/officialMedicalService/shared/sideNavigationItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -24,6 +24,11 @@ export function useSideNavigationItems(): UseSideNavigationItemsResult { href: routes.procedures.index, accessCheck: hasUserRole(ApiUserRole.OfficialMedicalServiceAdmin), }, + { + name: "Terminblöcke", + href: routes.appointmentBlockGroups.index, + accessCheck: hasUserRole(ApiUserRole.OfficialMedicalServiceAdmin), + }, ].filter(isPlainObject), }, ], diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/clients.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/clients.ts index e195717b3c8fbe12227c49b3885ba6e088b645ae..1739e09c4e8bb37bf3e030a2318967f706555ee8 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/clients.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/download/files.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/download/files.ts index b9729ca1cd01e7c467726ca94e653652a3b674ba..8a9c64156506810f47f73d32abb2265ff5cfc334 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/download/files.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/download/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Anamnesis.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Anamnesis.ts index 888b016572a8dd4635ce7ddf5beb8a85a8cbe654..1b57da62adbbb1e9565a60612932cc71457a5393 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Anamnesis.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Anamnesis.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts index 08cb39e2565a5899669434b0a0dbcbb43ef7a9c8..dbbd885891666bb9c820b2f5c36d5edc58eaf00f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Appointment.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentBlockGroup.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentBlockGroup.ts index cba52875c20fc88dc98ca3445116ac40c838d8ba..d885f8c5d2f71ece6f978badeafb0aca920c772e 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentBlockGroup.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentBlockGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentTypeConfig.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentTypeConfig.ts index f9474d31d328075283a6d77ea43709b9ed0dd24f..c5c9f36dea6ad87d8800e1b971e696ce5622ad58 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentTypeConfig.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/AppointmentTypeConfig.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodeWithNumber.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodeWithNumber.ts index 3f41c94ee5a33c4ec5cf8167fa6df675e21cc5c5..7b5e036a172e264da7e404f645a4ebe035d9af1d 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodeWithNumber.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodeWithNumber.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodes.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodes.ts index 878e560f38bbe105b8351ffff009cbd7785bd8be..fb23340478b99933b1bfa660608171f0e91164ff 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodes.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/CountryCodes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Label.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Label.ts index 669c3d0b51b8ef9c4f39fddb0b855819b1f5659c..9d62da3fd3fd80de2930e3455438612f45e87a11 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Label.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Label.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Location.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Location.ts index 711bbcf580ad05824cd8e9ac6668a50659dc6bce..45649ea60e06f75318449fcfde440329c0ff2b92 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Location.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Location.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Person.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Person.ts index 97266b6d007b5d84fd82827e1311eac98a104dc4..429a7dec4146c86a06b6ab729fa5f4185a031ca7 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Person.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Person.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Procedure.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Procedure.ts index 697c002f7e3a181c00503681379aa170943dab69..0114d58b7a38e85840d069e75cf85515ed1da984 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/Procedure.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/Procedure.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/ProcedureDetails.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/ProcedureDetails.ts index aceddbcce2bd5c4daf702ac6356b8c277a624ea1..49fdbc1c22e9cd7104da5f7a89f6c64cae4954ec 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/ProcedureDetails.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/ProcedureDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -26,7 +26,7 @@ export interface ProcedureDetails extends Procedure { readonly isDeceased: boolean; readonly deceased?: Date; readonly custodians: PersonDetails[]; - readonly waitingRoom?: WaitingRoom; + readonly waitingRoom: WaitingRoom; readonly isDeletable: boolean; readonly schoolInfoLetterCreatedAt?: Date; readonly hasInformationBlock: boolean; @@ -49,7 +49,7 @@ export function mapProcedureDetails( isDeceased: response.isDeceased, deceased: mapOptionalValue(response.deceased), custodians: response.custodians.map(mapPersonDetails), - waitingRoom: mapOptional(response.waitingRoom, mapWaitingRoom), + waitingRoom: mapWaitingRoom(response.waitingRoom), isDeletable: response.isDeletable, schoolInfoLetterCreatedAt: response.schoolInfoLetterCreatedAt, hasInformationBlock: response.hasInformationBlock, diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/VaccinationStatus.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/VaccinationStatus.ts index f92352923ad0782c834c8498fe36083feba4196b..f893112bd05fcba35df901a93629f8c7035a44b3 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/VaccinationStatus.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/VaccinationStatus.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/WaitingRoom.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/WaitingRoom.ts index 20adcc44c79493d6f72d9dd0277005e98063eea5..b26ace569f9e63ce4c638f68d2a692ec6f7a975f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/WaitingRoom.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/WaitingRoom.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/DevelopmentScreeningResult.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/DevelopmentScreeningResult.ts index c962f57c689b603dca32c303351b1baef1d928af..2d850298ec10221cb1ad744d5e9f26bb3121f6c5 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/DevelopmentScreeningResult.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/DevelopmentScreeningResult.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/ExaminationResult.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/ExaminationResult.ts index 71f9981e800df993c434776604e664d15c3e4f99..e2d68d2c06856c41ccc6bd7d7cb58f5486fe2fad 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/ExaminationResult.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/ExaminationResult.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/EyeExaminationResult.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/EyeExaminationResult.ts index 9b4f9d4c0d017677a516ce35fbc67d09e3424b99..f9ebd3913068f64a5ea19ad38b33056490903b7b 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/EyeExaminationResult.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/EyeExaminationResult.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/HearingTestResult.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/HearingTestResult.ts index f9675c085b986c9d7c567774331607a6a9892cd4..907c7d8a58c1a2027b81857bd2ac92a1b8cb8436 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/HearingTestResult.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/HearingTestResult.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/Percentiles.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/Percentiles.ts index 48da53552eea6e3c2246a1b4dad9c08de276047b..6fca618580b9903e0d53de6a2f1bbd067b4c827e 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/Percentiles.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/Percentiles.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/SopessExaminationResult.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/SopessExaminationResult.ts index 86147968366fc30c2ac54ddeaa76278613c5c4c9..9464b8c768d9f4da56ce6c3ae43a08b4b54fa150 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/SopessExaminationResult.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/models/examinations/SopessExaminationResult.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/appointmentBlockApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/appointmentBlockApi.ts index 85e243f98243c019455dcc52fdbd04df9e69dfcd..1892046a137e5825d1f62384b883aa9cea9a746c 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/appointmentBlockApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/appointmentBlockApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/approvalRequests.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/approvalRequests.ts index ffb1f6ea7322773ce83e91345026ab090cc6ca40..ac7dcfac1213667e2662ab6a8482e2b2f977e48b 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/archiving.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/archiving.ts index a6557b134b534b3db3b02076f03087223a29f5bb..a94c5a054329f827eddcdf60009da4669d5028a9 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/archiving.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/files.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/files.ts index 2e3d9be4dcf965b32ca9faa28ca61044ec7cf010..8e3fbf1a1b31b56983d24971b943ac292a9158aa 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/files.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/importApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/importApi.ts index 4c40d30b9ce08e2dd3c21658dc025de2d98c7cdb..e19cf23e509002e30107eafa95e0b4170afd48a7 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/importApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/importApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/inbox.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/inbox.ts index dcc1802e7820df75142d96435bd3c821d3091d46..f736c839f46fb76ae18f6316294435cfed90cdd5 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/inbox.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/inbox.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/labelsApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/labelsApi.ts index ca4093a4bdaafc53b204c52085cfa66377762caa..c99a90f06e31cd9b2274e7ffa0814dc2486bc0c5 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/labelsApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/labelsApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/progressEntries.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/progressEntries.ts index bd3d220795121c294a816d5ae2b434bca2ee36b5..efc2b4a69d189ff9f57923e7f4483c66b7b9ebd7 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryApi.ts index e51cbc5667f2d15d2c791bd2d42e8d7dba747d39..cfee7009890b88a52469e67e9fb4a59c22660e66 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/mutations/schoolEntryApi.ts @@ -1,11 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiAddCustodianRequest, ApiAnamnesis, + ApiCloseProcedureRequest, ApiCreateAppointmentsBulkRequest, ApiCreateMedicalReportRequest, ApiCreateProcedureRequest, @@ -14,13 +15,13 @@ import { ApiEyeExaminationResult, ApiHearingTestResult, ApiRemoveCustodianRequest, + ApiReopenProcedureRequest, ApiSopessExaminationResult, ApiSyncPersonRequest, ApiUpdatePersonRequest, ApiVaccinationStatus, - CloseProcedureRequest, + ApiWaitingRoom, DeleteProcedureRequest, - ReopenProcedureRequest, UpdateAnamnesisRequest, UpdateChildDataRequest, UpdateDevelopmentScreeningResultRequest, @@ -29,7 +30,6 @@ import { UpdateProcedureRequest, UpdateSopessExaminationResultRequest, UpdateVaccinationStatusRequest, - UpdateWaitingRoomDetailsRequest, } from "@eshg/employee-portal-api/schoolEntry"; import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; @@ -246,17 +246,25 @@ export function useUpdateCustodian( ) { const schoolEntryApi = useSchoolEntryApi(); const snackbar = useSnackbar(); + const { queryKey } = getProcedureQuery(schoolEntryApi, procedureId); + const queryClient = useQueryClient(); + return useHandledMutation({ + meta: { + updatesQuery: queryKey, + }, mutationFn: (request: ApiUpdatePersonRequest) => - schoolEntryApi.updateCustodianRaw({ + schoolEntryApi.updateCustodian( procedureId, custodianCentralFileStateId, - apiUpdatePersonRequest: request, - }), - onSuccess: () => + request, + ), + onSuccess: (response) => { + queryClient.setQueryData(queryKey, response); snackbar.confirmation( "Die Änderungen zum PSB wurden erfolgreich gespeichert.", - ), + ); + }, }); } @@ -285,24 +293,45 @@ export function useRemoveCustodian( }); } -export function useCloseProcedure() { +export function useCloseProcedure(procedureId: string) { const schoolEntryApi = useSchoolEntryApi(); + const { queryKey } = getProcedureQuery(schoolEntryApi, procedureId); + const queryClient = useQueryClient(); const snackbar = useSnackbar(); return useHandledMutation({ - mutationFn: (values: CloseProcedureRequest) => - schoolEntryApi.closeProcedureRaw(values).then(unwrapRawResponse), - onSuccess: () => snackbar.confirmation("Vorgang erfolgreich geschlossen."), + meta: { updatesQuery: queryKey }, + mutationFn: (apiCloseProcedureRequest: ApiCloseProcedureRequest) => + schoolEntryApi + .closeProcedureRaw({ + procedureId: procedureId, + apiCloseProcedureRequest, + }) + .then(unwrapRawResponse), + onSuccess: (response) => { + queryClient.setQueryData(queryKey, response); + snackbar.confirmation("Vorgang erfolgreich geschlossen."); + }, }); } -export function useReopenProcedure() { +export function useReopenProcedure(procedureId: string) { const schoolEntryApi = useSchoolEntryApi(); + const { queryKey } = getProcedureQuery(schoolEntryApi, procedureId); + const queryClient = useQueryClient(); const snackbar = useSnackbar(); return useHandledMutation({ - mutationFn: (values: ReopenProcedureRequest) => - schoolEntryApi.reopenProcedureRaw(values).then(unwrapRawResponse), - onSuccess: () => - snackbar.confirmation("Vorgang erfolgreich wiedereröffnet."), + meta: { updatesQuery: queryKey }, + mutationFn: (apiReopenProcedureRequest: ApiReopenProcedureRequest) => + schoolEntryApi + .reopenProcedureRaw({ + procedureId, + apiReopenProcedureRequest, + }) + .then(unwrapRawResponse), + onSuccess: (response) => { + queryClient.setQueryData(queryKey, response); + snackbar.confirmation("Vorgang erfolgreich wiedereröffnet."); + }, }); } @@ -338,15 +367,26 @@ export function useCreateSchoolInfoLetter(procedureId: string) { }); } -export function useUpdateWaitingRoomDetails() { +export function useUpdateWaitingRoomDetails(procedureId: string) { const schoolEntryApi = useSchoolEntryApi(); + const { queryKey } = getProcedureQuery(schoolEntryApi, procedureId); + const queryClient = useQueryClient(); const snackbar = useSnackbar(); return useHandledMutation({ - mutationFn: (request: UpdateWaitingRoomDetailsRequest) => + meta: { updatesQuery: queryKey }, + mutationFn: (apiWaitingRoom: ApiWaitingRoom) => schoolEntryApi - .updateWaitingRoomDetailsRaw(request) + .updateWaitingRoomDetailsRaw({ procedureId, apiWaitingRoom }) .then(unwrapRawResponse), - onSuccess: () => - snackbar.confirmation("Wartezimmmer Informationen erfolgreich geändert."), + onSuccess: (response) => { + queryClient.setQueryData(queryKey, (procedureResponse) => { + if (procedureResponse === undefined) { + return undefined; + } + + return { ...procedureResponse, waitingRoom: response }; + }); + snackbar.confirmation("Wartezimmmer Informationen erfolgreich geändert."); + }, }); } diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts index d17f589ef453e5693031cf718cda75bdb5b3bd92..890b0d7f7ad29681220d233da16007564093fa83 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentBlockApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentBlockApi.ts index 14a7538f56f3a6baa8350a40c6d33f665ebc2f1b..f61a9bf20aaa1dfd773a36c98eea43de53386952 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentBlockApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentBlockApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentStaff.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentStaff.ts index 27d9ebada4b7141fb5fa59a66583485987083eee..a78d59cf2c1debfb056e3cae79d0f2f692998434 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentStaff.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentStaff.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentTypeApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentTypeApi.ts index 74c0c2156f75b8bbb8722927bb8a0f7146f47c63..7ed811d4023b6cfff8a365fa5e7aff4e6df8cb56 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentTypeApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/appointmentTypeApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/archiving.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/archiving.ts index d57b266b11bd1879b73503175a1da6e257111989..9db276a6b32cedf90e7a0f6353a544c344bc4130 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/archiving.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/configApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/configApi.ts index c00ca3b556a57b3b6103a437cf8523c232b68f40..01688e0bf1ffb02bcbae950a582fa31d09315f29 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/configApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/configApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/countryCodesApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/countryCodesApi.ts index 63572a014725b32f9f80bdf9d10957b09e12fe36..af39d568b824dca03c306497d199b387604af2e3 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/countryCodesApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/countryCodesApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/featureTogglesApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/featureTogglesApi.ts index 1babf65213c46890061fd4682625f05a0f6496ba..b01fe6f0ff10638f422f196617a7ef06619a6ad5 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/featureTogglesApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/featureTogglesApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/files.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/files.ts index 5af2fc1d7cc94c81c3b7e526ccce727ea8e8ed2b..cfb9a6266569561fd656dd1ac654776d52a3e0a7 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/files.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/icd10Codes.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/icd10Codes.ts index 60a55ce8dcb3b02883d15f311433fa13dd732b8a..e42b7ed46b0068a13af929cd7e74fa592393f5be 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/icd10Codes.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/icd10Codes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/inboxProcedures.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/inboxProcedures.ts index 13323edc88f5fc05fea3c1022039135c010a08b1..537b925bc369e9df679d41f0b3be4d31a12ddee4 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/inboxProcedures.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/inboxProcedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/labelApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/labelApi.ts index fc91051cb8877945730006203966b0c57716035e..31884ff5938d0fe097ea32123204878b638037ba 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/labelApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/labelApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/progressEntries.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/progressEntries.ts index a1f05eda91fabab346ef92008617c319d806733c..f35841d2917340d6f8b8c81934bee2edd4a79ecc 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryApi.ts index 0d6bfea094eaff7588b83764cd913e13491c6b54..5a217b8001d021fe276c0aff2b94c5922ff21e32 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/schoolEntryApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/valueEvaluatorApi.ts b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/valueEvaluatorApi.ts index f5275194e0f472ffeff79756c41afeab336b8f43..3914fdad6f23c75218cdf809597c003d41ded97f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/api/queries/valueEvaluatorApi.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/api/queries/valueEvaluatorApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx index 12249218c52362b2ac18a0527ab6e89a61125907..b924de156cb445cfa9478a391c0dc92690bd622e 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx index 909d615d5d6bf759007f86cefba77e207357e6b4..480326d950fe5052ffbf7a12ab63bf1d2bdc19c6 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx index 6981788aa1c602233f5956288965614c9cd460a2..5f80c9288d5fef698c0cedcd51b96afef8272cf5 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/CreateLabelSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/CreateLabelSidebar.tsx index 9d8b5be9d9d70cb0691ea4f07079a18757cb1fbe..6cf5f44cbde63f04e2d2123aaa4cb108afbf7e16 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/CreateLabelSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/CreateLabelSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelFormFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelFormFields.tsx index 09c813d7e0b7cc41b4b1229481fb2c1e901aef7b..d3b7e905feebdb22ee9ca65815a84b8eb425f46e 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelFormFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelFormFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelsTable.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelsTable.tsx index 9010b7d7c094a362877b70a3c3b1aa36d101a270..815878ed6ad36b1ce5ce39e7f37ad6ab1d09581b 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelsTable.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,9 +12,9 @@ import { createColumnHelper } from "@tanstack/react-table"; import { Label } from "@/lib/businessModules/schoolEntry/api/models/Label"; import { useCreateLabelSidebar } from "@/lib/businessModules/schoolEntry/features/labels/CreateLabelSidebar"; -import { LabelChip } from "@/lib/businessModules/schoolEntry/features/labels/LabelChip"; import { useUpdateLabelSidebar } from "@/lib/businessModules/schoolEntry/features/labels/UpdateLabelSidebar"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; +import { ChipWithTooltip } from "@/lib/shared/components/chip/ChipWithTooltip"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; @@ -29,7 +29,13 @@ export function labelColumns({ onEdit }: LabelColumnsProps) { return [ columnHelper.accessor("name", { header: "Kennung", - cell: (props) => <LabelChip label={props.row.original} />, + cell: (props) => ( + <ChipWithTooltip + name={props.row.original.name} + hexColor={props.row.original.hexColor} + modalTitle="Kennung" + /> + ), enableSorting: false, meta: { width: 240, diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/UpdateLabelSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/UpdateLabelSidebar.tsx index bef05420d8e49fd80b9651a2e62d747fb9115b71..25a96652466949c776bcbd13fd9bd13509e37721 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/UpdateLabelSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/labels/UpdateLabelSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/ProcedureToolbar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/ProcedureToolbar.tsx index a51ddea88ff4d04870c576b6c99cc23f3524ae74..16a699e665000b8d6921bba6131976822c076726 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/ProcedureToolbar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/ProcedureToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -72,7 +72,7 @@ function buildTabItems(id: string): TabNavigationItem[] { }, { tabButtonName: "Verlaufseinträge", - href: routes.procedures.byId(id).progressEntries.index, + href: routes.procedures.byId(id).progressEntries, decorator: <TimelineOutlined />, }, ]; diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/AnamnesisForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/AnamnesisForm.tsx index 1911fd7c251f07f5b3256b657c1d32d5bbf92d33..8b558867d4ba96b333158961c0e7fe7e3b2aba3b 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/AnamnesisForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/AnamnesisForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/BirthDataAndChildInformationForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/BirthDataAndChildInformationForm.tsx index 419728971a8cbe61c9bb6a035d6e76749e336dba..bd5c8e53c4dce6d083debb2233667cf51e316c3d 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/BirthDataAndChildInformationForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/BirthDataAndChildInformationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CheckUpsForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CheckUpsForm.tsx index 720446344783c98df5110c5495ad15c7e44c022b..91a32f3a8606919df365df2e2b9f9c2002a24d20 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CheckUpsForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CheckUpsForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CountryWithNumberField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CountryWithNumberField.tsx index 371614d2dd04645584e2e2fbd9b877379aac1772..2e8c9f74e4f2036d7b91c73af612cff562e7610f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CountryWithNumberField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/CountryWithNumberField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/FamilyHistoryInfoForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/FamilyHistoryInfoForm.tsx index b6da3253d822343676d40a7a135838cc91f4b08f..918559eca5d9e2a7b1179fb154819c66fc6ea3e8 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/FamilyHistoryInfoForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/FamilyHistoryInfoForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/IllnessAndAccidentInfoForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/IllnessAndAccidentInfoForm.tsx index 92716612bee62ff9b6e031bb87301a842239c2be..8eb386542cfb32684be17994daae481211eafd97 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/IllnessAndAccidentInfoForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/IllnessAndAccidentInfoForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/InterestsAndSportInfoForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/InterestsAndSportInfoForm.tsx index 1b200ad9905cac40199ca68a20877233a0eb48a2..fc1d335d24d28ddfc7b7898f5908dca70992aae8 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/InterestsAndSportInfoForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/InterestsAndSportInfoForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/MigrationBackgroundForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/MigrationBackgroundForm.tsx index 62361be5bbf0dfe8607bbf4c10c6abf77a6bf626..7b8d53d00b568fdf883175a1dfa34040ead2f000 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/MigrationBackgroundForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/MigrationBackgroundForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/PromotionBeforeSchoolEntryForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/PromotionBeforeSchoolEntryForm.tsx index 39144d0579da2d66370479609d94c349ab9cd646..f2c98f6e31948710107479e1e8cc72b6a9227915 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/PromotionBeforeSchoolEntryForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/anamnesis/PromotionBeforeSchoolEntryForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningForm.tsx index f99b68d48dd34a298a69a1f9a807d9d4fb187baa..cf9b6bf5460f87b336a70a57cd6031be1e573cce 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningResultFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningResultFields.tsx index 59de891636a338fc580b77a307e2e3d6a58f861b..3a0cbc7e0bf9e7df5f296f5f63d4422ca5fe4401 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningResultFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/DevelopmentScreeningResultFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapFields.tsx index 6b2317f59ece01f6d2bf074599f451b6f5f11ee0..1eb8979fa9617685a7d087fd3144e2ca87080314 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapWithDiagnosisFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapWithDiagnosisFields.tsx index b10ba2abecc78f1dd971263c1bf6f4a76d3cc9a3..739f5dbc6429743a4ddd8a7ac584cc039dbca99e 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapWithDiagnosisFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/HandicapWithDiagnosisFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/Icd10Sidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/Icd10Sidebar.tsx index b9ec8eaef5db7542733e16d3146b34364e67e7b2..82c9f1205f7a17b0fcd4209c3bcd277524f672cc 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/Icd10Sidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/Icd10Sidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/MeasurementFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/MeasurementFields.tsx index a2bda34976adb9d9bb59b27d18b79940b6a9d003..5837d7002d90366bac8af0753cf039dd97a997c7 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/MeasurementFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/MeasurementFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PhysicalExaminationFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PhysicalExaminationFields.tsx index 494bc39f4d49b85b0fc9df2ee91ad9c7e11a540f..b3f99b35c3126f2c12e0477fdfed2e3ac27d5d68 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PhysicalExaminationFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PhysicalExaminationFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PsychoSocialRiskFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PsychoSocialRiskFields.tsx index 653c1f12e91f585891fecc131ffeae0dd71ce33d..ff576b80c0a894183fdb7479bb9731005b5df8b0 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PsychoSocialRiskFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/PsychoSocialRiskFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/SocioEducationalFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/SocioEducationalFields.tsx index aa3ee3f3943d31562b91f816d0f848a83c1cb35a..8d8ebee5fb0b80b8d9e13c2b2e65a7ff72657a88 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/SocioEducationalFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/developmentScreening/SocioEducationalFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationFormProps.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationFormProps.ts index ef917fea24498e865036c5c7967a0305d4508790..6563ebfb90561036e411381bfe1d92a452be6dac 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationFormProps.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationFormProps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultFields.tsx index 84228d4fb0959e3ae63ccf988e4d5e2110ca5fbb..18567446ccad631b56d084f460fd8744cb606e8c 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultValueField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultValueField.tsx index 2a324fa3ff9dd5d52df2d0975f9184d5c866d369..2018c0c86d7bae8f59dbf5c3fc2ab14ca88d379e 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultValueField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationResultValueField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationWithDiagnosisFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationWithDiagnosisFields.tsx index fd72d621199716d69d9d93291a596a11d0339f0a..bdcdb941504caffdad29d31c6bd6b6e6a2359f87 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationWithDiagnosisFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ExaminationWithDiagnosisFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FlexLabel.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FlexLabel.tsx index a23c93e90cab21a7b37e8f7d1687ec93b228f47b..ced1fcd2dfc1ac05a08aa42045d9075fe18266c8 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FlexLabel.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FlexLabel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FormFooter.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FormFooter.tsx index 96b46539229f067cb0daac8f4e3ce23d2bea21f7..380b08ee85736e4406ba61b77a8b720f4820c2f5 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FormFooter.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/FormFooter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/Icd10CodeField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/Icd10CodeField.tsx index 70947c555a66b8b2e83a3f39424c52918c632067..ae12aaac9b6e614b4346b7abea9bd688296b3da7 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/Icd10CodeField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/Icd10CodeField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/RequiredProcedureDataModal.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/RequiredProcedureDataModal.tsx index 1d4a5cf8c4a5016c7cc0526845b0b30e3c8f8572..89fdd63d7b20ba9dc4b53950ac96c3731c96f0a8 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/RequiredProcedureDataModal.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/RequiredProcedureDataModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ResponseDoctorLetterField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ResponseDoctorLetterField.tsx index 973ae5cc7d7d17085e355210150eec8ed3f9ffbf..e6073b8684091129ea0208b6daca06d9354dece9 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ResponseDoctorLetterField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/ResponseDoctorLetterField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllNumberInput.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllNumberInput.tsx index 1499850425a0c2d3fec79d8c60674aaf6d68b343..db2825c20044fe6a890d0367b6423d54d1212406 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllNumberInput.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllNumberInput.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllSelect.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllSelect.tsx index fa95a78396b6fb99e13bc0d6ef306254deb7bda0..92235b7e166d00924c53c4aefef360900adbbf7f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllSelect.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SetAllSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SideIndicator.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SideIndicator.tsx index 54091f54c8b2fb9cdfab21a9c6c80d982ff8f725..48d5445b0c5899df8ef98c8265ff8a874f865f94 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SideIndicator.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/SideIndicator.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/StatusChip.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/StatusChip.tsx index 7060c8dccac0c07c40d0642b6d05fd5f9e677623..fa2de24b53281e7df11c76223d7ff4e79b6546e8 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/StatusChip.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/StatusChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValueButton.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValueButton.tsx index 130c16aa9f2f4bbc1651ecff099124ede5f2b74c..4f56d959fa50fd45b95e239987003250a2585a9b 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValueButton.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValueButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValuesButtonGroupField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValuesButtonGroupField.tsx index 46525590fdd1a01e2ecc8a22c65040fec4c3d5e5..b5f484c934efd6f98d5a4e769ab0eb0377b39a28 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValuesButtonGroupField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/TestValuesButtonGroupField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/examinationResultHelpers.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/examinationResultHelpers.ts index fd03920729b56db8aebb12dde251a3d67091a465..7e8f9bc4f00189abced050f57c71855e07d7c253 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/examinationResultHelpers.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/examinations/examinationResultHelpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeExaminationForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeExaminationForm.tsx index 21ad6daaf38ab63c564010d6332dcc6ba7e78a04..382433f0b006ac50820ccc68b302e9f926e586f2 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeExaminationForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeExaminationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeForm.tsx index 6b51e73151ed185176bd796e2f46ffcdc710449f..23eddf09d38380972d67d4d248cb0bf97a08fee9 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/eyeExamination/EyeForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/EarForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/EarForm.tsx index 567371a1a75e17001e633e36758c5f710022f6dd..9a216712cee9b4e9c197cd7d5755ab1bfca652c9 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/EarForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/EarForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/HearingTestForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/HearingTestForm.tsx index 2eb7d9fd6f0ff347f463d16c833a831a31155fa3..05f015d71faafc70412970ee4bb6538cf2b9df9a 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/HearingTestForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/hearingTest/HearingTestForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataFields.tsx index 6c59d1c5a8171bdb98210f42c2370f75a6e6a808..f174810e1904440a08bfaf1991f82a90c5bf36bc 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,8 @@ import { ApiLocationSelectionMode } from "@eshg/employee-portal-api/schoolEntry" import { DownloadLink } from "@eshg/lib-portal/api/files/DownloadLink"; import { useFileDownload } from "@eshg/lib-portal/api/files/download"; import { ButtonLink } from "@eshg/lib-portal/components/buttons/ButtonLink"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; import { SetFieldValueHelper } from "@eshg/lib-portal/types/form"; import { EnumMap } from "@eshg/lib-portal/types/helpers"; @@ -24,10 +26,8 @@ import { routes as baseRoutes } from "@/lib/baseModule/shared/routes"; import { useImportApi } from "@/lib/businessModules/schoolEntry/api/clients"; import { ImportDataValues } from "@/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataSidebar"; import { ImportListType } from "@/lib/businessModules/schoolEntry/features/procedures/importData/importTypes"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SearchContactField } from "@/lib/shared/components/formFields/SearchContactField"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; import { SchoolYearField } from "@/lib/shared/components/formFields/schoolYear"; interface ImportDataFieldsProps { diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataSidebar.tsx index ea49d669ae10d16c562e005b2a4d9f3f01a5802b..2126742e88f1ac6f10731d1a8624c95fc84c1534 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/ImportDataSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/importTypes.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/importTypes.ts index 7ebff6f84683b01d6afb4b2a438b7465d6addd4a..1b34916ef9db981e68d573f5d0b19cd323878224 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/importTypes.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/importData/importTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/CreateProcedureSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/CreateProcedureSidebar.tsx index 4076c1be502801e4959f6cf688c422d8aa1cf06d..d5f85cfbbed56dd31ab27b4f1e5a5c5b7b392bff 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/CreateProcedureSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/CreateProcedureSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -22,7 +22,6 @@ import { useCreateProcedure } from "@/lib/businessModules/schoolEntry/api/mutati import { BUTTON_SIZE } from "@/lib/businessModules/schoolEntry/features/procedures/new/constants"; import { PROCEDURE_TYPE_OPTIONS_EXCLUDING_DRAFT } from "@/lib/businessModules/schoolEntry/features/procedures/options"; import { routes } from "@/lib/businessModules/schoolEntry/shared/routes"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; import { PersonSidebar } from "@/lib/shared/components/personSidebar/PersonSidebar"; import { mapToPersonAddRequest } from "@/lib/shared/components/personSidebar/helpers"; @@ -36,6 +35,7 @@ import { SearchPersonFormValues, } from "@/lib/shared/components/personSidebar/search/SearchPersonSidebar"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface EsuSearchForm extends SearchPersonFormValues { type: OptionalFieldValue<ApiSchoolEntryProcedureType>; diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/constants.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/constants.ts index 0d5d010b50d01ffd370e1ae57ac89f8bb3a74e1c..6aff64411e7069d811daacc1091298e01b3440f4 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/constants.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/new/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/options.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/options.ts index 5d1a4e29f38f890dcc06ca4321aeb07da053f184..a413ccc55508a27f27ec8537df33d76c4a000328 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/options.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/AddCustodianPanel.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/AddCustodianPanel.tsx index 8f2e9bbc8bb10a3b454566a668992277bc302f4e..216806cc8128f7e50c7dbfd956af973e892d95dc 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/AddCustodianPanel.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/AddCustodianPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -12,7 +12,6 @@ import { useRef, useState } from "react"; import { ProcedureDetails } from "@/lib/businessModules/schoolEntry/api/models/ProcedureDetails"; import { useAddPersonAsCustodian } from "@/lib/businessModules/schoolEntry/api/mutations/schoolEntryApi"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { ContentPanel } from "@/lib/shared/components/contentPanel/ContentPanel"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; @@ -20,6 +19,7 @@ import { PersonSidebar } from "@/lib/shared/components/personSidebar/PersonSideb import { DefaultPersonFormValues } from "@/lib/shared/components/personSidebar/form/DefaultPersonForm"; import { mapToPersonAddRequest } from "@/lib/shared/components/personSidebar/helpers"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function AddCustodianPanel(props: { procedure: ProcedureDetails }) { const [sidebarMode, setSidebarMode] = useState("none"); diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/CloseProcedureModal.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/CloseProcedureModal.tsx index d682869e6d5fe74533a7719116a90704699d8433..e72ed5fd102cff1fb024dea1ee134c114e6e25a9 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/CloseProcedureModal.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/CloseProcedureModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -23,15 +23,11 @@ interface CloseProcedureModalProps } export function CloseProcedureModal(props: CloseProcedureModalProps) { - const closeProcedure = useCloseProcedure(); + const { procedure, onClose } = props; + const closeProcedure = useCloseProcedure(procedure.id); async function handleSubmit() { - await closeProcedure.mutateAsync({ - procedureId: props.procedure.id, - apiCloseProcedureRequest: { - version: props.procedure.version, - }, - }); - props.onClose(); + await closeProcedure.mutateAsync({ version: procedure.version }); + onClose(); } return isDefined(props.procedure.schoolInfoLetterCreatedAt) ? ( diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/DeleteProcedureModal.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/DeleteProcedureModal.tsx index 1a444932a77cdfc0e124a37b3f3c7c6a15c3eb28..608020a8ff8fb1b638f065c409579f303780af20 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/DeleteProcedureModal.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/DeleteProcedureModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/InvitationDetails.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/InvitationDetails.tsx index 51c291e419b8b6fae9e622652d61ef5b432a4d5b..25319dd234d2ec4a4cfa6bf64b1da61a04d00c9e 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/InvitationDetails.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/InvitationDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -31,9 +31,7 @@ export function InvitationDetails(props: Props) { <Grid xs={6}> <Box display="flex" justifyContent="flex-end"> <InternalLink - href={ - routes.procedures.byId(props.procedureId).progressEntries.index - } + href={routes.procedures.byId(props.procedureId).progressEntries} > Zur Einladung </InternalLink> diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelAutocomplete.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelAutocomplete.tsx index 2a246e519474ae727f9a8309ab90403e1dea603f..e454aad2e81923b44183de782327807bded55528 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelAutocomplete.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelAutocomplete.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,7 +7,7 @@ import { Autocomplete, AutocompleteOption } from "@mui/joy"; import { Label } from "@/lib/businessModules/schoolEntry/api/models/Label"; import { useGetLabels } from "@/lib/businessModules/schoolEntry/api/queries/labelApi"; -import { LabelChip } from "@/lib/businessModules/schoolEntry/features/labels/LabelChip"; +import { ChipWithTooltip } from "@/lib/shared/components/chip/ChipWithTooltip"; interface LabelAutocompleteProps { name: string; @@ -32,12 +32,23 @@ export function LabelAutocomplete(props: LabelAutocompleteProps) { }} renderOption={(props, label) => ( <AutocompleteOption {...props} key={label.id}> - <LabelChip label={label} /> + <ChipWithTooltip + key={label.id} + name={label.name} + hexColor={label.hexColor} + modalTitle="Kennung" + /> </AutocompleteOption> )} renderTags={(tags, props) => tags.map((label, index) => ( - <LabelChip {...props({ index })} key={label.id} label={label} /> + <ChipWithTooltip + {...props({ index })} + key={label.id} + name={label.name} + hexColor={label.hexColor} + modalTitle="Kennung" + /> )) } /> diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelSelection.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelSelection.tsx index 1021665b63ff3bd1949d4cc12f739e680c98c9b5..7abee479d306f3a781b02bd1457c5471275a25f7 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelSelection.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelSelection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/PersonDetailsPanel.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/PersonDetailsPanel.tsx index 4db5e0de3fc4e2504d55ea6227cbcc9b8e4e9fdc..1baee622bae6a454634b45e41df12338c527a0d2 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/PersonDetailsPanel.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/PersonDetailsPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -22,9 +22,9 @@ import { SyncBarrier, useSyncBarrier, } from "@/lib/shared/components/centralFile/sync/SyncBarrier"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { ContentPanel } from "@/lib/shared/components/contentPanel/ContentPanel"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useToggle } from "@/lib/shared/hooks/useToggle"; interface PersonDetailsPanelProps { diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureActionsPanel.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureActionsPanel.tsx index 6e43a57a0e12cf62ddbbbc9790357dc58190b470..ca2002b8dfae7ea9b9b77399bfeab84dafdf7cf3 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureActionsPanel.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureActionsPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetails.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetails.tsx index 722436beac964c96d79a30332092e0dd303eb2cf..7598bf3b540c31f02534d3c9a9c2066ae2364732 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetails.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetailsSection.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetailsSection.tsx index 513adb5881cc506b5b37496e20982f09f7a41bfa..d9339eb7bfc743f6812d782ff86f52e25b9b857f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetailsSection.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ProcedureDetailsSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -13,10 +13,10 @@ import { isDefined } from "remeda"; import { ProcedureDetails } from "@/lib/businessModules/schoolEntry/api/models/ProcedureDetails"; import { useGetLocationSelectionMode } from "@/lib/businessModules/schoolEntry/api/queries/configApi"; -import { LabelChip } from "@/lib/businessModules/schoolEntry/features/labels/LabelChip"; import { InvitationDetails } from "@/lib/businessModules/schoolEntry/features/procedures/procedureDetails/InvitationDetails"; import { useUpdateProcedureSidebar } from "@/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateProcedureSidebar"; import { PROCEDURE_TYPES } from "@/lib/businessModules/schoolEntry/features/procedures/translations"; +import { ChipWithTooltip } from "@/lib/shared/components/chip/ChipWithTooltip"; import { ContentPanel } from "@/lib/shared/components/contentPanel/ContentPanel"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; @@ -67,7 +67,12 @@ export function ProcedureDetailsSection(props: ProcedureDetailsProps) { value={ <Stack direction="row" gap={1} flexWrap="wrap"> {props.procedure.labels.map((label) => ( - <LabelChip key={label.id} label={label} /> + <ChipWithTooltip + key={label.id} + name={label.name} + hexColor={label.hexColor} + modalTitle="Kennung" + /> ))} </Stack> } diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ReopenProcedureModal.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ReopenProcedureModal.tsx index cce0bfb0451ec0ac7734b85223691da00236a8d0..928a2446380a42571916f3c6c21285b0e1569285 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ReopenProcedureModal.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/ReopenProcedureModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -21,16 +21,12 @@ interface ReopenProcedureModalProps } export function ReopenProcedureModal(props: ReopenProcedureModalProps) { - const reopenProcedure = useReopenProcedure(); + const { procedure, onClose } = props; + const reopenProcedure = useReopenProcedure(procedure.id); async function handleSubmit() { - await reopenProcedure.mutateAsync({ - procedureId: props.procedure.id, - apiReopenProcedureRequest: { - version: props.procedure.version, - }, - }); + await reopenProcedure.mutateAsync({ version: procedure.version }); // TODO: ISSUE-6052: move onClose into onSuccess(?) - props.onClose(); + onClose(); } return ( diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/SelectContactField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/SelectContactField.tsx index de71f5c16bd59ac1a353e0e345db98e8fd2b48c6..1c37af3b06481b02ab057a25561bd9402c737d52 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/SelectContactField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/SelectContactField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateChildSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateChildSidebar.tsx index fbe6ec926c2dd9ede8800e4484d9756b1b299286..6628fa0d23f0da26373a8eb8b1419c33d49be172 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateChildSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateChildSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateCustodianSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateCustodianSidebar.tsx index 3526418605858ecbc21d1bd785b9f23a751bd485..df149a328f2be9a9d1379c9e3baf8b9cc503ebb5 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateCustodianSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateCustodianSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateProcedureSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateProcedureSidebar.tsx index 3b21baaa0968a8629e32ea3b7afa31398d4411de..d48e913c4d9af430cfae456a18d5ad84f6bf0643 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateProcedureSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/UpdateProcedureSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/WaitingRoomPanel.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/WaitingRoomPanel.tsx index c6a0f72d1548f9ef2a96e601c585598840930e20..89ab0e3a25a5719b0a63d07871f44b9b105bc517 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/WaitingRoomPanel.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/WaitingRoomPanel.tsx @@ -1,11 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { + ApiWaitingRoom, ApiWaitingStatus, - UpdateWaitingRoomDetailsRequest, } from "@eshg/employee-portal-api/schoolEntry"; import { SubmitButton } from "@eshg/lib-portal/components/buttons/SubmitButton"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; @@ -36,18 +36,14 @@ interface WaitingRoomValues { status: OptionalFieldValue<ApiWaitingStatus>; } -const INITIAL_VALUES: WaitingRoomValues = { description: "", status: "" }; - export function WaitingRoomPanel(props: { procedure: ProcedureDetails }) { - const updateWaitingRoomDetails = useUpdateWaitingRoomDetails(); + const updateWaitingRoomDetails = useUpdateWaitingRoomDetails( + props.procedure.id, + ); async function handleSubmit(values: WaitingRoomValues) { await updateWaitingRoomDetails.mutateAsync( - mapToRequest( - props.procedure.id, - values, - props.procedure.waitingRoom?.version ?? 0, - ), + mapToRequest(values, props.procedure.waitingRoom.version), ); } @@ -63,11 +59,7 @@ export function WaitingRoomPanel(props: { procedure: ProcedureDetails }) { <ContentPanelTitle>Wartezimmer</ContentPanelTitle> <Formik onSubmit={handleSubmit} - initialValues={ - props.procedure.waitingRoom - ? mapToFormValues(props.procedure.waitingRoom) - : INITIAL_VALUES - } + initialValues={mapToFormValues(props.procedure.waitingRoom)} > {({ isSubmitting, handleSubmit, setFieldValue }) => { return ( @@ -107,17 +99,13 @@ export function WaitingRoomPanel(props: { procedure: ProcedureDetails }) { } function mapToRequest( - procedureId: string, formValues: WaitingRoomValues, version: number, -): UpdateWaitingRoomDetailsRequest { +): ApiWaitingRoom { return { - procedureId, - apiWaitingRoom: { - version, - description: mapOptionalValue(formValues.description), - status: mapOptionalValue(formValues.status), - }, + version, + description: mapOptionalValue(formValues.description), + status: mapOptionalValue(formValues.status), }; } diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/options.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/options.ts index 5b18e4659ac955e1c816041a59541cdd2d7f9376..3ee347f3fccd458656171c2d55060ba0a6e73919 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/options.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/procedureDetails/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureFilterSettings.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureFilterSettings.tsx index b939a3586d7dc56b34412a32d85a2f01ef1be800..c549f66849f2f70d6e22cd28ab4017b38748ac18 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureFilterSettings.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureFilterSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -16,7 +16,7 @@ import { isDefined, isEmpty } from "remeda"; import { Label } from "@/lib/businessModules/schoolEntry/api/models/Label"; import { PROCEDURE_TYPE_OPTIONS } from "@/lib/businessModules/schoolEntry/features/procedures/options"; import { LabelAutocomplete } from "@/lib/businessModules/schoolEntry/features/procedures/procedureDetails/LabelAutocomplete"; -import { SearchSchoolFilter } from "@/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchSchoolFilter"; +import { SearchInstitutionFilter } from "@/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchInstitutionFilter"; import { ResetButton } from "@/lib/shared/components/ResetButton"; import { ActiveFilter } from "@/lib/shared/components/filterSettings/ActiveFilter"; import { FilterSettingsContent } from "@/lib/shared/components/filterSettings/FilterSettingsContent"; @@ -187,8 +187,8 @@ export function ProcedureFilterSettings(props: ProcedureFilterSettingsProps) { </FormControl> <FormControl> <FormLabel>Schule</FormLabel> - <SearchSchoolFilter - schoolId={props.filterFormValues.schoolIdFilter} + <SearchInstitutionFilter + institutionId={props.filterFormValues.schoolIdFilter} onChange={(schoolId) => props.setFilterFormValue("schoolIdFilter", schoolId) } diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureTableTitle.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureTableTitle.tsx index 73db450a8a3820f70af911d056756717e3b62f9c..fe4906a79a464291aea25025fb5ac7c3d439d701 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureTableTitle.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureTableTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProceduresTable.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProceduresTable.tsx index 853dedf3a63688415c7558db332597a4725539ca..15f52edef8bd42c9be198028a91e47fdae8e45e9 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProceduresTable.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProceduresTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -11,6 +11,7 @@ import { formatDate, formatDateTime, } from "@eshg/lib-portal/formatters/dateTime"; +import { useToggleableState } from "@eshg/lib-portal/hooks/useToggleableState"; import { Chip, Stack } from "@mui/joy"; import { useSuspenseQueries } from "@tanstack/react-query"; import { @@ -18,13 +19,12 @@ import { TableOptions, createColumnHelper, } from "@tanstack/react-table"; -import { ReactNode, useReducer } from "react"; +import { ReactNode } from "react"; import { isNullish } from "remeda"; import { useSchoolEntryApi } from "@/lib/businessModules/schoolEntry/api/clients"; import { Procedure } from "@/lib/businessModules/schoolEntry/api/models/Procedure"; import { getProceduresQuery } from "@/lib/businessModules/schoolEntry/api/queries/schoolEntryApi"; -import { LabelChip } from "@/lib/businessModules/schoolEntry/features/labels/LabelChip"; import { ProceduresTableTitle } from "@/lib/businessModules/schoolEntry/features/procedures/proceduresTable/ProcedureTableTitle"; import { PROCEDURE_STATUS, @@ -34,6 +34,7 @@ import { routes } from "@/lib/businessModules/schoolEntry/shared/routes"; import { useGetGdprValidationBannerQuery } from "@/lib/shared/api/queries/gdpr"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; +import { ChipWithTooltip } from "@/lib/shared/components/chip/ChipWithTooltip"; import { useFilterDictionary } from "@/lib/shared/components/filterSettings/useFilterDictionary"; import { useGdprValidationTasksAlert } from "@/lib/shared/components/gdpr/useGdprValidationTasksAlert"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; @@ -72,10 +73,7 @@ const initialSorting: ColumnSort = { }; export function ProceduresTable(props: ProceduresTableProps) { - const [activePanel, toggleActivePanel] = useReducer( - reduceActivePanel, - undefined, - ); + const [activePanel, toggleActivePanel] = useToggleableState<PanelName>(); const columns = useProcedureColumns(); const tableControl = useTableControl({ serverSideSorting: true, @@ -298,7 +296,12 @@ const COLUMNS = [ cell: (props) => ( <Stack direction="row" gap={0.5} flexWrap="wrap"> {props.getValue().map((label) => ( - <LabelChip key={label.id} label={label} /> + <ChipWithTooltip + key={label.id} + name={label.name} + hexColor={label.hexColor} + modalTitle="Kennung" + /> ))} </Stack> ), @@ -328,13 +331,6 @@ function useProcedureColumns(): TableOptions<Procedure>["columns"] { type PanelName = "filters" | "personSearch"; -function reduceActivePanel( - state: PanelName | undefined, - newState: PanelName, -): PanelName | undefined { - return newState === state ? undefined : newState; -} - const SORT_KEY_MAPPING: Record<string, ApiSchoolEntryProcedureSortKey> = { child_firstName: ApiSchoolEntryProcedureSortKey.Firstname, child_lastName: ApiSchoolEntryProcedureSortKey.Lastname, diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchInstitutionFilter.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchInstitutionFilter.tsx new file mode 100644 index 0000000000000000000000000000000000000000..c768c383c8c3cf113353287cb609e2b8c81685c8 --- /dev/null +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchInstitutionFilter.tsx @@ -0,0 +1,46 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { SearchOutlined } from "@mui/icons-material"; +import { Autocomplete } from "@mui/joy"; +import { useState } from "react"; +import { identity } from "remeda"; + +import { useSearchSchoolOrDaycare } from "@/lib/baseModule/api/queries/contacts"; +import { mapContactToSelectOption } from "@/lib/shared/helpers/contactCategoryMapper"; + +interface SearchInstitutionFilterProps { + institutionId: string | undefined; + onChange: (institutionId: string | undefined) => void; +} + +export function SearchInstitutionFilter(props: SearchInstitutionFilterProps) { + const [institutionName, setInstitutionName] = useState(""); + const searchInstitutions = useSearchSchoolOrDaycare(institutionName); + const institutions = searchInstitutions.isSuccess + ? searchInstitutions.data.elements + : []; + const institutionOptions = institutions.map(mapContactToSelectOption); + const selectedOption = institutionOptions.find( + (institutionOption) => institutionOption.value === props.institutionId, + ); + + return ( + <Autocomplete + value={selectedOption ?? null} + inputValue={institutionName} + options={institutionOptions} + filterOptions={identity()} + placeholder="Schule suchen" + endDecorator={<SearchOutlined />} + loading={searchInstitutions.isLoading} + onInputChange={(_, newInputValue) => setInstitutionName(newInputValue)} + onChange={(_event, value) => { + props.onChange(value?.value ?? undefined); + setInstitutionName(""); + }} + /> + ); +} diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchSchoolFilter.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchSchoolFilter.tsx deleted file mode 100644 index 9a9b56ba9e5b792623ff3f2dde018e40f03fda6c..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/SearchSchoolFilter.tsx +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import { SearchOutlined } from "@mui/icons-material"; -import { Autocomplete } from "@mui/joy"; -import { useState } from "react"; -import { identity } from "remeda"; - -import { useSearchSchools } from "@/lib/baseModule/api/queries/contacts"; -import { mapContactToSelectOption } from "@/lib/shared/helpers/contactCategoryMapper"; - -interface SearchSchoolFilterProps { - schoolId: string | undefined; - onChange: (schoolId: string | undefined) => void; -} - -export function SearchSchoolFilter(props: SearchSchoolFilterProps) { - const [schoolName, setSchoolName] = useState(""); - const searchSchools = useSearchSchools(schoolName); - const schools = searchSchools.isSuccess ? searchSchools.data.elements : []; - const schoolOptions = schools.map(mapContactToSelectOption); - const selectedOption = schoolOptions.find( - (schoolOption) => schoolOption.value === props.schoolId, - ); - - return ( - <Autocomplete - value={selectedOption ?? null} - inputValue={schoolName} - options={schoolOptions} - filterOptions={identity()} - placeholder="Schule suchen" - endDecorator={<SearchOutlined />} - loading={searchSchools.isLoading} - onInputChange={(_, newInputValue) => setSchoolName(newInputValue)} - onChange={(_event, value) => { - props.onChange(value?.value ?? undefined); - setSchoolName(""); - }} - /> - ); -} diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/BulkCreateAppointmentsButton.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/BulkCreateAppointmentsButton.tsx index ebaa85317b04b0c153c84acf0726df1621964a02..7ffe9be0e88856ad716760c95d5385dee6e417de 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/BulkCreateAppointmentsButton.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/BulkCreateAppointmentsButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkAppointmentCreationMessage.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkAppointmentCreationMessage.tsx index f8b17947d5847d62c78196a586ab359f410b7bfd..9f706c5408f3df89e7334db8f15dc634bf748cff 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkAppointmentCreationMessage.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkAppointmentCreationMessage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkCreateAppointment.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkCreateAppointment.tsx index f3733b3af34e6851f45becb0d2e4ed91f13475f6..fec3cb1a7b14d933d982e2cd666ff6b5720542c3 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkCreateAppointment.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkCreateAppointments/useBulkCreateAppointment.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/BulkDownloadInvitationsButton.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/BulkDownloadInvitationsButton.tsx index 64135892d72692eb664c2e5fccdc158692474aa2..70c8a08814bc5cc97bad7fa5ab21e61f9a20b1a0 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/BulkDownloadInvitationsButton.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/BulkDownloadInvitationsButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/DownloadNotPossibleDialog.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/DownloadNotPossibleDialog.tsx index e51866a12818d8fd425142d193737488767dd3d1..fafae994ae88da746a556af52b1f96fce470d067 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/DownloadNotPossibleDialog.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/DownloadNotPossibleDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/PartialDownloadDialog.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/PartialDownloadDialog.tsx index fd2fb320aa4805d4b588fe29ce360792fb906430..4b6a0c91a0f7855af9c0624008429fcc23460869 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/PartialDownloadDialog.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/PartialDownloadDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/useBulkDownloadInvitations.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/useBulkDownloadInvitations.ts index 46047b98e716621fcf7c4f41c4e64ee6013a6f89..2ae990310278b3603402beeb80986ec935ff7704 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/useBulkDownloadInvitations.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/proceduresTable/bulkDownloadInvitations/useBulkDownloadInvitations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/MedicalReportSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/MedicalReportSidebar.tsx index 2d9aaadcf18e45e9a0a1d751caeda75e25bddbf0..fc9cef41393560825981ce992d60b46cdc46321f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/MedicalReportSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/MedicalReportSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/SchoolInfoLetterSidebar.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/SchoolInfoLetterSidebar.tsx index 8941d580c1a23a33c504e299d203f7db2e39bc63..a9aeefc5fe9deda27fd4d8579c3b5fbb8a2480ff 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/SchoolInfoLetterSidebar.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/reports/SchoolInfoLetterSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationField.tsx index 83c680aa91c3c59c2d9a6bc6e5023852b36c91f2..45453eafb626522ac0b8616f5f9399f135e09397 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationForm.tsx index c5c3f6a6aee0069f28491354db80800f5f16bfa8..6b259487de1e76d6864ba98756eec4b379f47888 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/ArticulationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/BodyCoordinationForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/BodyCoordinationForm.tsx index 2d4e5e97cb7fe940b112effadb836865fb23dda3..2ab6bae83702f55eee144ace7e6a0488024ab43f 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/BodyCoordinationForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/BodyCoordinationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/CountingForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/CountingForm.tsx index 702947452e01ec019e6493e9cfd85e231f50b1e8..0a45280b5c8ace8931a56b39f03372070d12defe 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/CountingForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/CountingForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/FormSectionTitle.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/FormSectionTitle.tsx index 8925b0cab3ca28da768580375101e1fc07dd2004..80a0ce94fc701b18dfd7980bca0004d336c20494 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/FormSectionTitle.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/FormSectionTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/HandednessForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/HandednessForm.tsx index 9a4a65a21422e2449f19f032dd8f2d41b27da850..f58838d08a11fadcfa58ebcb9fdd73f9970d01ce 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/HandednessForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/HandednessForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/LanguageForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/LanguageForm.tsx index 0c53ecf931767778e8fc6d9d604352525b720df8..fc5098427689791628e0c8b7ad1a660b097f88b8 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/LanguageForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/LanguageForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PluralForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PluralForm.tsx index 46b8a9524fc2cb307478656152f01ff83deff669..491ae6ed5cd260ab9bf3c15d10cb66f37fb4a624 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PluralForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PluralForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PrepositionForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PrepositionForm.tsx index ccc1f6e8a5d85cc6c3e36b08e6f2d61db5a1cb1e..c836cf2b8d5f5e05057daeaeb447ec5f14c14af3 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PrepositionForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PrepositionForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PseudowordForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PseudowordForm.tsx index d4e8ae4bea66f728eb763147c22c197b0c55d462..7838ca14c999df0dbe8e4e988226674a00ec11cf 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PseudowordForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/PseudowordForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/QuantityKnowledgeForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/QuantityKnowledgeForm.tsx index dfadb899744ea6a83601802a384bed0e0b7707de..312f35392feebf9a149217b74038fdd48d43cf93 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/QuantityKnowledgeForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/QuantityKnowledgeForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SelectiveAttentionForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SelectiveAttentionForm.tsx index ecea4014a58ce519cb4af584380c4ad646ebfb25..a918ba863e1b51245d42d511044b3a61140dd235 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SelectiveAttentionForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SelectiveAttentionForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationFields.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationFields.tsx index bce694215edfa680c4333b7b0db309af11f0be74..5db4edfa364a0605b203b640f11683de7be8885a 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationFields.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationForm.tsx index 35125ab2019ae0a8060b2d0e37cc2c0e3921b5e3..fc5120768f88cc37a41aeea9919d6a4bf45270c4 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/SopessExaminationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisualPerceptionForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisualPerceptionForm.tsx index 0dd090de4a3ab1cff6142a8cfbc78786bf81e102..2d5846d12ebd16d6e20958faa3e217d4fec0a367 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisualPerceptionForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisualPerceptionForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisuoMotorSkillsForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisuoMotorSkillsForm.tsx index f7f008f21fadf5fcb6794c8276346fd7a1b519e1..7f23cdb2c1f01172787586d45b6cb7f32191aa32 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisuoMotorSkillsForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/sopessExamination/VisuoMotorSkillsForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/styles.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/styles.ts index d032513590aa3111c7eefe4d92f8b645ea7a5987..fb8155bafb35940c9ba98ca5a63179e2cb130394 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/styles.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/styles.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/translations.ts b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/translations.ts index 3d13b4d22fa206e33aaee30cad825cd2a6542d19..fe0411a2218f97022c6ea5ac41ff5d97f3debe75 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/translations.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -188,6 +188,7 @@ export const APPOINTMENT_TYPES: EnumMap<ApiAppointmentType> = { [ApiAppointmentType.HivStiConsultation]: "HIV-STI-Beratung", [ApiAppointmentType.SexWork]: "Sexarbeit", [ApiAppointmentType.ResultsReview]: "Ergebnisbesprechung", + [ApiAppointmentType.OfficialMedicalService]: "Amtsärtzlicher Dienst", }; export const DISABILITY_TYPE_VALUES: EnumMap<ApiDisabilityType> = { diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/OtherVaccinationForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/OtherVaccinationForm.tsx index afad051fe010898bc9b7a3622be558320de41002..ea5f355eca4e768ec1a4dcceddaf4113552d1aaf 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/OtherVaccinationForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/OtherVaccinationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationField.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationField.tsx index 7a06f26e4f3cbb27a39f95023a60216ea7403fb6..b97f57f11c69bf33f823386c6e295d0363668ecb 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationField.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationForm.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationForm.tsx index 90549a00f503c19b9d17cbe1ba0169d3e63b28b8..5f5fde8b9830bbd9f042462d6cc0f0f6f791178c 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationForm.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/procedures/vaccination/VaccinationForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/waitingRoom/WaitingRoomTable.tsx b/employee-portal/src/lib/businessModules/schoolEntry/features/waitingRoom/WaitingRoomTable.tsx index 1542146d480d4d35e44ee0c0c6bb9dd8fd6cb9b1..3bba044b97543250d20879bc05c1875de05de834 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/waitingRoom/WaitingRoomTable.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/features/waitingRoom/WaitingRoomTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/shared/constants.ts b/employee-portal/src/lib/businessModules/schoolEntry/shared/constants.ts index 24e31eaf2dc6ed6dda25999d6caf97c4c2a89313..b6bec5e343655dfd8459627d6d4edbb2f3ecc0fd 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/schoolEntry/shared/moduleUserGroup.ts index f2b0e92ecdee16da5cd3fd83c8427ffa0cd1fcaa..dce5ba81f26c91dee0314f6c0ba94191bb2b2dd3 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/shared/routes.ts b/employee-portal/src/lib/businessModules/schoolEntry/shared/routes.ts index bfbd68473d4c0a0fce6fcbce86cf21be4e9e8b80..6960323e298c01cf2486a64b2bf6d9bff4330d92 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -27,19 +27,7 @@ export const routes = defineRoutes("/school-entry", (schoolEntryPath) => ({ ), vaccination: procedurePath("/vaccination"), anamnesis: procedurePath("/anamnesis"), - progressEntries: defineRoutes( - procedurePath("/progress-entries"), - (progressEntriesPath) => ({ - index: progressEntriesPath("/"), - byId: (progressEntryId: string) => - defineRoutes( - progressEntriesPath(`/${progressEntryId}`), - (entryPath) => ({ - details: entryPath("/details"), - }), - ), - }), - ), + progressEntries: procedurePath("/progress-entries"), })), }), ), diff --git a/employee-portal/src/lib/businessModules/schoolEntry/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/schoolEntry/shared/sideNavigationItem.tsx index c949b520e3e404145833e8225e9570be12dfe48a..da06157c71eb2f1918996c88ae04dc02cefd7ab4 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/schoolEntry/shared/sideNavigationItem.tsx @@ -1,11 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiBaseFeature, ApiUserRole } from "@eshg/employee-portal-api/base"; import { ApiLocationSelectionMode } from "@eshg/employee-portal-api/schoolEntry"; -import { EscalatorWarning } from "@mui/icons-material"; +import { WcOutlined } from "@mui/icons-material"; import { useQuery } from "@tanstack/react-query"; import { useIsNewFeatureEnabled } from "@/lib/baseModule/api/queries/feature"; @@ -75,7 +75,7 @@ export function useSideNavigationItems(): UseSideNavigationItemsResult { const sideNavigationItem = { name: "Einschulung", - decorator: <EscalatorWarning />, + decorator: <WcOutlined />, error: isLocationModeError ? "Bei der Verbindung zum Einschulungsmodul ist ein Fehler aufgetreten." : undefined, diff --git a/employee-portal/src/lib/businessModules/schoolEntry/shared/useCreateInboxProcedure.ts b/employee-portal/src/lib/businessModules/schoolEntry/shared/useCreateInboxProcedure.ts index b31263518802d1bce0f8db506678598f32a2f092..5e3e220d61cb101920804b012aef849fdac28ce4 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/shared/useCreateInboxProcedure.ts +++ b/employee-portal/src/lib/businessModules/schoolEntry/shared/useCreateInboxProcedure.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/clients.ts b/employee-portal/src/lib/businessModules/statistics/api/clients.ts index 681bcfce92ff6ae506dc1b4dfdc64a4c868c6c64..a7d90eef6bee2be58854a3026d59cf72c04318a9 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/clients.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/downloads/useDataExportWithSizeCheck.ts b/employee-portal/src/lib/businessModules/statistics/api/downloads/useDataExportWithSizeCheck.ts index 2246b6841b1726d9f4f921cb7f71b908c07c6ba5..e32537d7086c6672d9d2cae9b3b4eaedd21dded7 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/downloads/useDataExportWithSizeCheck.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/downloads/useDataExportWithSizeCheck.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportEvaluationData.ts b/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportEvaluationData.ts index 73c4d8f2ab8bcb46cded2383f5c25547117961bf..22cd999ca569e3f11d400a03d4839ec33cfb18ee 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportEvaluationData.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportEvaluationData.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportReportData.ts b/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportReportData.ts index b271a45fbaf6456fb45014fc86c817e1b097040c..057a977169092c140fe66704292bb91e17e77afe 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportReportData.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/downloads/useExportReportData.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/extractFilterValue.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/extractFilterValue.ts new file mode 100644 index 0000000000000000000000000000000000000000..19fb0741be794f73fe8c93c3e3ac3a9b6839361a --- /dev/null +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/extractFilterValue.ts @@ -0,0 +1,13 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; + +export function extractFilterValue<T>( + filterValues: FilterValue[], + key: string, +): T | undefined { + return filterValues.find((it) => it.key === key) as T | undefined; +} diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/getActiveFilterLabels.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/getActiveFilterLabels.ts index f30162d949edcc031c24fee802b5322172cd156a..13458b0dfa0867c52decbeeb0f5a226451688a94 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/getActiveFilterLabels.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/getActiveFilterLabels.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributeSelectionKey.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributeSelectionKey.ts index 127b15601b5e6a28e20b01f16284ac75963df89f..321dbeae346e6e76e30b7e6a09a53ec06de7486a 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributeSelectionKey.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributeSelectionKey.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToFilterDefinitions.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToFilterDefinitions.ts index d1517011a77445bce62869ccad8d6ff920940dc2..d479b77114f7ab72538b0ac8ad687e6e9682e7c1 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToFilterDefinitions.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToFilterDefinitions.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToLabels.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToLabels.ts index c37fc3059d4f058d9d216f5fa751f04e54e07742..aeabea6376364bed72adba3943ea122846cf5e47 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToLabels.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapAttributesToLabels.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapDateSpanFilterToApiDateSpan.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapDateSpanFilterToApiDateSpan.ts new file mode 100644 index 0000000000000000000000000000000000000000..1ec63ae5bf65ad825378435b9ff4755a64d2db55 --- /dev/null +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapDateSpanFilterToApiDateSpan.ts @@ -0,0 +1,39 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiDateSpan } from "@eshg/employee-portal-api/statistics"; +import { addDays, parseISO, startOfDay } from "date-fns"; + +import { DateSpanFilterValue } from "@/lib/shared/components/filterSettings/models/DateSpanFilter"; + +export function mapDateSpanFilterToApiDateSpan( + dateSpanFilter: DateSpanFilterValue | undefined, + isEndInterval: boolean, +): ApiDateSpan | undefined { + if ( + !dateSpanFilter || + (!dateSpanFilter.startDate && !dateSpanFilter.endDate) + ) { + return undefined; + } + + const start = dateSpanFilter.startDate + ? startOfDay(parseISO(dateSpanFilter.startDate)) + : undefined; + const end = dateSpanFilter.endDate + ? startOfDay(addDays(parseISO(dateSpanFilter.endDate), 1)) + : undefined; + + // See: ISSUE-7058 + if (isEndInterval) { + start?.setMilliseconds(1); + end?.setMilliseconds(1); + } + + return { + lowerBoundary: start, + upperBoundary: end, + }; +} diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapEvaluationFilterToFilterValue.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapEvaluationFilterToFilterValue.ts index d4f1653bad29f0746f8eaa9dfe1d3cfbb8f3b679..66a2661ce115c325718748941fd7efb52e31f55a 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapEvaluationFilterToFilterValue.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapEvaluationFilterToFilterValue.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapFilterValuesToEvaluationFilters.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapFilterValuesToEvaluationFilters.ts index 144919ee0912b68a834ec63c0d631f9cd95d9369..4bbada063fecbd3a7d643b2037cf0283c0a7fcaa 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapFilterValuesToEvaluationFilters.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapFilterValuesToEvaluationFilters.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapTimeRangeEnd.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapTimeRangeEnd.ts index c1deb2780a3b29391ed051ff5f1c034cfe6f3227..91bd142d45be79b15ea5945aad31a5ec9a3c62ed 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapTimeRangeEnd.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapTimeRangeEnd.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapToApiBusinessModule.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapToApiBusinessModule.ts index 34fbf1e519aebd47a34b299cb6a4045a3d87d127..843b78a72a0d7908bc21aef075981f25174ba191 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/mapToApiBusinessModule.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/mapToApiBusinessModule.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/suppertedEvaluationFilterValues.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/suppertedEvaluationFilterValues.ts index ad60fdb41087972162fa96a7394ed79bb019dbd8..0ce31fb097b7e83ef7397015d49fb8d986dc6add 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/suppertedEvaluationFilterValues.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/suppertedEvaluationFilterValues.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mapper/translateReportType.ts b/employee-portal/src/lib/businessModules/statistics/api/mapper/translateReportType.ts index 89fc7d37a1a18898552504fa34fa1396ebb86b05..87e3044adcfca8ec9cf12c7e2e5acb73efcfe686 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mapper/translateReportType.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mapper/translateReportType.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/analysis.ts b/employee-portal/src/lib/businessModules/statistics/api/models/analysis.ts index 97554c1e1934398314d1b1b36cdc1941a989b4e5..2e769056c8a8a1e0911a4e54fc4aa0d6d90e0817 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/analysis.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/analysis.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/dataSourceSensitivity.ts b/employee-portal/src/lib/businessModules/statistics/api/models/dataSourceSensitivity.ts index 271a2021766228635f0e35427487037aab411bf2..2ce8772071117e4dde660666dc9dcc5d077adcc2 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/dataSourceSensitivity.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/dataSourceSensitivity.ts @@ -1,9 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { ApiDataSourceSensitivity } from "@eshg/employee-portal-api/statistics"; +import { + ApiDataSourceSensitivity, + ApiReportDataSensitivity, +} from "@eshg/employee-portal-api/statistics"; import { EnumMap } from "@eshg/lib-portal/types/helpers"; export const DataSourceSensitivity = { @@ -42,3 +45,29 @@ export function mapDataSourceSensitivityApiToFrontend( return undefined; } } + +export function mapEvaluationDataSourceSensitivityFrontendToApi( + dataSourceSensitivity: DataSourceSensitivity, +) { + switch (dataSourceSensitivity) { + case DataSourceSensitivity.Sensitive: + return ApiDataSourceSensitivity.Sensitive; + case DataSourceSensitivity.InternalUsage: + return ApiDataSourceSensitivity.InternalUsage; + case DataSourceSensitivity.Anonymous: + return ApiDataSourceSensitivity.Anonymous; + } +} + +export function mapReportDataSourceSensitivityFrontendToApi( + dataSourceSensitivity: DataSourceSensitivity, +) { + switch (dataSourceSensitivity) { + case "SENSITIVE": + throw new Error("Illegal argument!"); + case DataSourceSensitivity.InternalUsage: + return ApiReportDataSensitivity.InternalUsage; + case DataSourceSensitivity.Anonymous: + return ApiReportDataSensitivity.Anonymous; + } +} diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetails.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetails.ts index 9be6f38598fdbbd78ca2eac9afd3de803ba62b34..6522944c4ecd7408f65fdcc1cf47aa844166ddb5 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetails.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableData.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableData.ts index a4f9aea7d86e8287d9fd6ec55abee54e761858f9..ce3781b3bfd5a815eea5253585e73f44ede3b436 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableData.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableData.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableView.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableView.ts index 179ac9741f79019f55a7c7d738425b137d4ba546..6b1e6c4b39140303378ad62aaa69f8eca766c25f 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableView.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsTableView.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsViewTypes.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsViewTypes.ts index e10373d897afa722637517cbf18ae227dfb1a5cd..d534475bc30a7e253d63e166804cc878f9040e3c 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsViewTypes.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationDetailsViewTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationFilterType.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationFilterType.ts index a2d6dbf01a212d447e7e82e93060c448fdfbbe12..372c1b697a8207429f661400f083e929b2f1a2e2 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationFilterType.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationFilterType.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationOverview.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationOverview.ts index 7f2a51cb9c0d08410dfc301ca64d38bd39f7c2c7..bf3526b1c61c509b95ffeefad20cdb64b4a8a2c3 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationOverview.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationOverview.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationReports.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationReports.ts index c2bf71355a88c3014dde1f635b804c3ed94945c7..d1239939224e888338fa833a28929317d076ceb4 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationReports.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationReports.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplateDetails.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplateDetails.ts index d6b55699facb19593eb0f2585870f0b1c243688f..a9e944d00de5f2698d0e50f38bc4c97a46a39c2a 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplateDetails.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplateDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplatesOverview.ts b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplatesOverview.ts index 16fda36e167e36bca2a38b1f03c08480e126ff3b..90a8288fd3a0e23ce2bb7f813c2e1416ed13b6c0 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplatesOverview.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/evaluationTemplatesOverview.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/flatAttribute.ts b/employee-portal/src/lib/businessModules/statistics/api/models/flatAttribute.ts index 9aa8a090f19beebffcb4d226cdd04d501c929acd..cbfd1299aaba17d2e954304da72799f7a4553400 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/flatAttribute.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/flatAttribute.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/geoShapesTableView.ts b/employee-portal/src/lib/businessModules/statistics/api/models/geoShapesTableView.ts index 1c9cb0d3519beacb34b473c6af06618a08f5233b..64bb02b1c5363ff34e2f83aa69d4cb7b1e7e7a8f 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/geoShapesTableView.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/geoShapesTableView.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/pageRequest.ts b/employee-portal/src/lib/businessModules/statistics/api/models/pageRequest.ts index c32d0eb9e0b382ae56f186cf6a071d1da9081987..8e6b92aedb31221656fef69a65432861304fed13 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/pageRequest.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/pageRequest.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/reportDetailsViewTypes.ts b/employee-portal/src/lib/businessModules/statistics/api/models/reportDetailsViewTypes.ts index 2a01fc4101fd3f46b781c36bf01b8097ef22b059..b3167ca962dee2530ea4482cf14b35ce54c35691 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/reportDetailsViewTypes.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/reportDetailsViewTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/reportSeriesTypes.ts b/employee-portal/src/lib/businessModules/statistics/api/models/reportSeriesTypes.ts index 51769589e7556f06db2256f735db55599041b334..0ad8d8455096626b8e193d1f49c1fb25d06b4bbd 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/reportSeriesTypes.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/reportSeriesTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/models/reportsOverviewTypes.ts b/employee-portal/src/lib/businessModules/statistics/api/models/reportsOverviewTypes.ts index 305d6f3ed20089fd3885ed296688d82306f180bd..d4ab04ef758d34ffd10c6792b36b96b4fc28bcfe 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/models/reportsOverviewTypes.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/models/reportsOverviewTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useActivateGeoShape.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useActivateGeoShape.ts index b88d63101fcd6354d9ad0b3ced2a55287eee84de..24aa1f337c97abe84f08bff369cecbc932876ba7 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useActivateGeoShape.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useActivateGeoShape.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAnalysis.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAnalysis.ts index 40d21896f7bf241b932252e5e06fdbc6316502e1..8be7cd5e1cca13169a8ccfdedbe65945c13c11d4 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAnalysis.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAnalysis.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAutoReportSeries.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAutoReportSeries.ts index 4dd29ea315c3fd5cda048e2e1010beb310567647..409c86b36b4044f43c930ddcd7a2fc5a2d2c0f48 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAutoReportSeries.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddAutoReportSeries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddDiagram.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddDiagram.ts index 185f933b25889efe71dd38dc606057ab7f60ad03..96456cbda3048ebe30c954cb3979396dffe8f3f1 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddDiagram.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddDiagram.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluation.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluation.ts index f5c7938098c807bbd8f9972c8b4e16b4926ce035..8512fa47d9d42060af7f4df0a86ddccb494c5867 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluation.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluationTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluationTemplate.ts index 7b17f0f00cfc854b3e1e73bc91887463057686b6..d2923ff73e34c7bb7c10a8c25666932676a09935 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluationTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddEvaluationTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddFilterTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddFilterTemplate.ts index ba0141cf3ecf4b9942d64da7ea0f0fda3f03b953..0b4278a589301b60a978ee5e706a7a73b18020eb 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddFilterTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddFilterTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddGeoShape.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddGeoShape.ts index 8889f6749b97c58603612b6f39d7fea5d84d5b9b..e37173481f87ca425dd5c1f3a12ab3a7cae8e0b5 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddGeoShape.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddGeoShape.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddReport.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddReport.ts index aaab1dbc3c88cabbf87647f8ff36bcf08a50ad63..6215bc8042f2660523528d68fb18f2d4ec4ad51e 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddReport.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useAddReport.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useArchiveGeoShape.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useArchiveGeoShape.ts index 3af2b60fff46ec879718929f533000a772dd3d4f..669ed50f23ebe978d3f3b4ad2b3e12e2ae980cdf 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useArchiveGeoShape.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useArchiveGeoShape.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeactivateReportSeries.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeactivateReportSeries.ts index ce64409eda34ddefa5ddd3351b7b7c4f80440aad..99e55c08b64a7853c55fe9f1371135f48b2286b4 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeactivateReportSeries.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeactivateReportSeries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteAnalysis.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteAnalysis.ts index 7f7f47a96b33a73b5cd5439023dcb4b1329f8843..86f0f5efc70f92cda512469658b5973e10464526 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteAnalysis.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteAnalysis.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteDiagram.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteDiagram.ts index a56c011ac3c4d10d29ca99d724b0e89d02a8d5b4..86f1fa78a6dc38dfd041d154e8603299528841b4 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteDiagram.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteDiagram.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluation.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluation.ts index bc7e59d366b310688f4508ba5906b91c6cc2a0cb..ab8e4b86a5de226d1e48ac9a1b5290db27bb2e2c 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluation.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluationTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluationTemplate.ts index 826f762dd6453ed2c8fd1d57aa37e799a0738744..85de3d2c098b43241b7099dc424a377434fe9c67 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluationTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteEvaluationTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteFilterTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteFilterTemplate.ts index 14e0125ae5f251b39deca2fdc022855ea89cb057..32369bf6579b78bfd0f1078630f92d3c140a9e5b 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteFilterTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteFilterTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteGeoShape.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteGeoShape.ts index e1e63d60a1af05da08dcb54fe06f7c505b1b8e14..395fd389b7096880d69777a164c586d376512b4e 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteGeoShape.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteGeoShape.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReport.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReport.ts index 9bbc3a830afc7e00cbab10428dfedf077cbe74df..10ab44f6b266183e33d0cc411163297394404410 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReport.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReport.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReportSeries.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReportSeries.ts index 9d0ebef7160982eee574eb0d815d58e04db42f7c..5ec2cd681d593e53eaa6bf78a4d405a85a4541fb 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReportSeries.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteReportSeries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteRepositoryEvaluationTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteRepositoryEvaluationTemplate.ts index 525bbc3bfaab5afc5a9fe68ede392b762a139568..0e8f1760ed0b70f491e0d59d9236254b7b31034b 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteRepositoryEvaluationTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDeleteRepositoryEvaluationTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDownloadRepositoryEvaluationTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDownloadRepositoryEvaluationTemplate.ts index bf5c0ce2fe32243b953ff13330c930f970c7f461..861373b61e179fdea59fb979b20100ef33aedbaa 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDownloadRepositoryEvaluationTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDownloadRepositoryEvaluationTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDuplicateEvaluation.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDuplicateEvaluation.ts index b80b4afc4d8d299f9a7e9cd80f9da79f8bea9a76..97c528d434831c97c1ecd8795a619bb3fb9008bc 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useDuplicateEvaluation.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useDuplicateEvaluation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useEditEvaluationName.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useEditEvaluationName.ts index a64aa447ccb5c98c32e25624017ef0701b5b29f3..9d415ffd7bcd83b212ce4a2d1880ef7359c02d91 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useEditEvaluationName.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useEditEvaluationName.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useExportDiagramData.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useExportDiagramData.ts index ca563094eb183ee1a3854a1872ff90e5544b7ac0..dcdc52d91fa159c949b6de315b8f62e37ef6a9e0 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useExportDiagramData.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useExportDiagramData.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useGeoShapeApi.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useGeoShapeApi.ts index d363d8a0916a0004263de18124ec3de2fb2c4ab9..9793b8871bf13f16747b7f71a7a0c5a10614b858 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useGeoShapeApi.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useGeoShapeApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useGetFilterTemplateFilters.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useGetFilterTemplateFilters.ts index 53b3a99d4fc089f569a76dcb883984e288e3b632..f3e93bbd2b98615dc08a5818c217af31718fb7ab 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useGetFilterTemplateFilters.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useGetFilterTemplateFilters.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateAnalysis.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateAnalysis.ts index 04e359a69bf338f50b76ca8f7c4400baa564190a..2021a496ba68a160c131ca3606e2b80be30d9a07 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateAnalysis.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateAnalysis.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDataBasis.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDataBasis.ts index ab15b722e3f7fdc40df203d0987b1b7ec2ebe43f..a6be545092b91c1b7b2fd111c1090fd3463df661 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDataBasis.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDataBasis.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDiagram.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDiagram.ts index 66eec6e3f7703505cff32a272b5bedc51f4e591a..8e53f60115f5418fb9db3de38bded9a329f40ddd 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDiagram.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateDiagram.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateEvaluationTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateEvaluationTemplate.ts index b7ed6713148f85de36b4076fe029bdff3d103a81..4903426bfe0fab97af2a1c21c7368aa72d0b4030 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateEvaluationTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateEvaluationTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateReport.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateReport.ts index fd8697c2f02aaeffe5a60f97e5315335045522b7..832aa6785a33f4f038fae10d648414e7ba0352d6 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateReport.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUpdateReport.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUploadEvaluationTemplate.ts b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUploadEvaluationTemplate.ts index 0fd875a0d5f21aa61983037bfe585b07ce154040..a10d78e5f7fc2e9249a3ab412c11b76de538b27f 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/mutations/useUploadEvaluationTemplate.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/mutations/useUploadEvaluationTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/apiQueryKeys.ts index 111e1a5f6a15c39131c1994112566fc552ecef77..ecc4b42e49073183d858790dfd3a10f37cf92546 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAnalysis.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAnalysis.ts index c3bc47c5ab0ed12c5dd591267cbb9c0556ca4532..e13bafd3ef170f81aea96111daff9382748bc721 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAnalysis.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAnalysis.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAvailableDataSources.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAvailableDataSources.ts index f7c2ca4f94e18b04487d965c94edc7240c37a7a8..f057b96fbe7855a83e5b815f26a813a53c2f848e 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAvailableDataSources.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetAvailableDataSources.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetCompletenessInformation.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetCompletenessInformation.ts index bd46eb2517c26d045950f3e7bbef5196c9e479f0..143c9c3d6362c3527fd2fde262afef31f1268a9c 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetCompletenessInformation.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetCompletenessInformation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetDetailPageInformation.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetDetailPageInformation.ts index 860bfa1fa0dd64116034b1a0a83a301452a399ed..3c54087e8f47ebc1e6cb737a819578886f7ccd66 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetDetailPageInformation.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetDetailPageInformation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,7 @@ import { ApiAnalysis, ApiAnalysisChartConfiguration, ApiAttributeSelection, + ApiEvaluationDataSensitivity, ApiGetDetailPageInformationResponse, EvaluationApi, } from "@eshg/employee-portal-api/statistics"; @@ -153,7 +154,10 @@ export function mapToEvaluationDetailsView( attributes: attributes, analyses: mapAnalyses(result.analyses, attributes), userId: result.user?.userId, - anonymized: result.evaluationInfo.anonymized, + //TODO: Display sensitivity instead of anonymized + anonymized: + result.evaluationInfo.dataSensitivity !== + ApiEvaluationDataSensitivity.Sensitive, tooMuchDataForExport: result.evaluationInfo.tooMuchDataForExport, } satisfies EvaluationDetailsView; } diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluation.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluation.ts index 653db5b619196db894213c894ef4d449ffc67216..efe09e11cfe0cd11b7c761a20d707a4a28ab9d17 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluation.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetails.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetails.ts index e51746e4f009dd339c7b17ecb3fe36f84db6252e..b119b41289afda47c24410efbd5537df147498d4 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetails.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsPage.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsPage.ts index f9596a77c19775dfb523ca2a0a8b50c83bc545a7..e73e12e0d45aef503872fa55cc6fc6a25fdf2a52 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsPage.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsPage.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsTablePage.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsTablePage.ts index 4d74ae43a50f191908ad24ef2c5c60318c20489a..bff1db93fc829a0d2e7a9fd56cfe34d28c416230 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsTablePage.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationDetailsTablePage.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationReports.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationReports.ts index 3e13cce1d3e187cae8a42b6a185d7e6bdf37eb12..1a5a395ec401c41796c13ce5507efdccb628b844 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationReports.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationReports.ts @@ -1,9 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { + ApiEvaluationDataSensitivity, ApiFrequency, ApiGetReportSeriesEntriesOfEvaluationResponse, ApiReportSeries, @@ -149,7 +150,8 @@ export function mapToEvaluationReports( : mapSingleReport(reportSeriesEntry); }), activeSeries: mapActiveSeries(response), - anonymized: response.anonymized, + anonymized: + response.dataSensitivity !== ApiEvaluationDataSensitivity.Sensitive, }; } diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateDetails.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateDetails.ts index 9d15ec90563490a138e3cdb25e84636dc5b67a25..8f6b0c4458e48b1be59ac767e37405365e75d124 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateDetails.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -32,7 +32,7 @@ export function mapToEvaluationTemplateDetails( diagramTitles: it.diagramTitles, })), withoutAnonymizationAllowed: - result.templateSensitivityInfo.withoutAnonymizationAllowed, + result.templateSensitivityInfo.sensitiveDataAllowed, }; } diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateFromRepository.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateFromRepository.ts index ae43338c5d935bffc60e38f2c81c449645a4b713..9741c05af91e37c27884a59d9ad5466435f145ee 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateFromRepository.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplateFromRepository.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplates.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplates.ts index f5778ea6dc92808ad07bf8a3b85bf78701247be8..8146d1466dba0af270939111a2f333f2b0b4b0e6 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplates.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesFromRepository.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesFromRepository.ts index 05d3af8851e9b73d2cefb184a8b80de98edc0904..b5ba9fd333c355a1c10b2fcbe4b7561b3fc13452 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesFromRepository.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesFromRepository.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesOverview.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesOverview.ts index b4d28fe03fc813395081ac629428d4f8574c882a..98c054f0e041cc04de08a0736c6902f06053bcf3 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesOverview.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesOverview.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,6 +10,8 @@ import { import { useSuspenseQuery } from "@tanstack/react-query"; import { useEvaluationTemplateApi } from "@/lib/businessModules/statistics/api/clients"; +import { extractFilterValue } from "@/lib/businessModules/statistics/api/mapper/extractFilterValue"; +import { mapDateSpanFilterToApiDateSpan } from "@/lib/businessModules/statistics/api/mapper/mapDateSpanFilterToApiDateSpan"; import { mapDataSourceSensitivityApiToFrontend } from "@/lib/businessModules/statistics/api/models/dataSourceSensitivity"; import { EvaluationTemplateTableView, @@ -19,6 +21,10 @@ import { PageRequest, mapPageRequest, } from "@/lib/businessModules/statistics/api/models/pageRequest"; +import { EvaluationTemplatesFilterKey } from "@/lib/businessModules/statistics/components/evaluations/templates/filterDefinitions"; +import { DateSpanFilterValue } from "@/lib/shared/components/filterSettings/models/DateSpanFilter"; +import { EnumFilterValue } from "@/lib/shared/components/filterSettings/models/EnumFilter"; +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; import { evaluationTemplateApiQueryKey } from "./apiQueryKeys"; @@ -56,21 +62,45 @@ export function mapPageRequestSortKey(key: string | undefined) { } } +export function mapPageRequestWithFilterToApi( + pageRequest: PageRequest, + filterValues: FilterValue[], +) { + const dataSourceIds = extractFilterValue<EnumFilterValue>( + filterValues, + EvaluationTemplatesFilterKey.DataSource, + )?.selectedValues; + const createdAt = mapDateSpanFilterToApiDateSpan( + extractFilterValue<DateSpanFilterValue>( + filterValues, + EvaluationTemplatesFilterKey.CreatedAt, + ), + false, + ); + + return { + ...mapPageRequest(pageRequest, mapPageRequestSortKey), + filterOptions: { + dataSourceIds: dataSourceIds, + createdAt: createdAt, + }, + }; +} + export function useGetEvaluationTemplatesOverview( - evaluationTemplatesOverviewRequest: PageRequest, + pageRequest: PageRequest, + filterValues: FilterValue[], ) { const evaluationTemplateApi = useEvaluationTemplateApi(); const queryResult = useSuspenseQuery({ queryKey: evaluationTemplateApiQueryKey([ "getEvaluationTemplateOverview", - evaluationTemplatesOverviewRequest, + pageRequest, + filterValues, ]), queryFn: () => evaluationTemplateApi.getEvaluationTemplateOverview( - mapPageRequest( - evaluationTemplatesOverviewRequest, - mapPageRequestSortKey, - ), + mapPageRequestWithFilterToApi(pageRequest, filterValues), ), select: mapEvaluationTemplatesToTableView, }); diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluations.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluations.ts index 5a979abefd9ce0414c97d30b1aedd5db831283e5..cfc535cc726450a6a7efd3dc3b4e4517b56f8d7e 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluations.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluations.ts @@ -1,43 +1,126 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { + ApiEvaluationDataSensitivity, + ApiEvaluationSortKey, + ApiEvaluationState, ApiGetEvaluationsResponse, EvaluationApi, - GetEvaluationsRequest, } from "@eshg/employee-portal-api/statistics"; -import { unwrapRawResponse } from "@eshg/lib-portal/api/unwrapRawResponse"; import { useSuspenseQuery } from "@tanstack/react-query"; import { useEvaluationApi } from "@/lib/businessModules/statistics/api/clients"; +import { extractFilterValue } from "@/lib/businessModules/statistics/api/mapper/extractFilterValue"; +import { mapDateSpanFilterToApiDateSpan } from "@/lib/businessModules/statistics/api/mapper/mapDateSpanFilterToApiDateSpan"; import { mapTimeRangeEndApiToFrontend } from "@/lib/businessModules/statistics/api/mapper/mapTimeRangeEnd"; +import { + DataSourceSensitivity, + mapEvaluationDataSourceSensitivityFrontendToApi, +} from "@/lib/businessModules/statistics/api/models/dataSourceSensitivity"; import { EvaluationOverview, EvaluationOverviewTableItem, } from "@/lib/businessModules/statistics/api/models/evaluationOverview"; +import { + PageRequest, + mapPageRequest, +} from "@/lib/businessModules/statistics/api/models/pageRequest"; +import { EvaluationTableFilterKey } from "@/lib/businessModules/statistics/components/evaluations/filterDefinitions"; +import { DateSpanFilterValue } from "@/lib/shared/components/filterSettings/models/DateSpanFilter"; +import { EnumFilterValue } from "@/lib/shared/components/filterSettings/models/EnumFilter"; +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; import { getEvaluationsQueryKey } from "./apiQueryKeys"; +export function mapPageRequestWithFilterToApi( + pageRequest: PageRequest, + filterValues: FilterValue[], +) { + const sensitivities = extractFilterValue<EnumFilterValue>( + filterValues, + EvaluationTableFilterKey.Sensitivity, + )?.selectedValues?.map((it) => + mapEvaluationDataSourceSensitivityFrontendToApi( + it as DataSourceSensitivity, + ), + ); + const dataSourceIds = extractFilterValue<EnumFilterValue>( + filterValues, + EvaluationTableFilterKey.DataSource, + )?.selectedValues; + const states = extractFilterValue<EnumFilterValue>( + filterValues, + EvaluationTableFilterKey.Status, + )?.selectedValues as ApiEvaluationState[] | undefined; + const startDateSpan = mapDateSpanFilterToApiDateSpan( + extractFilterValue<DateSpanFilterValue>( + filterValues, + EvaluationTableFilterKey.DateRangeStart, + ), + false, + ); + const endDateSpan = mapDateSpanFilterToApiDateSpan( + extractFilterValue<DateSpanFilterValue>( + filterValues, + EvaluationTableFilterKey.DateRangeEnd, + ), + true, + ); + + const evaluationSortKey: Partial< + Record<keyof EvaluationOverviewTableItem, ApiEvaluationSortKey> + > = { + name: "NAME", + createdAt: "CREATED_AT", + timeRangeStart: "TIME_RANGE_START", + timeRangeEnd: "TIME_RANGE_END", + }; + + return { + ...mapPageRequest( + pageRequest, + (sortKey) => + evaluationSortKey[sortKey as keyof EvaluationOverviewTableItem], + ), + filterOptions: { + dataSourceIds: dataSourceIds, + start: startDateSpan, + dataSensitivities: sensitivities, + end: endDateSpan, + states: states, + }, + }; +} + export function createQueryGetEvaluations( evaluationApi: EvaluationApi, - evaluationsRequest: GetEvaluationsRequest, + pageRequest: PageRequest, + filterValues: FilterValue[], ) { return { - queryKey: getEvaluationsQueryKey([evaluationsRequest]), + queryKey: getEvaluationsQueryKey([ + "getEvaluations", + pageRequest, + filterValues, + ]), queryFn: () => - evaluationApi - .getEvaluationsRaw(evaluationsRequest) - .then(unwrapRawResponse), + evaluationApi.getEvaluations( + mapPageRequestWithFilterToApi(pageRequest, filterValues), + ), select: mapGetEvaluations, }; } -export function useGetEvaluations(evaluationsRequest: GetEvaluationsRequest) { +export function useGetEvaluations( + pageRequest: PageRequest, + filterValues: FilterValue[], +) { const evaluationApi = useEvaluationApi(); return useSuspenseQuery( - createQueryGetEvaluations(evaluationApi, evaluationsRequest), + createQueryGetEvaluations(evaluationApi, pageRequest, filterValues), ); } @@ -53,7 +136,10 @@ function mapGetEvaluations( timeRangeEnd: mapTimeRangeEndApiToFrontend(evaluation.timeRangeEnd), user: apiGetEvaluationsResponse.resolvedUsers[evaluation.userId], dataSourceName: evaluation.dataSourceNames[0]!, - anonymized: evaluation.anonymized, + //TODO: Display sensitivity instead of anonymized + anonymized: + evaluation.dataSensitivity !== + ApiEvaluationDataSensitivity.Sensitive, tooMuchDataForExport: evaluation.tooMuchDataForExport, }) satisfies EvaluationOverviewTableItem, ), diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationsOverview.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationsOverview.ts index 71d451e2187e44d9e7f0e7828619ca1bf650d04d..06f66a4e6f46a5f577329dea1809c038481dc098 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationsOverview.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetEvaluationsOverview.ts @@ -1,9 +1,8 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { GetEvaluationsRequest } from "@eshg/employee-portal-api/statistics"; import { useSuspenseQueries } from "@tanstack/react-query"; import { @@ -11,12 +10,15 @@ import { useEvaluationApi, useEvaluationTemplateApi, } from "@/lib/businessModules/statistics/api/clients"; +import { PageRequest } from "@/lib/businessModules/statistics/api/models/pageRequest"; import { createQueryGetAvailableDataSources } from "@/lib/businessModules/statistics/api/queries/useGetAvailableDataSources"; import { createQueryGetEvaluationTemplates } from "@/lib/businessModules/statistics/api/queries/useGetEvaluationTemplates"; import { createQueryGetEvaluations } from "@/lib/businessModules/statistics/api/queries/useGetEvaluations"; +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; export function useGetEvaluationsOverview( - evaluationsRequest: GetEvaluationsRequest, + pageRequest: PageRequest, + filterValues: FilterValue[], ) { const evaluationsApi = useEvaluationApi(); const dataSourceApi = useDataSourceApi(); @@ -27,7 +29,7 @@ export function useGetEvaluationsOverview( { data: evaluationTemplates }, ] = useSuspenseQueries({ queries: [ - createQueryGetEvaluations(evaluationsApi, evaluationsRequest), + createQueryGetEvaluations(evaluationsApi, pageRequest, filterValues), createQueryGetAvailableDataSources(dataSourceApi), createQueryGetEvaluationTemplates(evaluationTemplateApi), ], diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetFilterTemplates.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetFilterTemplates.ts index bb00c9519e781d1c9b622153ebac7610630709bf..6db07a015207c36707d663ee6dde9ad0b776163f 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetFilterTemplates.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetFilterTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetGeoShapes.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetGeoShapes.ts index 12f3a492bb4fa8055ae0a501b82c5f7c106b6a88..031bc0eebc44ab575b6b3dedbaa1c202a783c794 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetGeoShapes.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetGeoShapes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportDetails.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportDetails.ts index b24083b549b33902372a0155607a727263b07bc6..41015dec2e18b22a5ede8ba16d2601e6c8ab545e 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportDetails.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportDetails.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportsOverview.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportsOverview.ts index 1343465a4fe54a41fbd4c7b30c5994f01dffc5ca..0728b0443fe1a42049768d7e4356993a510a05d9 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportsOverview.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useGetReportsOverview.ts @@ -1,24 +1,43 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { - ApiGetReportsRequest, ApiGetReportsResponse, ApiReportInfo, ApiReportSeries, + ApiReportType, + ReportSeriesApi, } from "@eshg/employee-portal-api/statistics"; -import { useSuspenseQuery } from "@tanstack/react-query"; +import { useSuspenseQueries } from "@tanstack/react-query"; -import { useReportSeriesApi } from "@/lib/businessModules/statistics/api/clients"; +import { + useDataSourceApi, + useReportSeriesApi, +} from "@/lib/businessModules/statistics/api/clients"; +import { extractFilterValue } from "@/lib/businessModules/statistics/api/mapper/extractFilterValue"; +import { mapDateSpanFilterToApiDateSpan } from "@/lib/businessModules/statistics/api/mapper/mapDateSpanFilterToApiDateSpan"; +import { + DataSourceSensitivity, + mapReportDataSourceSensitivityFrontendToApi, +} from "@/lib/businessModules/statistics/api/models/dataSourceSensitivity"; import { ReportDataType } from "@/lib/businessModules/statistics/api/models/evaluationReports"; +import { + PageRequest, + mapPageRequest, +} from "@/lib/businessModules/statistics/api/models/pageRequest"; import { ReportSeriesItemOverview, ReportSeriesOverview, ReportsOverview, SingleReportOverview, } from "@/lib/businessModules/statistics/api/models/reportsOverviewTypes"; +import { createQueryGetAvailableDataSources } from "@/lib/businessModules/statistics/api/queries/useGetAvailableDataSources"; +import { ReportOverviewFilterKey } from "@/lib/businessModules/statistics/components/reports/filterDefinitions"; +import { DateSpanFilterValue } from "@/lib/shared/components/filterSettings/models/DateSpanFilter"; +import { EnumFilterValue } from "@/lib/shared/components/filterSettings/models/EnumFilter"; +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; import { reportApiQueryKey } from "./apiQueryKeys"; @@ -80,12 +99,92 @@ export function mapToReportsOverview( }; } -export function useGetReportsOverview(reportsRequest: ApiGetReportsRequest) { - const reportSeriesApi = useReportSeriesApi(); - const queryResult = useSuspenseQuery({ - queryKey: reportApiQueryKey(["getReportOverview", reportsRequest]), - queryFn: () => reportSeriesApi.getReportOverview(reportsRequest), +export function mapPageRequestWithFilterToApi( + pageRequest: PageRequest, + filterValues: FilterValue[], +) { + const reportType = extractFilterValue<EnumFilterValue>( + filterValues, + ReportOverviewFilterKey.ReportType, + )?.selectedValues[0] as ApiReportType; + const dataSourceIds = extractFilterValue<EnumFilterValue>( + filterValues, + ReportOverviewFilterKey.DataSource, + )?.selectedValues; + const startDateSpan = mapDateSpanFilterToApiDateSpan( + extractFilterValue<DateSpanFilterValue>( + filterValues, + ReportOverviewFilterKey.DateRangeStart, + ), + false, + ); + const endDateSpan = mapDateSpanFilterToApiDateSpan( + extractFilterValue<DateSpanFilterValue>( + filterValues, + ReportOverviewFilterKey.DateRangeEnd, + ), + true, + ); + const sensitivities = extractFilterValue<EnumFilterValue>( + filterValues, + ReportOverviewFilterKey.Sensitivity, + )?.selectedValues?.map((it) => + mapReportDataSourceSensitivityFrontendToApi(it as DataSourceSensitivity), + ); + + return { + ...mapPageRequest(pageRequest, () => undefined), + filterOptions: { + reportType: reportType, + dataSourceIds: dataSourceIds, + dataSensitivities: sensitivities, + start: startDateSpan, + end: endDateSpan, + }, + }; +} + +export function createQueryGetReportsOverview( + pageRequest: PageRequest, + filterValues: FilterValue[], + reportSeriesApi: ReportSeriesApi, +) { + return { + queryKey: reportApiQueryKey([ + "getReportOverview", + pageRequest, + filterValues, + ]), + queryFn: () => + reportSeriesApi.getReportOverview( + mapPageRequestWithFilterToApi(pageRequest, filterValues), + ), select: mapToReportsOverview, - }); - return queryResult.data; + }; +} + +export function useGetReportsOverview( + pageRequest: PageRequest, + filterValues: FilterValue[], +) { + const reportSeriesApi = useReportSeriesApi(); + const dataSourceApi = useDataSourceApi(); + + const [{ data: dataSources }, { data: reportsOverview }] = useSuspenseQueries( + { + queries: [ + createQueryGetAvailableDataSources(dataSourceApi), + createQueryGetReportsOverview( + pageRequest, + filterValues, + reportSeriesApi, + ), + ], + }, + ); + + return { + dataSources, + reportsOverview, + }; } diff --git a/employee-portal/src/lib/businessModules/statistics/api/queries/useStatisticsFeatureToggle.ts b/employee-portal/src/lib/businessModules/statistics/api/queries/useStatisticsFeatureToggle.ts index 6473f0ea6c270bf9b8db3575554e0f130079d64a..62db0994f1b26924a1b03807d22223934efe9c7b 100644 --- a/employee-portal/src/lib/businessModules/statistics/api/queries/useStatisticsFeatureToggle.ts +++ b/employee-portal/src/lib/businessModules/statistics/api/queries/useStatisticsFeatureToggle.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/AnonymizedToggleButtonGroupField.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/AnonymizedToggleButtonGroupField.tsx index 2aecde18e415195c840d8e2dc879d170a119574d..46ac3f5d8faef5f66984d72c446765f2637de4f8 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/AnonymizedToggleButtonGroupField.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/AnonymizedToggleButtonGroupField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/ChooseAttributesStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/ChooseAttributesStep.tsx index da25052cec3c18b8356225f0782add7180f15baa..739725d7894b984468dc641965d8d668c7ca4684 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/ChooseAttributesStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/ChooseAttributesStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/chooseAttributesStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/chooseAttributesStepFormModel.ts index 1d70889c973cce0103efb65bc7b692728b8a3bd7..7e6d178fef4b720ffc267f0b780b8aac6d027092 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/chooseAttributesStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/chooseAttributesStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/validateChooseAttributeStep.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/validateChooseAttributeStep.ts index 27c44da4fb2b205ba4ce3bbd528352a7599aa5e8..b910bf2bcf0211bfde447e3c4dcd650d0a772191 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/validateChooseAttributeStep.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseAttributesStep/validateChooseAttributeStep.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/ChooseDataSourceStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/ChooseDataSourceStep.tsx index eafe05405ffb5150034bfacf2c42c3b5cacaba99..4799557a6e6587b3c7c361b57a1b7d11a22b0f3d 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/ChooseDataSourceStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/ChooseDataSourceStep.tsx @@ -1,15 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { Stack, Typography } from "@mui/joy"; import { useFormikContext } from "formik"; import { mapToApiBusinessModule } from "@/lib/businessModules/statistics/api/mapper/mapToApiBusinessModule"; import { ChooseDataSourceStepFormModel } from "@/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/chooseDataSourceStepFormModel"; import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { businessModuleNames } from "@/lib/shared/components/procedures/constants"; export interface DataSource { diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/chooseDataSourceStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/chooseDataSourceStepFormModel.ts index c14221fc1f4ee201b50c1959e24671e526f376c5..d5719579f3d3b80e628d3d09ed20195647b93db6 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/chooseDataSourceStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/chooseDataSourceStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/validateChooseDataSourceStep.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/validateChooseDataSourceStep.ts index b7ebc8490f97ef61d378fb81714523c13adc205e..3adf314ee413b32a14fb0326c7868f2182721d25 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/validateChooseDataSourceStep.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseDataSourceStep/validateChooseDataSourceStep.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/ChooseEvaluationTemplateStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/ChooseEvaluationTemplateStep.tsx index b0b148a225ffdce8f176bbc1a96cb2fcef734223..f3aebc78cb4eec29ad7bf064bb8874a2133ef53b 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/ChooseEvaluationTemplateStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/ChooseEvaluationTemplateStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/chooseEvaluationTemplateStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/chooseEvaluationTemplateStepFormModel.ts index 2bd9e612bd6c082a1b0f5dd05209dc0530dd7864..451e8df992bccfc4ec572d30cc2727092ad0ee80 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/chooseEvaluationTemplateStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ChooseEvaluationTemplateStep/chooseEvaluationTemplateStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/ConfigureDataSourceStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/ConfigureDataSourceStep.tsx index 6a35ef7e7d30b027990d5b2d6b597676b5ac6b67..1afd4450bc431f3fb34ff8ed0aac986d37d3e06a 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/ConfigureDataSourceStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/ConfigureDataSourceStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/configureDataSourceStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/configureDataSourceStepFormModel.ts index e1eff33454a498d37f0bc32d308695206044976d..822bcb8011011d02f8772b29166b2efaebf4289f 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/configureDataSourceStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/configureDataSourceStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/validateConfigureDataSourceStep.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/validateConfigureDataSourceStep.ts index b41df994e8b1a72a44ca80e9a6a160b17e7d6725..2825a034d4f43722e97f42697f0b88cec73b2bc5 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/validateConfigureDataSourceStep.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/ConfigureDataSourceStep/validateConfigureDataSourceStep.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationFromScratchSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationFromScratchSidebar.tsx index baa4ebfe1029d72022c6f2517616f18943d1b7b2..c8c84c4160d9f8b599f8f6cfb6007017b6f9b672 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationFromScratchSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationFromScratchSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationSidebar.tsx index 3f9e2a5ab29401d0707439c5289e674f5ceb5f8c..e8bbd2878ed8ec19970603c6f2e048761453c008 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -84,6 +84,6 @@ function mapToDataSource(apiDataSource: ApiAvailableDataSource): DataSource { id: apiDataSource.id, businessModule: apiDataSource.businessModuleName, name: apiDataSource.name, - withoutAnonymizationAllowed: apiDataSource.withoutAnonymizationAllowed, + withoutAnonymizationAllowed: apiDataSource.sensitiveDataAllowed, }; } diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/SummaryStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/SummaryStep.tsx index e3804a2d3fd60a60835ab3866929df392ea2ac29..fcc9b2407194443df51dc96a3079d5c92dc68d99 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/SummaryStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/SummaryStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/summaryStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/summaryStepFormModel.ts index 7d9d1213feb12c8acace920b8ee41950fc70eec9..d6b25d5437b1a127f844cde6ab0a0cc7c69eaa60 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/summaryStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/SummaryStep/summaryStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/createEvaluationFromScratchFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/createEvaluationFromScratchFormModel.ts index 1a6a36d9dbc1cab8745556f7278b0688b406fb21..84831a077b92026d7c2eef1c5a463364d624f24e 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/createEvaluationFromScratchFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/createEvaluationFromScratchFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationSidebar.tsx index c937a02e744bb02f73ac1f315da16604d8b257dc..9bf26cb5ef15d7d7fa094ac8be0fb7ed8478401d 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationStep.tsx index 16e64449d1989efcaeae83e8dcd81e74e0d7ce49..0f19466162fb0ec38dfed4488cfe024ca2972574 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/duplicateEvaluationFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/duplicateEvaluationFormModel.ts index 6a5ff11ec8706cadfbac5207d326d10f78351f1d..0d71edccca5b42fedee1f731c76ab3029cecdde3 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/duplicateEvaluationFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/duplicateEvaluationFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveAsEvaluationTemplateSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveAsEvaluationTemplateSidebar.tsx index 74d048da06ac5fe3349d639a82780ec47cc56358..8f3f4612d44f76a874458cc09ac99b02cd205ca2 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveAsEvaluationTemplateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveAsEvaluationTemplateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/SaveEvaluationTemplateStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/SaveEvaluationTemplateStep.tsx index 9ee64ccbd5ae30850e064741754742a654d6028a..e1e0488f5f6d9e95351752dc4c33ddebe5b899cb 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/SaveEvaluationTemplateStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/SaveEvaluationTemplateStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/saveEvaluationTemplateStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/saveEvaluationTemplateStepFormModel.ts index c951612e4b75975575a8c9e1f1f958380565f90d..7736a72e24e5fd56c8de0ada919b47a183470391 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/saveEvaluationTemplateStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveEvaluationTemplateStep/saveEvaluationTemplateStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/UpdateEvaluationTemplateSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/UpdateEvaluationTemplateSidebar.tsx index 717c6a3faa0d56ef3161a644bba55605b9627bea..21b6fcdc0f4865b69503ea6b58b0217c3ed2b01c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/UpdateEvaluationTemplateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/UpdateEvaluationTemplateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/evaluationTemplateFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/evaluationTemplateFormModel.ts index 79b6cf990325f178e85e005f45895c750cd5bc83..ded2d6e8adb1da80279a32f42a788f627293f25c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/evaluationTemplateFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/evaluationTemplateFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsOverview.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsOverview.tsx index 7daf1b60a04e8bb5298b3a0de08e3e2175e4869f..22ec01be7802f15ae4c5f463d7dfca7900573a05 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsOverview.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsOverview.tsx @@ -1,23 +1,22 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; -import { ApiEvaluationSortKey } from "@eshg/employee-portal-api/statistics"; import { startTransition, useState } from "react"; -import { EvaluationOverviewTableItem } from "@/lib/businessModules/statistics/api/models/evaluationOverview"; import { useGetEvaluationsOverview } from "@/lib/businessModules/statistics/api/queries/useGetEvaluationsOverview"; import { useCreateEvaluationSidebar } from "@/lib/businessModules/statistics/components/evaluations/CreateEvaluationSidebar/CreateEvaluationSidebar"; +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; import { usePagination } from "@/lib/shared/hooks/table/usePagination"; import { useTableSorting } from "@/lib/shared/hooks/table/useTableSorting"; import { EvaluationsTable } from "./EvaluationsTable"; export function EvaluationsOverview() { - const [anonymizationValue, setAnonymizationValue] = useState<boolean>(); + const [filterValues, setFilterValues] = useState<FilterValue[]>([]); const { resetPageNumber, page, pageSize, getPaginationProps } = usePagination(); @@ -30,31 +29,20 @@ export function EvaluationsOverview() { }); const createEvaluationSidebar = useCreateEvaluationSidebar(); - const evaluationSortKey: Partial< - Record<keyof EvaluationOverviewTableItem, ApiEvaluationSortKey> - > = { - name: "NAME", - createdAt: "CREATED_AT", - timeRangeStart: "TIME_RANGE_START", - timeRangeEnd: "TIME_RANGE_END", - }; - const { evaluationsOverview, evaluationsOverviewIsFetching, availableDataSources, evaluationTemplates, - } = useGetEvaluationsOverview({ - apiGetEvaluationsRequest: { + } = useGetEvaluationsOverview( + { page, pageSize, - filterOptions: { - anonymizationValue, - }, sortDirection, - sortKey: evaluationSortKey[sortKey as keyof EvaluationOverviewTableItem], + sortKey, }, - }); + filterValues, + ); function openCreateEvaluationSidebar() { createEvaluationSidebar.open({ @@ -65,12 +53,13 @@ export function EvaluationsOverview() { return ( <EvaluationsTable + apiDataSources={availableDataSources} evaluationOverview={evaluationsOverview} loading={evaluationsOverviewIsFetching} onCreateEvaluationClick={openCreateEvaluationSidebar} - onAnonymizedFilterChanged={(filter) => { + onFilterValuesChanged={(filterValues) => { startTransition(() => { - setAnonymizationValue(filter); + setFilterValues(filterValues); resetPageNumber(); }); }} diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsTable.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsTable.tsx index b22d34a465f38afe9d5cc2372553bd4941539780..84e072d3fe506e7d108344601a5d074162527210 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsTable.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/EvaluationsTable.tsx @@ -1,12 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { + ApiAvailableDataSource, ApiEvaluationInfo, ApiEvaluationState, - ApiStatisticsFeature, } from "@eshg/employee-portal-api/statistics"; import { HiddenContainer } from "@eshg/lib-portal/components/HiddenContainer"; import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; @@ -30,16 +30,10 @@ import { EvaluationOverviewTableItem, } from "@/lib/businessModules/statistics/api/models/evaluationOverview"; import { getEvaluationsQueryKey } from "@/lib/businessModules/statistics/api/queries/apiQueryKeys"; -import { useIsNewFeatureEnabled } from "@/lib/businessModules/statistics/api/queries/useStatisticsFeatureToggle"; import { useDuplicateEvaluationSidebar } from "@/lib/businessModules/statistics/components/evaluations/DuplicateEvaluationSidebar/DuplicateEvaluationSidebar"; import { useSaveAsEvaluationTemplateSidebar } from "@/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/SaveAsEvaluationTemplateSidebar"; import { EvaluationNameChangeModal } from "@/lib/businessModules/statistics/components/evaluations/details/EvaluationNameChangeModal"; -import { - ENUM_FALSE_VALUE, - ENUM_TRUE_VALUE, - shouldSearchForFalse, - shouldSearchForTrue, -} from "@/lib/businessModules/statistics/components/evaluations/details/filter/enumFilterMappings"; +import { createFilterDefinitions } from "@/lib/businessModules/statistics/components/evaluations/filterDefinitions"; import { useDeleteEvaluationWithConfirmation } from "@/lib/businessModules/statistics/components/evaluations/useDeleteEvaluationWithConfirmation"; import { useStatisticsRoleChecks } from "@/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks"; import { useDataExportGuard } from "@/lib/businessModules/statistics/components/shared/hooks/useDataExportGuard"; @@ -52,8 +46,6 @@ import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; import { RefreshButton } from "@/lib/shared/components/buttons/RefreshButton"; import { FilterSettings } from "@/lib/shared/components/filterSettings/FilterSettings"; import { FilterSettingsSheet } from "@/lib/shared/components/filterSettings/FilterSettingsSheet"; -import { EnumFilterValue } from "@/lib/shared/components/filterSettings/models/EnumFilter"; -import { FilterDefinition } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; import { useFilterSettings } from "@/lib/shared/components/filterSettings/useFilterSettings"; import { @@ -213,26 +205,24 @@ function columns( } export interface EvaluationsTableProps { + apiDataSources: ApiAvailableDataSource[]; evaluationOverview: EvaluationOverview; loading: boolean; onCreateEvaluationClick: () => void; - onAnonymizedFilterChanged: (filter: boolean | undefined) => void; + onFilterValuesChanged: (filterValues: FilterValue[]) => void; manualSortingProps: ManualSortingProps; paginationProps: PaginationProps; } export function EvaluationsTable({ + apiDataSources, evaluationOverview, loading, onCreateEvaluationClick, - onAnonymizedFilterChanged, + onFilterValuesChanged, manualSortingProps, paginationProps, }: EvaluationsTableProps) { - const fakeAnonymizationEnabled = useIsNewFeatureEnabled( - ApiStatisticsFeature.FakeAnonymization, - ); - const duplicateEvaluationSidebar = useDuplicateEvaluationSidebar(); const [nameChangeAction, setNameChangeAction] = useState<Pick<ApiEvaluationInfo, "id" | "name">>(); @@ -248,12 +238,8 @@ export function EvaluationsTable({ const dataExportGuard = useDataExportGuard(false); const filterSettings = useFilterSettings({ - definitions: evaluationsOverviewFilterDefinitions, - onValuesSubmit: (filterValues) => { - onAnonymizedFilterChanged( - mapFilterValuesToAnonymizationFilter(filterValues), - ); - }, + definitions: createFilterDefinitions(apiDataSources), + onValuesSubmit: onFilterValuesChanged, showSearch: false, }); @@ -272,11 +258,7 @@ export function EvaluationsTable({ fullHeight controls={ <ButtonBar - left={ - fakeAnonymizationEnabled ? ( - <FilterButton {...filterSettings.filterButtonProps} /> - ) : undefined - } + left={<FilterButton {...filterSettings.filterButtonProps} />} right={[ <RefreshButton key="refreshEvaluation" @@ -363,40 +345,3 @@ export function EvaluationsTable({ </> ); } - -const evaluationsOverviewFilterDefinitions = [ - { - type: "Enum", - key: "anonymizationValue", - name: "Anonymisierte Daten", - options: [ - { label: "Ja", value: ENUM_TRUE_VALUE }, - { label: "Nein", value: ENUM_FALSE_VALUE }, - ], - }, -] satisfies FilterDefinition[]; - -function mapFilterValuesToAnonymizationFilter( - filterValues: FilterValue[], -): boolean | undefined { - const selectedValues = - ( - filterValues.find( - (filterValue) => - filterValue.key === "anonymizationValue" && - filterValue.type === "Enum", - ) as EnumFilterValue - )?.selectedValues ?? []; - - const searchForTrue = shouldSearchForTrue(selectedValues); - const searchForFalse = shouldSearchForFalse(selectedValues); - if (searchForTrue && searchForFalse) { - return undefined; - } - if (searchForTrue) { - return true; - } - if (searchForFalse) { - return false; - } -} diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/SidebarSummary.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/SidebarSummary.tsx index fa7f2ced3edd551b68169e863d027129ce2333af..f0c8ed9839cbe83ca7df4e57b6624dd16439ce00 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/SidebarSummary.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/SidebarSummary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/StateChip.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/StateChip.tsx index 6b34ae284c9146c1f8fda5fa92947821cee3948a..15cd16e716cb502d47ea54ea3cdca9bd59b9db8c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/StateChip.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/StateChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/BusinessModuleInformationCard.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/BusinessModuleInformationCard.tsx index cc7af1baadefdeb170254bacd380d409f6459b81..4679b4535f770e794d31f8da4592e62171691c99 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/BusinessModuleInformationCard.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/BusinessModuleInformationCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/ConfigureBarChartStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/ConfigureBarChartStep.tsx index 359a9fda2ae231225422ebe7fe63cd7f4f0031bc..af464247051bd79b289927879bc8ab4e073088bd 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/ConfigureBarChartStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/ConfigureBarChartStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/configureBarChartFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/configureBarChartFormModel.ts index 172e34eaa6580e03ab9825466c8625b2daf541ba..7bfb0f45828b93bf5c747cf20d70a3ae4e244008 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/configureBarChartFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/configureBarChartFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/validateConfigureBarChartStep.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/validateConfigureBarChartStep.ts index b0d5abc7c4b1807200832d024245cb1f5be1696e..0f6d73f1c7b36664980488ad5d21621a7708bd76 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/validateConfigureBarChartStep.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureBarChartStep/validateConfigureBarChartStep.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/ConfigureChoroplethChartStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/ConfigureChoroplethChartStep.tsx index b1b47292445ddb5935af990b5faae8f8cb458c64..c13bb4929730e4cee02cf9cff042d9ddb508baae 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/ConfigureChoroplethChartStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/ConfigureChoroplethChartStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/configureChoroplethChartFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/configureChoroplethChartFormModel.ts index 157deebbf839f1ac0f7b75b9e07e14264d845d54..068c0a3f55a5dba98b79fc0b6df683167d752903 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/configureChoroplethChartFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureChoroplethChartStep/configureChoroplethChartFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/ConfigureHistogramChartStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/ConfigureHistogramChartStep.tsx index bae7501d143b718a4b431d99d1a14790e6c87e84..64bffb5905d976ea57a6cf639cf2f70a0cbf2d2f 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/ConfigureHistogramChartStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/ConfigureHistogramChartStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/configureHistogramChartFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/configureHistogramChartFormModel.ts index 833aea22c32d8ba56b7ce349a96e51db43eec077..1bd993950e53fef65ee48d5f93be8639046344ae 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/configureHistogramChartFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureHistogramChartStep/configureHistogramChartFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/ConfigureLineChartStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/ConfigureLineChartStep.tsx index 3ee040fda9f4991880bcb8703506a04e3be48b25..4890cb0119b86897f6de1f581e33ced122aa1cb7 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/ConfigureLineChartStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/ConfigureLineChartStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/configureLineChartFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/configureLineChartFormModel.ts index ad2cc89cab52f2b674d3e03da624c4063cfeba0d..ad9f983b1af605254a5ea207dcf50d2f43eb127c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/configureLineChartFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureLineChartStep/configureLineChartFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/ConfigurePieChartStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/ConfigurePieChartStep.tsx index f7ac88f92467fd0d1e64716af651717e7956a5f3..a643c6d2a5836a561a05df30299ae2275e2d7c21 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/ConfigurePieChartStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/ConfigurePieChartStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/configurePieChartFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/configurePieChartFormModel.ts index 0f60a57db0b688c1673e15df363707da6e5ebd42..ad1e4576acd9f2732677ee50ae26029fbe5dba46 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/configurePieChartFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigurePieChartStep/configurePieChartFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/ConfigureScatterChartStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/ConfigureScatterChartStep.tsx index ef254b4380d0acf469992ab4bf33d8f809a2ba83..22051983b246b4bfcb039174366fdb10ef0eda2a 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/ConfigureScatterChartStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/ConfigureScatterChartStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/configureScatterChartFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/configureScatterChartFormModel.ts index 82103e3af4089440ebd26b131ca7dd8b52369f6b..37bcb11136f98bb6b87631caff26f03e55b46844 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/configureScatterChartFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/ConfigureScatterChartStep/configureScatterChartFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/CreateAnalysisSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/CreateAnalysisSidebar.tsx index 38d3c2e77effcedfeb31bdf0efd9f1bb13991249..61caaeaf20ac44affcae805bf99afcf9eea59563 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/CreateAnalysisSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/CreateAnalysisSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/SaveAnalysisStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/SaveAnalysisStep.tsx index a0326a9d671295b4adce9a4eb605dcf67da9659e..12aaa12a9109611999bcc0dae60f358156317ccb 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/SaveAnalysisStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/SaveAnalysisStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/saveAnalysisStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/saveAnalysisStepFormModel.ts index 2dd97b72fa280bd1aeafac624828e4110debdd2a..db7529d30dca5d9076825dc68570a55fca8b7365 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/saveAnalysisStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SaveAnalysisStep/saveAnalysisStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/SelectDiagramStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/SelectDiagramStep.tsx index bbfc9948b2afe0b38aaec21358cc956d1cd9c282..a21673c2c99b658dfd3785faebe0c19663eb2c85 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/SelectDiagramStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/SelectDiagramStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/selectDiagramStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/selectDiagramStepFormModel.ts index a661523f1093571a968d95e2f0fbee1baca938ec..a9a97bdd56742d8c6a313c871b5c3df78eb794c7 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/selectDiagramStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/SelectDiagramStep/selectDiagramStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/createAnalysisFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/createAnalysisFormModel.ts index 79683350d224b871b35a566b1d80ada26a4f255a..a8f2aa5926c9f444f578450b08d74441dfbe8afb 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/createAnalysisFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/createAnalysisFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/mapAttribute.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/mapAttribute.ts index c0a4cdede514e9b19d3298046f341085ee84a0d1..f2d016c1d805b60ab12878acf92f5d7294894b21 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/mapAttribute.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateAnalysisSidebar/mapAttribute.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/CreateDiagramSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/CreateDiagramSidebar.tsx index 8ae0a8068c1f1ed95fb0632a8e06d80b36519eae..1bfd5c3e6b16a00bcf9a40abb4444349e29bb550 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/CreateDiagramSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/CreateDiagramSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/SaveDiagramStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/SaveDiagramStep.tsx index 82b8dd2690afe1644ec9eea650c973a967ef0c2e..40a3ea03d0d6d5b16b942df737d6623f8e1b5144 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/SaveDiagramStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/SaveDiagramStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/saveDiagramStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/saveDiagramStepFormModel.ts index c85190108647f4cfbbbdb70963429790db5c90a6..88fd6c7e7633c08dadb5bf4407c8e4874aec24e1 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/saveDiagramStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SaveDiagramStep/saveDiagramStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/SetFiltersStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/SetFiltersStep.tsx index 1e81201965ef123b4c2789013b6a5d01246a0557..a94fdeca67f7242a49a6bb7cc5f7842e6bbcd5cf 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/SetFiltersStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/SetFiltersStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/setFiltersStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/setFiltersStepFormModel.ts index 216d84ff990b25522f505f0e773f4c8009289938..2bec722df758bcff76c1c518f871b1e1fbe9e04f 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/setFiltersStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/SetFiltersStep/setFiltersStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/createDiagramFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/createDiagramFormModel.ts index e536dbc0343406adbba6a98950c6f34dacca1f74..e8bd593485b2d2d063330fe70495ca5f8323602c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/createDiagramFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/CreateDiagramSidebar/createDiagramFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/DetailsInformationCard.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/DetailsInformationCard.tsx index 0d3d2f2abc8d3e27cebea258d740173862521b1c..e87923d62539be93c5209c19886555c5d117acb8 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/DetailsInformationCard.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/DetailsInformationCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetails.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetails.tsx index 0a1ca409ef37a69ceec3df09b1978ede3e66ff3d..2d54c7650bf5e997cdb48124389e09a15c1516fd 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetails.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsLayout.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsLayout.tsx index 278de785cd3530a9444cabc922d0fcd7e17a56da..dc300ead4060566055212cfff02bc67654d61f66 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsLayout.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsTabHeader.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsTabHeader.tsx index 9bd414d08a85a21186cd903936f9744e998b72f9..1f40ba22e60cc19b0613df0d9b50f847f30343bf 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsTabHeader.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationDetailsTabHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationNameChangeModal.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationNameChangeModal.tsx index 358eb6fb918550177580bce045af99c9ee407188..1955e6009d13f278e7c009aeb9913c1f0df26403 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationNameChangeModal.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/EvaluationNameChangeModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/InformationCards.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/InformationCards.tsx index f63b3c52da35e8098ca324f8655c486e4c83e518..dd6a84e73f34ac46b3b2754b2e86a301afa9a8dd 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/InformationCards.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/InformationCards.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/UpdateAnalysisSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/UpdateAnalysisSidebar.tsx index 52aee5f3dc6ac4e4cd847bf4a713f37dbae6b8bc..6378222738b605a57ebedad7d1c43f66697bfae8 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/UpdateAnalysisSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/UpdateAnalysisSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/updateAnalysisFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/updateAnalysisFormModel.ts index e375a4c9ff8d722d4dfbfa7a5bb106f530fcaff5..e046c4049f35a824a170f6fdc92a6c1d9e736618 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/updateAnalysisFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateAnalysisSidebar/updateAnalysisFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/UpdateDiagramSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/UpdateDiagramSidebar.tsx index 3dc48db6e2cd6cd0b17c70a123b9aa884a8a6c09..37fa0a692fb9a54f0bed61dddcb9d8f0e1433ca1 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/UpdateDiagramSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/UpdateDiagramSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/updateDiagramFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/updateDiagramFormModel.ts index 62a49f627b58a262bd55256c3457121cae2f6f6a..68d55c5186a77ecb7985898d2b62cf9b488b07f1 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/updateDiagramFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateDiagramSidebar/updateDiagramFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisSidebar.tsx index 053bc053d029449af28ea335420772db92db8c28..40cca7742176fa4fa1f3e7a6cd582d1c0f1790bd 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,7 +9,7 @@ import { useUpdateDataBasis } from "@/lib/businessModules/statistics/api/mutatio import { validateUpdateEvaluationDataBasisStep } from "@/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/validateUpdateEvaluationDataBasisStep"; import { routes } from "@/lib/businessModules/statistics/shared/routes"; import { SidebarStepper } from "@/lib/shared/components/SidebarStepper/SidebarStepper"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { SidebarWithFormRefProps, UseSidebarWithFormRefResult, diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisStep.tsx index 18155a92267fc105f7062f7815c17d013f172a77..a27acc1fa0914e9536882ea486b963bd24150abd 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/UpdateEvaluationDataBasisStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/updateEvaluationDataBasisFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/updateEvaluationDataBasisFormModel.ts index 0430685f37417ce5d25cc69228792211a027c172..f5c37af740d13dcf9edb05811e39abc2947d0267 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/updateEvaluationDataBasisFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/updateEvaluationDataBasisFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/validateUpdateEvaluationDataBasisStep.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/validateUpdateEvaluationDataBasisStep.ts index 772c0c8bc2d529a43765397c5daac0816285d31c..9dabf341243c8d5d10f171fa96bdd352ca2fa217 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/validateUpdateEvaluationDataBasisStep.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/UpdateEvaluationDataBasisSidebar/validateUpdateEvaluationDataBasisStep.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/dataQuality/EvaluationDataQuality.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/dataQuality/EvaluationDataQuality.tsx index b7e7a44719d993ae581f270e0790469e26388469..dd20f4e8f0952c976f288989750d40acaea11f8d 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/dataQuality/EvaluationDataQuality.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/dataQuality/EvaluationDataQuality.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/filter/enumFilterMappings.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/filter/enumFilterMappings.ts index ce7db4b596d0ba07d67007234df588272c82e1ef..ea60f03aac04c104fd4e5209ea069e0dcf1a1ef8 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/filter/enumFilterMappings.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/filter/enumFilterMappings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/AddReportSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/AddReportSidebar.tsx index 87e876b45af422fa8e53312019e2b68567ee70d5..9c5ca72083fbc9cf0b2a0e24af34fa7731de9d20 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/AddReportSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/AddReportSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/SaveReportStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/SaveReportStep.tsx index 90fdc5d701b48edec3168c3b6c4f0287a5075dc1..f59174a880a1902fea3c55594d0cfcddb9acc484 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/SaveReportStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/SaveReportStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/addReportFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/addReportFormModel.ts index 8d829c3b85b84074f4b6af886e3f6b124e3c8982..c59e205f1b5cd99281ad1545a551bd6ade20a38c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/addReportFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AddReportSidebar/addReportFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportSidebar.tsx index aaec150d9c98a123562e463e2b979b6d611292b1..7978c49853f84d037123ad585d46d32f00cc3a01 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportStep.tsx index 482108a9bd79d086a0c9870965760ffdd82fe868..45480174824a87affa62fd55ac4018e2c89577c7 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/AutomateReportStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/automateReportFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/automateReportFormModel.ts index c56e87fab297c78aa52a60e6c727410440504d8c..37f58f8c86986807fa08d2c9e809bafb7dde61a8 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/automateReportFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/AutomateReportSidebar/automateReportFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/EvaluationReports.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/EvaluationReports.tsx index f4dbf11c3a60cb350be34cfb357ce485e37a8709..ef4d2c961d61ab68df3ab38aeb4b43b9ab51e807 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/EvaluationReports.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/EvaluationReports.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -51,10 +51,10 @@ import { routes } from "@/lib/businessModules/statistics/shared/routes"; import { NoSearchResults } from "@/lib/shared/components/NoSearchResult"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; import { RefreshButton } from "@/lib/shared/components/buttons/RefreshButton"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useCopy } from "@/lib/shared/hooks/useCopy"; import { useAutomateReportSidebar } from "./AutomateReportSidebar/AutomateReportSidebar"; diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportAutomationTile.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportAutomationTile.tsx index a0cedb3dabfb6fb84f76fe776974df29bf6b9c56..305bef91aa00e54068659243b5198b5382f05f44 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportAutomationTile.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportAutomationTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportSeriesStateChip.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportSeriesStateChip.tsx index 90d003264b006ad60890fed4b01c296eed6a52c4..ddb6aaf09db767078a55646d0762431fc6a4e005 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportSeriesStateChip.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportSeriesStateChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportStateChip.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportStateChip.tsx index 23178e49fc5f1547aa52c2e894844d5ec8a9a275..53b8a9e929959c148f9aa6c7d9112c89eaf2f1bc 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportStateChip.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/ReportStateChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportSidebar.tsx index 7c3bc79021afd9692a2a4ad09ce55ee0554f852c..77c7d7a155f9c8ad3df502017270aedfff89a371 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportStep.tsx index e9885f934e162669786953e3de9fbcd90916244d..0178c3ec252f01e6942801fc74a13e5ad7646319 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/updateReportFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/updateReportFormModel.ts index a777dc3d06e756feb9b0782a9a31a2df71eafe06..bfae6f5bbfdc6d9ddf77bc6b9fb900ae01ea6d8a 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/updateReportFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/updateReportFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/EvaluationDetailsTable.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/EvaluationDetailsTable.tsx index 3ae4722b757a7ea6ee2f805a50467e9e2b7ead8c..d3c529681ab999db9b16ef6dc73463b62fd33755 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/EvaluationDetailsTable.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/EvaluationDetailsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/columns.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/columns.tsx index 17baf12ea640fc05a79ca3e570704e4818dcdc9b..69be0dae7ca47b5bf48a5ce909e2f88fe0dd799d 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/columns.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/mapRawValueToTableCell.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/mapRawValueToTableCell.ts index dc0bd7c324f30616c8e82a234505d09ebda06062..51bd3e9251575680aa232a478e0270f6063a34b9 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/mapRawValueToTableCell.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/details/table/mapRawValueToTableCell.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/filterDefinitions.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/filterDefinitions.ts new file mode 100644 index 0000000000000000000000000000000000000000..df8dd47684a67228150a75a54ee58006f59ebc32 --- /dev/null +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/filterDefinitions.ts @@ -0,0 +1,88 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiAvailableDataSource, + ApiEvaluationState, +} from "@eshg/employee-portal-api/statistics"; +import { isPlainObject } from "remeda"; + +import { + DataSourceSensitivity, + translateDataSourceSensitivity, +} from "@/lib/businessModules/statistics/api/models/dataSourceSensitivity"; +import { FilterDefinition } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; + +export enum EvaluationTableFilterKey { + DataSource = "dataSource", + DateRangeStart = "dateRangeStart", + DateRangeEnd = "dateRangeEnd", + Status = "status", + Sensitivity = "sensitivity", +} + +export function createFilterDefinitions( + dataSources: ApiAvailableDataSource[], +): FilterDefinition[] { + return [ + { + type: "Enum", + key: EvaluationTableFilterKey.DataSource, + name: "Datenquelle", + options: dataSources.map((it) => ({ + label: it.name, + value: it.id, + })), + } satisfies FilterDefinition, + { + type: "DateSpan", + key: EvaluationTableFilterKey.DateRangeStart, + name: "Zeitraum Start", + inAccordion: true, + doNotRequireStartAndEnd: true, + } satisfies FilterDefinition, + { + type: "DateSpan", + key: EvaluationTableFilterKey.DateRangeEnd, + name: "Zeitraum Ende", + doNotRequireStartAndEnd: true, + } satisfies FilterDefinition, + { + type: "Enum", + key: EvaluationTableFilterKey.Status, + name: "Status", + options: [ + { label: "Erstellt", value: ApiEvaluationState.Completed }, + { label: "Wird erstellt", value: ApiEvaluationState.Creating }, + { label: "Fehler", value: ApiEvaluationState.Failed }, + ], + } satisfies FilterDefinition, + { + type: "Enum", + key: EvaluationTableFilterKey.Sensitivity, + name: "Sensibilität", + options: [ + { + label: translateDataSourceSensitivity( + DataSourceSensitivity.Sensitive, + ), + value: DataSourceSensitivity.Sensitive, + }, + { + label: translateDataSourceSensitivity( + DataSourceSensitivity.InternalUsage, + ), + value: DataSourceSensitivity.InternalUsage, + }, + { + label: translateDataSourceSensitivity( + DataSourceSensitivity.Anonymous, + ), + value: DataSourceSensitivity.Anonymous, + }, + ], + } satisfies FilterDefinition, + ].filter(isPlainObject); +} diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/getAttributeLabel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/getAttributeLabel.ts index c773df405c7f5c01e430de9885fa36fecaf398f6..eb6bf11c3d1745cba9f6ed8fd81a5d3af9314f69 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/getAttributeLabel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/getAttributeLabel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationFromTemplateSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationFromTemplateSidebar.tsx index 062d215950826f316b0080195e439cf2b0f44269..1b59c510cdfb249fab5c40df1874713f95ed73ee 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationFromTemplateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationFromTemplateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/CreateEvaluationStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/CreateEvaluationStep.tsx index cfa9eb440ec7830b8207299744196d6127a959ba..80fd2916cdfdc290441d69b4b76d443646b8e192 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/CreateEvaluationStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/CreateEvaluationStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/createEvaluationStepFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/createEvaluationStepFormModel.ts index d5367dc404a2bf55bd3077bb1987f2c37fc733a1..6b90dcf36fe933a89ec493732a24f6b6a56708f8 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/createEvaluationStepFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/createEvaluationStepFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/validateCreateEvaluationStep.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/validateCreateEvaluationStep.ts index cfcc436142192109288471379cab13660e2909a7..839ab208e5c4593e505ced3d6de8bdbc9947f5f8 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/validateCreateEvaluationStep.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationStep/validateCreateEvaluationStep.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/createEvaluationFromTemplateFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/createEvaluationFromTemplateFormModel.ts index 53da03e008b36e3e0c3f7b15547444c8e2fac2c5..2e38b0b0b450716d11ccdcaea90436f36118e0cd 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/createEvaluationFromTemplateFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/createEvaluationFromTemplateFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplateDetailsSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplateDetailsSidebar.tsx index d9c3f3fed6521d9ace546d463e78715caba02fc9..2370ea381304f959de7e82af21f5fd9dc6236060 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplateDetailsSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplateDetailsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplatesOverview.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplatesOverview.tsx index 9f167dc84ba34ca0192f3d19e7f3d86000740d33..76f4f5b74cc0f5fbff557b26b452cc749070f695 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplatesOverview.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplatesOverview.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,22 +10,30 @@ import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { Add, CloudUpload, Delete, Edit } from "@mui/icons-material"; import { Box } from "@mui/joy"; import { createColumnHelper } from "@tanstack/react-table"; +import { startTransition, useState } from "react"; import { isPlainObject } from "remeda"; import { translateDataSourceSensitivity } from "@/lib/businessModules/statistics/api/models/dataSourceSensitivity"; import { EvaluationTemplateWithUserInfo } from "@/lib/businessModules/statistics/api/models/evaluationTemplatesOverview"; import { useDeleteEvaluationTemplate } from "@/lib/businessModules/statistics/api/mutations/useDeleteEvaluationTemplate"; +import { useGetAvailableDataSources } from "@/lib/businessModules/statistics/api/queries/useGetAvailableDataSources"; import { useGetEvaluationTemplatesOverview } from "@/lib/businessModules/statistics/api/queries/useGetEvaluationTemplatesOverview"; import { useUpdateEvaluationTemplateSidebar } from "@/lib/businessModules/statistics/components/evaluations/EvaluationTemplateSidebar/UpdateEvaluationTemplateSidebar"; import { useCreateEvaluationFromTemplateSidebar } from "@/lib/businessModules/statistics/components/evaluations/templates/CreateEvaluationFromTemplateSidebar/CreateEvaluationFromTemplateSidebar"; import { useEvaluationTemplateDetailsSidebar } from "@/lib/businessModules/statistics/components/evaluations/templates/EvaluationTemplateDetailsSidebar"; +import { createFilterDefinitions } from "@/lib/businessModules/statistics/components/evaluations/templates/filterDefinitions"; import { useStatisticsRoleChecks } from "@/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks"; import { NoSearchResults } from "@/lib/shared/components/NoSearchResult"; import { ActionsItem, ActionsMenu, } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; +import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; +import { FilterSettings } from "@/lib/shared/components/filterSettings/FilterSettings"; +import { FilterSettingsSheet } from "@/lib/shared/components/filterSettings/FilterSettingsSheet"; +import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; +import { useFilterSettings } from "@/lib/shared/components/filterSettings/useFilterSettings"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; @@ -34,6 +42,7 @@ import { UserLink } from "@/lib/shared/components/users/UserLink"; import { usePagination } from "@/lib/shared/hooks/table/usePagination"; import { useTableSorting } from "@/lib/shared/hooks/table/useTableSorting"; import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useUploadTemplateSidebar } from "./UploadTemplateSidebar/UploadTemplateSidebar"; @@ -49,12 +58,28 @@ export function EvaluationTemplatesOverview() { }, }); - const evaluationTemplatesOverview = useGetEvaluationTemplatesOverview({ - page, - pageSize, - sortDirection, - sortKey, + const [filterValues, setFilterValues] = useState<FilterValue[]>([]); + const evaluationTemplatesOverview = useGetEvaluationTemplatesOverview( + { + page, + pageSize, + sortDirection, + sortKey, + }, + filterValues, + ); + const dataSources = useGetAvailableDataSources(); + const filterSettings = useFilterSettings({ + definitions: createFilterDefinitions(dataSources), + onValuesSubmit: (filterValues) => { + startTransition(() => { + setFilterValues(filterValues); + resetPageNumber(); + }); + }, + showSearch: false, }); + const writePermission = useHasUserRoleCheck( ApiUserRole.StatisticsStatisticsWrite, ); @@ -116,7 +141,22 @@ export function EvaluationTemplatesOverview() { } return ( - <TablePage data-testid="evaluation-templates-overview-table" fullHeight> + <TablePage + data-testid="evaluation-templates-overview-table" + fullHeight + controls={ + <ButtonBar + left={<FilterButton {...filterSettings.filterButtonProps} />} + /> + } + filterSettings={ + filterSettings.filterSettingsVisible && ( + <FilterSettingsSheet {...filterSettings.filterSettingsSheetProps}> + <FilterSettings {...filterSettings.filterSettingsProps} /> + </FilterSettingsSheet> + ) + } + > <TableSheet footer={ <Pagination diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplateDetailsSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplateDetailsSidebar.tsx index 4a51a2e75d3e72cb39c841663dd21b876c3a1f1b..03b119d225aa9e8f92f80cc54800239473e6890d 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplateDetailsSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplateDetailsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -55,7 +55,9 @@ function RepositoryEvaluationTemplateDetailsSidebar({ message="Eine Kopie der geteilten Auswertungsvorlage wird in die internen Vorlagen übernommen und bereitgestellt." /> <Divider /> - <Typography level="h3">{evaluationTemplateDetails.name}</Typography> + <Typography level="h3" component="h2"> + {evaluationTemplateDetails.name} + </Typography> {isDefined(evaluationTemplateDetails.description) && ( <Typography level="body-md"> {evaluationTemplateDetails.description} diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplatesOverview.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplatesOverview.tsx index 3f11ec7178162bfada94de975059692fbe586d52..16080dab895e31017a84b24d2cef3918e4f9d36b 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplatesOverview.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/RepositoryEvaluationTemplatesOverview.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -18,10 +18,10 @@ import { ActionsItem, ActionsMenu, } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useRepositoryEvaluationTemplateDetailsSidebar } from "./RepositoryEvaluationTemplateDetailsSidebar"; diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateSidebar.tsx index 3c6d47e9ec83a91f269fe6b8d46a811e9bc14879..051d350591d14f6fd45b88bfe90f56ced7a3ee3a 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateStep.tsx index 880771bd6b89b73b2637d2b24df1a4e99279f7a7..2e64db7de48d214a2aaa7361e7fe26043d9b243c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/UploadTemplateStep.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/uploadTemplateFormModel.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/uploadTemplateFormModel.ts index fecda1b125c4f0170d9c9d1f2540a3cd9c379073..f21b3a5c97f8f52173ff3d9cad9be4e989b40798 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/uploadTemplateFormModel.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/UploadTemplateSidebar/uploadTemplateFormModel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/filterDefinitions.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/filterDefinitions.ts new file mode 100644 index 0000000000000000000000000000000000000000..a2b71eabaf79c1d5d631e9eb9fd7643b0939bf69 --- /dev/null +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/templates/filterDefinitions.ts @@ -0,0 +1,33 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ApiAvailableDataSource } from "@eshg/employee-portal-api/statistics"; + +import { FilterDefinition } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; + +export enum EvaluationTemplatesFilterKey { + DataSource = "dataSource", + CreatedAt = "createdAt", +} + +export function createFilterDefinitions(dataSources: ApiAvailableDataSource[]) { + return [ + { + type: "Enum", + key: EvaluationTemplatesFilterKey.DataSource, + name: "Datenquelle", + options: dataSources.map((it) => ({ + label: it.name, + value: it.id, + })), + }, + { + type: "DateSpan", + key: EvaluationTemplatesFilterKey.CreatedAt, + name: "Erstellt am", + doNotRequireStartAndEnd: true, + }, + ] satisfies FilterDefinition[]; +} diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/timeRangeHelper.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/timeRangeHelper.ts index d7adbcbf7f44b89492685b1a0523b015453ae1b3..6d37a99c62b294e6a27832d751f82d1073a269ba 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/timeRangeHelper.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/timeRangeHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/useDeleteEvaluationWithConfirmation.tsx b/employee-portal/src/lib/businessModules/statistics/components/evaluations/useDeleteEvaluationWithConfirmation.tsx index ee04372a05cb0520e16125708bb7a28f92e39748..3e28b93d5ae847dad31c6d010705bf4cd943843c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/useDeleteEvaluationWithConfirmation.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/useDeleteEvaluationWithConfirmation.tsx @@ -1,12 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { Alert } from "@eshg/lib-portal/components/Alert"; import { useDeleteEvaluation } from "@/lib/businessModules/statistics/api/mutations/useDeleteEvaluation"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function useDeleteEvaluationWithConfirmation(onConfirm?: () => void) { const deleteEvaluation = useDeleteEvaluation(); diff --git a/employee-portal/src/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks.ts b/employee-portal/src/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks.ts index 05b19ea3e4d25e0bdae83ffd24e1eb4d2d105fda..ab12cb2b2d932d431b2391da168e4e43c0af0508 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesOverview.tsx b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesOverview.tsx index c8b32cc9c14170bba1ab61818995afc1ff7221a9..c932932cce93c50980470455d694f6df0961bba4 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesOverview.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesOverview.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesTable.tsx b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesTable.tsx index dc82bc809dde746a791e30913e73122e9cd94184..ac6a099523f0c0e18041bf09e468a821dac53408 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesTable.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/GeoShapesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,13 +17,13 @@ import { useDeleteGeoShape } from "@/lib/businessModules/statistics/api/mutation import { useGetGeoShapes } from "@/lib/businessModules/statistics/api/queries/useGetGeoShapes"; import { NoSearchResults } from "@/lib/shared/components/NoSearchResult"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; import { usePagination } from "@/lib/shared/hooks/table/usePagination"; import { useTableSorting } from "@/lib/shared/hooks/table/useTableSorting"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { geoShapeTableColumns } from "./columns"; diff --git a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeSidebar.tsx b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeSidebar.tsx index ca588b42b6eda8a4968d7f422cab49e58241779c..2bab5ae57a68112b7dbff7804807e1cc5284e661 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeSidebar.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeStep.tsx b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeStep.tsx index 09f0e2bb6dae5a21bb306a0d1dacfbab84bec47b..40fcc93fbf3874c0b6b566722b99c528278deb6c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeStep.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/ImportGeoShapeSidebar/ImportGeoShapeStep.tsx @@ -1,13 +1,13 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { Stack } from "@mui/joy"; import { DeletableFileField } from "@/lib/shared/components/formFields/file/DeletableFileField"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; export function ImportGeoShapeStep() { return ( diff --git a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/columns.tsx b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/columns.tsx index 8ce92203d4265e6fdf4f08764603a72bc068085e..f393720497606712d5e8ab597dc30fa9f5a98947 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/geoshapes/columns.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/geoshapes/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetails.tsx b/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetails.tsx index 1d601a5d55f4a1215c1de313c855dc66ac094e3a..8d4ebbfbc72daf5b9626cbd8910f3d083844ec01 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetails.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetailsTile.tsx b/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetailsTile.tsx index 0f5a185c2c67fdbdb6ef541a449406a1d79e74c3..2f537bb7bf37ea580ff0a3f7692d612ddbf25d8d 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetailsTile.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/reports/ReportDetailsTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,10 +8,8 @@ import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { Divider, Sheet, Stack, Typography } from "@mui/joy"; import { isNonNullish } from "remeda"; -import { - headerHeightDesktop, - simpleToolbarHeight, -} from "@/lib/baseModule/components/layout/sizes"; +import { simpleToolbarHeight } from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; import { useExportReportData } from "@/lib/businessModules/statistics/api/downloads/useExportReportData"; import { ReportDataType } from "@/lib/businessModules/statistics/api/models/evaluationReports"; import { useUpdateReportSidebar } from "@/lib/businessModules/statistics/components/evaluations/details/reports/UpdateReportSidebar/UpdateReportSidebar"; @@ -57,6 +55,7 @@ export function ReportDetailsTile(props: ReportDetailsTileProps) { const { download: exportData, downloadContainerRef } = useExportReportData(); const dataExportGuard = useDataExportGuard(false); + const { headerHeightDesktop } = useHeaderHeights(); function openUpdateReportSidebar() { updateReportSidebar.open({ diff --git a/employee-portal/src/lib/businessModules/statistics/components/reports/ReportsOverview.tsx b/employee-portal/src/lib/businessModules/statistics/components/reports/ReportsOverview.tsx index c3c094052e22953eef9165b6f3abf10ee6094468..31cc0ec643eae489e66ea0758f155a9a9e926667 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/reports/ReportsOverview.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/reports/ReportsOverview.tsx @@ -1,21 +1,20 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ "use client"; -import { ApiReportType } from "@eshg/employee-portal-api/statistics"; import { HiddenContainer } from "@eshg/lib-portal/components/HiddenContainer"; import { Box } from "@mui/joy"; import { startTransition, useState } from "react"; import { useExportReportData } from "@/lib/businessModules/statistics/api/downloads/useExportReportData"; -import { translateReportType } from "@/lib/businessModules/statistics/api/mapper/translateReportType"; import { ReportDataType } from "@/lib/businessModules/statistics/api/models/evaluationReports"; import { ReportOverviewTableRow } from "@/lib/businessModules/statistics/api/models/reportsOverviewTypes"; import { useGetReportsOverview } from "@/lib/businessModules/statistics/api/queries/useGetReportsOverview"; import { useStatisticsRoleChecks } from "@/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks"; +import { createFilterDefinitions } from "@/lib/businessModules/statistics/components/reports/filterDefinitions"; import { useDeleteWithConfirmation } from "@/lib/businessModules/statistics/components/reports/useDeleteWithConfirmation"; import { useDataExportGuard } from "@/lib/businessModules/statistics/components/shared/hooks/useDataExportGuard"; import { routes } from "@/lib/businessModules/statistics/shared/routes"; @@ -24,7 +23,6 @@ import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; import { FilterSettings } from "@/lib/shared/components/filterSettings/FilterSettings"; import { FilterSettingsSheet } from "@/lib/shared/components/filterSettings/FilterSettingsSheet"; -import { FilterDefinition } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; import { useFilterSettings } from "@/lib/shared/components/filterSettings/useFilterSettings"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; @@ -36,36 +34,6 @@ import { useCopy } from "@/lib/shared/hooks/useCopy"; import { getReportsOverviewColumns } from "./columns"; -function mapFilterValuesToReportsFilter(filterValues: FilterValue[]): string[] { - return filterValues.map((filterValue) => { - switch (filterValue.type) { - case "EnumSingle": - return filterValue.selectedValue; - default: - throw new Error(`FilterValue of type ${filterValue.type} not expected`); - } - }); -} - -const filterDefinitions: FilterDefinition[] = [ - { - type: "EnumSingle", - key: "report-type", - name: "Report-Typ", - options: [ - { - label: translateReportType[ReportDataType.Series], - value: ApiReportType.Auto, - }, - { - label: translateReportType[ReportDataType.Single], - value: ApiReportType.Manual, - }, - ], - placeholder: "Bitte auswählen", - }, -]; - export function ReportsOverview() { const copy = useCopy(); @@ -78,29 +46,24 @@ export function ReportsOverview() { const { resetPageNumber, page, pageSize, getPaginationProps } = usePagination(); - const [reportType, setReportTypeFilter] = useState<ApiReportType>(); + const [filterValues, setFilterValues] = useState<FilterValue[]>([]); - const reportsOverview = useGetReportsOverview({ - page, - pageSize, - filterOptions: { - reportType, + const { dataSources, reportsOverview } = useGetReportsOverview( + { + page, + pageSize, + sortDirection: undefined, + sortKey: undefined, }, - }); - - function onFilterSubmit(reportType: ApiReportType) { - startTransition(() => { - setReportTypeFilter(reportType); - resetPageNumber(); - }); - } - + filterValues, + ); const filterSettings = useFilterSettings({ - definitions: filterDefinitions, + definitions: createFilterDefinitions(dataSources), onValuesSubmit: (filterValues) => { - onFilterSubmit( - mapFilterValuesToReportsFilter(filterValues)[0] as ApiReportType, - ); + startTransition(() => { + setFilterValues(filterValues); + resetPageNumber(); + }); }, showSearch: false, }); diff --git a/employee-portal/src/lib/businessModules/statistics/components/reports/columns.tsx b/employee-portal/src/lib/businessModules/statistics/components/reports/columns.tsx index 1d1edf06f12080384ceedd58888340d64ab13c6d..1f3cb2c2e42f09d137e32f88212c4430afdebd1c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/reports/columns.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/reports/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/reports/filterDefinitions.ts b/employee-portal/src/lib/businessModules/statistics/components/reports/filterDefinitions.ts new file mode 100644 index 0000000000000000000000000000000000000000..04808d4a05f74cfbc0a291677e08824d4c1be446 --- /dev/null +++ b/employee-portal/src/lib/businessModules/statistics/components/reports/filterDefinitions.ts @@ -0,0 +1,85 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { + ApiAvailableDataSource, + ApiReportType, +} from "@eshg/employee-portal-api/statistics"; + +import { translateReportType } from "@/lib/businessModules/statistics/api/mapper/translateReportType"; +import { + DataSourceSensitivity, + translateDataSourceSensitivity, +} from "@/lib/businessModules/statistics/api/models/dataSourceSensitivity"; +import { ReportDataType } from "@/lib/businessModules/statistics/api/models/evaluationReports"; +import { FilterDefinition } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; + +export enum ReportOverviewFilterKey { + DataSource = "dataSource", + DateRangeStart = "dateRangeStart", + DateRangeEnd = "dateRangeEnd", + ReportType = "reportType", + Sensitivity = "sensitivity", +} + +export function createFilterDefinitions(dataSources: ApiAvailableDataSource[]) { + return [ + { + type: "Enum", + key: ReportOverviewFilterKey.DataSource, + name: "Datenquelle", + options: dataSources.map((it) => ({ + label: it.name, + value: it.id, + })), + }, + { + type: "DateSpan", + key: ReportOverviewFilterKey.DateRangeStart, + name: "Zeitraum Start", + doNotRequireStartAndEnd: true, + }, + { + type: "DateSpan", + key: ReportOverviewFilterKey.DateRangeEnd, + name: "Zeitraum Ende", + doNotRequireStartAndEnd: true, + }, + { + type: "Enum", + key: ReportOverviewFilterKey.ReportType, + name: "Report-Typ", + options: [ + { + label: translateReportType[ReportDataType.Series], + value: ApiReportType.Auto, + }, + { + label: translateReportType[ReportDataType.Single], + value: ApiReportType.Manual, + }, + ], + }, + { + type: "Enum", + key: ReportOverviewFilterKey.Sensitivity, + name: "Sensibilität", + options: [ + { + label: translateDataSourceSensitivity( + DataSourceSensitivity.InternalUsage, + ), + value: DataSourceSensitivity.InternalUsage, + }, + { + label: translateDataSourceSensitivity( + DataSourceSensitivity.Anonymous, + ), + value: DataSourceSensitivity.Anonymous, + }, + ], + }, + ] satisfies FilterDefinition[]; +} diff --git a/employee-portal/src/lib/businessModules/statistics/components/reports/getReportActionItems.tsx b/employee-portal/src/lib/businessModules/statistics/components/reports/getReportActionItems.tsx index fc6de0131e7a76decd8e4da8b3412e4379a599d9..d09ec8b9c5f0ecf937bea9fc0c9a31df4d28a4ed 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/reports/getReportActionItems.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/reports/getReportActionItems.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/reports/useDeleteWithConfirmation.tsx b/employee-portal/src/lib/businessModules/statistics/components/reports/useDeleteWithConfirmation.tsx index 41cb2bbd4e0f7add9913c93fa49d62c5a35fc4c9..96d22daa01f580dab083b67095fc2c2074c63d6c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/reports/useDeleteWithConfirmation.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/reports/useDeleteWithConfirmation.tsx @@ -1,18 +1,16 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { ConfirmationDialogOptions } from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; import { List, ListItem } from "@mui/joy"; import { useRouter } from "next/navigation"; import { isDefined } from "remeda"; import { useDeleteReport } from "@/lib/businessModules/statistics/api/mutations/useDeleteReport"; import { useDeleteReportSeries } from "@/lib/businessModules/statistics/api/mutations/useDeleteReportSeries"; -import { - ConfirmationDialogOptions, - useConfirmationDialog, -} from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function useDeleteWithConfirmation({ redirectRoute, diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AccordionSheet.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AccordionSheet.tsx index 6cf9e31bfe37577ab8d1677bd6f7c864da49d188..8f1a598db92400475f93ef842f8239c69d6e48aa 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AccordionSheet.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AccordionSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordion.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordion.tsx index 992734c26ea37818c5057bd4f9086b6ddcd2c5f8..895a113687d3593570cdb5e249ac29ec049c8cfb 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordion.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordion.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,7 +14,7 @@ import { useUpdateAnalysisSidebar } from "@/lib/businessModules/statistics/compo import { useStatisticsRoleChecks } from "@/lib/businessModules/statistics/components/evaluations/useStatisticsRoleChecks"; import { NoSearchResults } from "@/lib/shared/components/NoSearchResult"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { AccordionSheet } from "./AccordionSheet"; import { AnalysisAccordionDetails } from "./AnalysisAccordionDetails"; diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionDetails.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionDetails.tsx index 1e199930ab2a7c446511e239d3c0134adfd952e4..96ea6a730d1c0882003c1e053529cb79f8187e47 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionDetails.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionSummary.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionSummary.tsx index 53ad893a5ea4403a1785390c669ee055094f6a84..d866e759118757921454406a89ed7720a72cf5cb 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionSummary.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisAccordionSummary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisChartDiagram.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisChartDiagram.tsx index 6ba5c7ee474409e1e461079fbde6c3a094ff87ac..d6e67a795025ae96da2200b2d8f09a92af9378dd 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisChartDiagram.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisChartDiagram.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -40,7 +40,7 @@ import { ScatterChart } from "@/lib/businessModules/statistics/components/shared import { ImageType } from "@/lib/businessModules/statistics/components/shared/charts/types"; import { useDataExportGuard } from "@/lib/businessModules/statistics/components/shared/hooks/useDataExportGuard"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function AnalysisChartDiagram(props: { configuration: AnalysisDiagramConfiguration; diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisDiagramBox.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisDiagramBox.tsx index 04c0ab3a9f9dc0e5252822fb90d950f72a8fd759..6d4355a7c15206ed7debafc966ef9ea586fb7edb 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisDiagramBox.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisDiagramBox.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisSortOrderSelect.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisSortOrderSelect.tsx index c11050e4c7c066f1d1838eda8ffeba250ae7462d..8912f563c6349e283b6c1e34b734d66cdc0bf22f 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisSortOrderSelect.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/AnalysisSortOrderSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/ToggleExpandedButton.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/ToggleExpandedButton.tsx index 59ede1a8461ae98605176f5f3e30999a8c2806be..38262ed651d4ea5deaabfa1d6a8877c23cf3ad27 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/ToggleExpandedButton.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/AnalysisAccordion/ToggleExpandedButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/CollapsableList.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/CollapsableList.tsx index b7576dafaea22a56d2ec4ed996445dada8c165aa..22dec04093ce7bc41fc54cac82c8feb7b80d5f42 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/CollapsableList.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/CollapsableList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/BarChart.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/BarChart.tsx index 19b4af09b3357c34dc5bde89edb2e802f4c82415..bc0dacf562a8eefbf77b4334d181792076278d7e 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/BarChart.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/BarChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ChoroplethMap.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ChoroplethMap.tsx index af0861b884a46adeecddfea86b09d6e53e4bd516..a12eea003a14f5170ac68fd8d3acb53449065e92 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ChoroplethMap.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ChoroplethMap.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/EChart.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/EChart.tsx index 7c8aadb11696732b048509e3f68985eda7f7b3e6..9ef0c9d72842bd6d7266401d1d46d7a750c48986 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/EChart.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/EChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/Histogram.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/Histogram.tsx index fae420c26ec5d79f63ea2b7ce90be42581e876c1..5ab320b632775b0f42517acf97791f19c338821b 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/Histogram.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/Histogram.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/LineChart.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/LineChart.tsx index 752c17ee69ab8b76cfb3dd891bff1fbf28178ff0..15571e0f209201f2c33b3527576e84109c95e2fe 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/LineChart.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/LineChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/PieChart.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/PieChart.tsx index 027e54d8d9f54abf6ef14613409dd4a489c30d15..8ad62317f8edaeb4f7a2bd6d4caf29490f648b59 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/PieChart.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/PieChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ScatterChart.tsx b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ScatterChart.tsx index c01f9ebddc27ddfe92bb0ca7a2e9786af0a93581..566f208ffa4071caf1f260d7d457ab20e09e8766 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ScatterChart.tsx +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/ScatterChart.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/chartHelper.ts b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/chartHelper.ts index c4b37013a67497aa5938e8fbfde97133ccd397f1..77960579603403c78ae9141bffdbfd4bd1255e0a 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/chartHelper.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/chartHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/dataHelper.ts b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/dataHelper.ts index 804b4c503b8fa7bc97c9ee6a44b15c254db591ff..068927763b1ce0f93a35c564f2788aee136e1622 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/dataHelper.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/dataHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/echarts.d.ts b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/echarts.d.ts index ea541e0ccefa80d895c87de81fb8b7f23918cf16..ce68fa88196982b09522cd6ad7600fe2f51e68b9 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/echarts.d.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/echarts.d.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/types.ts b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/types.ts index e87f504464ea4e1adf28953cf497fd874b553756..516056df3299e5a47478d043ce9d40321bf85b98 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/charts/types.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/charts/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/components/shared/hooks/useDataExportGuard.ts b/employee-portal/src/lib/businessModules/statistics/components/shared/hooks/useDataExportGuard.ts index cf1d3c7cd41bc8dd76d2985c7b5342fd93378c4b..ad7857410e05394f98bccd320dd16993e66a7d4c 100644 --- a/employee-portal/src/lib/businessModules/statistics/components/shared/hooks/useDataExportGuard.ts +++ b/employee-portal/src/lib/businessModules/statistics/components/shared/hooks/useDataExportGuard.ts @@ -1,9 +1,9 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function useDataExportGuard(isInternal: boolean) { const { openConfirmationDialog } = useConfirmationDialog(); diff --git a/employee-portal/src/lib/businessModules/statistics/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/statistics/shared/moduleUserGroup.ts index 2d1db8791e23de27d73b256275a4a0c11dd62fbd..9c8ebdc355e250a6df4d181f3aef51036ebac7ca 100644 --- a/employee-portal/src/lib/businessModules/statistics/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/statistics/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/shared/routes.ts b/employee-portal/src/lib/businessModules/statistics/shared/routes.ts index 49cbb01753108c3fa5898fd041eef2ceade4ad12..73c9ab18aa27536b8ddd6396cbb85ae89bd4edc1 100644 --- a/employee-portal/src/lib/businessModules/statistics/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/statistics/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/statistics/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/statistics/shared/sideNavigationItem.tsx index 44459a6c7d16e96179fd03f889b08e29b08ac690..cb240bc74088f3f79ac33b92a34df5ec1ba2748b 100644 --- a/employee-portal/src/lib/businessModules/statistics/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/statistics/shared/sideNavigationItem.tsx @@ -1,10 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiUserRole } from "@eshg/employee-portal-api/base"; -import { Leaderboard } from "@mui/icons-material"; +import { BarChartOutlined } from "@mui/icons-material"; import { isPlainObject } from "remeda"; import { UseSideNavigationItemsResult } from "@/lib/baseModule/components/layout/sideNavigation/types"; @@ -21,7 +21,7 @@ export function useSideNavigationItems(): UseSideNavigationItemsResult { items: [ { name: "Statistik", - decorator: <Leaderboard />, + decorator: <BarChartOutlined />, subItems: [ { name: "Auswertungen", diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/clients.ts b/employee-portal/src/lib/businessModules/stiProtection/api/clients.ts index 7c1b173107a42af9b84067f3ac675e5b76616534..f2d718f91092acb9a5663f478cc06c8d85f8d0b1 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/clients.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/download/files.ts b/employee-portal/src/lib/businessModules/stiProtection/api/download/files.ts index 16dd14ca52015ffcb14418c312657f6aeac7a7b8..eccc16a0010c39072d8c661365033a2299780d96 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/download/files.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/download/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentBlockGroup.ts b/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentBlockGroup.ts index e5c18bcd42a890ea8f9660b01a4870e6b5024243..6cd4d37cf6d02e3698ad99dbdf9649feccb37cd7 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentBlockGroup.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentBlockGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentTypeConfig.ts b/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentTypeConfig.ts index 163164bdc5270ff3694065f53f61b204b99c3e0f..f91530e21546af8bbc9368c3248a93dda9eb57a6 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentTypeConfig.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/models/AppointmentTypeConfig.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentBlocks.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentBlocks.ts index c46308c1d7e23375a73de470c09760a2e1d7cacd..cb252b1531afd2669d33ab877f39d411aaa47659 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentBlocks.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentBlocks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentTypes.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentTypes.ts index 0e62d5fd6b2b459498d787981c8b430b2628d92b..cd7257f6a2a5dedd10cd0b15e7b71fef384d3aa8 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentTypes.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/appointmentTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/approvalRequests.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/approvalRequests.ts index fcf5de1969545943ce6493bbdc4316face859bd9..eb24c037291b9dbb120a6e354d99d275d5817d86 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/archiving.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/archiving.ts index c287724eb2999ad3457d41f1e9be23fbe345b0d6..f2f0a09e35b385375c89a58405f9d8b52cbcee0c 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/archiving.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/consultation.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/consultation.ts new file mode 100644 index 0000000000000000000000000000000000000000..b3bba9e88251d5a79fe883867af324cb6e6892ce --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/consultation.ts @@ -0,0 +1,27 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { MutationPassThrough } from "@eshg/lib-portal/types/query"; +import { useMutation } from "@tanstack/react-query"; + +import { stiProtectionProceduresApiQueryKey } from "@/lib/businessModules/stiProtection/api/queries/apiQueryKeys"; +import { ApiConsultation } from "@/lib/businessModules/stiProtection/features/procedures/consultation/helpers"; + +interface ApiConsultationUpsertRequest { + id: string; + consultation: ApiConsultation; +} +export function useUpsertConsultation( + passThrough: MutationPassThrough< + ApiConsultationUpsertRequest, + ApiConsultation + >, +) { + return useMutation({ + mutationFn: ({ id: _id, consultation }) => Promise.resolve(consultation), + mutationKey: stiProtectionProceduresApiQueryKey(["medicalHistory"]), + ...passThrough, + }); +} diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/examination.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/examination.ts index 2d4d518c3f34c47b4fdbdca82fc64aba27407dfb..572bd352063febde8af8625792f8480508fa3122 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/examination.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/examination.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -28,7 +28,7 @@ export function useUpsertRapidTest() { ); }, onError: () => { - snackbar.error("Die Schnelltests konnte nicht aktualisiert werden."); + snackbar.error("Die Schnelltests konnten nicht aktualisiert werden."); }, mutationKey: stiProtectionProceduresApiQueryKey(["rapidTests"]), }); diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/files.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/files.ts index 9fc97be1ce40727ae81245bef6edb5aeab4e48c1..fb9210c8a82205c11219446825b98d360d1d24d9 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/files.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/medicalHistory.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/medicalHistory.ts index a95cb51665a9599a3a777779c4518e7c3bb71699..3be210fa9fb65a6e33d296b28da27bf9a90f49f8 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/medicalHistory.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/medicalHistory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -23,10 +23,10 @@ export function useUpsertMedicalHistory() { medicalHistory: ApiCreateMedicalHistoryRequest; }) => medicalHistoryApi.updateMedicalHistory(id, medicalHistory), onSuccess: () => { - snackbar.confirmation("Die Anamnese wurde erfolgreich erstellt."); + snackbar.confirmation("Die Anamnese wurde erfolgreich gespeichert."); }, onError: () => { - snackbar.error("Die Anamnese konnte nicht erstellt werden."); + snackbar.error("Die Anamnese konnte nicht gespeichert werden."); }, mutationKey: stiProtectionProceduresApiQueryKey(["medicalHistory"]), }); diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/procedures.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/procedures.ts index 82326d84c81b5b0dbfa70c7e9cb77056e2261d6a..5fc29fc10cc3cc15cc05c902c39d5c52f58beb31 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/procedures.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/procedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/progressEntries.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/progressEntries.ts index 353d2dc8ceec09144f09e8d050b061aa8a87020b..4e9a85bee1afd8dd4d25d4f829105f7040fc92f7 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/types.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/types.ts index e4e44681b9877e4b553b6ca5d467b5a712609d06..0c152d7305cb46460add197ed4378a3361750243 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/types.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/waitingRoomApi.ts b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/waitingRoomApi.ts index 7050ffd090b8d6fd7420300ad4a8e672db43a4e4..339adb52e3dcb8eb2e20948bc082d16891b78691 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/mutations/waitingRoomApi.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/mutations/waitingRoomApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/apiQueryKeys.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/apiQueryKeys.ts index 0204a8a1b0016e422dca9be42d29d69a73486c74..c103dd8021f9b2e138f28b125bcf9c9c271be06a 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/apiQueryKeys.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/apiQueryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentBlocks.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentBlocks.ts index 8e8f42e42c7844ddc5e1deeb6b871f739aa6de9d..211c87613457966898e72d0b966b28870f21b19b 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentBlocks.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentBlocks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentStaff.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentStaff.ts index f8e9bc4fa65a9553ae0eae4911a3cdfc13c2c720..759759f546b5ce946e5a68a9b76710fd7e4d6cff 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentStaff.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentStaff.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentTypes.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentTypes.ts index e2be582e14e4b3f4e656e22d273f52b871594090..8778af79d42ca85ecd9f36b2ec3819ead305d3d3 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentTypes.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/appointmentTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/archiving.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/archiving.ts index 9ef2e306d5453bc7494d7084b63dc75c8ca665c8..7db3c0997c803a3a6c131ab05ced6760c45f2f0f 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/archiving.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/examination.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/examination.ts index 559ed744c2a2a49195d88f35bdf2a75401137f28..1a662e18c0c121e9c1147de9ff351f4b61f4a117 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/examination.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/examination.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/files.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/files.ts index a97fd071b0949509f9e6190c0ef339bb45d22884..3f9628538934a3591fa1435c84d487794d120869 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/files.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/identity.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/identity.ts index a7749b7e966e37eedd0a6d2c6fd0d499c81053d4..88a58efa26b82a0b386461bcc1afde8f485a916f 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/identity.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/identity.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistory.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistory.ts index 1f0972bcdb908f8601503c98fa8b4952fb1ed356..9d12a1b9fa957a869f88a632f72d6efd34d04deb 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistory.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistoryDocument.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistoryDocument.ts index 9a64cb999e0d01cb168adf1c06550e3d8169f8bb..40897ec4e36a3c5105dbac476696fb6d0df1159e 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistoryDocument.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/medicalHistoryDocument.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/procedures.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/procedures.ts index 9a41dac9da7da6a084cf33a3cd5106f35ae6323b..584f3daa5658603a74991010ab0920a43d9048ae 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/procedures.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/procedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/progressEntries.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/progressEntries.ts index 615b75455fb7bd79c932f34515e3090fca6be5c4..c3f2fcce0b2611e28fed3efe2a6d51d993c8ddf3 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/api/queries/waitingRoomApi.ts b/employee-portal/src/lib/businessModules/stiProtection/api/queries/waitingRoomApi.ts index fc3a75facdb01e12e22f8c65a366b0611b7061f3..95beed7bed1479e63333a2ed1bfe36fa24199473 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/api/queries/waitingRoomApi.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/api/queries/waitingRoomApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx index fe066227dfe8cdb5ee8c5b2c53356d5bc49d56d7..f5dff5f3b5c12c97c28bbffeb0e027bde82be707 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx index b4a4ec6a8dc5766d4017243c41c82e0eeb78b22c..30f3e9674dd22ef96b2ec7d3c77072525c6e789f 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/AppointmentBlockGroupsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,10 +9,8 @@ import { ApiAppointmentBlockSortKey, ApiAppointmentType, } from "@eshg/employee-portal-api/stiProtection"; -import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; import { formatDateTime } from "@eshg/lib-portal/formatters/dateTime"; -import { Schedule, TodayOutlined } from "@mui/icons-material"; -import { Chip, Stack, Typography } from "@mui/joy"; +import { Chip } from "@mui/joy"; import { ColumnSort, Row, createColumnHelper } from "@tanstack/react-table"; import { ReactNode } from "react"; import { unique } from "remeda"; @@ -28,6 +26,7 @@ import { type WeekdayCheckboxOption, getWeekdayFromDate, } from "@/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays"; +import { NoAppointmentBlocksAvailable } from "@/lib/shared/components/appointmentBlocks/NoAppointmentBlocksAvailable"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; @@ -269,33 +268,13 @@ export function AppointmentBlockGroupsTable( columns={COLUMNS} getSubRows={getSubRows} sorting={tableSorting} - noDataComponent={() => <NoAppointmentBlocksAvailable />} + noDataComponent={() => ( + <NoAppointmentBlocksAvailable + href={routes.appointmentBlockGroups.new} + /> + )} /> </TableSheet> </TablePage> ); } - -function NoAppointmentBlocksAvailable() { - return ( - <Stack - sx={{ - alignItems: "center", - justifyContent: "center", - flex: 1, - }} - > - <TodayOutlined sx={{ height: "40px", width: "40px" }} /> - <Typography sx={{ mt: 2, mb: 3 }}> - Aktuell keine Terminblöcke vorhanden - </Typography> - <InternalLinkButton - href={routes.appointmentBlockGroups.new} - size="sm" - startDecorator={<Schedule />} - > - Neuen Terminblock planen - </InternalLinkButton> - </Stack> - ); -} diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx index a7a4160f741c6fe6e85264e660e80ac2fbe29bbd..4213ea8b3b7aafc6f67b89250c67572014ae9b65 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/CreateAppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/options.ts b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/options.ts index 2b16d3ed92e4c46f51467edc6e20bfde788d5b5a..1de62f852a5d49bb228481c4e9d8c9460fe87492 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/options.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentBlocks/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeEditForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeEditForm.tsx index 3ea0ab33b6566836dfa1138f84b107cf92c80e9c..176f49a57e44b482e896ca0c5c366bdbedf9cb6e 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeEditForm.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeEditForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeOverviewTable.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeOverviewTable.tsx index d132436340869e7d9de2bd3f59c2a0ab2b5f4a69..d329c005920de1909c49760d82675a8e9cdd7f49 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/AppointmentTypeOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/columns.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/columns.tsx index e9835b2c6fb65c96f50b021c14cec024c569831b..3e8d5e0d340531f39b11293bb7a5b9b9aa66c01f 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/columns.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/appointmentTypes/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid.tsx new file mode 100644 index 0000000000000000000000000000000000000000..04c7174103e1b45f01bcab1419f7452322834808 --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid.tsx @@ -0,0 +1,25 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { styled } from "@mui/joy"; + +export const SectionGrid = styled("section")<{ + columns?: string; + defaultColumn?: number; +}>(({ theme, defaultColumn, columns }) => ({ + display: "grid", + rowGap: theme.spacing(5), + columnGap: theme.spacing(3), + gridTemplateColumns: columns ?? "6fr 3fr", + + "& > *": { + gridColumn: defaultColumn, + }, + + [theme.breakpoints.down("lg")]: { + display: "flex", + flexDirection: "column", + }, +})); diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp.tsx new file mode 100644 index 0000000000000000000000000000000000000000..cd7c7fd2356f2e6a2979866faab3cceda11c667f --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp.tsx @@ -0,0 +1,101 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { SxProps } from "@mui/joy/styles/types"; +import { useFormikContext } from "formik"; +import { PropsWithChildren } from "react"; + +import { FieldSetControl } from "@/lib/shared/components/formFields/CheckboxGroupField"; +import { + RadioButtonsField, + RadioButtonsFieldProps, +} from "@/lib/shared/components/formFields/RadioButtonsField"; + +export interface YesOrNoWithFollowUpProps + extends PropsWithChildren< + Omit<RadioButtonsFieldProps, "options" | "label" | "additionalField"> + > { + sx?: SxProps; + label: string; + positiveLabel?: string; + negativeLabel?: string; + followUpOnNo?: boolean; + inlineFollowUp?: boolean; + optionsOrientation?: "vertical" | "horizontal"; +} + +export function YesOrNoWithFollowUp({ + children, + sx, + positiveLabel, + negativeLabel, + inlineFollowUp, + followUpOnNo, + orientation, + optionsOrientation, + ...radioProps +}: YesOrNoWithFollowUpProps) { + const { getFieldMeta } = useFormikContext(); + const { value } = getFieldMeta(radioProps.name); + const followUpOn = followUpOnNo ? "no" : "yes"; + const options = [ + { label: positiveLabel ?? "Ja", value: "yes" }, + { label: negativeLabel ?? "Nein", value: "no" }, + ]; + const show = value === followUpOn; + const showBelow = show && !inlineFollowUp; + const showInline = show && inlineFollowUp; + + const verticalOrientation = orientation === "vertical"; + const orientationStyles = verticalOrientation + ? { + display: "flex", + } + : { + display: "grid", + gridTemplateColumns: inlineFollowUp ? "1fr" : "1fr 1fr", + }; + + return ( + <FieldSetControl + sx={{ + ...orientationStyles, + border: "none", + padding: 0, + ...sx, + }} + aria-label={radioProps.label} + > + <RadioButtonsField + resettable + options={options} + orientation={optionsOrientation} + {...radioProps} + additionalField={showInline ? children : undefined} + /> + {showBelow ? children : undefined} + </FieldSetControl> + ); +} + +export type YesOrNoFieldData = "yes" | "no" | null; + +export function mapYesOrNoToBool( + b: YesOrNoFieldData | "", +): boolean | undefined { + if (b == null || b == "") { + return; + } + return b === "yes"; +} + +export function mapBoolToYesOrNo( + b: boolean | null | undefined, +): YesOrNoFieldData { + if (b == null) { + return null; + } + return b ? "yes" : "no"; +} diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresSearchBar.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresSearchBar.tsx index d4fb586410a2ae76bfc7ae6c216fe75bf10115ec..dac3cf3a6df16f1c1062c8f92f362757e0a22b9c 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresSearchBar.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresSearchBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresTable.tsx b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresTable.tsx index 0bf877dd2b9af4d65aa44666062c182ba4910d72..6e0dc14d3a09731c9406ba6cfae9fa0c954f4918 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresTable.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/components/procedures/proceduresTable/StiProtectionProceduresTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/DisplayAccessCode.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/DisplayAccessCode.tsx new file mode 100644 index 0000000000000000000000000000000000000000..562a8494b09018aead461e447d98998d345113ce --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/DisplayAccessCode.tsx @@ -0,0 +1,37 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Row } from "@eshg/lib-portal/components/Row"; + +export function DisplayAccessCode({ + code, + bold, +}: { + code: string | undefined; + bold?: boolean; +}) { + if (!code) { + return null; + } + const partSize = 4; + const parts = new Array(Math.ceil(code.length / partSize)) + .fill(0) + .map((_, index) => + code.slice(index * partSize, index * partSize + partSize), + ); + + return ( + <Row + aria-label={parts.join(" ")} + gap={0.5} + fontFamily="code" + fontWeight={bold ? 600 : 400} + > + {parts.map((p, i) => ( + <span key={i}>{p}</span> + ))} + </Row> + ); +} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureTabHeader.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureTabHeader.tsx index c3a8ca6f032eb0f1a9a7831d7ff836af198e0a5e..3b5b5661c6c7f98f73927174cb498d812398f6a9 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureTabHeader.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureTabHeader.tsx @@ -1,10 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ +import { COUNTRY_CODE_LABELS } from "@eshg/lib-portal/components/formFields/countryCodes"; + import { useStiProcedureQuery } from "@/lib/businessModules/stiProtection/api/queries/procedures"; -import { COUNTRY_CODE_LABELS } from "@/lib/businessModules/stiProtection/shared/countryCodes"; import { TabNavigationHeader, TabNavigationHeaderTypography, diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureToolbar.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureToolbar.tsx index ba4dcad9c9b9c1efcf2c9bf51fefc8b540bd10d7..77dc88d6b3e3d46b60dd3c95ea5dcebd6dc185c4 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureToolbar.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/ProcedureToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,6 +15,7 @@ import { } from "@mui/icons-material"; import { routes } from "@/lib/businessModules/stiProtection/shared/routes"; +import { PersonDocumentConsultation } from "@/lib/shared/components/icons/PersonDocumentConsultation"; import { TabNavigationItem } from "@/lib/shared/components/tabNavigation/types"; import { TabNavigationToolbar } from "@/lib/shared/components/tabNavigationToolbar/TabNavigationToolbar"; import { useHasUserRoleCheck } from "@/lib/shared/hooks/useAccessControl"; @@ -50,6 +51,11 @@ function buildTabItems(id: string): TabNavigationItem[] { href: routes.procedures.byId(id).anamnesis, decorator: <FormatListBulletedOutlined />, }, + { + tabButtonName: "Konsultation", + href: routes.procedures.byId(id).consultation, + decorator: <PersonDocumentConsultation />, + }, { tabButtonName: "Untersuchung", href: routes.procedures.byId(id).examination, @@ -62,7 +68,7 @@ function buildTabItems(id: string): TabNavigationItem[] { }, { tabButtonName: "Verlaufseinträge", - href: routes.procedures.byId(id).progressEntries.index, + href: routes.procedures.byId(id).progressEntries, decorator: <TimelineOutlined />, }, ]; diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AddNewProcedureSidebar.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AddNewProcedureSidebar.tsx index 6f0fee0f750902be0989545c07a489f3038f0c35..1e0d84da3240cf5fb9a4d383db630df061f5ffb2 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AddNewProcedureSidebar.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AddNewProcedureSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -13,6 +13,8 @@ import { ApiCreateProcedureResponse, ApiGender, } from "@eshg/employee-portal-api/stiProtection"; +import { GENDER_OPTIONS } from "@eshg/lib-portal/components/formFields/constants"; +import { COUNTRY_CODE_OPTIONS } from "@eshg/lib-portal/components/formFields/countryCodes"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { differenceInMinutes } from "date-fns"; import { Formik, FormikHelpers } from "formik"; @@ -22,7 +24,6 @@ import { useReducer, useState } from "react"; import { useCreateStiProcedureMutation } from "@/lib/businessModules/stiProtection/api/mutations/procedures"; import { CreateAppointmentForm } from "@/lib/businessModules/stiProtection/features/procedures/details/CreateAppointmentSidebar"; import { CONCERN_VALUES } from "@/lib/businessModules/stiProtection/shared/constants"; -import { COUNTRY_CODE_OPTIONS } from "@/lib/businessModules/stiProtection/shared/countryCodes"; import { deleteUndefined, optionalInt, @@ -31,7 +32,6 @@ import { routes } from "@/lib/businessModules/stiProtection/shared/routes"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { SelectableCardsField } from "@/lib/shared/components/formFields/SelectableCardsField"; -import { GENDER_OPTIONS } from "@/lib/shared/components/personSidebar/constants"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AppointmentForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AppointmentForm.tsx index 5d88cd47118be2b32e6c061b543358192799f4dd..5d8841ea6ace6b744112de24f9a737ed0457372b 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AppointmentForm.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/AppointmentForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,6 +10,7 @@ import { } from "@eshg/employee-portal-api/stiProtection"; import { Row } from "@eshg/lib-portal/components/Row"; import { NumberField } from "@eshg/lib-portal/components/formFields/NumberField"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { AppointmentPickerField, FIELD_LABELS_DE, @@ -23,7 +24,6 @@ import { useGetFreeAppointments } from "@/lib/businessModules/stiProtection/api/ import { CreateAppointmentForm } from "@/lib/businessModules/stiProtection/features/procedures/details/CreateAppointmentSidebar"; import { concernToAppointmentType } from "@/lib/businessModules/stiProtection/shared/helpers"; import { DateTimeField } from "@/lib/shared/components/formFields/DateTimeField"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { validateNonNegativeInteger, validateTodayOrFutureDate, diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/PersonalDataForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/PersonalDataForm.tsx index 60b2a32c886bd175988d2f0ed9abee94f65e8923..5bfed2261028236bc0a799c5687614c45fd4c616 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/PersonalDataForm.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/PersonalDataForm.tsx @@ -1,17 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { NumberField } from "@eshg/lib-portal/components/formFields/NumberField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { GENDER_OPTIONS } from "@eshg/lib-portal/components/formFields/constants"; import { isEmptyString } from "@eshg/lib-portal/helpers/guards"; import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; import { Stack } from "@mui/joy"; import { EditPersonalDataForm } from "@/lib/businessModules/stiProtection/features/procedures/details/EditPersonalDataSidebar"; import { CountryField } from "@/lib/shared/components/formFields/CountryField"; -import { GENDER_OPTIONS } from "@/lib/shared/components/personSidebar/constants"; import { AddNewProcedureForm } from "./AddNewProcedureSidebar"; diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SharePinModal.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SharePinModal.tsx index 56884ffe745387417ebeaff52f77f4cf4c6d8939..490d37215ccbd0081a3fde1ae6151836b0750404 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SharePinModal.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SharePinModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -46,7 +46,7 @@ export function SharePinModal({ </div> <CheckboxField name="pinShared" - label="Ich habe die PIN dem/der Bürger:in mitgeteilt. *" + label="Ich habe die PIN dem/der Bürger:in mitgeteilt." required="Bitte bestätigen Sie die Weitergabe der PIN." /> <Row justifyContent="end"> diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SummaryForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SummaryForm.tsx index 0f66f5d6911363193882abd009362f06634010c9..9e971f83c4e90fa4d87e2aad8af87cbe8ce9ee13 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SummaryForm.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/addNewProcedure/SummaryForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,8 @@ import { ApiConcern, ApiStiProtectionProcedure, } from "@eshg/employee-portal-api/stiProtection"; +import { GENDER_VALUES } from "@eshg/lib-portal/components/formFields/constants"; +import { COUNTRY_CODE_LABELS } from "@eshg/lib-portal/components/formFields/countryCodes"; import { EditOutlined } from "@mui/icons-material"; import { Divider, IconButton, Stack, Typography } from "@mui/joy"; import { useFormikContext } from "formik"; @@ -17,9 +19,7 @@ import { APPOINTMENT_TYPES, CONCERN_VALUES, } from "@/lib/businessModules/stiProtection/shared/constants"; -import { COUNTRY_CODE_LABELS } from "@/lib/businessModules/stiProtection/shared/countryCodes"; import { getOpenAppointmentsFromProcedure } from "@/lib/businessModules/stiProtection/shared/helpers"; -import { GENDER_VALUES } from "@/lib/shared/components/personSidebar/constants"; import { AddNewProcedureForm, diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/ConsultationForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/ConsultationForm.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0e9257a5787353091a8f30e008c804cd2ab552bc --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/ConsultationForm.tsx @@ -0,0 +1,140 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +"use client"; + +import { ApiStiProtectionProcedure } from "@eshg/employee-portal-api/stiProtection"; +import { SubmitButton } from "@eshg/lib-portal/components/buttons/SubmitButton"; +import { FormPlus } from "@eshg/lib-portal/components/form/FormPlus"; +import { HorizontalField } from "@eshg/lib-portal/components/formFields/HorizontalField"; +import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; +import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; +import { Divider, Sheet, Typography, styled } from "@mui/joy"; +import { Formik } from "formik"; + +import { useUpsertConsultation } from "@/lib/businessModules/stiProtection/api/mutations/consultation"; +import { routes } from "@/lib/businessModules/stiProtection/shared/routes"; +import { StickyBottomButtonBar } from "@/lib/shared/components/buttons/StickyBottomButtonBar"; +import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; + +import { GeneralSection } from "./GeneralSection"; +import { PregnancySection } from "./PregnancySection"; +import { + ApiGetConsultation200Response, + ConsultationFormData, + mapApiToForm, + mapFormValuesToApi, +} from "./helpers"; + +export const AutoWidthHorizontalField = styled(HorizontalField)({ + ".MuiStack-root": { + justifyContent: "space-between", + }, +}); + +export function ConsultationForm({ + procedure: stiProcedure, +}: Readonly<{ + procedure: ApiStiProtectionProcedure; + consultation?: ApiGetConsultation200Response | null; +}>) { + const consultation = undefined; + const snackbar = useSnackbar(); + const upsertConsultation = useUpsertConsultation({ + onSuccess: () => { + snackbar.confirmation("Die Anamnese wurde erfolgreich erstellt."); + }, + onError: () => { + snackbar.error("Die Anamnese konnte nicht erstellt werden."); + }, + }); + + function onSubmit(values: ConsultationFormData) { + return upsertConsultation.mutateAsync({ + id: stiProcedure.id, + consultation: mapFormValuesToApi(values), + }); + } + return ( + <Formik initialValues={mapApiToForm(consultation)} onSubmit={onSubmit}> + {({ isSubmitting }) => ( + <FormPlus> + <FormWithSidecarLayout> + <Sheet> + <Typography level="h2" mb={5}> + Konsultation + </Typography> + + <GeneralSection /> + + <Divider sx={(theme) => ({ my: theme.spacing(5) })} /> + + <PregnancySection /> + </Sheet> + <Sheet + sx={{ + position: "sticky", + alignSelf: "start", + top: "12rem", + width: "100%", + }} + > + <Typography level="h3" mb={5}> + Zusatzinfos + </Typography> + <TextareaField + name="general.notes" + label="Allgemeine Bemerkungen" + /> + </Sheet> + </FormWithSidecarLayout> + <ConsultationStickyBottomButtonBar + stiProcedure={stiProcedure} + isSubmitting={isSubmitting} + /> + </FormPlus> + )} + </Formik> + ); +} + +const FormWithSidecarLayout = styled("div")(({ theme }) => ({ + display: "grid", + gridTemplateColumns: "9fr 3fr", + gap: theme.spacing(3), + margin: theme.spacing(3), + [theme.breakpoints.down("lg")]: { + display: "flex", + flexDirection: "column", + }, +})); + +interface ConsultationStickyBottomButtonBarProps { + stiProcedure: ApiStiProtectionProcedure; + isSubmitting: boolean; +} + +function ConsultationStickyBottomButtonBar( + props: ConsultationStickyBottomButtonBarProps, +) { + const { stiProcedure, isSubmitting } = props; + + return ( + <StickyBottomButtonBar + sx={{ padding: "0.75rem 1.5rem" }} + right={ + <> + <InternalLinkButton + href={routes.procedures.byId(stiProcedure.id).details} + variant="plain" + > + Abbrechen + </InternalLinkButton> + <SubmitButton submitting={isSubmitting}>Speichern</SubmitButton> + </> + } + ></StickyBottomButtonBar> + ); +} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/GeneralSection.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/GeneralSection.tsx new file mode 100644 index 0000000000000000000000000000000000000000..649bd65bd44cbdfcad69fef9698acabcd04148f9 --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/GeneralSection.tsx @@ -0,0 +1,93 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { Typography, useTheme } from "@mui/joy"; + +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; +import { + YesOrNoFieldData, + YesOrNoWithFollowUp, +} from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; +import { CheckboxField } from "@/lib/shared/components/formFields/CheckboxField"; +import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; + +export interface GeneralSectionData { + mainReason: string; + + furtherGenderInfo: string; + + hasSufficientGermanLanguageSkills: boolean | null; + isIlliterate: boolean; + otherKnownLanguages: string; + + hasHealthInsurance: YesOrNoFieldData; + hasGermanHealthInsurance: boolean; + + hasInsecureResidence: YesOrNoFieldData; + + hasSymptoms: YesOrNoFieldData; + symptoms: string; + + drugUse: string; + + referral: string; +} + +export function GeneralSection() { + const theme = useTheme(); + return ( + <SectionGrid defaultColumn={1}> + <Typography level="h3">Allgemein</Typography> + + <TextareaField name="general.mainReason" label="Konsultationsgrund" /> + <TextareaField + name="general.furtherGenderInfo" + label="Weitere Geschlechtsangaben" + /> + + <YesOrNoWithFollowUp + name="general.hasSufficientGermanLanguageSkills" + label="Deutsche Sprachkenntnis?" + positiveLabel="ausreichend" + negativeLabel="nicht ausreichend" + followUpOnNo + inlineFollowUp + > + <CheckboxField name="general.isIlliterate" label="Analphabet:in" /> + </YesOrNoWithFollowUp> + + <TextareaField + name="general.otherKnownLanguages" + label="Andere Sprachkenntnisse?" + /> + + <YesOrNoWithFollowUp + name="general.hasHealthInsurance" + label="Krankenversichert?" + inlineFollowUp + > + <CheckboxField + name="general.hasGermanHealthInsurance" + label="Versichert in Deutschland" + /> + </YesOrNoWithFollowUp> + <InputField + name="general.hasInsecureResidence" + label="Unsicherer Aufenthalt?" + /> + <YesOrNoWithFollowUp + sx={{ gap: theme.spacing(5) }} + name="general.hasSymptoms" + label="Aktuelle Beschwerden" + orientation="vertical" + > + <TextareaField name="general.symptoms" label="Falls ja, welche?" /> + </YesOrNoWithFollowUp> + <TextareaField name="general.drugUse" label="Drogenkonsum" /> + <TextareaField name="general.referral" label="Weiterleitung an" /> + </SectionGrid> + ); +} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/PregnancySection.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/PregnancySection.tsx new file mode 100644 index 0000000000000000000000000000000000000000..78623330238e9e64e17916d7a6d08b30e1566faa --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/PregnancySection.tsx @@ -0,0 +1,88 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Row } from "@eshg/lib-portal/components/Row"; +import { + BaseField, + BaseFieldProps, +} from "@eshg/lib-portal/components/formFields/BaseField"; +import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; +import { NumberField } from "@eshg/lib-portal/components/formFields/NumberField"; +import { Typography } from "@mui/joy"; +import { useFormikContext } from "formik"; + +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; +import { CheckboxField } from "@/lib/shared/components/formFields/CheckboxField"; + +export interface PregnancySectionData { + hasPregnancyRelatedInfo: boolean; + lastCytologyTest: Date | null; + startOfLastPeriod: Date | null; + numberOfPregnancies: number | ""; + numberOfOtherAbortions: number | ""; + numberOfBirths: number | ""; + numberOfInducedAbortions: number | ""; + numberOfEctopicPregnancies: number | ""; +} +export function PregnancySection() { + const { getFieldMeta } = useFormikContext(); + const { value } = getFieldMeta("hasPregnancyRelatedInfo"); + return ( + <SectionGrid defaultColumn={1}> + <Typography level="h3">Schwangerschaftsbezogene Angaben</Typography> + <CheckboxField + name="hasPregnancyRelatedInfo" + label="Schwangerschaftsbezogene Angaben erfassen" + /> + {value ? <PregnancySectionFields /> : null} + </SectionGrid> + ); +} + +function PregnancySectionFields() { + return ( + <> + <Row gap={3}> + <DateField name="lastCytologyTest" label="Letzte Zytologie" /> + <DateField name="startOfLastPeriod" label="1. Tag letzte Mensis" /> + </Row> + <Row gap={3} sx={{ gridColumnStart: 1, gridColumnEnd: 3 }}> + <NumberField + component={NumberFieldWrapper} + name="numberOfPregnancies" + label="Schwangerschaften" + /> + <NumberField + component={NumberFieldWrapper} + name="numberOfOtherAbortions" + label="Aborte" + /> + <NumberField + component={NumberFieldWrapper} + name="numberOfBirths" + label="Geburten" + /> + <NumberField + component={NumberFieldWrapper} + name="numberOfInducedAbortions" + label="Interruption" + /> + <NumberField + component={NumberFieldWrapper} + name="numberOfEctopicPregnancies" + label="EUG" + /> + </Row> + </> + ); +} + +function NumberFieldWrapper({ children, ...props }: BaseFieldProps) { + return ( + <BaseField sx={{ flex: 1, minWidth: 150 }} {...props}> + {children} + </BaseField> + ); +} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/helpers.ts b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/helpers.ts new file mode 100644 index 0000000000000000000000000000000000000000..6261aa1c744995bcdf793027c2630c7a8e63903f --- /dev/null +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/consultation/helpers.ts @@ -0,0 +1,136 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { mapOptionalValue } from "@eshg/lib-portal/helpers/form"; + +import { + mapBoolToYesOrNo, + mapYesOrNoToBool, +} from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; + +import { GeneralSectionData } from "./GeneralSection"; +import { PregnancySectionData } from "./PregnancySection"; + +export type ApiGetConsultation200Response = ApiConsultation; +export interface ApiConsultation { + general: { + mainReason: string | undefined; + + furtherGenderInfo: string | undefined; + + hasSufficientGermanLanguageSkills: boolean | undefined; + isIlliterate: boolean; + otherKnownLanguages: string | undefined; + + hasHealthInsurance: boolean | undefined; + hasGermanHealthInsurance: boolean; + + hasInsecureResidence: boolean | undefined; + + hasSymptoms: boolean | undefined; + symptoms: string | undefined; + + drugUse: string | undefined; + + referral: string | undefined; + }; + pregnancy?: { + hasPregnancyRelatedInfo: boolean; + lastCytologyTest: Date | undefined; + startOfLastPeriod: Date | undefined; + numberOfPregnancies: number | undefined; + numberOfInducedAbortions: number | undefined; + numberOfBirths: number | undefined; + numberOfOtherAbortions: number | undefined; + numberOfEctopicPregnancies: number | undefined; + }; +} + +export function mapFormValuesToApi( + formData: ConsultationFormData, +): ApiConsultation { + return { + general: { + mainReason: mapOptionalValue(formData.general.mainReason), + furtherGenderInfo: mapOptionalValue(formData.general.furtherGenderInfo), + hasSufficientGermanLanguageSkills: + formData.general.hasSufficientGermanLanguageSkills ?? undefined, + isIlliterate: formData.general.isIlliterate, + otherKnownLanguages: mapOptionalValue( + formData.general.otherKnownLanguages, + ), + hasHealthInsurance: mapYesOrNoToBool(formData.general.hasHealthInsurance), + hasGermanHealthInsurance: formData.general.hasGermanHealthInsurance, + hasInsecureResidence: mapYesOrNoToBool( + formData.general.hasInsecureResidence, + ), + hasSymptoms: mapYesOrNoToBool(formData.general.hasSymptoms), + symptoms: mapOptionalValue(formData.general.symptoms), + drugUse: mapOptionalValue(formData.general.drugUse), + referral: mapOptionalValue(formData.general.referral), + }, + pregnancy: { + hasPregnancyRelatedInfo: + formData.pregnancy.hasPregnancyRelatedInfo ?? undefined, + lastCytologyTest: formData.pregnancy.lastCytologyTest ?? undefined, + startOfLastPeriod: formData.pregnancy.startOfLastPeriod ?? undefined, + numberOfPregnancies: mapOptionalValue( + formData.pregnancy.numberOfPregnancies, + ), + numberOfInducedAbortions: mapOptionalValue( + formData.pregnancy.numberOfInducedAbortions, + ), + numberOfBirths: mapOptionalValue(formData.pregnancy.numberOfBirths), + numberOfOtherAbortions: mapOptionalValue( + formData.pregnancy.numberOfOtherAbortions, + ), + numberOfEctopicPregnancies: mapOptionalValue( + formData.pregnancy.numberOfEctopicPregnancies, + ), + }, + }; +} +export function mapApiToForm( + apiData: ApiGetConsultation200Response | undefined, +): ConsultationFormData { + return { + general: { + mainReason: apiData?.general.mainReason ?? "", + furtherGenderInfo: apiData?.general.furtherGenderInfo ?? "", + hasSufficientGermanLanguageSkills: + apiData?.general.hasSufficientGermanLanguageSkills ?? null, + isIlliterate: apiData?.general.isIlliterate ?? false, + otherKnownLanguages: apiData?.general.otherKnownLanguages ?? "", + hasHealthInsurance: mapBoolToYesOrNo(apiData?.general.hasHealthInsurance), + hasGermanHealthInsurance: + apiData?.general.hasGermanHealthInsurance ?? false, + hasInsecureResidence: mapBoolToYesOrNo( + apiData?.general.hasInsecureResidence, + ), + hasSymptoms: mapBoolToYesOrNo(apiData?.general.hasSymptoms), + symptoms: apiData?.general.symptoms ?? "", + drugUse: apiData?.general.drugUse ?? "", + referral: apiData?.general.referral ?? "", + }, + pregnancy: { + hasPregnancyRelatedInfo: + apiData?.pregnancy?.hasPregnancyRelatedInfo ?? false, + lastCytologyTest: apiData?.pregnancy?.lastCytologyTest ?? null, + startOfLastPeriod: apiData?.pregnancy?.startOfLastPeriod ?? null, + numberOfPregnancies: apiData?.pregnancy?.numberOfPregnancies ?? "", + numberOfInducedAbortions: + apiData?.pregnancy?.numberOfInducedAbortions ?? "", + numberOfBirths: apiData?.pregnancy?.numberOfBirths ?? "", + numberOfOtherAbortions: apiData?.pregnancy?.numberOfOtherAbortions ?? "", + numberOfEctopicPregnancies: + apiData?.pregnancy?.numberOfEctopicPregnancies ?? "", + }, + }; +} + +export interface ConsultationFormData { + general: GeneralSectionData; + pregnancy: PregnancySectionData; +} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AdditionalDataSection.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AdditionalDataSection.tsx index bac70ad6b8551dda87258385ee119cc53b45002a..b3613affc843989bbbea3d17baa008554cedf1d5 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AdditionalDataSection.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AdditionalDataSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,8 +7,6 @@ import { ApiStiProtectionProcedure } from "@eshg/employee-portal-api/stiProtecti import { Sheet } from "@mui/joy"; import { CONCERN_VALUES } from "@/lib/businessModules/stiProtection/shared/constants"; -import { createOnlyIfProcedureOpen } from "@/lib/businessModules/stiProtection/shared/helpers"; -import { EditButton } from "@/lib/shared/components/buttons/EditButton"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { DetailsColumn } from "@/lib/shared/components/detailsSection/DetailsColumn"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; @@ -25,13 +23,9 @@ export function formatAppointmentTime(date?: Date) { export function AdditionalDataSection({ procedure, }: Readonly<{ procedure: ApiStiProtectionProcedure }>) { - const onlyIfOpen = createOnlyIfProcedureOpen(procedure); return ( <Sheet> - <DetailsSection - title="Zusatzinfos" - buttons={onlyIfOpen(<EditButton aria-label="Zusatzinfos bearbeiten" />)} - > + <DetailsSection title="Zusatzinfos"> <DetailsColumn> <DetailsCell label="Art" value={CONCERN_VALUES[procedure.concern]} /> <DetailsCell diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AnonIdentityDocumentCard.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AnonIdentityDocumentCard.tsx index 6b0ac697850a324587585cfc1adb867259696947..afdcddff528e28ee341259965683320c4f19ed84 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AnonIdentityDocumentCard.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AnonIdentityDocumentCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,6 +8,7 @@ import { DownloadLink } from "@eshg/lib-portal/api/files/DownloadLink"; import { Sheet, Stack } from "@mui/joy"; import { useAnonymousIdentificationDocumentQuery } from "@/lib/businessModules/stiProtection/api/queries/procedures"; +import { DisplayAccessCode } from "@/lib/businessModules/stiProtection/features/procedures/DisplayAccessCode"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { DetailsColumn } from "@/lib/shared/components/detailsSection/DetailsColumn"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; @@ -22,7 +23,12 @@ export function AnonIdentityDocumentCard({ <Sheet> <DetailsSection title="Dokument zur anonymen Identifizierung"> <DetailsColumn> - <DetailsCell label="Anmeldecode" value="ABCDEFG1234567890" /> + <DetailsCell + label="Anmeldecode" + value={ + <DisplayAccessCode code={procedure.person.accessCode} bold /> + } + /> <DetailsCell label="Identifizierungs-Dokument als PDF" valueIsDiv @@ -34,15 +40,7 @@ export function AnonIdentityDocumentCard({ } onDownload={() => anonymousIdentificationDocument.download()} > - PDF auf Deutsch - </DownloadLink> - <DownloadLink - downloadContainerRef={ - anonymousIdentificationDocument.downloadContainerRef - } - onDownload={() => Promise.resolve()} - > - PDF auf Englisch + PDF herunterladen </DownloadLink> </Stack> } diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AppointmentDetails.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AppointmentDetails.tsx index 1bf3834fc48524227eaafcc7931f7579fa0e8c8f..54c650829837ca3ed4caf2715ac83f5283357de3 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AppointmentDetails.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/AppointmentDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -23,13 +23,13 @@ import { ActionsItem, ActionsMenu, } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; import { CalendarAddDay } from "@/lib/shared/components/icons/CalendarAddDay"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { useSearchParam } from "@/lib/shared/hooks/searchParams/useSearchParam"; import { useTableControl } from "@/lib/shared/hooks/searchParams/useTableControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { formatAppointmentTime } from "./AdditionalDataSection"; import { diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CheckPinSection.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CheckPinSection.tsx index 4ecb6993bbaa1f7397e599e4e578c55e052f9c9c..dca8268e2a2416c89b5469597b465dd3e74b8ace 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CheckPinSection.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CheckPinSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseAndReopenDialogs.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseAndReopenDialogs.tsx index 28176240aacd015f93b5f9a27370763f1a8ab411..9cf34b7ea7c31192546fae5f6c408b3e7c9d96e2 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseAndReopenDialogs.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseAndReopenDialogs.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,7 @@ import { ApiStiProtectionProcedure, ApiStiProtectionProcedureOverview, } from "@eshg/employee-portal-api/stiProtection"; +import { COUNTRY_CODE_LABELS } from "@eshg/lib-portal/components/formFields/countryCodes"; import { styled } from "@mui/joy"; import { useState } from "react"; @@ -14,9 +15,8 @@ import { useCloseProcedure, useReopenProcedure, } from "@/lib/businessModules/stiProtection/api/mutations/procedures"; -import { COUNTRY_CODE_LABELS } from "@/lib/businessModules/stiProtection/shared/countryCodes"; import { isProcedureOpen } from "@/lib/businessModules/stiProtection/shared/helpers"; -import { ConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; type Procedure = ApiStiProtectionProcedure | ApiStiProtectionProcedureOverview; interface CloseAndReopenConfirmationDialogProps { @@ -78,7 +78,7 @@ export function CloseConfirmationDialog({ onConfirm, }: CloseAndReopenConfirmationDialogProps) { return ( - <ConfirmationDialog + <EmployeePortalConfirmationDialog title="Vorgang abschließen?" description="Möchten Sie diesen Vorgang wirklich abschließen?" confirmLabel="Abschließen" @@ -101,7 +101,7 @@ export function ReopenConfirmationDialog({ } const personDetails = "person" in procedure ? procedure.person : procedure; return ( - <ConfirmationDialog + <EmployeePortalConfirmationDialog title={"Vorgang wiedereröffnen?"} confirmLabel="Wiedereröffnen" description="Durch das wiedereröffnen können existierende Daten geändert werden." @@ -127,7 +127,7 @@ export function ReopenConfirmationDialog({ </td> </tr> </DetailsTable> - </ConfirmationDialog> + </EmployeePortalConfirmationDialog> ); } diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseProcedurePanel.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseProcedurePanel.tsx index 6b50fcb00517024d6d23286d378763e9b0147f5c..2218229f80b88bb0e11afea94a9f466599a918cc 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseProcedurePanel.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CloseProcedurePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CreateAppointmentSidebar.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CreateAppointmentSidebar.tsx index 88265d405ce73f28a502b5e91700551878e498f6..3205c2a01e9f12770831532bc15e1c87aa648f14 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CreateAppointmentSidebar.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/CreateAppointmentSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/EditPersonalDataSidebar.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/EditPersonalDataSidebar.tsx index 40ec04dde06949048794594cb5575d5217665b99..6de56b5b74d7815194e44a5037adc5ec865357ae 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/EditPersonalDataSidebar.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/EditPersonalDataSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,6 +8,8 @@ import { ApiStiProtectionProcedure, UpdatePersonDetailsRequest, } from "@eshg/employee-portal-api/stiProtection"; +import { GENDER_OPTIONS } from "@eshg/lib-portal/components/formFields/constants"; +import { COUNTRY_CODE_OPTIONS } from "@eshg/lib-portal/components/formFields/countryCodes"; import { useSnackbar } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { Formik } from "formik"; @@ -17,14 +19,12 @@ import { PersonalDataForm, personalDataFormValidation, } from "@/lib/businessModules/stiProtection/features/procedures/addNewProcedure/PersonalDataForm"; -import { COUNTRY_CODE_OPTIONS } from "@/lib/businessModules/stiProtection/shared/countryCodes"; import { deleteUndefined, optionalInt, } from "@/lib/businessModules/stiProtection/shared/helpers"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { GENDER_OPTIONS } from "@/lib/shared/components/personSidebar/constants"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/PersonDetails.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/PersonDetails.tsx index 0f7aafb2d7eef45ef41a6fa06b6ac61ab1d3aba5..ae448e00618a2b9f402c41a4dd8bff48ef4384e2 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/PersonDetails.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/PersonDetails.tsx @@ -1,13 +1,13 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiStiProtectionProcedure } from "@eshg/employee-portal-api/stiProtection"; +import { COUNTRY_CODE_LABELS } from "@eshg/lib-portal/components/formFields/countryCodes"; import { Sheet, Stack } from "@mui/joy"; import { GENDER_VALUES } from "@/lib/businessModules/stiProtection/shared/constants"; -import { COUNTRY_CODE_LABELS } from "@/lib/businessModules/stiProtection/shared/countryCodes"; import { createOnlyIfProcedureOpen } from "@/lib/businessModules/stiProtection/shared/helpers"; import { ResponsiveDivider } from "@/lib/shared/components/ResponsiveDivider"; import { EditButton } from "@/lib/shared/components/buttons/EditButton"; diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/ProcedureDetails.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/ProcedureDetails.tsx index 6f8030fcfcfa366579c79517200a5bce24d50b44..bbe605f0130c165d9267f246c502c3cf8c9ec234 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/ProcedureDetails.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/ProcedureDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/WaitingRoomSection.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/WaitingRoomSection.tsx index d8327f19715e2cb3cbf62ad198b0869ea80cf02e..66f16422b7e182cbacdbed397f43661d3a3dd5ea 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/WaitingRoomSection.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/details/WaitingRoomSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/Examinations.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/Examinations.tsx index 6859268f5930fe3b3101242c4f39bcc0d92d3644..c6f9637ae39e15799372312256772a9ee1011968 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/Examinations.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/Examinations.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -10,7 +10,7 @@ import { import { SubmitButton } from "@eshg/lib-portal/components/buttons/SubmitButton"; import { FormPlus } from "@eshg/lib-portal/components/form/FormPlus"; import { mapOptionalValue } from "@eshg/lib-portal/helpers/form"; -import { Button, Divider, Grid, Sheet, Stack, Typography } from "@mui/joy"; +import { Box, Button, Divider, Grid, Sheet, Stack, Typography } from "@mui/joy"; import { Formik, FormikState } from "formik"; import { useUpsertRapidTest } from "@/lib/businessModules/stiProtection/api/mutations/examination"; @@ -19,13 +19,12 @@ import { YesOrNoFieldData, mapBoolToYesOrNo, mapYesOrNoToBool, -} from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp"; +} from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { StickyBottomButtonBar } from "@/lib/shared/components/buttons/StickyBottomButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DetailsSection } from "@/lib/shared/components/detailsSection/DetailsSection"; import { CheckboxField } from "@/lib/shared/components/formFields/CheckboxField"; import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; -import { MainContentLayout } from "@/lib/shared/components/layout/MainContentLayout"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { RapidTestWithBooleanResult, @@ -216,8 +215,17 @@ function RapidTests(props: RapidTestsProps) { enableReinitialize > {({ dirty, resetForm, isSubmitting }) => ( - <FormPlus style={{ height: "100%" }}> - <MainContentLayout fullViewportHeight> + <FormPlus style={{ height: "100%", overflow: "hidden" }}> + <Box + sx={{ + pt: 3, + pr: 3, + pb: 15, + pl: 3, + height: "100%", + overflow: "auto", + }} + > <Grid container spacing={2}> <Grid container spacing={2} xs={12} lg={9}> <Grid xs={12}> @@ -285,7 +293,7 @@ function RapidTests(props: RapidTestsProps) { </Stack> </Grid> </Grid> - </MainContentLayout> + </Box> <ExaminationStickyBottomButtonBar isSubmitting={isSubmitting} onClick={() => onCancel(dirty, resetForm)} @@ -312,8 +320,11 @@ function ExaminationInfo() { <> <Sheet> <DetailsSection title="Schnelltests"> - <Typography>Allgemeine Bemerkung</Typography> - <TextareaField name="generalRemarks" minRows={3} /> + <TextareaField + name="generalRemarks" + label={"Allgemeine Bemerkung"} + minRows={3} + /> <CheckboxField name="testsPayed" label={"Tests bezahlt"} /> </DetailsSection> </Sheet> diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/RapidTestTemplates.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/RapidTestTemplates.tsx index 6d1d9aedd74901e05f588bcf777b3821f1d8a092..48666deb0262e083d3828157a020fc1e5f020463 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/RapidTestTemplates.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/examination/RapidTestTemplates.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,7 +9,7 @@ import { Grid, Stack } from "@mui/joy"; import { useFormikContext } from "formik"; import { PropsWithChildren } from "react"; -import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp"; +import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { FormGroupGrid } from "@/lib/shared/components/form/FormGroupGrid"; import { CheckboxField } from "@/lib/shared/components/formFields/CheckboxField"; import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; @@ -21,11 +21,6 @@ export interface RapidTestProps extends PropsWithChildren { label: string; } -export interface RapidTestWithTextResultProps extends RapidTestProps { - result: string; - positiveFieldLabel?: string; -} - function RapidTest(props: RapidTestProps) { const { name, label } = props; const { getFieldMeta } = useFormikContext<RapidTestsFormData>(); @@ -35,15 +30,20 @@ function RapidTest(props: RapidTestProps) { } return ( - <Stack spacing={0}> - <Grid xxs={12} md={6} xxl={3}> + <Stack + component="fieldset" + aria-label={label} + border={0} + margin={0} + padding={0} + spacing={0} + gap={1.25} + > + <Grid xxs={12} md={6} xxl={3} sx={{ paddingLeft: 0 }}> <CheckboxField name={name} label={label} /> </Grid> {isTestRequested() ? ( - <FormGroupGrid - component="section" - aria-labelledby="general-section-title" - > + <FormGroupGrid> <Grid container xxs={12}> {props.children} </Grid> @@ -84,8 +84,8 @@ export function RapidTestWithBooleanResult( <YesOrNoWithFollowUp name={result} label={"Ergebnis"} - labelFalse={"Negativ"} - labelTrue={positiveFieldLabel} + negativeLabel={"Negativ"} + positiveLabel={positiveFieldLabel} required={hasNumber() ? "Bitte das Testergebnis angeben" : undefined} /> </Grid> diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config.ts b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config.ts index 4900a1ab61196c858cf74ca474d4bb76dc3cb186..2657b8b32d1e7ce9641382f7c03353166f7f6fe9 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -19,7 +19,7 @@ import { } from "@eshg/employee-portal-api/stiProtection"; import { MonthAndYear } from "@eshg/lib-portal/components/formFields/MonthAndYearFields"; -import { YesOrNoFieldData } from "./YesOrNoWithFollowUp"; +import { YesOrNoFieldData } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; type ValueOf<T> = T[keyof T]; type DateKeys<T> = ValueOf<{ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.tsx index 117099608b0cb5c88fd5e1aa52bb889619de02ed..4296bd347f89169657af2ab5cb431eeb90415ff3 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,7 +15,7 @@ import { FormPlus } from "@eshg/lib-portal/components/form/FormPlus"; import { HorizontalField } from "@eshg/lib-portal/components/formFields/HorizontalField"; import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; import Print from "@mui/icons-material/Print"; -import { Divider, Sheet, Stack, Typography, styled } from "@mui/joy"; +import { Button, Divider, Sheet, Typography, styled } from "@mui/joy"; import { SxProps } from "@mui/joy/styles/types"; import { Formik } from "formik"; import { useEffect, useState } from "react"; @@ -26,17 +26,16 @@ import { MedicalHistoryDocumentLanguage, useGetMedicalHistoryDocumentQuery, } from "@/lib/businessModules/stiProtection/api/queries/medicalHistoryDocument"; +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; import { CONCERN_VALUES } from "@/lib/businessModules/stiProtection/shared/constants"; import { routes } from "@/lib/businessModules/stiProtection/shared/routes"; import { StickyBottomButtonBar } from "@/lib/shared/components/buttons/StickyBottomButtonBar"; import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; -import { IconButton } from "@/lib/shared/components/pagination/IconButton"; import { MedicalHistoryFormData, defaultMedicalHistoryFormValues, } from "./MedicalHistoryForm.config"; -import { SectionGrid } from "./SectionGrid"; import { mapFormValuesToApi, mapToFormValues } from "./helpers"; import { Examinations } from "./sections/Examinations"; import { General } from "./sections/General"; @@ -57,6 +56,11 @@ export const AutoWidthHorizontalField = styled(HorizontalField)({ }, }); +const PaddedDivider = styled(Divider)(({ theme }) => ({ + marginTop: theme.spacing(5), + marginBottom: theme.spacing(5), +})); + export function MedicalHistoryForm({ procedure: stiProcedure, medicalHistory, @@ -116,27 +120,27 @@ export function MedicalHistoryForm({ {({ isSubmitting }) => ( <FormPlus> <Sheet sx={{ overflow: "auto", margin: theme.spacing(3) }}> - <Typography level="h3" mb={2}> + <Typography level="h2" mb={5}> {formTitle} </Typography> <General isForSexWork={isForSexWork} /> - <Divider /> + <PaddedDivider /> <Examinations /> - <Divider /> + <PaddedDivider /> <PreviousIllnesses /> - <Divider /> + <PaddedDivider /> <SexualOrientationAndContact isForSexWork={isForSexWork} /> - <Divider /> + <PaddedDivider /> <Prevention /> - <Divider /> + <PaddedDivider /> <Risks /> - <Divider /> + <PaddedDivider /> <SectionGrid> <TextareaField name="remarks" label="Bemerkungen" /> @@ -187,14 +191,14 @@ function MedicalHistoryStickyBottomButtonBar( } left={ <> - <NamedIconButton + <PrintButton label={"Anamnesebogen auf Deutsch herunterladen"} text={"Druckvorlage herunterladen (DE)"} onClick={() => fetchMedicalHistoryDocument(stiProcedure.concern, "DE") } /> - <NamedIconButton + <PrintButton label={"Anamnesebogen auf Englisch herunterladen"} text={"Druckvorlage herunterladen (EN)"} onClick={() => @@ -207,39 +211,22 @@ function MedicalHistoryStickyBottomButtonBar( ); } -interface NamedIconButtonProps { +interface PrintButtonProps { text: string; label: string; onClick: () => void; sx?: SxProps; } -function NamedIconButton(props: NamedIconButtonProps) { +function PrintButton(props: PrintButtonProps) { return ( - <IconButton + <Button variant="plain" - sx={{ padding: "6px 16px" }} - disabled={false} - label={props.label} + aria-label={props.label} onClick={props.onClick} + startDecorator={<Print />} > - <Stack direction={"row"} gap={theme.spacing(1)} alignItems={"center"}> - <Print - sx={{ - width: "24px", - height: "24px", - }} - /> - <Typography - textColor={"primary.plainColor"} - sx={(theme) => ({ - fontSize: theme.fontSize.md, - fontWeight: theme.fontWeight.lg, - })} - > - {props.text} - </Typography> - </Stack> - </IconButton> + {props.text} + </Button> ); } diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid.tsx index 8477c9aef03d0984d46f7d36f5b1552123d1dad1..4fb9cf594c65719a630c632f67636387ca16adbe 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp.tsx deleted file mode 100644 index 159673ab47886ede2cb7ace50425882a395c52a5..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp.tsx +++ /dev/null @@ -1,155 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import { Row } from "@eshg/lib-portal/components/Row"; -import { Button, Radio } from "@mui/joy"; -import { SxProps } from "@mui/joy/styles/types"; -import { useFormikContext } from "formik"; -import { PropsWithChildren } from "react"; - -import { - RadioGroupField, - RadioGroupFieldProps, -} from "@/lib/shared/components/formFields/RadioGroupField"; - -function hasProperty<K extends string>( - obj: unknown, - prop: K, -): obj is Record<K, unknown> { - return obj != null && typeof obj === "object" && prop in obj; -} - -type Path<T> = T extends object - ? { - [K in keyof T]: K extends string - ? T[K] extends object - ? `${K}.${Path<T[K]>}` - : `${K}` - : never; - }[keyof T] - : never; - -type SelectPath<T, K extends string> = T extends object - ? K extends `${infer F}.${infer R}` - ? SelectPath<Idx<T, F>, R> - : Idx<T, K> - : never; -type Idx<T, K extends string> = K extends keyof T ? T[K] : never; - -class ObjectUndefinedError extends Error {} -class PropNotDefinedError extends Error {} -function selectPath<T, K extends string>( - object: T, - propSelector: K, -): SelectPath<T, K> { - if (object == null || typeof object !== "object") { - throw new ObjectUndefinedError(); - } - const [first, ...rest] = propSelector.split("."); - if (first == null || !hasProperty(object, first)) { - if (rest.length === 0) { - return undefined as SelectPath<T, K>; - } - throw new PropNotDefinedError(); - } - const value = object[first]; - if (!rest || rest.length === 0) { - return value as SelectPath<T, K>; - } - try { - return selectPath(value, rest.join(".")); - } catch (e) { - if (e instanceof ObjectUndefinedError) { - throw Error(`Object is undefined ${JSON.stringify(object)}`); - } - if (e instanceof PropNotDefinedError) { - throw Error(`Object doesn't contain selector ${propSelector}`); - } - throw Error("Unknown Error!"); - } -} - -export interface YesOrNoWithFollowUpProps<T> - extends PropsWithChildren<Omit<RadioGroupFieldProps, "name" | "label">> { - name: Path<T> | string; - label: string; - sx?: SxProps; - labelTrue?: string; - labelFalse?: string; -} - -export function YesOrNoWithFollowUp<T>({ - children, - sx, - ...radioProps -}: YesOrNoWithFollowUpProps<T>) { - const { values, getFieldHelpers } = useFormikContext<T>(); - const { setValue } = getFieldHelpers(radioProps.name); - const value = selectPath(values, radioProps.name); - - return ( - <Row - sx={{ - justifyContent: "space-between", - border: "none", - padding: 0, - ...sx, - }} - component="fieldset" - aria-label={radioProps.label} - > - <Row> - <RadioGroupField {...radioProps} orientation="horizontal"> - <Radio - name={radioProps.name} - value={"yes"} - label={radioProps.labelTrue ?? "Ja"} - /> - <Radio - name={radioProps.name} - value={"no"} - label={radioProps.labelFalse ?? "Nein"} - /> - {value ? ( - <Button - variant="plain" - size="sm" - sx={{ - marginLeft: 1, - marginTop: "-0.375rem", - marginBottom: "-0.375rem", - fontWeight: 400, - }} - onClick={() => setValue(null)} - > - Zurücksetzen - </Button> - ) : undefined} - </RadioGroupField> - </Row> - {value === "yes" ? children : undefined} - </Row> - ); -} - -export type YesOrNoFieldData = "yes" | "no" | null; - -export function mapYesOrNoToBool( - b: YesOrNoFieldData | "", -): boolean | undefined { - if (b == null || b == "") { - return; - } - return b === "yes"; -} - -export function mapBoolToYesOrNo( - b: boolean | null | undefined, -): YesOrNoFieldData { - if (b == null) { - return null; - } - return b ? "yes" : "no"; -} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/helpers.ts b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/helpers.ts index 369c2c64d55ffb45916bf25744f72a4b448b6181..dd0fcbd05cf4236dd6f4478a089f1f2879362d96 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/helpers.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -21,6 +21,10 @@ import { } from "@eshg/lib-portal/components/formFields/MonthAndYearFields"; import { mapOptionalValue } from "@eshg/lib-portal/helpers/form"; +import { + mapBoolToYesOrNo, + mapYesOrNoToBool, +} from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { guardValue, mapOptional, @@ -37,7 +41,6 @@ import { StandardRiskQuestion, defaultExaminations, } from "./MedicalHistoryForm.config"; -import { mapBoolToYesOrNo, mapYesOrNoToBool } from "./YesOrNoWithFollowUp"; function mapApiExaminationToForm( examinations?: ApiExamination, diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/options.ts b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/options.ts index 047c216719c0453a7f6d86dcfb5958e1a728d03f..5d89153391f2bed4b30bf6f1e83c1661989bb990 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/options.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Examinations.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Examinations.tsx index 2e488aab03eb9571cf23c1b9c5b33ba1453841cc..8c8c41e243a1880c3d645d273824692a3553aef9 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Examinations.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Examinations.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,9 +7,9 @@ import { MonthAndYearFields } from "@eshg/lib-portal/components/formFields/Month import { FormControl, FormLabel, Typography } from "@mui/joy"; import { useFormikContext } from "formik"; +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; +import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { MedicalHistoryFormData } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config"; -import { SectionGrid } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid"; -import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp"; import { ExaminableIllnesses, examinableIllnessNames, @@ -19,19 +19,21 @@ export function Examinations() { const { values } = useFormikContext<MedicalHistoryFormData>(); return ( <> - <Typography level="title-md" mt={1} id="examinations-section-title"> + <Typography level="h3" mb={3} id="examinations-section-title"> Untersuchungen </Typography> - <SectionGrid aria-labelledby="examinations-section-title"> + <SectionGrid + aria-labelledby="examinations-section-title" + defaultColumn={1} + > {Object.entries(values.examinations).map( ([diseaseType, { examinationDate }]) => ( <YesOrNoWithFollowUp - sx={{ gridColumn: 1 }} key={diseaseType} label={examinableIllnessNames[diseaseType as ExaminableIllnesses]} name={`examinations.${diseaseType}.hadExamination`} > - <FormControl> + <FormControl sx={{ gridColumn: 2 }}> <FormLabel>Wenn ja, wann zuletzt?</FormLabel> <MonthAndYearFields fieldName={`examinations.${diseaseType}.examinationDate`} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/General.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/General.tsx index 545f38464930c077af101dae18027af1ef19547c..a0b2254df8934ea120ffe27c5f1c65ca1832a6fb 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/General.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/General.tsx @@ -1,19 +1,20 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; -import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { NumberField } from "@eshg/lib-portal/components/formFields/NumberField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; import { validatePastOrTodayDate } from "@eshg/lib-portal/helpers/validators"; import { useFormikContext } from "formik"; +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; +import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { MedicalHistoryFormData } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config"; -import { SectionGrid } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid"; -import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp"; import { relationshipModelOptions } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/options"; import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; +import { validatePositiveInteger } from "@/lib/shared/helpers/validators"; export function General({ isForSexWork }: { isForSexWork: boolean }) { const { values } = useFormikContext<MedicalHistoryFormData>(); @@ -54,15 +55,17 @@ export function General({ isForSexWork }: { isForSexWork: boolean }) { name="general.hasBeenPregnant" label="Waren Sie schon mal schwanger?" > - <InputField + <NumberField name="general.numberOfPregnancies" label="Wenn ja, wie oft?" + validate={validatePositiveInteger} /> </YesOrNoWithFollowUp> {values.general.hasBeenPregnant === "yes" ? ( - <InputField + <NumberField name="general.numberOfBirthsOrAbortions" label="Anzahl Geburten/Aborte" + validate={validatePositiveInteger} /> ) : null} <TextareaField diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Prevention.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Prevention.tsx index 0398032b4a55142e2fbff17184e011d10159df2b..c6845ac2b8430b9e2df3c6978776cac993544c25 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Prevention.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Prevention.tsx @@ -1,12 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { Typography } from "@mui/joy"; -import { SectionGrid } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid"; -import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp"; +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; +import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { safeSexRegularityOptions, stiProtectiveMeasuresOptions, @@ -18,7 +18,7 @@ import { RadioButtonsField } from "@/lib/shared/components/formFields/RadioButto export function Prevention() { return ( <> - <Typography level="title-md" mt={1} id="prevention-section-title"> + <Typography level="h3" mb={3} id="prevention-section-title"> Prävention </Typography> <SectionGrid aria-labelledby="prevention-section-title"> @@ -33,6 +33,7 @@ export function Prevention() { name="prevention.safeSexRegularity" label="Safer Sex" options={safeSexRegularityOptions} + resettable /> <CheckboxGroupField sx={{ gridColumnStart: "span 2" }} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/PreviousIllnesses.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/PreviousIllnesses.tsx index eac3522044a90ddaa709db24781ce2fac8014b69..900170f6f3676df4dcb1910320cc2b46208a7ec5 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/PreviousIllnesses.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/PreviousIllnesses.tsx @@ -1,14 +1,14 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { Typography } from "@mui/joy"; +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; +import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { defaultPreviousIllnesses } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config"; -import { SectionGrid } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid"; -import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp"; import { ExaminableIllnesses, examinableIllnessNames, @@ -17,26 +17,28 @@ import { export function PreviousIllnesses() { return ( <> - <Typography level="title-md" mt={1} id="previous-illnesses-section-title"> + <Typography level="h3" mb={3} id="previous-illnesses-section-title"> Bisherige Krankheiten </Typography> - <SectionGrid aria-labelledby="previous-illnesses-section-title"> + <SectionGrid + aria-labelledby="previous-illnesses-section-title" + defaultColumn={1} + > {Object.keys(defaultPreviousIllnesses) .filter((t) => !["other", "otherData"].includes(t)) .map((diseaseType) => ( <YesOrNoWithFollowUp - sx={{ gridColumn: 1 }} key={diseaseType} name={`previousIllnesses.${diseaseType}`} label={examinableIllnessNames[diseaseType as ExaminableIllnesses]} /> ))} <YesOrNoWithFollowUp - sx={{ gridColumn: 1 }} label="Andere sexuell übertragbare Krankheit" name="previousIllnesses.other" > <InputField + sx={{ gridColumn: 2 }} name="previousIllnesses.otherData" label={"Wenn ja, welche?"} /> diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Risks.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Risks.tsx index 5d17212f54f97a2627a3ff4728f694e318179e0e..9d3888ef9c8f10150c283f057d0051f4735fe23b 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Risks.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/Risks.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,12 +8,12 @@ import { MonthAndYearFields } from "@eshg/lib-portal/components/formFields/Month import { FormControl, FormLabel, Typography } from "@mui/joy"; import { useFormikContext } from "formik"; +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; +import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/YesOrNoWithFollowUp"; import { MedicalHistoryFormData, StandardRiskQuestion, } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config"; -import { SectionGrid } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid"; -import { YesOrNoWithFollowUp } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/YesOrNoWithFollowUp"; import { StandardRiskFactor, standardRiskFactorNames, @@ -24,10 +24,10 @@ export function Risks() { return ( <> - <Typography level="title-md" mt={1} id="risks-section-title"> + <Typography level="h3" mb={3} id="risks-section-title"> Angaben zum Risiko </Typography> - <SectionGrid aria-labelledby="risks-section-title"> + <SectionGrid aria-labelledby="risks-section-title" defaultColumn={1}> {Object.entries(values.standardRiskFactors).map( ([riskName, { lastIncident }]: [string, StandardRiskQuestion]) => ( <YesOrNoWithFollowUp diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/SexualOrientationAndContact.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/SexualOrientationAndContact.tsx index e9bc12b576e5bd2d8f185c33ac1c074b0892322c..affd1fe98c7b3fbceedc6e40c408ae83fdf8e835 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/SexualOrientationAndContact.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/medicalHistory/sections/SexualOrientationAndContact.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,8 +9,8 @@ import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField" import { Typography } from "@mui/joy"; import { useFormikContext } from "formik"; +import { SectionGrid } from "@/lib/businessModules/stiProtection/components/procedures/procedureDetails/SectionGrid"; import { MedicalHistoryFormData } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/MedicalHistoryForm.config"; -import { SectionGrid } from "@/lib/businessModules/stiProtection/features/procedures/medicalHistory/SectionGrid"; import { sexWorkTypeOptions, sexualContactFactorOptions, @@ -22,6 +22,7 @@ import { FieldSetControl, } from "@/lib/shared/components/formFields/CheckboxGroupField"; import { Legend } from "@/lib/shared/components/formFields/Legend"; +import { validatePositiveInteger } from "@/lib/shared/helpers/validators"; export function SexualOrientationAndContact({ isForSexWork, @@ -31,14 +32,13 @@ export function SexualOrientationAndContact({ const { values } = useFormikContext<MedicalHistoryFormData>(); return ( <> - <Typography - level="title-md" - mt={1} - id="sexual-orientation-and-contact-title" - > + <Typography level="h3" mb={3} id="sexual-orientation-and-contact-title"> Sexuelle Orientierung / Kontakte </Typography> - <SectionGrid aria-labelledby="sexual-orientation-and-contact-title"> + <SectionGrid + aria-labelledby="sexual-orientation-and-contact-title" + columns="1fr 1fr" + > <SelectField name="sexualOrientationAndContact.sexualOrientation" label="Sexuelle Orientierung" @@ -47,6 +47,7 @@ export function SexualOrientationAndContact({ <NumberField name="sexualOrientationAndContact.numberOfSexualPartnersLast12Months" label="Anzahl der Sexpartner:innen in den letzten 12 Monaten" + validate={validatePositiveInteger} /> <CheckboxGroupField name="sexualOrientationAndContact.sexualContactGenders" @@ -62,7 +63,7 @@ export function SexualOrientationAndContact({ {isForSexWork ? ( <> <FieldSetControl> - <Legend variant="single">Seit wann in Sexarbeit?</Legend> + <Legend>Seit wann in Sexarbeit?</Legend> <MonthAndYearFields fieldName="sexualOrientationAndContact.startInSexWork" date={values.sexualOrientationAndContact.startInSexWork} diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/translations.ts b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/translations.ts index aa468ea82cbb61300d41a0eac0d98a3edf637684..14465e885a9dc7ac847e7a77b803023fab1b2a99 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/procedures/translations.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/features/procedures/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/StatusChip.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/StatusChip.tsx index ed561a5873bc409607ffc094e4398f282e360fa4..65af32d73b2bc64815141925a570c3bec62eb26f 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/StatusChip.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/StatusChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/WaitingRoomTable.tsx b/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/WaitingRoomTable.tsx index 1086c467ba8ce07cb1562693b09e3ca821ba92fe..7101d7a5e811ff5afdefa00fedad1e15844e4c81 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/WaitingRoomTable.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/features/waitingRoom/WaitingRoomTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -14,6 +14,7 @@ import { ColumnSort, createColumnHelper } from "@tanstack/react-table"; import { differenceInMinutes } from "date-fns"; import { useGetWaitingRoomProcedures } from "@/lib/businessModules/stiProtection/api/queries/waitingRoomApi"; +import { DisplayAccessCode } from "@/lib/businessModules/stiProtection/features/procedures/DisplayAccessCode"; import { GENDER_VALUES } from "@/lib/businessModules/stiProtection/shared/constants"; import { routes } from "@/lib/businessModules/stiProtection/shared/routes"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; @@ -84,7 +85,7 @@ const columnHelper = createColumnHelper<ApiWaitingRoomProcedure>(); const COLUMNS = [ columnHelper.accessor("accessCode", { header: "Anmeldecode", - cell: (props) => props.getValue(), + cell: (props) => <DisplayAccessCode code={props.getValue()} />, enableSorting: false, meta: { width: 200, @@ -117,7 +118,6 @@ const COLUMNS = [ header: "Info", cell: (props) => props.getValue(), meta: { - width: 180, canNavigate: { parentRow: true, }, @@ -127,7 +127,7 @@ const COLUMNS = [ header: "Status", cell: (props) => <StatusChip status={props.getValue()} />, meta: { - width: 270, + width: 275, canNavigate: { parentRow: true, }, diff --git a/employee-portal/src/lib/businessModules/stiProtection/shared/constants.ts b/employee-portal/src/lib/businessModules/stiProtection/shared/constants.ts index 1975f3c6d5d22c0335133c1a0fa3be1d86f3b653..b0120b442ed7b74e34d2e1e05f3546319ce0edd6 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -62,6 +62,7 @@ export const APPOINTMENT_TYPES: EnumMap<ApiAppointmentType> = { [ApiAppointmentType.RegularExamination]: "Regeluntersuchung", [ApiAppointmentType.SpecialNeeds]: "Besonderer Förderbedarf", [ApiAppointmentType.Vaccination]: "Impfung", + [ApiAppointmentType.OfficialMedicalService]: "Amtsärtzlicher Dienst", }; export const APPOINTMENT_STATUS: EnumMap<ApiAppointmentStatus> = { diff --git a/employee-portal/src/lib/businessModules/stiProtection/shared/helpers.ts b/employee-portal/src/lib/businessModules/stiProtection/shared/helpers.ts index a01f45c62b74ce7de100cbc5490028d2be1c7499..70417c75fac7bcd6e0ccf28d8e59fd9119a1a394 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/shared/helpers.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/shared/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/stiProtection/shared/moduleUserGroup.ts index fd34c100a07b7bf8028aea6bfb3c0e79efe2cd63..4b481109a419c8a1f6bc015fc013ba301a3591ed 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/stiProtection/shared/routes.ts b/employee-portal/src/lib/businessModules/stiProtection/shared/routes.ts index e6b312e6be8180b23df4f773b7a895cfbc7f7645..4d4f35182934ea578367e5a8c708323ae95e7088 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/stiProtection/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,14 +15,11 @@ export const routes = { byId: (procedureId: string) => ({ index: `${proceduresPath}/${procedureId}`, details: `${proceduresPath}/${procedureId}/details`, + consultation: `${proceduresPath}/${procedureId}/consultation`, anamnesis: `${proceduresPath}/${procedureId}/anamnesis`, examination: `${proceduresPath}/${procedureId}/examination`, report: `${proceduresPath}/${procedureId}/report`, - progressEntries: { - index: `${proceduresPath}/${procedureId}/progress-entries`, - byId: (entryId: string) => - `${proceduresPath}/${procedureId}/progress-entries/${entryId}/details`, - }, + progressEntries: `${proceduresPath}/${procedureId}/progress-entries`, }), }, waitingRoom: { diff --git a/employee-portal/src/lib/businessModules/stiProtection/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/stiProtection/shared/sideNavigationItem.tsx index 46dd35cda9509b331c2325961d56667d878ef760..2f87cebbd36bf5d0c9b24e390834d92d6c36488f 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/stiProtection/shared/sideNavigationItem.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/clients.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/clients.ts index d4f2c6494b3d042ca94a6698b125a4c66c9d7c67..c3813751cb0fefe60b541576fdba953a6ff9eb2b 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/clients.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/download/files.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/download/files.ts index 412da1e67067d8c24e84d7dec6adc9dccf52f5e5..6aed7320ee389562c9fc4cab09f029f00c3fa87d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/download/files.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/download/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/Appointment.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/Appointment.ts index 953a6f79fde1d5174aafe5fa265e0acef8baf792..30773a81b08a5b8a051521e6ffd4804be011cb28 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/Appointment.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/Appointment.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentBlock.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentBlock.ts index 5bf6c1331ea6ced7f8f13841cd1f4b82cb6af66d..493c6b45af34d1b0bc9c8c47cdb55bda15b03a56 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentBlock.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentBlock.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentSummary.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentSummary.ts index b91bcd925c9baf22c197e3fc65647651f8247f3d..b024cc0c7076fba6b87da67ad4d81e5958641a8e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentSummary.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentSummary.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentTypeConfig.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentTypeConfig.ts index 5d0168fcaf641479cbc57a94c5fdb050bc7604b0..11c383d974d6d545ec37164223feba88491399e7 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentTypeConfig.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AppointmentTypeConfig.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AssignableService.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AssignableService.ts index dc72d0bdf4a8dfce14a83b45a5d0fc1a051eed8e..0722e6bd623d1c64897ed8bbc14a7296b0a327d9 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/AssignableService.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/AssignableService.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/Disease.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/Disease.ts index 86e2d705bf7d6d61e2d2a3a1be9d936f600a2d2c..48a91c49b144571a4ab8e919e6ac104f5e6900cf 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/Disease.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/Disease.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/InformationStatementTemplates.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/InformationStatementTemplates.ts index 300317e124c6c8f3a3b3013f32f3b41be95a84b1..18582d83ef1c1e18458061629c6b2193210749e5 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/InformationStatementTemplates.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/InformationStatementTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/OtherServicesTemplates.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/OtherServicesTemplates.ts index 4ec8d0637cb6a8d8fad023290c558894f5128401..f534978f33c7ba89721b37d4765f27fb4281ec48 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/OtherServicesTemplates.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/OtherServicesTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/User.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/User.ts index 8f0afb7895fe34189af817581ef8844559cc38f1..1df9edc185f1235d9e4a24a7b5dac52e9184b681 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/User.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/User.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/models/Vaccines.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/models/Vaccines.ts index d904f1641846fe95d87627ac298a94d718dc332b..ac871144044fbc6d827d139ff860dd1018e1969b 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/models/Vaccines.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/models/Vaccines.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentBlocks.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentBlocks.ts index 845a703c3302bcb8a212e63c88d5240baeed4cf7..6209eb607e13a2768dd7821fe71e694a522de689 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentBlocks.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentBlocks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentTypes.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentTypes.ts index c514f0032be9dde3dfa3d9684f0892af2312ca7d..38c1e9d54d05a562021ea640a2c8c3c7b802faf4 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentTypes.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/appointmentTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/approvalRequests.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/approvalRequests.ts index 714941ac627aa84498b7d9ed08b072ec429aa2e7..2b2798849bede68e12d6bd9889f990cdd9a31d16 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/archiving.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/archiving.ts index 0fa2e16eb5114ac06eb1b3c7b3a8782f10b52708..aeb4e566c87541dc04f3a11688fd0bc47e730e1f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/archiving.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/diseaseApi.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/diseaseApi.ts index 56b779e35846f080b8c9c5b81e95151069965393..36502299f95665648b5be45a88ea69ab6b54b087 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/diseaseApi.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/diseaseApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/files.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/files.ts index 9bc660a5c3c52f5535243f42449a61edff0a466f..8f2e66f6638b4decb7496d58c8180409ee30f2b6 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/files.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/inbox.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/inbox.ts index 9927e019093a1ba8635aeebee7953a55305c627d..c0230807bc0148ae1c3b17ad9a9fe91e85836c38 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/inbox.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/inbox.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/informationStatementTemplateApi.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/informationStatementTemplateApi.ts index fc842f5a32c541563ce7344bbc8ab0f6abb8b0b7..1217b6f41f8ac6eb639dd1e54ea2067512efb164 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/informationStatementTemplateApi.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/informationStatementTemplateApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistory.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistory.ts index a06fba4fd7d77df5d3153c5b0ed4f4fdedd6e58a..f034fcc42979d50611c5de4f338707533d4385f3 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistory.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistoryTemplates.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistoryTemplates.ts index eebb653e6d82a125d8d82d234f8a899f1d9a24d9..e04252a7bc0ea8feda6775e77d7c68f951457841 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistoryTemplates.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/medicalHistoryTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/otherServiceTemplates.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/otherServiceTemplates.ts index 2671c2a3c88ea6a2c14fc0f68ed3c7a7ebf7d632..4eca12b107c48d7d08f45c110fa3cfa126a126fd 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/otherServiceTemplates.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/otherServiceTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/procedureSteps.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/procedureSteps.ts index a3098c329c59801503b3f78bd8abb239480114d0..1a053f4a12a417a8f99bfc372b5fc33a619f53ea 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/procedureSteps.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/procedureSteps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/progressEntries.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/progressEntries.ts index 10c23e696ea663dac408435297d7f7a187d89285..628fe03faa61c6ab825d2142cdaa223429151c80 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccinationConsultation.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccinationConsultation.ts index a07c73f2580ef5314433f2f6c9ee9b5af7ea2d86..ad778aed52d42b40e5fd689d969568723fc63b88 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccinationConsultation.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccinationConsultation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccines.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccines.ts index 680e4779cb17729b2e0328c846fe3799c437ac43..866031ddfcf6b1fcd6e0873aa72d981676477358 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccines.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/mutations/vaccines.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentBlocks.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentBlocks.ts index 520ff2fb9fda72320b9dbc86e1dbae2e2c23a581..39803f4ed53cf4a7697999fbfe1c333050258168 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentBlocks.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentBlocks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentStaff.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentStaff.ts index 8b1ec0007e9ce57c1b8cc47d3612cf2f70a03f2e..fcce76d810799f11e55c6398c3938fe26d69c671 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentStaff.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentStaff.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentTypes.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentTypes.ts index 328babdeb4dbb38d2719e115f164f56a999da685..a5c832cc5630b0af041cdc01d714494da69802aa 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentTypes.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/appointmentTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/archiving.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/archiving.ts index 495d3802c5d1832025a53e15385ec8396041f00f..43dc08ccd650048c4681986833cd89c4e0e7c15b 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/archiving.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/diseaseApi.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/diseaseApi.ts index 5ab020427232f90c52f1d8ed4d6f2500be517c2e..b9226424c1c95e6c25233be996b357d61a06287e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/diseaseApi.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/diseaseApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/featureToggles.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/featureToggles.ts index 5c9bb2e26dcd09e30e34ee85c8247a2f57b0b5cd..f9451fd827d38a87feee0bbdf8e0229bff943453 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/featureToggles.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/featureToggles.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/files.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/files.ts index a5998f55ad3b57e799b5af334bafef4142fd31c2..1b3d8f4d6cdd91ad2a2090f14af4204a4cf1faf4 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/files.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/inboxProcedures.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/inboxProcedures.ts index c4756072848ce0813e7952dceaa37bc2a7a1e140..ef0b2dbcd1842131e137345aea9469c258663795 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/inboxProcedures.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/inboxProcedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/informationStatementTemplateApi.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/informationStatementTemplateApi.ts index 14929fdeb9ef287b30432281c9ac7d7d45f9fd69..e85114098a736a52e8229a89539c5336373861ed 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/informationStatementTemplateApi.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/informationStatementTemplateApi.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/medicalHistoryTemplates.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/medicalHistoryTemplates.ts index 98abe13fa9ace4554a2c7baf7f2558613769acf8..1035831568bd87cbb134fce3e2d874d4bb92d642 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/medicalHistoryTemplates.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/medicalHistoryTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/otherServiceTemplates.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/otherServiceTemplates.ts index 470da41aa20c1ab95aaaedb42a759068844b8d61..0e7adef99249a22380cfa0d0f3f4fcd38a20fe66 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/otherServiceTemplates.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/otherServiceTemplates.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/procedureSteps.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/procedureSteps.ts index 17750a28d7b5e63aed72d006f39cf10f05c36be2..dd11ede9eaaf47014f524fb9df9395d35726b59a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/procedureSteps.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/procedureSteps.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/progressEntries.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/progressEntries.ts index 1424963e2c832ef4eb7091f69969ff070e65475e..2005c6bf619d15384034d074e848992effd99c98 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/queryKeys.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/queryKeys.ts index f31420c844f03bfa836a9766c38f173f0e13ae86..123fbc0b1e780a9f08c5ac58d830a5700fff6499 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/queryKeys.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/queryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccinationConsultation.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccinationConsultation.ts index 5da72809cc8cb1421d175fe294c05145384a6c0d..03fb398570dbed6bfbddcee7aa3300b7a1bd7a0c 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccinationConsultation.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccinationConsultation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccines.ts b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccines.ts index 625e0d36eb37f2797c7c8ccfc1f00657e014a8fe..9b0e13ac6112dc93dcc72c7a2997312b197c82db 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccines.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/api/queries/vaccines.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx index de3938c00b54ce467a0f4abb49d8fb4f67c3ede3..6d3088e291b473c8c49be6be879dbb7e7721353f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/AppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx index 120e027b9022336f93e8e3798bfd75997e5cd80e..e884b80160c2ddd5fc426bdb1743514c008f8838 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksGroupForm/CreateAppointmentBlockGroupForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx index b67095dbd1c3faaa13438da58f62ab09fa149704..cff37736f0a2c652577083465d0dcd3601746c03 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/appointmentBlocksTable/AppointmentBlockGroupsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,10 +9,8 @@ import { ApiAppointmentBlockSortKey, ApiAppointmentType, } from "@eshg/employee-portal-api/travelMedicine/models"; -import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; import { formatDateTime } from "@eshg/lib-portal/formatters/dateTime"; -import { Schedule, TodayOutlined } from "@mui/icons-material"; -import { Chip, Stack, Typography } from "@mui/joy"; +import { Chip } from "@mui/joy"; import { useSuspenseQueries } from "@tanstack/react-query"; import { ColumnSort, createColumnHelper } from "@tanstack/react-table"; import { ReactNode } from "react"; @@ -24,6 +22,7 @@ import { import { useGetAppointmentBlockGroupsQuery } from "@/lib/businessModules/travelMedicine/api/queries/appointmentBlocks"; import { appointmentTypes } from "@/lib/businessModules/travelMedicine/shared/appointmentTypes"; import { routes } from "@/lib/businessModules/travelMedicine/shared/routes"; +import { NoAppointmentBlocksAvailable } from "@/lib/shared/components/appointmentBlocks/NoAppointmentBlocksAvailable"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; @@ -184,7 +183,11 @@ export function AppointmentBlockGroupsTable( <DataTable data={rows} columns={COLUMNS} - noDataComponent={() => <NoAppointmentBlocksAvailable />} + noDataComponent={() => ( + <NoAppointmentBlocksAvailable + href={routes.appointmentBlockGroups.new} + /> + )} getSubRows={getSubRows} sorting={tableControl.tableSorting} /> @@ -192,27 +195,3 @@ export function AppointmentBlockGroupsTable( </TablePage> ); } - -function NoAppointmentBlocksAvailable() { - return ( - <Stack - sx={{ - alignItems: "center", - justifyContent: "center", - flex: 1, - }} - > - <TodayOutlined sx={{ height: "40px", width: "40px" }} /> - <Typography sx={{ mt: 2, mb: 3 }}> - Aktuell keine Terminblöcke vorhanden - </Typography> - <InternalLinkButton - href={routes.appointmentBlockGroups.new} - size="sm" - startDecorator={<Schedule />} - > - Neuen Terminblock planen - </InternalLinkButton> - </Stack> - ); -} diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/options.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/options.ts index 2351eb77271482e9f9712c506cd0602f43d50719..e8a4b8f4aa9059ae8ba7e505b313923f82bef517 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/options.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentBlocks/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeForm.tsx index 8ab94f0e77820a266e297a8b411b6fa89f119da8..1a700f369d77d82d8d4ff52c735549ca4b80b65b 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeSidebar.tsx index 49b09bb3741b1a31264843b1882f3285e8d7b523..2862366240d64e82575f481c5afc1bdd4cf17ff0 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypeSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypesTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypesTable.tsx index c063754e8412fb3867960c27d683eb34c30aeba0..bce87dd2fde1ab24d87a114bfacb0806e8078dd5 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypesTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/AppointmentTypesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/columns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/columns.tsx index c4f7769a4a7df2a5e233484bbfb376c41602333b..e11a5819b1f149b180e5981dc54becd34673a846 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/columns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/translations.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/translations.ts index 17f937f8a39791139c04be3263cf75683341ae40..54c5840afe8f80640a747ff001ff2aed5bc0cc6e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/translations.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/appointmentTypes/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -20,6 +20,7 @@ export const APPOINTMENT_TYPES: EnumMap<ApiAppointmentType> = { [ApiAppointmentType.HivStiConsultation]: "HIV-STI-Beratung", [ApiAppointmentType.SexWork]: "Sexarbeit", [ApiAppointmentType.ResultsReview]: "Ergebnisbesprechung", + [ApiAppointmentType.OfficialMedicalService]: "Amtsärtzlicher Dienst", }; export const CREATED_BY_USER_TYPES: EnumMap<ApiCreatedByUserType> = { diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseForm.tsx index fcf6d370b7c483dfece7c093525e194ff20a5425..3de6a11db996ef4a5d136222a7d42b7188368a88 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseSidebar.tsx index b2b53502530f06f0a125f881620b120c04544aae..60f4e59a8aa3909873d14a86bb3843892f15de29 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseaseSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseasesTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseasesTable.tsx index 16880e24df7b672df9fca12c4416eeb6caa20490..5c4cbfcb4292dbcdc7780ec195941a0aa4bfbfde 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseasesTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/DiseasesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -15,10 +15,10 @@ import { useGetAllDiseasesQuery } from "@/lib/businessModules/travelMedicine/api import { useDiseaseSidebar } from "@/lib/businessModules/travelMedicine/components/diseases/DiseaseSidebar"; import { columns } from "@/lib/businessModules/travelMedicine/components/diseases/columns"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function DiseasesTable() { const [{ data: allDiseases }] = useSuspenseQueries({ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/columns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/columns.tsx index 9c45c70f85c11dfc8f34e1afb00f39c23c5844d4..9e1ca338e797c2a658c4b3a98d7300159024d1e0 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/columns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/diseases/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/icons/CalendarAddOnIcon.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/icons/CalendarAddOnIcon.tsx index a287630d5c759e92310469e013c46d7fdd26bfc7..1fe76014e0c58134bc816667f864bcdcc013968f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/icons/CalendarAddOnIcon.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/icons/CalendarAddOnIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EditCalendarIcon.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EditCalendarIcon.tsx index f2cbdb3f4147a4b18e06117bc972cbaa2832b39f..12f96c71aa585189277b3952753d825ca56d77ae 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EditCalendarIcon.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EditCalendarIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EventUpcomingIcon.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EventUpcomingIcon.tsx index f0cfb8e79619cc100d3c772c2d97b301ca879367..dd0c36780c30285c447788cef0faeb59199f9ae7 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EventUpcomingIcon.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/icons/EventUpcomingIcon.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebar.tsx index 80c040a936ce4c25a74f9e44f301f8bbe2aed7f2..ba0ce84976fe531bd7c79ef7e6c0d0e561356673 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebarForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebarForm.tsx index aecc4ef9ffdfd80ad43f5ec34527ac4809d8014c..e92a0825b86bf9a14596ef169ba90b6f0f50d0d3 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebarForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebarForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceTable.tsx index c1e2d558c1f88ba9a6d20c31fd74ded1e4802051..02ef76409aecc68a6773d67e7c5c99c281657a67 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -20,10 +20,10 @@ import { useGetAllOtherServiceTemplatesQuery } from "@/lib/businessModules/trave import { useOtherServiceSidebar } from "@/lib/businessModules/travelMedicine/components/otherServiceTemplates/OtherServiceSidebar"; import { otherServiceTemplatesColumns } from "@/lib/businessModules/travelMedicine/components/otherServiceTemplates/columns"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function OtherServiceTable() { const snackbar = useSnackbar(); diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/columns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/columns.tsx index 6902b8b92b572c2e04879916aa1e425ca7c0c9ba..beca53bf9e793c15fab43d0915bcbd465c3772f3 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/columns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/otherServiceTemplates/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/PersonSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/PersonSidebar.tsx index a4015f44a289201d02b761eef510f0d13a2a2a64..cff980efb898efb887e629e80ca91ae5cda76537 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/PersonSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/PersonSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -21,7 +21,6 @@ import { import { PersonForm } from "@/lib/businessModules/travelMedicine/components/personSidebar/person/PersonForm"; import { PersonSidebarMode } from "@/lib/businessModules/travelMedicine/components/personSidebar/personSidebarHelper"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; import { LegacyMinimalPerson } from "@/lib/shared/components/legacyPersonSidebar/form/LegacyBasePersonForm"; import { @@ -34,6 +33,7 @@ import { } from "@/lib/shared/components/legacyPersonSidebar/personSidebarHelper"; import { LegacyPersonSearch } from "@/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearch"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface PersonSidebarProps { open: boolean; diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/appointment/InitialAppointmentForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/appointment/InitialAppointmentForm.tsx index 273c045a4391ed8040df2e7efe59779f69ab1171..462451f10a7b6eaffb21bea4a9a4ca6ceb97c144 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/appointment/InitialAppointmentForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/appointment/InitialAppointmentForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/person/PersonForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/person/PersonForm.tsx index e13ef923be8289a24fc8fbd2dfaaba83dfed99b6..a17c0d19b105a972c2641de4756134feddcc0db3 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/person/PersonForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/person/PersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/personSidebarHelper.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/personSidebarHelper.ts index 6ca81fd17bfc0a91a873ed6bb37377e35c58cdf6..e1de7946d6d25d6428f6b9e761e4324af2bc87be 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/personSidebarHelper.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/personSidebar/personSidebarHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateEditor.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateEditor.tsx index 423322d07b1950a4704550c6b38a6659a7b945f5..7b038d5e2b861bb725c5ac127ba18264eb0274fe 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateEditor.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateEditor.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateMetaInfo.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateMetaInfo.tsx index 30585ab13875194cc7d1ab40ee7ffcdfe4ee2df4..9a91e6c6fb998aa7b8b5a275c4384c42d71fec96 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateMetaInfo.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateMetaInfo.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateOverviewTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateOverviewTable.tsx index 09ee6d44fe46ab0f653a8cd27e6702fc997c1ef0..cfc28cd171454ea03657ec6ec71644e09d062900 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/InformationStatementTemplateOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/columns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/columns.tsx index 768ae3c1f5c0c468891e070350214f688f595861..1774581f37b9b80547872a0ab21f2590acca8d37 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/columns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/constants.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/constants.ts index 3d9ee45daaa465fc8052e0b163da55e712a588d0..1c9743b83917d0a315b526841b9aa5e233236b98 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/constants.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/options.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/options.ts index 15c7d407bb069f876c799b89511758aeba00674e..c9f86813d64a2ee22496f2e5e315955d2f1be655 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/options.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/translations.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/translations.ts index 6f10653aa1af9b62accd36428645ae67cdb1458f..3b0123e0869a22adc3e0bc4807d462cece6eff88 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/translations.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/informationStatement/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateEditor.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateEditor.tsx index fbc67ea2f6eeae69a0eb27d153fb030c9cc6697a..ffdaa0b6064434b0807bc04bffea3c96e7dc5391 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateEditor.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateEditor.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateOverviewTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateOverviewTable.tsx index 5be00ffd54a8e4ff3003f8b45f77991361776918..46ee42e6585833ec2bfd955226a12f788443fe4e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateTitle.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateTitle.tsx index 8690d2f18a3dd22d3a0af97929fe79524ee22dac..fa15e7eb8f9b9b387629a0e5a2851b0c2b28ff2f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateTitle.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/MedicalHistoryTemplateTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/columns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/columns.tsx index 12c8e30f00e7ff37e50a4e077348ce67456ebefa..5c63e3c97f44fa6a9fa379553eee871e27884ae0 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/columns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/constants.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/constants.ts index 0c1aac5cd1ad4ddce73dd8c74e42aee35353ed75..70dbd012feb3d05c456910b2ee9860aa9d595a6f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/constants.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/options.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/options.ts index d84be00bb686c35cb2fbbe4a7770caa88228edbb..bdbe5af758d69823955820fc181cf589a42a8bd9 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/options.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/translations.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/translations.ts index 40ffa8daecf043ce3cdb04dc650b16b7b32ee849..b400d9ca442c7ccb7cf8206855a2d10287c0ebfa 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/translations.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/templates/medicalHistory/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchFilterSettings.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchFilterSettings.tsx index 17867b91217a653af20a5b9d0d8085ae464a6bf0..7a7d8a1ba9511a54100cde6ad52189783ea25ca3 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchFilterSettings.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchFilterSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchTable.tsx index 6289419b9621759d4fd84fbca097bb6569fa27e3..ccfd91ccdce74b7444d5bca8870a1aa51663b6c8 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/VaccinationConsultationsSearchTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/searchColumns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/searchColumns.tsx index 8b7f9ef28236b5141e0709e0698169c0ecd4892f..fe62530efb25f14e8ad4419ebcacf4b13c232e0c 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/searchColumns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultationSearch/searchColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabHeader.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabHeader.tsx index 4548715db460ef077ee03a7c89623c508bd984be..01abd687e59eba8384200c6eee749a07f8131a07 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabHeader.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabNavigationToolbar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabNavigationToolbar.tsx index 8e81b502f299fc1b3b8a7b6af3fa165b54dbeb73..edb575dd5dc219a013bdcae78bcf95d06425b6bf 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabNavigationToolbar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationTabNavigationToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -91,7 +91,7 @@ function createTabItems( }, { tabButtonName: "Verlaufseinträge", - href: `${businessRoutes.procedures.progressEntries(procedureId).index}`, + href: `${businessRoutes.procedures.progressEntries(procedureId)}`, decorator: <TimelineOutlined />, }, ].filter(isPlainObject); diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationsOverviewTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationsOverviewTable.tsx index 53726573d9174abddd6a808f20504f42f7d9f4bd..ed0360e24260254f942e0288cfbae34c44ccada5 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationsOverviewTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/VaccinationConsultationsOverviewTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AbortProcedureModal.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AbortProcedureModal.tsx index 8b9866d9fb2c38dade9dd53179e5ff14cf4098ed..f6032c4d8c8e8c6b21d0c4c8b0e13bdff0357085 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AbortProcedureModal.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AbortProcedureModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureForm.tsx index 5786ab8c41eb737725e879005f17c7f14d8c38dd..e2e772a4e8151a0876dc05e73069c41e7fbe78cf 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureSidebar.tsx index eeaa92090b7897721b7e1602430cc0113e218aec..9263fb8c3f866b3d40441cfad07703eb15582d6f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/AcceptProcedureSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/CancelAppointmentModal.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/CancelAppointmentModal.tsx deleted file mode 100644 index df836068a271af96998fa90c98c6cee8171002fc..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/CancelAppointmentModal.tsx +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import { - BaseModal, - BaseModalPropsRequiredClose, -} from "@eshg/lib-portal/components/BaseModal"; -import { Button, Stack, Typography } from "@mui/joy"; - -import { useDeleteAppointmentEp } from "@/lib/businessModules/travelMedicine/api/mutations/procedureSteps"; - -interface CancelAppointmentModalProps - extends Omit<BaseModalPropsRequiredClose, "children" | "modalTitle"> { - procedureStepId: string; -} - -export function CancelAppointmentModal(props: CancelAppointmentModalProps) { - const cancelAppointmentApi = useDeleteAppointmentEp(); - - async function handleSubmit() { - await cancelAppointmentApi.mutateAsync( - { - procedureStepId: props.procedureStepId, - }, - { - onSuccess: () => { - props.onClose(); - }, - }, - ); - } - - return ( - <BaseModal modalTitle="Termin absagen?" {...props}> - <Typography level="body-md" marginBottom={3}> - Wollen Sie den Termin wirklich absagen? Die zu impfende Person erhält - eine Bestätigung per E-Mail. - </Typography> - <Stack - direction="row" - gap={2} - alignItems="center" - justifyContent="flex-end" - > - <Button variant="outlined" color="neutral" onClick={props.onClose}> - Abbrechen - </Button> - - <Button color="primary" onClick={handleSubmit}> - Bestätigen - </Button> - </Stack> - </BaseModal> - ); -} diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/DetailsGrid.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/DetailsGrid.tsx index c0afb336ae1b45ec60f14ba2a006be79296cb2f7..59855a6e0f38fbba2bf9394419613e1611373464 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/DetailsGrid.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/DetailsGrid.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientDetails.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientDetails.tsx index e9ba392c1e2b36e9c8ca119aad3378970f6af447..a2b63108582deb54c54bccb6d5dd3ab85f9133fa 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientDetails.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -9,6 +9,11 @@ import { ApiPatient, ApiSalutation, } from "@eshg/employee-portal-api/travelMedicine"; +import { + GENDER_VALUES, + SALUTATION_VALUES, + getOptionalTitle, +} from "@eshg/lib-portal/components/formFields/constants"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { Divider, Stack, Typography } from "@mui/joy"; @@ -21,11 +26,6 @@ import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell" import { DetailsRow } from "@/lib/shared/components/detailsSection/DetailsRow"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { - GENDER_VALUES, - SALUTATION_VALUES, - getOptionalTitle, -} from "@/lib/shared/components/personSidebar/constants"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { BaseAddress } from "@/lib/shared/helpers/address"; diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientPanel.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientPanel.tsx index 575b49fb610389f9f4d1ba5deaf4965abc744305..9eb5649674cda125ff32569fd6416d6a6e394677 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientPanel.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/PatientPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureActionsPanel.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureActionsPanel.tsx index 5a7746a68e950ee99a02ca0780a753588fa4e3cd..23bc387fb8082b9656653b47f80abdd49617cfdf 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureActionsPanel.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureActionsPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureCreatedByTile.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureCreatedByTile.tsx index 855851cff732d159ed7b1e7c3175a13a2686efe8..c5991b7690ff5472e80ef891945109bf77cfbd7e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureCreatedByTile.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureCreatedByTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureDetailsPanel.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureDetailsPanel.tsx index 9906e61b4a7ea31b15d984b146b997b815b29b6a..9d80b9a32e1fd616bd291e631d4f71aa5ae10768 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureDetailsPanel.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ProcedureDetailsPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanColumns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanColumns.tsx index d212be0042ffd39da524003792159227fd39afad..6bfc4bebebdb2c3576a2d52d3e525aa6c5fdfbaf 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanColumns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanTable.tsx index b0800068fddeb61090c7a94b9bcf61e38436ff8d..85fbbaa2b71f2298a19a71f67717354f76a10826 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,8 +17,8 @@ import { AddOutlined } from "@mui/icons-material"; import { Button, Grid } from "@mui/joy"; import { useSuspenseQueries } from "@tanstack/react-query"; import { useRouter } from "next/navigation"; -import { useState } from "react"; +import { useDeleteAppointmentEp } from "@/lib/businessModules/travelMedicine/api/mutations/procedureSteps"; import { useDeleteService, useUnassignStepToService, @@ -27,7 +27,6 @@ import { useGetAllMedicalAssistantsQuery, useGetAllPhysiciansQuery, } from "@/lib/businessModules/travelMedicine/api/queries/appointmentStaff"; -import { CancelAppointmentModal } from "@/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/CancelAppointmentModal"; import { servicePlanColumns } from "@/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/ServicePlanColumns"; import { TableTitle } from "@/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TableTitle"; import { useAddServiceAppointmentSidebar } from "@/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServiceAppointmentSidebar"; @@ -38,10 +37,10 @@ import { useEditServiceAppointmentSidebar } from "@/lib/businessModules/travelMe import { useOtherServiceAppliedSidebar } from "@/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/OtherServiceAppliedSidebar"; import { useServiceAppliedSidebar } from "@/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/ServiceAppliedSidebar"; import { routes } from "@/lib/businessModules/travelMedicine/shared/routes"; -import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useSessionStorage } from "@/lib/shared/hooks/useSessionStorage"; function getSubRows(servicePlanEntry: ServicePlanEntry) { @@ -90,14 +89,12 @@ export function ServicePlanTable({ "most-recent-users", ); - const [cancelModal, setCancelModal] = useState({ - isOpen: false, - procedureStepId: "", - }); + const { openConfirmationDialog } = useConfirmationDialog(); const router = useRouter(); const deleteServiceApi = useDeleteService(); const unassignStepApi = useUnassignStepToService(); + const cancelAppointmentApi = useDeleteAppointmentEp(); const addServiceAppointmentSidebar = useAddServiceAppointmentSidebar(); const addServicePlanSidebar = useAddServicePlanSidebar(); @@ -192,111 +189,107 @@ export function ServicePlanTable({ } return ( - <> - <TablePage data-testid="vc-service-plan"> - <TableSheet - title={<TableTitle title="Leistungsplan" />} - footer={ - !isProcedureClosed && ( - <Grid xs={12}> + <TablePage data-testid="vc-service-plan"> + <TableSheet + title={<TableTitle title="Leistungsplan" />} + footer={ + !isProcedureClosed && ( + <Grid xs={12}> + <Button + color="primary" + variant="plain" + startDecorator={<AddOutlined />} + onClick={() => { + addServicePlanSidebar.open({ procedureId: procedureId }); + }} + > + Leistung hinzufügen + </Button> + {hasOpenServices(data) && ( <Button color="primary" variant="plain" startDecorator={<AddOutlined />} - onClick={() => { - addServicePlanSidebar.open({ procedureId: procedureId }); - }} + onClick={() => + addServiceAppointmentSidebar.open({ + procedureId: procedureId, + isCitizenFollowUp: isCitizenFollowUp(procedureId), + }) + } > - Leistung hinzufügen + Impftermin erstellen </Button> - {hasOpenServices(data) && ( - <Button - color="primary" - variant="plain" - startDecorator={<AddOutlined />} - onClick={() => - addServiceAppointmentSidebar.open({ - procedureId: procedureId, - isCitizenFollowUp: isCitizenFollowUp(procedureId), - }) - } - > - Impftermin erstellen - </Button> - )} - </Grid> - ) - } - hideTable={data.length === 0} - > - <DataTable - data={rows} - getSubRows={getSubRows} - columns={servicePlanColumns({ - allPhysicians: allPhysicians, - allMedicalAssistants: allMedicalAssistants, - isProcedureClosed, - isCitizenProcedure: - createdByUserType === ApiCreatedByUserType.CitizenPortal, - isInitialStep: (procedureStepId) => - isInitialStep(procedureStepId), - onDeleteService: (serviceId) => - deleteService(procedureId, serviceId), - onUnassignService: (serviceId) => - unassignStepToService(procedureId, serviceId), - onOpenMedicalHistory: (procedureStepId) => - openMedicalHistory(procedureId, procedureStepId), - onOpenCertificatesTab: () => navigateToCertificates(procedureId), - onEditServiceAppointment: (procedureStep) => - editServiceAppointmentSidebar.open({ - procedureId: procedureId, - procedureStep: procedureStep, - isInitialStep: (procedureStepId) => - isInitialStep(procedureStepId), - }), - onAssignService: (serviceId) => - assignServiceSidebar.open({ - procedureId: procedureId, - serviceId: serviceId, - }), - onServiceApplied: (service) => - serviceAppliedSidebar.open({ - procedureId: procedureId, - storedUsers: currentUsers, - setStoredUsers: setCurrentUsers, - service: service, - }), - onOtherServiceApplied: (service) => - otherServiceAppliedSidebar.open({ - procedureId: procedureId, - storedUsers: currentUsers, - setStoredUsers: setCurrentUsers, - service: service, - }), - onEditEarliestDate: (procedureStep) => - editEarliestDateSidebar.open({ - procedureId: procedureId, - procedureStep: procedureStep, - }), - onCancelAppointment: (procedureStepId) => - setCancelModal({ - isOpen: true, - procedureStepId: procedureStepId, - }), - })} - striped={false} - initialExpanded={true} - minWidth={1700} - /> - </TableSheet> - </TablePage> - <OverlayBoundary> - <CancelAppointmentModal - procedureStepId={cancelModal.procedureStepId} - open={cancelModal.isOpen} - onClose={() => setCancelModal({ isOpen: false, procedureStepId: "" })} + )} + </Grid> + ) + } + hideTable={data.length === 0} + > + <DataTable + data={rows} + getSubRows={getSubRows} + columns={servicePlanColumns({ + allPhysicians: allPhysicians, + allMedicalAssistants: allMedicalAssistants, + isProcedureClosed, + isCitizenProcedure: + createdByUserType === ApiCreatedByUserType.CitizenPortal, + isInitialStep: (procedureStepId) => isInitialStep(procedureStepId), + onDeleteService: (serviceId) => + deleteService(procedureId, serviceId), + onUnassignService: (serviceId) => + unassignStepToService(procedureId, serviceId), + onOpenMedicalHistory: (procedureStepId) => + openMedicalHistory(procedureId, procedureStepId), + onOpenCertificatesTab: () => navigateToCertificates(procedureId), + onEditServiceAppointment: (procedureStep) => + editServiceAppointmentSidebar.open({ + procedureId: procedureId, + procedureStep: procedureStep, + isInitialStep: (procedureStepId) => + isInitialStep(procedureStepId), + }), + onAssignService: (serviceId) => + assignServiceSidebar.open({ + procedureId: procedureId, + serviceId: serviceId, + }), + onServiceApplied: (service) => + serviceAppliedSidebar.open({ + procedureId: procedureId, + storedUsers: currentUsers, + setStoredUsers: setCurrentUsers, + service: service, + }), + onOtherServiceApplied: (service) => + otherServiceAppliedSidebar.open({ + procedureId: procedureId, + storedUsers: currentUsers, + setStoredUsers: setCurrentUsers, + service: service, + }), + onEditEarliestDate: (procedureStep) => + editEarliestDateSidebar.open({ + procedureId: procedureId, + procedureStep: procedureStep, + }), + onCancelAppointment: (procedureStepId) => + openConfirmationDialog({ + title: "Termin absagen?", + description: + "Wollen Sie den Termin wirklich absagen? Die zu impfende Person erhält eine Bestätigung per E-Mail.", + confirmLabel: "Bestätigen", + onConfirm: async () => + await cancelAppointmentApi.mutateAsync({ + procedureStepId: procedureStepId, + }), + }), + })} + striped={false} + initialExpanded={true} + minWidth={1700} /> - </OverlayBoundary> - </> + </TableSheet> + </TablePage> ); } diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TableTitle.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TableTitle.tsx index afb5e85a21e0083f7307777e1323e1db1ac37877..efe26f3cbd3108e1f209d015d591cdd151e2a616 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TableTitle.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TableTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TravelDataTile.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TravelDataTile.tsx index 3488ae51498fc2a049c2cc271d9e5f396fd0fc74..5185ab70a5d0cd5fb51f5f95184c979fb16eff43 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TravelDataTile.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/TravelDataTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/VaccinationConsultationDetails.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/VaccinationConsultationDetails.tsx index 51611cfbd116b33862bff95fd6ad44cf6360158c..63b6944bc9dff1ec4a4142fd15d5868f9768e170 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/VaccinationConsultationDetails.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/VaccinationConsultationDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServiceAppointmentSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServiceAppointmentSidebar.tsx index 632f1c712afdf20690d425af319883271b9ac73e..b2bfa7198629bb1d807d71c434eef01faaa8521a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServiceAppointmentSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServiceAppointmentSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServicePlanSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServicePlanSidebar.tsx index 2b9e6327b729f7d241e96f29d4990e05994f5b0e..7662230a9cb07e4ac24257b9a1935dea2ae613c7 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServicePlanSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AddServicePlanSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AssignServiceSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AssignServiceSidebar.tsx index e8905d842961346f69508e6109605fea55a4b1df..4d07fbcefae408c3b418ebecc75a0ef21320a1ba 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AssignServiceSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/AssignServiceSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditEarliestDateSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditEarliestDateSidebar.tsx index f786a28aa32e8b69817444261dc2ed7979f01ad1..1fbf7ebef879256aa64925c4d9f86847bc2c0fe1 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditEarliestDateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditEarliestDateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditServiceAppointmentSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditServiceAppointmentSidebar.tsx index 5e53015ef99efb4fc4aa0a9a5bf2504a527b2e6d..e42d314b2a00cb259e158586b2a301e3953fa67f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditServiceAppointmentSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/EditServiceAppointmentSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/OtherServiceAppliedSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/OtherServiceAppliedSidebar.tsx index 2d3c5ce2f083ea83b623ae0f87ba52199637a245..40cd0bb3f1b78cbd6ea9a21c81575c7f3d042a80 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/OtherServiceAppliedSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/OtherServiceAppliedSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/ServiceAppliedSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/ServiceAppliedSidebar.tsx index a17aeaaee17a4b679f899b805fc5ef543d7eda0f..afc596697107c1d8dd8c9a327c1d31fc5b2f3860 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/ServiceAppliedSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/ServiceAppliedSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/TravelDataSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/TravelDataSidebar.tsx index 278a20fe0a7530bd4a078c2013a84bfbcf63f0f8..58d9bf8387e053fd11cbffc7f8ef309e188e1efb 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/TravelDataSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/TravelDataSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServiceAppointmentForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServiceAppointmentForm.tsx index 2ba9959f5970aba4c6d107040dad57034f6cfa33..c6c5598fd1708786e0782a4541bc9e077de1a073 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServiceAppointmentForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServiceAppointmentForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServicePlanForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServicePlanForm.tsx index 537960f7dcd883f35c50a806e86e01af2cdd03aa..86fbe28e9a90b596921d81e3628ef79a72b8f736 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServicePlanForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AddServicePlanForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppliedByFields.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppliedByFields.tsx index 2ad183a9138b05847e4ed51ee902a2755136d146..0db47fe71413b452d9f17649b787e82b53024e04 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppliedByFields.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppliedByFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppointmentSheet.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppointmentSheet.tsx index 0fac3e7cea0fcad21a4a833d678e6ebca0f335bd..8ae7ae1710c97bcc079aabfb44ac4f0eb1a64f89 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppointmentSheet.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AppointmentSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AsssignServiceForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AsssignServiceForm.tsx index 4241a6932ba9c46eadf3bad7fd6a9c7a6dd064bd..6e556384f960168f2f6a6ce3792ea07d0198ed7b 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AsssignServiceForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/AsssignServiceForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditEarliestDateForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditEarliestDateForm.tsx index c5604960956dbf6fa7474ab960c6a7c45e03a532..bd56f39ced01e842940a2adb8f9c3665333627be 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditEarliestDateForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditEarliestDateForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditServiceAppointmentForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditServiceAppointmentForm.tsx index f7b99cff7514838ced2ec775e45697b5ddf4a778..2a68dd26f3b5599d610161025fbbb4d90317096f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditServiceAppointmentForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/EditServiceAppointmentForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/InformationStatementForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/InformationStatementForm.tsx index 8c6bdda08a4111be26a061222790533e42e80666..8d4ce8ca3689e55e19703b607b0e8a271097db66 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/InformationStatementForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/InformationStatementForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServiceAppliedForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServiceAppliedForm.tsx index a25169c4f3557a1df2042c5b375229e3beb83fe1..fcbe3097e447b723149b8e66fed1902aa461c896 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServiceAppliedForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServiceAppliedForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServicesFields.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServicesFields.tsx index 740f1bd389b4e638e3be9169d648fdb3a575e608..59f5bb194f0cc25aedd5f1759c677f0e9ef87c63 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServicesFields.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/OtherServicesFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServiceAppliedForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServiceAppliedForm.tsx index 9dfffae0cf443c42902a5cadb9350754a73993df..732a4ceb0434c551940398b01944edc43963044a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServiceAppliedForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServiceAppliedForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServicesSheet.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServicesSheet.tsx index 4d1a129d88ba5839d7848f0e46af9b091d9f2e66..bf4eff0870a7b4216c5134464770f6210007f01f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServicesSheet.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/ServicesSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/TravelDataForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/TravelDataForm.tsx index 8b8e97903c7880ee3c82543891264d2843cc073c..3e0fdc193c4a5ed141cc220feae2e14135ef2458 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/TravelDataForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/TravelDataForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/VaccinationFields.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/VaccinationFields.tsx index b37f77cd528ede6fc378a64b415d043741cba3a5..da5879a6c04d24e7a4d5f8ff1b0300ebc9b89fbf 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/VaccinationFields.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/baseData/sidebars/sidebarForms/VaccinationFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateForm.tsx index 9544f4c23117417be0cf1d1fd00382d94d173320..bea96c948d77e4b059841bab28468432a4249d2d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateSidebar.tsx index 9c0099d567a550a31eb294f226db202ad16be866..b0dd35932dc83ed9c13d41d989681cb2e671f6f6 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificateSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificatesTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificatesTable.tsx index 33e17ec84c58f501a39d9f7ec7f6d77565dc072f..51ec0b6922de9129e63907077c2385774ef8fe3f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificatesTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/CertificatesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/columns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/columns.tsx index 12bc8f502998ea89e816a8f06d790aca2f2bf1ed..6c4b4da0d7f1ad8900abbffb34984d56be79ba76 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/columns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/options.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/options.ts index 7b50cae59923992ae4d445674e661dc3da65b847..009e82039f23c61573d8725fd1e94e54403e5f9b 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/options.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/translations.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/translations.ts index fc6ff94715343239eb0cc3b11091adf3c0afe6d4..bf12756a7c4a9243829ec865dacdb11095ef461f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/translations.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/certificates/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/CitizenHasAnsweredChip.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/CitizenHasAnsweredChip.tsx index d14e65da65f55f265b4d6d44c160922a845c58bd..ef9e94a7d208fd856c966e2c4fcb566597758349 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/CitizenHasAnsweredChip.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/CitizenHasAnsweredChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementSidebar.tsx index d72406936706f0d5bce73be49f808cd1f9ac57dc..b1dd6300b0a540b4de7ce11324c1413c38fe2ca5 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsColumns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsColumns.tsx index 069e618ed120929942482f234228e2a270a776d0..df6954783fadcb2ec8630196b662bd68fe75376d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsColumns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsTable.tsx index 644d4006358f9e4083aa207e57d5ab162d451ba1..3199bea9535d1aece11c85f9ca799bee413f0037 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -27,10 +27,10 @@ import { } from "@/lib/businessModules/travelMedicine/api/queries/vaccinationConsultation"; import { useInformationStatementSidebar } from "@/lib/businessModules/travelMedicine/components/vaccinationConsultations/informationStatements/InformationStatementSidebar"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { informationStatementsColumns } from "./InformationStatementsColumns"; diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/ConfirmationElement.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/ConfirmationElement.tsx index 45192458981f68ea52bc346232cd8ca396c82414..4a35be7ad90e1b9fe06472c76eff01c7108592a7 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/ConfirmationElement.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/ConfirmationElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistory.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistory.tsx index e42725632f62c762ccf356f249011dd9df9bf92b..c4b91a95251135612c4cf54ea01454cab9c7cfbc 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistory.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistory.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryContent.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryContent.tsx index 921d4970f5254e28aef2623098656f50255b2115..60aa76882990df4eb8fdac2432318ac6a4cbf67a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryContent.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryMultiSelectElement.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryMultiSelectElement.tsx index 2f6a3b30465f2e569aa6b7c5af4ad00ecac35d38..e8a534f9018bd9d5fd90d3f15ec98ba8e879ef67 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryMultiSelectElement.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryMultiSelectElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryRadioButtonElement.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryRadioButtonElement.tsx index 187f16ab240ad97c3de2c2e3cfd90ce4346366de..aa457d2f6345207affec0705405097bb1fd4ad17 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryRadioButtonElement.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryRadioButtonElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySection.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySection.tsx index f52d91ed180e989fb38234ee055ad55512ee8eb7..f43aabe947ed1ace1fbd73dc6ff4a123672e82e7 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySection.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElement.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElement.tsx index b1a56e91f6480b96b7ffd784e351b2f89f227c0a..db1832d7e495014f9fb18582a35bccca652f629a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElement.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElements.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElements.tsx index 3e2da2419e54cd456e02d94d2f11f2cc8e314dd9..92cac7f86779c5ab9ef90f16f62d620d5c909a5a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElements.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySectionElements.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySections.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySections.tsx index 75c9c2d9d55600736c1629c3651671af1d424bc5..b1408794025115b66654f7247228c2cf7486907d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySections.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistorySections.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryTextareaElement.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryTextareaElement.tsx index 75f95179c1fd6b834763499b74070895d8903424..340589b6688a43c39acddab38ea4960a18a0eb9d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryTextareaElement.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/medicalHistory/MedicalHistoryTextareaElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/new/NewPerson.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/new/NewPerson.tsx index c916a2c6764ed5738ff1d12870abd04b22669f02..87825521206fa150569562eca08d1e1b2d90580a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/new/NewPerson.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/new/NewPerson.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/overviewColumns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/overviewColumns.tsx index 78183228b12a79d5f741e8a8499bd68f890aba5a..f10e5bdacc075148e8cd0c2ff3550dd6dfd697c7 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/overviewColumns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/overviewColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/AppointmentRadioGroup.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/AppointmentRadioGroup.tsx index d628b9c0b87051e66bae8ec4fd80f1a4815e0b3d..88d97b0fcf05ddadf683a90a3fca6670f5ebff2e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/AppointmentRadioGroup.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/AppointmentRadioGroup.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,6 +8,7 @@ import { ApiAppointmentType, } from "@eshg/employee-portal-api/travelMedicine"; import { NumberField } from "@eshg/lib-portal/components/formFields/NumberField"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { SelectOption } from "@eshg/lib-portal/components/formFields/SelectOptions"; import { AppointmentPickerField, @@ -20,7 +21,6 @@ import { useState } from "react"; import { Appointment } from "@/lib/businessModules/travelMedicine/api/models/Appointment"; import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; import { DateTimeField } from "@/lib/shared/components/formFields/DateTimeField"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; interface AppointmentRadioGroupProps { type?: ApiAppointmentType; diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CheckboxGroup.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CheckboxGroup.tsx index 6ca52084d98195eb5a19f4ac109e9b9f0eef3c58..d286ac7c6e8b4f43abe3e44909d5fde63697aaa8 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CheckboxGroup.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CheckboxGroup.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CountryFieldMulti.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CountryFieldMulti.tsx index 06c2f194338582c83df3254d3db626c566fc8b0a..1b81f64789ffe954dee5699a969fd523950b8f98 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CountryFieldMulti.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/CountryFieldMulti.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/HorizontalFieldLabelEnd.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/HorizontalFieldLabelEnd.tsx index e25d102e7cf2278f852f71e2a01aa8d36779aa50..3f309d9e2f4e97bda083116aa6b0835c0845bb4a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/HorizontalFieldLabelEnd.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/HorizontalFieldLabelEnd.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/LegacyAppointmentRadioGroup.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/LegacyAppointmentRadioGroup.tsx index b024a896c87fb6c72e4ceebb5a5abf60fe4982e0..4cc5e514d98cd17ea96a55d72dc0748dab28d393 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/LegacyAppointmentRadioGroup.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/LegacyAppointmentRadioGroup.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,6 +8,7 @@ import { ApiAppointmentType, } from "@eshg/employee-portal-api/travelMedicine"; import { NumberField } from "@eshg/lib-portal/components/formFields/NumberField"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { SelectOption } from "@eshg/lib-portal/components/formFields/SelectOptions"; import { AppointmentPickerField, @@ -20,7 +21,6 @@ import { useState } from "react"; import { useGetFreeAppointmentsUnsuspended } from "@/lib/businessModules/travelMedicine/api/queries/appointmentBlocks"; import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; import { DateTimeField } from "@/lib/shared/components/formFields/DateTimeField"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; interface AppointmentRadioGroupProps { type?: ApiAppointmentType; diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/constants.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/constants.ts index e75a899ed573272fd23ec61dc9cc33c44b513719..a438317360356412e8cb62326caba4acca5e37a8 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/helpers.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/helpers.ts index 2cdc4e3f315be9eb7243e308152252213a024027..01de9107ecdddf3aa196b4b77bdf1a687d77dcec 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/helpers.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/options.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/options.ts index 827597a8ce725176b1d72f2ac0714bf0361444e1..237cc89c14c28bf4e9eef258c75080718442243f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/options.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/options.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/translations.ts b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/translations.ts index 9ba6d77e454b5de99fe1f2e4bc609c8299432764..d1a2adc82776237dfbf3842f69719793e1c78fc0 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/translations.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccinationConsultations/shared/translations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineForm.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineForm.tsx index 2ee92e200cf44cc26ffef40457f10fd2fbf67763..b7b5bdeed7681f9928cecca9df03bb6b9fac458d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineForm.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineSidebar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineSidebar.tsx index 398f0098cbcb7fae83159b31b9036b98a83e3ebd..66ea5d9ad8dba89cb471138e2df040c65e5cb63a 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineSidebar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccineSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccinesTable.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccinesTable.tsx index d360d377c285a091e262a9d6d26b98268decdd0d..d35f127d3d921aaa35f5b4dac21199bd91386079 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccinesTable.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/VaccinesTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -20,10 +20,10 @@ import { import { useVaccineSidebar } from "@/lib/businessModules/travelMedicine/components/vaccines/VaccineSidebar"; import { columns } from "@/lib/businessModules/travelMedicine/components/vaccines/columns"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export function VaccinesTable() { const [ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/columns.tsx b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/columns.tsx index f9d3e3b5927b4e6192559cd7ebbe05fe11b99cb3..586c0626bfb5f7d9f6788865381d5bd22f9ed88c 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/columns.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/components/vaccines/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/ToggledPage.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/ToggledPage.tsx index f6443d134274970a4956a45063e52bcf691ef976..5e10bf3bf85fec27e86268b66303da78fa5e56dc 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/ToggledPage.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/ToggledPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/appointmentTypes.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/appointmentTypes.ts index 5e534cc76dddc32abfe925c4cba2bed22fb7f7a6..ea06e6d0c712f215c38e1b640e24eb436c90d370 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/appointmentTypes.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/appointmentTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,4 +17,5 @@ export const appointmentTypes: EnumMap<ApiAppointmentType> = { [ApiAppointmentType.HivStiConsultation]: "HIV-STI-Beratung", [ApiAppointmentType.SexWork]: "Sexarbeit", [ApiAppointmentType.ResultsReview]: "Ergebnisbesprechung", + [ApiAppointmentType.OfficialMedicalService]: "Amtsärtzlicher Dienst", }; diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/constants.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/constants.ts index 030548e32478878916a437fae25ebfa9b5b4548b..1ad382554f7f775db8398688bb4117c5cdd159eb 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/constants.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/currentUsers.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/currentUsers.ts index 360d8a19cde4421c98f38361a86e6e88f87d6c05..816522bffc62518cd25f428a70aa4b2135773b9d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/currentUsers.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/currentUsers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/helper.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/helper.ts index 405a0c03b5b709c9ad8c10df0ecee6d6345bce31..bf3f48cc8dcda97fa8352e2ffd0097aec3435181 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/helper.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/helper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/moduleUserGroup.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/moduleUserGroup.ts index a6deb3cd577888a50c03ec8774a2c5a184b3f970..7bc9e3d405f1f1c94732ec120b18f88185891b74 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/moduleUserGroup.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/moduleUserGroup.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/routes.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/routes.ts index 4fc27609d00146dd5faa70afb38bf0fa6ce006cf..56e4b38d218c9a1783b2641f91b8dfadff6b8b00 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/routes.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -43,11 +43,8 @@ export const routes = { `${proceduresPath}/${procedureId}/certificates`, downloadFile: (fileId: string) => `${proceduresPath}/download-file/${fileId}`, - progressEntries: (procedureId: string) => ({ - index: `${proceduresPath}/${procedureId}/progress-entries`, - details: (entryId: string) => - `${proceduresPath}/${procedureId}/progress-entries/${entryId}/details`, - }), + progressEntries: (procedureId: string) => + `${proceduresPath}/${procedureId}/progress-entries`, syncPerson: ( procedureId: string, fileStateId: string, diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/sideNavigationItem.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/sideNavigationItem.tsx index c21cd021d066b1d03e81ee8ee5d670bf9ad880d2..cc7f91af4874039f8e50e0e3236c2970f9a5069e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/sideNavigationItem.tsx @@ -1,11 +1,11 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiBaseFeature, ApiUserRole } from "@eshg/employee-portal-api/base"; import { ApiTravelMedicineFeature } from "@eshg/employee-portal-api/travelMedicine"; -import { Vaccines } from "@mui/icons-material"; +import { VaccinesOutlined } from "@mui/icons-material"; import { isPlainObject } from "remeda"; import { useIsNewFeatureEnabled } from "@/lib/baseModule/api/queries/feature"; @@ -35,7 +35,7 @@ export function useSideNavigationItems(): UseSideNavigationItemsResult { items: [ { name: "Impfberatung", - decorator: <Vaccines />, + decorator: <VaccinesOutlined />, error: isTravelMedicineError ? "Bei der Verbindung zum Modul Impfberatung ist ein Fehler aufgetreten." : undefined, diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorButtonBar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorButtonBar.tsx index 8a14e1eb537d523ea896aca238e11f918f0b9e08..f709bfe6c4cdacbccb12d88a21a74d11c25a36b2 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorButtonBar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorMainContent.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorMainContent.tsx index 7f38cf057bc3e83f0cb206a1063880ec675ec2e2..c9b33cb1114afb6e4e21b2056b80978018f35bee 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorMainContent.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/TemplateEditorMainContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionButtonBar.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionButtonBar.tsx index b94ec99791d320bdceb02622c245935ab8ecffe0..c5e01ce1ad8ffd4108dd8eb4c61a038a391dce4e 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionButtonBar.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionTitle.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionTitle.tsx index 547c653ea592c30964b99b447d7a72d34c20a143..066a5fcba8feb04477217c0257797ee6e229286b 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionTitle.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/SectionTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSection.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSection.tsx index dfa976ebe934000eec1821df121801ea3d4a2aaf..a277299b33bd87ef3c82c03ed6d9262ae9b94992 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSection.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSectionList.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSectionList.tsx index afd4c50834750cc38b0431414cb5a8e2f4e989df..080b2dea8e556db058eca4736ba07ae0c6bb8feb 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSectionList.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/TemplateSectionList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementBox.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementBox.tsx index 236f58a132e9ff1b28675877649dd75c23959349..788480f6efc5856030be766e926207f145fcfd9f 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementBox.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementBox.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementHeading.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementHeading.tsx index e6d8c699b4c8ec276fbd8f6ca1c48047d5511741..f895c41b6b6d850a4a0cd6707fc444d74eacb263 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementHeading.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/DataElementHeading.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionDataElementList.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionDataElementList.tsx index 5d9fa6888acc94e4bd93b8d0a0b1f0d772ffaa0c..2aa62991ac0b925e06c289ae60ef47f973a4ad6d 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionDataElementList.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionDataElementList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionElementComponentFactory.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionElementComponentFactory.tsx index fc3c52c40d4c760cf0225ba637c720f3d42601e5..570640c3d249c8fd3d3a5ae9d5b2da4cecabf572 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionElementComponentFactory.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/SectionElementComponentFactory.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateConfirmation.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateConfirmation.tsx index b506baa7555a75d16eac6b1848c6016d5ea64006..088beb4022f58e4490e08cdbbc2aa27e7c83b2df 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateConfirmation.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateConfirmation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateTextBlock.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateTextBlock.tsx index b1ee7b9ca6a2c107638f5d81e3f796f245b51a0b..329856d95e0efa4e92880c10f13d4567b37b7330 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateTextBlock.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/TemplateTextBlock.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/AnamnesisQuestion.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/AnamnesisQuestion.tsx index 6326ed426edbfd96e32e2d5e6e113d9cc73ce82a..6dcc609a4e5601bf015611e5bc712e216c0a56b6 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/AnamnesisQuestion.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/AnamnesisQuestion.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/MainQuestion.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/MainQuestion.tsx index 8cb6a05d7ab497a9438bb4c90095054f65e86dd4..13cae3c1ce61c8f9f1fcd6b33ad451ec820b2b35 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/MainQuestion.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/MainQuestion.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectElement.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectElement.tsx index 50a5ededbbd7cb1d10d21559c9a0b830a38d9429..fd913eca78a9273f70eaf1b625986362d9311f48 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectElement.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectList.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectList.tsx index f5268f3b1fbb9624cbd2ce5ba3977b9d500d4378..c286b7eb34f444187dc650060432d7c08fefa4a0 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectList.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubMultiSelectList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubQuestion.tsx b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubQuestion.tsx index 8ab9c93b9808e373596b182f58354d1a4cc50084..280dc4bc390e03f7e56de7b76529242e955aeabb 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubQuestion.tsx +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/sections/dataElements/anamnesisQuestion/subElements/SubQuestion.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/templateFieldValidation.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/templateFieldValidation.ts index 4db02c9c5abd787eb2ea4905b9a2ffb427105e00..c686e5fa96619f76bea409ebb2cc583b5f1c7e66 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/templateFieldValidation.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/templateEditor/templateFieldValidation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/businessModules/travelMedicine/shared/useCreateInboxProcedure.ts b/employee-portal/src/lib/businessModules/travelMedicine/shared/useCreateInboxProcedure.ts index d93d6e964db3ffd1015a91acf3d7588283d6b012..ee1a3fbfb74131245bd7f8a10e6f1e78e1d37bc9 100644 --- a/employee-portal/src/lib/businessModules/travelMedicine/shared/useCreateInboxProcedure.ts +++ b/employee-portal/src/lib/businessModules/travelMedicine/shared/useCreateInboxProcedure.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/api/clients.ts b/employee-portal/src/lib/opendata/api/clients.ts index a46d9c31e51181197f94c7ad2bfcb2427cc2b694..f6016fe7660b0af7a6f1dfdc7cfe8414a7e2e3f0 100644 --- a/employee-portal/src/lib/opendata/api/clients.ts +++ b/employee-portal/src/lib/opendata/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/components/EditEntrySidebar.tsx b/employee-portal/src/lib/opendata/components/EditEntrySidebar.tsx index 913010eff328d17ca53f3004f6a240dd83864a8e..7d21cfc512153a09e74a2b2331c72c78d808d425 100644 --- a/employee-portal/src/lib/opendata/components/EditEntrySidebar.tsx +++ b/employee-portal/src/lib/opendata/components/EditEntrySidebar.tsx @@ -1,9 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ import { SubmitButton } from "@eshg/lib-portal/components/buttons/SubmitButton"; +import { ConfirmationDialogOptions } from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; import { toDateString } from "@eshg/lib-portal/helpers/dateTime"; import { Button } from "@mui/joy"; import { Formik } from "formik"; @@ -11,19 +12,17 @@ import { Formik } from "formik"; import { OpenDataForm, OpenDataFormValues, + validateOpenDataForm, } from "@/lib/opendata/components/OpenDataForm"; import { VersionFileCard } from "@/lib/opendata/components/VersionFileCard"; import { OpenDataVersion } from "@/lib/opendata/components/openDataColumns"; import { useUpdateVersionMetadata } from "@/lib/opendata/mutations/opendata"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { - ConfirmationDialogOptions, - useConfirmationDialog, -} from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface EditEntrySidebarProps { version: OpenDataVersion; @@ -94,6 +93,7 @@ export function EditEntrySidebar({ handleSubmitUpdateVersion(values); setSubmitting(false); }} + validate={validateOpenDataForm} > {({ isSubmitting, handleSubmit }) => ( <SidebarForm onSubmit={handleSubmit}> diff --git a/employee-portal/src/lib/opendata/components/NewEntrySidebar.tsx b/employee-portal/src/lib/opendata/components/NewEntrySidebar.tsx index 929321caff3270128a44ec0d329915098c2e555b..8558ea1fc7a3c435d8c424cbb48a2280cd8b5d54 100644 --- a/employee-portal/src/lib/opendata/components/NewEntrySidebar.tsx +++ b/employee-portal/src/lib/opendata/components/NewEntrySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/components/OpenDataForm.tsx b/employee-portal/src/lib/opendata/components/OpenDataForm.tsx index af68e0ecf0df4227c50504739974c0b4590605e6..81ba359286998d61ac6afce10240c712665dca6e 100644 --- a/employee-portal/src/lib/opendata/components/OpenDataForm.tsx +++ b/employee-portal/src/lib/opendata/components/OpenDataForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,6 +7,10 @@ import { ApiBusinessModule } from "@eshg/employee-portal-api/base"; import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + validateFile, + validateFileName, +} from "@eshg/lib-portal/helpers/validators"; import { Chip, Stack } from "@mui/joy"; import { parse } from "date-fns"; import { FormikErrors, useFormikContext } from "formik"; @@ -16,11 +20,7 @@ import { openDataFileTypes } from "@/lib/opendata/constants"; import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; import { FileField } from "@/lib/shared/components/formFields/file/FileField"; import { buildOptionsFromBusinessModules } from "@/lib/shared/components/procedures/helper"; -import { - validateFile, - validateFileName, - validateURL, -} from "@/lib/shared/helpers/validators"; +import { validateURL } from "@/lib/shared/helpers/validators"; interface OpenDataFormContentProps { children?: ReactNode; diff --git a/employee-portal/src/lib/opendata/components/OpenDataTable.tsx b/employee-portal/src/lib/opendata/components/OpenDataTable.tsx index 4167970c61de8d3816dae265e995504613cbdc18..cec255ca53abbea910bc07b3d088e2bd1728a4e7 100644 --- a/employee-portal/src/lib/opendata/components/OpenDataTable.tsx +++ b/employee-portal/src/lib/opendata/components/OpenDataTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -24,12 +24,12 @@ import { useGetOpenDocuments } from "@/lib/opendata/queries/opendata"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FilterSettings } from "@/lib/shared/components/filterSettings/FilterSettings"; import { FilterSettingsSheet } from "@/lib/shared/components/filterSettings/FilterSettingsSheet"; import { DataTable } from "@/lib/shared/components/table/DataTable"; import { TablePage } from "@/lib/shared/components/table/TablePage"; import { TableSheet } from "@/lib/shared/components/table/TableSheet"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; import { useSidebarWithFormRef } from "@/lib/shared/hooks/useSidebarWithFormRef"; export function OpenDataTable() { diff --git a/employee-portal/src/lib/opendata/components/VersionFileCard.tsx b/employee-portal/src/lib/opendata/components/VersionFileCard.tsx index e29f52f5f9699e5ed8d176f2f60f5c26bd6480b1..5f3647f911773f58b962403b9efd13f906af9464 100644 --- a/employee-portal/src/lib/opendata/components/VersionFileCard.tsx +++ b/employee-portal/src/lib/opendata/components/VersionFileCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/components/ViewEntrySidebar.tsx b/employee-portal/src/lib/opendata/components/ViewEntrySidebar.tsx index b2de259cedb97c63ff626fc79b332184ac262914..9a86c07a329314680c2c8f0fca0f0b6688d6c58d 100644 --- a/employee-portal/src/lib/opendata/components/ViewEntrySidebar.tsx +++ b/employee-portal/src/lib/opendata/components/ViewEntrySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -17,7 +17,6 @@ import { OpenDataVersion } from "@/lib/opendata/components/openDataColumns"; import { deleteVersionDialogOptions } from "@/lib/opendata/helper"; import { useDeleteVersion } from "@/lib/opendata/mutations/opendata"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DetailsCell, DetailsCellProps, @@ -27,6 +26,7 @@ import { useBuildRoutePreservingSearchParams } from "@/lib/shared/components/pro import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface ViewEntrySidebarProps { version: OpenDataVersion; diff --git a/employee-portal/src/lib/opendata/components/openDataColumns.tsx b/employee-portal/src/lib/opendata/components/openDataColumns.tsx index 0924eba0fb4328b2497c4548f6f955b69bbaf3e9..bd42b94ad466ee96ab4a05cddcaf9265d5f593d1 100644 --- a/employee-portal/src/lib/opendata/components/openDataColumns.tsx +++ b/employee-portal/src/lib/opendata/components/openDataColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/constants.ts b/employee-portal/src/lib/opendata/constants.ts index 6c59e1558cbc6e6c618fc5690369eea041ee3d19..a6fc1ff1dc5c9c9c0080793d72b4952b49c9ec6e 100644 --- a/employee-portal/src/lib/opendata/constants.ts +++ b/employee-portal/src/lib/opendata/constants.ts @@ -1,8 +1,8 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; export const openDataFileTypes = [FileType.Csv, FileType.Pdf]; diff --git a/employee-portal/src/lib/opendata/helper.ts b/employee-portal/src/lib/opendata/helper.ts index 4499989e66592f5de5f4d4d2d5ca71d6757a156e..294610363a090a51c686ebe11828e4dddccc2323 100644 --- a/employee-portal/src/lib/opendata/helper.ts +++ b/employee-portal/src/lib/opendata/helper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ @@ -7,8 +7,8 @@ import { ApiBusinessModule, ApiVersion, } from "@eshg/employee-portal-api/opendata"; +import { ConfirmationDialogOptions } from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; -import { ConfirmationDialogOptions } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { buildOptionsFromBusinessModules } from "@/lib/shared/components/procedures/helper"; export function buildOpenDataBusinessModuleOptions() { diff --git a/employee-portal/src/lib/opendata/hooks/useOpenDataFilterSettings.ts b/employee-portal/src/lib/opendata/hooks/useOpenDataFilterSettings.ts index 27e2cef7c16e765f4684aa30b46a8dc33eb20222..dc3a58dd7126c247fa1008568aee17df5c6f5f73 100644 --- a/employee-portal/src/lib/opendata/hooks/useOpenDataFilterSettings.ts +++ b/employee-portal/src/lib/opendata/hooks/useOpenDataFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/mutations/opendata.ts b/employee-portal/src/lib/opendata/mutations/opendata.ts index 2a4c7765b7b14ed4a9f07834496078347c6e5cfb..7bb020e29d2efc1dc3da6d9f799d3ef196561676 100644 --- a/employee-portal/src/lib/opendata/mutations/opendata.ts +++ b/employee-portal/src/lib/opendata/mutations/opendata.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/queries/opendata.ts b/employee-portal/src/lib/opendata/queries/opendata.ts index 89369780200b25a34293ac2345fe8fbe8ef0f0bb..2744548138f35ad6705bf20b18e39f98980e630f 100644 --- a/employee-portal/src/lib/opendata/queries/opendata.ts +++ b/employee-portal/src/lib/opendata/queries/opendata.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/opendata/queries/queryKeys.ts b/employee-portal/src/lib/opendata/queries/queryKeys.ts index f15dccfe99030e4fa53ad74d9e881227342a9aa5..87a4f7927c3814b7a7a22cee4c3f6cca53439d20 100644 --- a/employee-portal/src/lib/opendata/queries/queryKeys.ts +++ b/employee-portal/src/lib/opendata/queries/queryKeys.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/api/clients.ts b/employee-portal/src/lib/shared/api/clients.ts index b2c2353911054a647af73999fe2deb189f85bc15..79cdbc9f961293056861d439e7bd811a2732374d 100644 --- a/employee-portal/src/lib/shared/api/clients.ts +++ b/employee-portal/src/lib/shared/api/clients.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/config.ts b/employee-portal/src/lib/shared/api/config.ts index fa7d1fe2f90760daeae432728ce6673431bdbd4b..d5dd7993f32e03e9e6f63fcd6a9b8072dac9d42d 100644 --- a/employee-portal/src/lib/shared/api/config.ts +++ b/employee-portal/src/lib/shared/api/config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/download/files.ts b/employee-portal/src/lib/shared/api/download/files.ts index 69007844b98d449403465fcd7fa5e2f8b625ab2d..7effc48e57a0105eeb9fb134d7648dc29b0effb4 100644 --- a/employee-portal/src/lib/shared/api/download/files.ts +++ b/employee-portal/src/lib/shared/api/download/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/models/BaseEntity.ts b/employee-portal/src/lib/shared/api/models/BaseEntity.ts index 5ddd73bcd1d158c398ac8cb339afd41b051b5d82..5b408f989770613df688e14ecb56355de77a3e83 100644 --- a/employee-portal/src/lib/shared/api/models/BaseEntity.ts +++ b/employee-portal/src/lib/shared/api/models/BaseEntity.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/models/PaginatedList.ts b/employee-portal/src/lib/shared/api/models/PaginatedList.ts index 3ddccdd2be6f7f1d65b6dd71e592602d76d61e9d..6ef70bdc7a55781e79c514cb59dedd2a88d348c3 100644 --- a/employee-portal/src/lib/shared/api/models/PaginatedList.ts +++ b/employee-portal/src/lib/shared/api/models/PaginatedList.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/models/Versioned.ts b/employee-portal/src/lib/shared/api/models/Versioned.ts index 2e8fc950c3237d5ccfc27e37e64f22dda9ef89f6..dd31d2492d67b2fbe7b6435da8afeb9fbcf9c5f1 100644 --- a/employee-portal/src/lib/shared/api/models/Versioned.ts +++ b/employee-portal/src/lib/shared/api/models/Versioned.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/models/import/ImportStatistics.ts b/employee-portal/src/lib/shared/api/models/import/ImportStatistics.ts index c6af1af72b2d90d3335d5664c7dc1b25c685daf9..e81c0d3294d97b8df1f9c7f5744ac5024a6ffc7a 100644 --- a/employee-portal/src/lib/shared/api/models/import/ImportStatistics.ts +++ b/employee-portal/src/lib/shared/api/models/import/ImportStatistics.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/models/utils.ts b/employee-portal/src/lib/shared/api/models/utils.ts index 79b153fad97dbd3aa8bbe9fd4440a872af3a166b..1fceb52655a6960b3e2ca9e1733e39f3769f0105 100644 --- a/employee-portal/src/lib/shared/api/models/utils.ts +++ b/employee-portal/src/lib/shared/api/models/utils.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/mutations/approvalRequests.ts b/employee-portal/src/lib/shared/api/mutations/approvalRequests.ts index 1f90c2ff6a454262c5c1e4a0de2c179382c49ade..7e90d6ebdb0e7ba22f124821169e4b171c38757b 100644 --- a/employee-portal/src/lib/shared/api/mutations/approvalRequests.ts +++ b/employee-portal/src/lib/shared/api/mutations/approvalRequests.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/mutations/archiving.ts b/employee-portal/src/lib/shared/api/mutations/archiving.ts index ca56074baaaaf395c2b796f45405defe825216f0..d98ecc54719d0b4dca1c3684f3767904d27940ec 100644 --- a/employee-portal/src/lib/shared/api/mutations/archiving.ts +++ b/employee-portal/src/lib/shared/api/mutations/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/mutations/files.ts b/employee-portal/src/lib/shared/api/mutations/files.ts index 3fd568df53602c074504aa6afe890b9aac6962fc..1de16d6f3adddd0af576e436c31fd5ee475af204 100644 --- a/employee-portal/src/lib/shared/api/mutations/files.ts +++ b/employee-portal/src/lib/shared/api/mutations/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/mutations/gdpr.ts b/employee-portal/src/lib/shared/api/mutations/gdpr.ts index 5ed939e28787f331f979955caa426c9b5b3f0cf6..02abef289bcc3814f25296105e2cc565dca5f4de 100644 --- a/employee-portal/src/lib/shared/api/mutations/gdpr.ts +++ b/employee-portal/src/lib/shared/api/mutations/gdpr.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/mutations/inboxProcedures.ts b/employee-portal/src/lib/shared/api/mutations/inboxProcedures.ts index 4cc0dd0fd32f7addca0c93fd27345f380771d4c5..6ba57645a2eda39efd796252e57e8c32a9653395 100644 --- a/employee-portal/src/lib/shared/api/mutations/inboxProcedures.ts +++ b/employee-portal/src/lib/shared/api/mutations/inboxProcedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/mutations/libEditor.ts b/employee-portal/src/lib/shared/api/mutations/libEditor.ts index ec10c5ddfd50c29c5eeadcd66137714316468faa..e66e7248e968c400db5063f6aa88511c36149f5b 100644 --- a/employee-portal/src/lib/shared/api/mutations/libEditor.ts +++ b/employee-portal/src/lib/shared/api/mutations/libEditor.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/mutations/progressEntries.ts b/employee-portal/src/lib/shared/api/mutations/progressEntries.ts index a2b65a8e54da856baafd0eadf08804a031205ba2..6170552f3b6c952d6ad63f213e673659c7b9e9a6 100644 --- a/employee-portal/src/lib/shared/api/mutations/progressEntries.ts +++ b/employee-portal/src/lib/shared/api/mutations/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/queries/archiving.ts b/employee-portal/src/lib/shared/api/queries/archiving.ts index b217411280f91e03e2f8d40755e53b34ff6992d5..0239e7ffd13d442c2782664b718e07b3a3636699 100644 --- a/employee-portal/src/lib/shared/api/queries/archiving.ts +++ b/employee-portal/src/lib/shared/api/queries/archiving.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/queries/files.ts b/employee-portal/src/lib/shared/api/queries/files.ts index d874bfa6674f0dfc67a6e4f07e5d9937d887b95c..14c50248f28ddc05b8d2f34fbcfded67443a5427 100644 --- a/employee-portal/src/lib/shared/api/queries/files.ts +++ b/employee-portal/src/lib/shared/api/queries/files.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/queries/gdpr.ts b/employee-portal/src/lib/shared/api/queries/gdpr.ts index d062d40bf5e7ac9174075748f7d9d8ae39643283..2311a476991681dbd0a8be7010aab77a25d1d68b 100644 --- a/employee-portal/src/lib/shared/api/queries/gdpr.ts +++ b/employee-portal/src/lib/shared/api/queries/gdpr.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -17,6 +17,7 @@ import { queryOptions, useSuspenseQueries } from "@tanstack/react-query"; import assert from "assert"; import { isDefined } from "remeda"; +import { useGdprProcedureApi } from "@/lib/baseModule/api/clients"; import { gdprValidationTaskApiQueryKey } from "@/lib/baseModule/api/queries/apiQueryKey"; import { useServerConfig } from "@/lib/baseModule/api/queries/config"; import { useIsNewFeatureEnabled as useIsNewBaseFeatureEnabled } from "@/lib/baseModule/api/queries/feature"; @@ -161,3 +162,9 @@ export function useDownloadPackageFileByModule() { return downloadPackage; } + +export function useDownloadBaseModulePackage() { + const gdprApi = useGdprProcedureApi(); + return (gdprProcedureId: string) => + gdprApi.getCentralFileDownloadPackageRaw({ id: gdprProcedureId }); +} diff --git a/employee-portal/src/lib/shared/api/queries/inboxProcedures.ts b/employee-portal/src/lib/shared/api/queries/inboxProcedures.ts index c54f0626f76df4e8143b9abfd9182a250a590f5c..b1f099f6beb28b35e17a379b9a91a488b2eff414 100644 --- a/employee-portal/src/lib/shared/api/queries/inboxProcedures.ts +++ b/employee-portal/src/lib/shared/api/queries/inboxProcedures.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/queries/progressEntries.ts b/employee-portal/src/lib/shared/api/queries/progressEntries.ts index 2d80542b54aa61e63065b5b0c1ba197345d14dcd..2476a372e8001280330db0defb119e5efc824f5b 100644 --- a/employee-portal/src/lib/shared/api/queries/progressEntries.ts +++ b/employee-portal/src/lib/shared/api/queries/progressEntries.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/api/queries/tasks.ts b/employee-portal/src/lib/shared/api/queries/tasks.ts index 5f039a1af5a2a6d7fe3fdf7bd384ef0eb3d1b9b6..9cd9d24aaa7934801fd6aff7f2153f4f9dd97c5e 100644 --- a/employee-portal/src/lib/shared/api/queries/tasks.ts +++ b/employee-portal/src/lib/shared/api/queries/tasks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/AutocompleteSelectOptions.tsx b/employee-portal/src/lib/shared/components/AutocompleteSelectOptions.tsx index ec57a01f11b878ddf4ce1cfb533cf799b08543a6..db3c2c28581149cc980ce6087485dc79fba15d7c 100644 --- a/employee-portal/src/lib/shared/components/AutocompleteSelectOptions.tsx +++ b/employee-portal/src/lib/shared/components/AutocompleteSelectOptions.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/EmployeeSnackbar.tsx b/employee-portal/src/lib/shared/components/EmployeeSnackbar.tsx index 8618bb08395581eb2ab44506765ae300b14dc457..452da7c2ef3a6b7337b53f00ebc70440ec187ca8 100644 --- a/employee-portal/src/lib/shared/components/EmployeeSnackbar.tsx +++ b/employee-portal/src/lib/shared/components/EmployeeSnackbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,13 +8,23 @@ import { SnackbarComponentProps } from "@eshg/lib-portal/components/snackbar/SnackbarProvider"; import { Snackbar, Theme, styled } from "@mui/joy"; -import { - headerHeightDesktop, - headerHeightMobile, -} from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; -const StyledSnackbar = styled(Snackbar)<SnackbarComponentProps>( - ({ theme, position }) => ({ +interface StyledSnackbarProps extends SnackbarComponentProps { + headerHeightDesktop: string; + headerHeightMobile: string; +} + +function excludeHeaderHeightProps( + prop: PropertyKey, +): prop is keyof StyledSnackbarProps { + return prop !== "headerHeightDesktop" && prop !== "headerHeightMobile"; +} + +const StyledSnackbar = styled(Snackbar, { + shouldForwardProp: excludeHeaderHeightProps, +})<StyledSnackbarProps>( + ({ theme, position, headerHeightDesktop, headerHeightMobile }) => ({ "&.MuiSnackbar-root": { "--Snackbar-padding": theme.spacing(1), "--Snackbar-inset": calculatedSnackbarOffset( @@ -37,10 +47,13 @@ const StyledSnackbar = styled(Snackbar)<SnackbarComponentProps>( ); export function EmployeeSnackbar(props: SnackbarComponentProps) { + const { headerHeightMobile, headerHeightDesktop } = useHeaderHeights(); return ( <StyledSnackbar variant="soft" anchorOrigin={{ vertical: "top", horizontal: "right" }} + headerHeightMobile={headerHeightMobile} + headerHeightDesktop={headerHeightDesktop} {...props} /> ); diff --git a/employee-portal/src/lib/shared/components/FileCard.tsx b/employee-portal/src/lib/shared/components/FileCard.tsx index 47c7d30ebdc8f6119172bc74a8027a486bf98897..52481f0b82a49412e1bf4621762628a2ee0085cb 100644 --- a/employee-portal/src/lib/shared/components/FileCard.tsx +++ b/employee-portal/src/lib/shared/components/FileCard.tsx @@ -1,10 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { ApiFileType } from "@eshg/employee-portal-api/businessProcedures"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; +import { formatFileSize } from "@eshg/lib-portal/helpers/file"; import AlternateEmailOutlinedIcon from "@mui/icons-material/AlternateEmailOutlined"; import AudioFileOutlinedIcon from "@mui/icons-material/AudioFileOutlined"; import ImageOutlinedIcon from "@mui/icons-material/ImageOutlined"; @@ -24,8 +25,6 @@ import { useRouter } from "next/navigation"; import { ReactNode, createElement } from "react"; import { isDefined } from "remeda"; -import { formatFileSize } from "@/lib/shared/helpers/file"; - import { ActionsMenu } from "./buttons/ActionsMenu"; export interface FileCardActionProps { diff --git a/employee-portal/src/lib/shared/components/LoadingOverlay.tsx b/employee-portal/src/lib/shared/components/LoadingOverlay.tsx deleted file mode 100644 index d9fb0201116ba2afb31a9362e57b2d8b86b16fc4..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/shared/components/LoadingOverlay.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -import { - LoadingIndicator, - LoadingIndicatorProps, -} from "@eshg/lib-portal/components/LoadingIndicator"; -import { Modal } from "@mui/joy"; - -type LoadingOverlayProps = Pick<LoadingIndicatorProps, "text">; - -export function LoadingOverlay(props: LoadingOverlayProps) { - return ( - <Modal open disablePortal hideBackdrop> - <LoadingIndicator fullHeight {...props} /> - </Modal> - ); -} diff --git a/employee-portal/src/lib/shared/components/LoadingSheet.tsx b/employee-portal/src/lib/shared/components/LoadingSheet.tsx index 70b6bfe5ed86e877e4146f66ae0bd189b8fb0a1e..fe000407a8a7f52e07fd811f08521e81c3c55ee6 100644 --- a/employee-portal/src/lib/shared/components/LoadingSheet.tsx +++ b/employee-portal/src/lib/shared/components/LoadingSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/NoSearchResult.tsx b/employee-portal/src/lib/shared/components/NoSearchResult.tsx index 36f1ab94939d8014061360d04274c66caebb6c49..68aef587834ea44a312a33c7f4e82f669a337ace 100644 --- a/employee-portal/src/lib/shared/components/NoSearchResult.tsx +++ b/employee-portal/src/lib/shared/components/NoSearchResult.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/ResetButton.tsx b/employee-portal/src/lib/shared/components/ResetButton.tsx index d1e001038b4e757d89b4b0f7676639ba49482f23..79f5619450fba469263123453493e3908911e527 100644 --- a/employee-portal/src/lib/shared/components/ResetButton.tsx +++ b/employee-portal/src/lib/shared/components/ResetButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/ResponsiveDivider.tsx b/employee-portal/src/lib/shared/components/ResponsiveDivider.tsx index 1ae038992c31ad2e892211e88078a71646e53f21..8d20565d8cd7cc935c5fc4b81af49728ffb7d715 100644 --- a/employee-portal/src/lib/shared/components/ResponsiveDivider.tsx +++ b/employee-portal/src/lib/shared/components/ResponsiveDivider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/RestrictedPage.tsx b/employee-portal/src/lib/shared/components/RestrictedPage.tsx index 4568f0c1990fe2612e5f36740ca719df43c82c53..726edcb20cf7e342c2d406c2ac4b67ade3ae9bea 100644 --- a/employee-portal/src/lib/shared/components/RestrictedPage.tsx +++ b/employee-portal/src/lib/shared/components/RestrictedPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/SearchableGroups.tsx b/employee-portal/src/lib/shared/components/SearchableGroups.tsx index 91115d6014f570fc515e3f2885fec060217bc795..de5114fdaf23f70c961f6adf0e74806499506055 100644 --- a/employee-portal/src/lib/shared/components/SearchableGroups.tsx +++ b/employee-portal/src/lib/shared/components/SearchableGroups.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/SidebarStepper/SidebarStepper.tsx b/employee-portal/src/lib/shared/components/SidebarStepper/SidebarStepper.tsx index e486eb45405be1393b7ba5e1bf11ced3fc0e8ee4..970159f2c27b1904527f194d71120f10074fe9e7 100644 --- a/employee-portal/src/lib/shared/components/SidebarStepper/SidebarStepper.tsx +++ b/employee-portal/src/lib/shared/components/SidebarStepper/SidebarStepper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/SidebarStepper/sidebarStep.ts b/employee-portal/src/lib/shared/components/SidebarStepper/sidebarStep.ts index 08bf15ee90be405f75662071015a728b07d7fea0..9cf59792633937e2e3cfbe733067cf934a69ad23 100644 --- a/employee-portal/src/lib/shared/components/SidebarStepper/sidebarStep.ts +++ b/employee-portal/src/lib/shared/components/SidebarStepper/sidebarStep.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/ToggledPage.tsx b/employee-portal/src/lib/shared/components/ToggledPage.tsx index f313baf7d8f067f7634e3f2356f849e1c0a7d835..26691d1e5c5c90fb0ad0be3624353b0cb81b36c2 100644 --- a/employee-portal/src/lib/shared/components/ToggledPage.tsx +++ b/employee-portal/src/lib/shared/components/ToggledPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/address/BaseAddressDetails.tsx b/employee-portal/src/lib/shared/components/address/BaseAddressDetails.tsx index b7f16ae27ec7a9ef13b5c8cfb22eb35b17e8dee9..fe5138a8e8f2dc42f428aa8314172094cbc6e0a8 100644 --- a/employee-portal/src/lib/shared/components/address/BaseAddressDetails.tsx +++ b/employee-portal/src/lib/shared/components/address/BaseAddressDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/address/constants.ts b/employee-portal/src/lib/shared/components/address/constants.ts index c43acbf915a410cde70c3ecdcb10f81650d077d6..e7cd745d6fec6f94576a8ad6cc55aaab2207df90 100644 --- a/employee-portal/src/lib/shared/components/address/constants.ts +++ b/employee-portal/src/lib/shared/components/address/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFieldArrayWithDays.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFieldArrayWithDays.tsx index 7a4bbe1af7021b80d0425664df982ea14c286285..b4530461934b0e25796f76ccb42665aa785c57ad 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFieldArrayWithDays.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFieldArrayWithDays.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays.tsx index e532d3742ed968c5a29973e4823c362f5a175da0..c429209855036a3b9b8051a12cd34788bbd4080d 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -125,6 +125,7 @@ export function AppointmentBlockFormWithDays( name={fieldName("daysOfWeek")} options={daysOfWeekOptions} label={"Wochentage"} + required sx={{ mt: 1 }} /> </Grid> diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockGroupFields.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockGroupFields.tsx index 679798a746e31b0580f2fd4644d3b43730eaffa7..b0b405c4df64de1c8d82edc0392c9ed0c99fe13d 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockGroupFields.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentBlockGroupFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentCountWithDays.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentCountWithDays.tsx index cb00cda42d7f7db6fb3296cab01dad29fff2c9ba..08e923568c2eca23f8767be59850b27294dd969d 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentCountWithDays.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentCountWithDays.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentLocationSelection.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentLocationSelection.tsx index fb1fa9667e7fff50a93b1247eeb4204b659b2694..abd7f415141fb3a77ae0531d2cfd76504310972b 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentLocationSelection.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentLocationSelection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffField.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffField.tsx index 47c332060cf543831244a88617aa03dc6eed2e46..e2bf5c00458e8a19614cf327973dac404055f76a 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffField.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffSelection.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffSelection.tsx index 343133730383ff3af2954a8ce57d1f0f3bfd23df..93e7781a5f758be61d981fbee7cf1421e97f7df6 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffSelection.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/AppointmentStaffSelection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/NoAppointmentBlocksAvailable.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/NoAppointmentBlocksAvailable.tsx new file mode 100644 index 0000000000000000000000000000000000000000..d1bf15b25ae235dd1faa9c878cc4ebac12f78591 --- /dev/null +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/NoAppointmentBlocksAvailable.tsx @@ -0,0 +1,28 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; +import { Schedule, TodayOutlined } from "@mui/icons-material"; +import { Stack, Typography } from "@mui/joy"; + +export function NoAppointmentBlocksAvailable({ href }: { href: string }) { + return ( + <Stack + sx={{ + alignItems: "center", + justifyContent: "center", + flex: 1, + }} + > + <TodayOutlined sx={{ height: "40px", width: "40px" }} /> + <Typography sx={{ mt: 2, mb: 3 }}> + Aktuell keine Terminblöcke vorhanden + </Typography> + <InternalLinkButton href={href} size="sm" startDecorator={<Schedule />}> + Neuen Terminblock planen + </InternalLinkButton> + </Stack> + ); +} diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/WeekdayCheckboxGroup.tsx b/employee-portal/src/lib/shared/components/appointmentBlocks/WeekdayCheckboxGroup.tsx index 434fa8563fce495e7a2e785bf8da1ceb3722ccb1..f5829de2a4a7d5801df357ddbf04f454da510007 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/WeekdayCheckboxGroup.tsx +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/WeekdayCheckboxGroup.tsx @@ -1,35 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ "use client"; -import { useBaseField } from "@eshg/lib-portal/components/formFields/BaseField"; -import { FormControl, FormHelperText, List, ListItem, styled } from "@mui/joy"; import { SxProps } from "@mui/joy/styles/types"; -import { theme } from "@/lib/baseModule/theme/theme"; import { WEEKDAY_TYPES, WeekdayCheckboxOption, } from "@/lib/shared/components/appointmentBlocks/AppointmentBlockFormWithDays"; -import { CheckboxField } from "@/lib/shared/components/formFields/CheckboxField"; - -const StyledFieldSet = styled("fieldset")({ - border: 0, - margin: 0, - padding: 0, -}); - -const StyledLegend = styled("legend")({ - fontWeight: theme.fontWeight.md, - fontSize: theme.fontSize.sm, - size: "md", - color: theme.palette.text.primary, - padding: 0, - marginBottom: 6, -}); +import { CheckboxGroupField } from "@/lib/shared/components/formFields/CheckboxGroupField"; export interface CheckboxGroupProps { name: string; @@ -37,58 +19,34 @@ export interface CheckboxGroupProps { label: string; sx?: SxProps; onChange?: (options: WeekdayCheckboxOption[]) => void; + required?: boolean; +} + +function requiredValidation(options: string[] = []) { + if (!options.length) { + return "Bitte mindestens einen Tag auswählen."; + } else { + return undefined; + } } export function WeekdayCheckboxGroup({ options, label, + required, ...props }: Readonly<CheckboxGroupProps>) { - const { input, meta, helperText } = useBaseField<WeekdayCheckboxOption[]>({ - validate: (options: WeekdayCheckboxOption[] = []) => { - if (!options.length) { - return "Bitte mindestens einen Tag auswählen"; - } else { - return undefined; - } - }, - ...props, - }); - - const labelId = input.name; - const ariaLabelId = `${labelId}-label`; - return ( - <StyledFieldSet> - <StyledLegend id={ariaLabelId}>{label}</StyledLegend> - <List - size="sm" - orientation="horizontal" - aria-labelledby={ariaLabelId} - sx={{ padding: 0, gap: 2 }} - > - {options?.map((option, index) => ( - <ListItem - key={index} - sx={{ - "--ListItem-paddingY": 0, - "--ListItem-minHeight": "1rem", - "--ListItem-paddingLeft": 0, - }} - > - <CheckboxField - name={props.name} - representingValue={option.id} - label={option.label} - size="sm" - aria-label={WEEKDAY_TYPES[option.id]} - /> - </ListItem> - ))} - </List> - <FormControl error={!!meta.error}> - <FormHelperText sx={{ pt: 1 }}>{helperText}</FormHelperText> - </FormControl> - </StyledFieldSet> + <CheckboxGroupField + label={required ? `${label} *` : label} + validate={required ? requiredValidation : undefined} + name={props.name} + options={options.map((option) => ({ + label: option.label, + value: option.id, + ariaLabel: WEEKDAY_TYPES[option.id], + }))} + size="sm" + /> ); } diff --git a/employee-portal/src/lib/shared/components/appointmentBlocks/validateAppointmentBlock.ts b/employee-portal/src/lib/shared/components/appointmentBlocks/validateAppointmentBlock.ts index 86d123a7748f88b980a9fcfcf7bf41267128687a..d6ac9d0214f0ca4a25848bf58360da9f7380c565 100644 --- a/employee-portal/src/lib/shared/components/appointmentBlocks/validateAppointmentBlock.ts +++ b/employee-portal/src/lib/shared/components/appointmentBlocks/validateAppointmentBlock.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/ArchiveAdminView.tsx b/employee-portal/src/lib/shared/components/archiving/ArchiveAdminView.tsx index 2eed1d81ed235b904ab1eb93fd917073fd8c7759..c58797a506a6ed1825567ad59c523369012faee6 100644 --- a/employee-portal/src/lib/shared/components/archiving/ArchiveAdminView.tsx +++ b/employee-portal/src/lib/shared/components/archiving/ArchiveAdminView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/ArchiveView.tsx b/employee-portal/src/lib/shared/components/archiving/ArchiveView.tsx index 7ae98c7806e9fb581ad7a98905c345af53243099..52eac3526be186b3dc1d669c4b17e07c8e3b35f8 100644 --- a/employee-portal/src/lib/shared/components/archiving/ArchiveView.tsx +++ b/employee-portal/src/lib/shared/components/archiving/ArchiveView.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/api/models/archivableProcedure.ts b/employee-portal/src/lib/shared/components/archiving/api/models/archivableProcedure.ts index deaf7375c2adf5f9374bcd1496f7181a3a35def8..ca13ff425bb5879057cbe4b2000b9667026220a2 100644 --- a/employee-portal/src/lib/shared/components/archiving/api/models/archivableProcedure.ts +++ b/employee-portal/src/lib/shared/components/archiving/api/models/archivableProcedure.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/components/ArchivingRelevanceChip.tsx b/employee-portal/src/lib/shared/components/archiving/components/ArchivingRelevanceChip.tsx index 5227584fa7b028b7919f9245a36fa811b962889d..5be48068e793433228a7e1d901c0e7529b71a143 100644 --- a/employee-portal/src/lib/shared/components/archiving/components/ArchivingRelevanceChip.tsx +++ b/employee-portal/src/lib/shared/components/archiving/components/ArchivingRelevanceChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/components/NoProceduresFallback.tsx b/employee-portal/src/lib/shared/components/archiving/components/NoProceduresFallback.tsx index 3703068c1202b04505662a5a4c0a7d0cc9fe46de..4f2639801919ac4471e62f2b64ef25ee46e0a24a 100644 --- a/employee-portal/src/lib/shared/components/archiving/components/NoProceduresFallback.tsx +++ b/employee-portal/src/lib/shared/components/archiving/components/NoProceduresFallback.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/ArchiveAdminTable.tsx b/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/ArchiveAdminTable.tsx index 47a626a07e5f6be331ad42c206d5d005aa5d3ba3..dd530ea96821d0aa8df7669d0f8e88c82521525f 100644 --- a/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/ArchiveAdminTable.tsx +++ b/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/ArchiveAdminTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ import { } from "@eshg/employee-portal-api/businessProcedures"; import { useFileDownload } from "@eshg/lib-portal/api/files/download"; import { HiddenContainer } from "@eshg/lib-portal/components/HiddenContainer"; +import { formatFileSize } from "@eshg/lib-portal/helpers/file"; import { DeleteOutlined, DownloadOutlined } from "@mui/icons-material"; import { Button } from "@mui/joy"; @@ -21,7 +22,6 @@ import { } from "@/lib/shared/components/archiving/hooks/useArchiveAdminFilterSettings"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FilterSettings } from "@/lib/shared/components/filterSettings/FilterSettings"; import { FilterSettingsSheet } from "@/lib/shared/components/filterSettings/FilterSettingsSheet"; import { Pagination } from "@/lib/shared/components/pagination/Pagination"; @@ -32,8 +32,8 @@ import { getSortDirection, getSortKey, } from "@/lib/shared/components/table/sorting"; -import { formatFileSize } from "@/lib/shared/helpers/file"; import { useTableControl } from "@/lib/shared/hooks/searchParams/useTableControl"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export type ArchiveAdminTableProps = Omit<ArchiveAdminViewProps, "title">; diff --git a/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/archiveAdminTableColumns.tsx b/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/archiveAdminTableColumns.tsx index a543937b40f5f2ec09e4abc1cf2b450cac435857..6f9839b4d8be1429a0ad522790bd069ecdefdff6 100644 --- a/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/archiveAdminTableColumns.tsx +++ b/employee-portal/src/lib/shared/components/archiving/components/archiveAdminView/archiveAdminTableColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTable.tsx b/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTable.tsx index afd7892b3c7e2197a0aaf6672a16a2b9c0035cbb..43cd2ce7420ebfa0248f7e95e78c4fc4e075624d 100644 --- a/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTable.tsx +++ b/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTableTitle.tsx b/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTableTitle.tsx index 61b53db74f480384544f74e4215ccf69bec429fd..549372abfb5e3aa30f49f2cf34ebbaed0136cc36 100644 --- a/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTableTitle.tsx +++ b/employee-portal/src/lib/shared/components/archiving/components/archiveView/ArchiveTableTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,10 +9,10 @@ import { Divider, Typography } from "@mui/joy"; import { RowSelectionState } from "@tanstack/react-table"; import { ArchiveTableProps } from "@/lib/shared/components/archiving/components/archiveView/ArchiveTable"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { RowSelectionTableToolbar } from "@/lib/shared/components/table/RowSelectionTableToolbar"; import { RowSelectionTableToolbarButton } from "@/lib/shared/components/table/RowSelectionTableToolbarButton"; import { mapToRowIds } from "@/lib/shared/hooks/table/useRowSelection"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface ArchiveTableTitleProps extends ArchiveTableProps { rowSelection: RowSelectionState; diff --git a/employee-portal/src/lib/shared/components/archiving/components/archiveView/archiveTableColumns.tsx b/employee-portal/src/lib/shared/components/archiving/components/archiveView/archiveTableColumns.tsx index 372a3dc3abc1c6ae86091cf9f9db9baa66d9d67e..7eed4580dc8a1d7825357a8b5de71528f92fcd3e 100644 --- a/employee-portal/src/lib/shared/components/archiving/components/archiveView/archiveTableColumns.tsx +++ b/employee-portal/src/lib/shared/components/archiving/components/archiveView/archiveTableColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/constants.ts b/employee-portal/src/lib/shared/components/archiving/constants.ts index d930b79dec4b905222b2dc1f788bbc85e19e9dfe..d0c038878334b94996694568a36f6ab0843581e9 100644 --- a/employee-portal/src/lib/shared/components/archiving/constants.ts +++ b/employee-portal/src/lib/shared/components/archiving/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveAdminFilterSettings.ts b/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveAdminFilterSettings.ts index abad11921fef2d89043c254ea031ef80bf1c1412..8a12b9b3bcdc85e345f2c5b22d836d04a5aa5d35 100644 --- a/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveAdminFilterSettings.ts +++ b/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveAdminFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveFilterSettings.ts b/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveFilterSettings.ts index 27bef0308de442d69d6efedbce65e6fad86360ae..d7c40058543384317f3b2116b0bbbe8bc1cd3e5e 100644 --- a/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveFilterSettings.ts +++ b/employee-portal/src/lib/shared/components/archiving/hooks/useArchiveFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/shared/routes.ts b/employee-portal/src/lib/shared/components/archiving/shared/routes.ts index 71fb6f0390e290176d1fd13dce79fd2b9ebc7a17..2258700205a6731dc9c0916724a724ae2742bd87 100644 --- a/employee-portal/src/lib/shared/components/archiving/shared/routes.ts +++ b/employee-portal/src/lib/shared/components/archiving/shared/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/archiving/shared/sideNavigationItem.tsx b/employee-portal/src/lib/shared/components/archiving/shared/sideNavigationItem.tsx index 28f40a73290b6ed4a3528e72992433d53f059b49..d19c995b6ab578b004b84091cd8c5697cb825a63 100644 --- a/employee-portal/src/lib/shared/components/archiving/shared/sideNavigationItem.tsx +++ b/employee-portal/src/lib/shared/components/archiving/shared/sideNavigationItem.tsx @@ -1,10 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { ApiUserRole } from "@eshg/employee-portal-api/base"; -import InventoryIcon from "@mui/icons-material/Inventory"; +import { Inventory2Outlined } from "@mui/icons-material"; import { SideNavigationItem } from "@/lib/baseModule/components/layout/sideNavigation/types"; import { hasUserRole } from "@/lib/shared/helpers/accessControl"; @@ -14,7 +14,7 @@ import { routes } from "./routes"; export const sideNavigationItems: SideNavigationItem[] = [ { name: "Archivierung", - decorator: <InventoryIcon />, + decorator: <Inventory2Outlined />, subItems: [ { name: "Begehung", @@ -50,7 +50,7 @@ export const sideNavigationItems: SideNavigationItem[] = [ }, { name: "Archiv-Admin", - decorator: <InventoryIcon />, + decorator: <Inventory2Outlined />, subItems: [ { name: "Begehung", diff --git a/employee-portal/src/lib/shared/components/auditlog/constants.ts b/employee-portal/src/lib/shared/components/auditlog/constants.ts index aaf7f5f92241a6140743619441ed8520755ae1be..bf90bf00868b77dd3113942a342d5082b64480ae 100644 --- a/employee-portal/src/lib/shared/components/auditlog/constants.ts +++ b/employee-portal/src/lib/shared/components/auditlog/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/boundaries/EmployeePortalErrorModal.tsx b/employee-portal/src/lib/shared/components/boundaries/EmployeePortalErrorModal.tsx new file mode 100644 index 0000000000000000000000000000000000000000..faab3632d7803a9e79bb5b022a04d415cc226fb7 --- /dev/null +++ b/employee-portal/src/lib/shared/components/boundaries/EmployeePortalErrorModal.tsx @@ -0,0 +1,18 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { + BaseErrorModal, + ErrorModalProps, +} from "@eshg/lib-portal/components/boundaries/BaseErrorModal"; + +export function EmployeePortalErrorModal({ + title, + ...props +}: Readonly<ErrorModalProps>) { + return <BaseErrorModal title={title ?? "Fehler beim Laden"} {...props} />; +} diff --git a/employee-portal/src/lib/shared/components/boundaries/OverlayBoundary.tsx b/employee-portal/src/lib/shared/components/boundaries/OverlayBoundary.tsx index cdd7c4bf21b8bdb748f8e0d0a20ce0f3109b70a5..d89b2581698fdf97c8c00c7d6898b540a1095ce4 100644 --- a/employee-portal/src/lib/shared/components/boundaries/OverlayBoundary.tsx +++ b/employee-portal/src/lib/shared/components/boundaries/OverlayBoundary.tsx @@ -1,39 +1,27 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ "use client"; -import { QueryBoundary } from "@eshg/lib-portal/components/boundaries/QueryBoundary"; -import { RequiresChildren } from "@eshg/lib-portal/types/react"; -import { Suspense } from "react"; -import { ErrorBoundary } from "react-error-boundary"; +import { + BaseOverlayBoundary, + BaseOverlayBoundaryProps, +} from "@eshg/lib-portal/components/boundaries/BaseOverlayBoundary"; -import { LoadingOverlay } from "@/lib/shared/components/LoadingOverlay"; -import { ErrorModal } from "@/lib/shared/components/boundaries/ErrorModal"; +import { EmployeePortalErrorModal } from "@/lib/shared/components/boundaries/EmployeePortalErrorModal"; -interface OverlayBoundaryProps extends RequiresChildren { - fallbackTitle?: string; - loadingText?: string; -} +type OverlayBoundaryProps = Omit< + BaseOverlayBoundaryProps, + "fallbackErrorModal" +>; export function OverlayBoundary(props: OverlayBoundaryProps) { return ( - <QueryBoundary> - <ErrorBoundary - fallbackRender={({ error, resetErrorBoundary }) => ( - <ErrorModal - error={error as unknown} - title={props.fallbackTitle} - onReset={resetErrorBoundary} - /> - )} - > - <Suspense fallback={<LoadingOverlay text={props.loadingText} />}> - {props.children} - </Suspense> - </ErrorBoundary> - </QueryBoundary> + <BaseOverlayBoundary + fallbackErrorModal={EmployeePortalErrorModal} + {...props} + /> ); } diff --git a/employee-portal/src/lib/shared/components/boundaries/SheetQueryBoundary.tsx b/employee-portal/src/lib/shared/components/boundaries/SheetQueryBoundary.tsx index f5d9b06087a31a77374d9c8c763964a1b7cc8896..2e73b8a108995c54fac8af65517045bca196abba 100644 --- a/employee-portal/src/lib/shared/components/boundaries/SheetQueryBoundary.tsx +++ b/employee-portal/src/lib/shared/components/boundaries/SheetQueryBoundary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/ActionsMenu.tsx b/employee-portal/src/lib/shared/components/buttons/ActionsMenu.tsx index d6ea1d1f3bc90c9d11445923ed897be68162cd83..9037ef697e5dca6fa5d8e8b951df2964d2dcd2c6 100644 --- a/employee-portal/src/lib/shared/components/buttons/ActionsMenu.tsx +++ b/employee-portal/src/lib/shared/components/buttons/ActionsMenu.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/ButtonBar.tsx b/employee-portal/src/lib/shared/components/buttons/ButtonBar.tsx index 456c92b078fd93f76bd88a7806b1cd13975281fd..c955e57cbb2615542165e13084ec912047e67f29 100644 --- a/employee-portal/src/lib/shared/components/buttons/ButtonBar.tsx +++ b/employee-portal/src/lib/shared/components/buttons/ButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/EditButton.tsx b/employee-portal/src/lib/shared/components/buttons/EditButton.tsx index 06656707b9a63a46187a05eb4837edf95d15594e..22a0bd21630fdc772c3f06f98b34ceb03f1769f7 100644 --- a/employee-portal/src/lib/shared/components/buttons/EditButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/EditButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/FieldIconButton.tsx b/employee-portal/src/lib/shared/components/buttons/FieldIconButton.tsx index 32db279fb3da776ebca6ff974d35cadacd5a66f0..3cb02f0e166f868ecad46dd6773ebd88da6f3616 100644 --- a/employee-portal/src/lib/shared/components/buttons/FieldIconButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/FieldIconButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/FileDownloadButton.tsx b/employee-portal/src/lib/shared/components/buttons/FileDownloadButton.tsx index a58329b5174ff0bf231ed8409ce5cdc40b8ff752..1e6f5ef8e7a43d91683a3b7891907f3aeeed135c 100644 --- a/employee-portal/src/lib/shared/components/buttons/FileDownloadButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/FileDownloadButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/FilterButton.tsx b/employee-portal/src/lib/shared/components/buttons/FilterButton.tsx index 7b38cddea30a2a030312a94f5c476113fb3b3995..a79b6413d885a5dc8797fbfba33ae729e919fcb1 100644 --- a/employee-portal/src/lib/shared/components/buttons/FilterButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/FilterButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/IconTooltipButton.tsx b/employee-portal/src/lib/shared/components/buttons/IconTooltipButton.tsx index 7945716283aadbcad59566f1676308bd9c9eb312..b8b35e440811f9f312f1f24c9b4801d851832b0a 100644 --- a/employee-portal/src/lib/shared/components/buttons/IconTooltipButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/IconTooltipButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/OpenModalButton.tsx b/employee-portal/src/lib/shared/components/buttons/OpenModalButton.tsx index c49898e1cc474aec5b2ca20628448ab5f9cdc72d..2e0b8d2f8549b95e3398234d29ea83d9e26b35b5 100644 --- a/employee-portal/src/lib/shared/components/buttons/OpenModalButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/OpenModalButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/RefreshButton.tsx b/employee-portal/src/lib/shared/components/buttons/RefreshButton.tsx index 9f7f66fe54ad51d77e89b3787b58466cf6047f36..e02debb004d9d26e3fb69dadd79e3e4110cc5481 100644 --- a/employee-portal/src/lib/shared/components/buttons/RefreshButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/RefreshButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/StickyBottomButtonBar.tsx b/employee-portal/src/lib/shared/components/buttons/StickyBottomButtonBar.tsx index 4252e245db572093618430ebe294ebb4b141918c..858556ad09c7e000e1eccde4bd3d54573cb90a07 100644 --- a/employee-portal/src/lib/shared/components/buttons/StickyBottomButtonBar.tsx +++ b/employee-portal/src/lib/shared/components/buttons/StickyBottomButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/ToggleButton.tsx b/employee-portal/src/lib/shared/components/buttons/ToggleButton.tsx index 506a19004fc1e4aa0605bc5607adea288b349d7d..9e6d8d68f368044713794b4c0e6738ee71b7485c 100644 --- a/employee-portal/src/lib/shared/components/buttons/ToggleButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/ToggleButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/buttons/ToggleExpandButton.tsx b/employee-portal/src/lib/shared/components/buttons/ToggleExpandButton.tsx index fb938b6c99b9a9b36c3a06a7d6ae19f638b284bd..e76b22dcb7c2157e208ce6521a90ed6ab41717b2 100644 --- a/employee-portal/src/lib/shared/components/buttons/ToggleExpandButton.tsx +++ b/employee-portal/src/lib/shared/components/buttons/ToggleExpandButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/cards/FlashCard.tsx b/employee-portal/src/lib/shared/components/cards/FlashCard.tsx index 48d3f91a5b2e49b8c8dca5e4fc5c2e1b4646dda6..766ec44c0ae2621938e3fbf21881b6ef7a20fa32 100644 --- a/employee-portal/src/lib/shared/components/cards/FlashCard.tsx +++ b/employee-portal/src/lib/shared/components/cards/FlashCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/cards/ProcedureCard.tsx b/employee-portal/src/lib/shared/components/cards/ProcedureCard.tsx index cfc6b746e2b2209d3ef69503478079ce1a76b2e1..58da4e7ac71b9640f3b78e412395211503ff36b5 100644 --- a/employee-portal/src/lib/shared/components/cards/ProcedureCard.tsx +++ b/employee-portal/src/lib/shared/components/cards/ProcedureCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/cards/SelectableCard.tsx b/employee-portal/src/lib/shared/components/cards/SelectableCard.tsx index 73c7488a141c69a27e510d0ea0dd9eb45df64459..211a20d413fff6c6af35c6a2d08ec32ce2fc691b 100644 --- a/employee-portal/src/lib/shared/components/cards/SelectableCard.tsx +++ b/employee-portal/src/lib/shared/components/cards/SelectableCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/constants.tsx b/employee-portal/src/lib/shared/components/centralFile/constants.tsx index 1d474ea412b6cc67bea1012c331687ec34c2e6ff..b38212dca5c57cd30590061beeccfc2904f15147 100644 --- a/employee-portal/src/lib/shared/components/centralFile/constants.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/constants.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/display/CentralFileFacilityDetails.tsx b/employee-portal/src/lib/shared/components/centralFile/display/CentralFileFacilityDetails.tsx index 9f1897776d307b95fc6c32f461dd278a876a33d4..66af588a8f7e6c9c5aa4a016dfedc17fa8b21d0f 100644 --- a/employee-portal/src/lib/shared/components/centralFile/display/CentralFileFacilityDetails.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/display/CentralFileFacilityDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/display/CentralFilePersonDetails.tsx b/employee-portal/src/lib/shared/components/centralFile/display/CentralFilePersonDetails.tsx index cd50def201facd8573882e23c2ae6db715b2564d..e56a2a4368ce2fd00846b717760ee3c9ea12e24e 100644 --- a/employee-portal/src/lib/shared/components/centralFile/display/CentralFilePersonDetails.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/display/CentralFilePersonDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,6 +8,10 @@ import { ApiGender, ApiSalutation, } from "@eshg/employee-portal-api/base"; +import { + PERSON_FIELD_NAME, + SALUTATION_VALUES, +} from "@eshg/lib-portal/components/formFields/constants"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { calculateAge } from "@eshg/lib-portal/helpers/dateTime"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; @@ -22,10 +26,6 @@ import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell" import { DetailsColumn } from "@/lib/shared/components/detailsSection/DetailsColumn"; import { DetailsRow } from "@/lib/shared/components/detailsSection/DetailsRow"; import { ExternalLinkDetailsCell } from "@/lib/shared/components/detailsSection/ExternalLinkDetailsCell"; -import { - PERSON_FIELD_NAME, - SALUTATION_VALUES, -} from "@/lib/shared/components/personSidebar/constants"; import { BaseAddress } from "@/lib/shared/helpers/address"; import { translateCountry } from "@/lib/shared/helpers/i18n"; diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/CentralFileSyncForm.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/CentralFileSyncForm.tsx index 0cd7727e1a29ed6918c0a4a0548b2b26cd13c194..b4e181659dc49e7fe1c4ff2d58299973147967aa 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/CentralFileSyncForm.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/CentralFileSyncForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/DifferingFields.ts b/employee-portal/src/lib/shared/components/centralFile/sync/DifferingFields.ts index 7c21a3b4ae8de7ce2e4f8846d96f368ead49cb91..29d23bc38cab9e5b4f0791f2314098e3c7782d6a 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/DifferingFields.ts +++ b/employee-portal/src/lib/shared/components/centralFile/sync/DifferingFields.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/SyncBarrier.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/SyncBarrier.tsx index 989d157a9c504d33ac8512f59c5bb929b110cb1a..2f31ed747c8c0fe7a52729abde6da3c6b8363ca2 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/SyncBarrier.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/SyncBarrier.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,7 +8,7 @@ import { useRouter } from "next/navigation"; import { PersonDetails } from "@/lib/businessModules/schoolEntry/api/models/Person"; import { SyncButton } from "@/lib/shared/components/centralFile/sync/SyncButton"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface SyncBarrierProps { outdated: boolean; diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/SyncButton.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/SyncButton.tsx index 4cc1335ccc6b04f55e3283cb3bc512391da7ecac..db1bc909d6c21df7f98238dbb44e96539b62c8dd 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/SyncButton.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/SyncButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormButtonBar.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormButtonBar.tsx index 05f6ba2bd58ca9593c0df669f18eb2ebdce8ebe9..6d382f922948a7a68b19f0ea16cb02415fdc3cc0 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormButtonBar.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,7 +7,7 @@ import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/Inter import { Button, Stack } from "@mui/joy"; import { isString } from "remeda"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface SyncFormButtonBarProps { onCancel: string | (() => void); diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormField.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormField.tsx index bdc53d2d303887594fb0504bfd638d03e83d2117..b6597981bb234e784fedcb0bacb938592479e0e6 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormField.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormGrid.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormGrid.tsx index 4e581b1533aa17ac867127ff3b385c38062b7d43..8b8c0b7166bef7447eebd64f24b79170663c5e53 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormGrid.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/SyncFormGrid.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/sections/BasePersonDiffForm.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/sections/BasePersonDiffForm.tsx index 43dd3703a603ea7f1bb28637dcfdbf3011209c65..cbd511e9fb80fd290efa149015ac2392ebc735da 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/sections/BasePersonDiffForm.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/sections/BasePersonDiffForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,6 +7,12 @@ import { ApiGetPersonDiffResponse, ApiPersonDetails, } from "@eshg/employee-portal-api/base"; +import { + GENDER_VALUES, + PERSON_FIELD_NAME, + SALUTATION_VALUES, + getOptionalTitle, +} from "@eshg/lib-portal/components/formFields/constants"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { Stack } from "@mui/joy"; import { isDefined } from "remeda"; @@ -25,12 +31,6 @@ import { } from "@/lib/shared/components/centralFile/sync/SyncFormGrid"; import { SyncBaseAddressSection } from "@/lib/shared/components/centralFile/sync/sections/SyncBaseAddressSection"; import { SyncListSection } from "@/lib/shared/components/centralFile/sync/sections/SyncListSection"; -import { - GENDER_VALUES, - PERSON_FIELD_NAME, - SALUTATION_VALUES, - getOptionalTitle, -} from "@/lib/shared/components/personSidebar/constants"; import { translateCountry } from "@/lib/shared/helpers/i18n"; export function BasePersonDiffForm({ diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncBaseAddressSection.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncBaseAddressSection.tsx index cd3350bb62e652896c85e6bd56b69a8302a9106e..480e275cf98206ec6634c81386c9fe73a14ed9a5 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncBaseAddressSection.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncBaseAddressSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncListSection.tsx b/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncListSection.tsx index 2c2be62406810a9da52e7dfa3f205ebd8f1a806e..7dc882ac912e5271321c8a5eaa4a46a8ca5e6547 100644 --- a/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncListSection.tsx +++ b/employee-portal/src/lib/shared/components/centralFile/sync/sections/SyncListSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelChip.tsx b/employee-portal/src/lib/shared/components/chip/ChipWithTooltip.tsx similarity index 73% rename from employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelChip.tsx rename to employee-portal/src/lib/shared/components/chip/ChipWithTooltip.tsx index b21e3135189f4406f3f46ee83b68a8ad07b2547c..a89b55021e52a6e48247bf38ffa48820674aa0a1 100644 --- a/employee-portal/src/lib/businessModules/schoolEntry/features/labels/LabelChip.tsx +++ b/employee-portal/src/lib/shared/components/chip/ChipWithTooltip.tsx @@ -1,18 +1,18 @@ /** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 */ import { BaseModal } from "@eshg/lib-portal/components/BaseModal"; -import { Chip, Tooltip } from "@mui/joy"; -import { Typography, styled } from "@mui/joy"; +import { Chip, Tooltip, Typography, styled } from "@mui/joy"; import { useState } from "react"; -import { Label } from "@/lib/businessModules/schoolEntry/api/models/Label"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; interface Props { - label: Label; + name: string; + hexColor: string; + modalTitle: string; } function contrastColor(color: string) { @@ -48,28 +48,28 @@ const StyledChip = styled(Chip, { }, })); -export function LabelChip(props: Props) { +export function ChipWithTooltip(props: Props) { const [open, setOpen] = useState(false); return ( <> - <Tooltip title={props.label.name} size="sm" placement="right"> + <Tooltip title={props.name} size="sm" placement="right"> <StyledChip - hexColor={props.label.hexColor} + hexColor={props.hexColor} variant="solid" onClick={() => { setOpen(true); }} > - {props.label.name} + {props.name} </StyledChip> </Tooltip> <OverlayBoundary> <BaseModal open={open} onClose={() => setOpen(false)} - modalTitle="Kennung" + modalTitle={props.modalTitle} > - <Typography>{props.label.name}</Typography> + <Typography>{props.name}</Typography> </BaseModal> </OverlayBoundary> </> diff --git a/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmNavigationProvider.tsx b/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmNavigationProvider.tsx index 8199afae77e50dfda712799c87ca2a81d7cd6de9..e48fc4043a1eb3f728c4a72a35662e6640e00184 100644 --- a/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmNavigationProvider.tsx +++ b/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmNavigationProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,7 +9,7 @@ import { NavigationContextProvider } from "@eshg/lib-portal/components/navigatio import { MutationBundle } from "@eshg/lib-portal/types/query"; import { RequiresChildren } from "@eshg/lib-portal/types/react"; -import { useConfirmationDialog } from "./ConfirmationDialogProvider"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; const LABELS = { cancel: "Abbrechen", diff --git a/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmationDialog.tsx b/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmationDialog.tsx deleted file mode 100644 index 09bcc16fc5dfc5592ec42a224068380df111bb9e..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmationDialog.tsx +++ /dev/null @@ -1,126 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -import { useHandledMutation } from "@eshg/lib-portal/api/useHandledMutation"; -import { BaseModal } from "@eshg/lib-portal/components/BaseModal"; -import { MutationBundle } from "@eshg/lib-portal/types/query"; -import { Button, Stack, Typography } from "@mui/joy"; -import { ReactNode, useState } from "react"; - -export interface ConfirmationDialogProps { - open: boolean; - onClose: () => void; - title?: string; - description?: string; - children?: ReactNode; - color?: "primary" | "danger"; - confirmLabel?: string; - onConfirm: () => Promise<void> | void; - onConfirmMutation?: MutationBundle; - denyLabel?: string; - onDeny?: () => Promise<void> | void; - onCancel?: () => void; - cancelLabel?: string; - hideDescription?: boolean; - hideCancelButton?: boolean; -} - -export function ConfirmationDialog({ - open, - onClose, - title = "Änderung speichern?", - description = "Möchten Sie die Änderung wirklich speichern?", - children, - color = "primary", - confirmLabel = "Speichern", - onConfirm, - onConfirmMutation, - denyLabel, - onDeny, - onCancel, - cancelLabel = "Abbrechen", - hideDescription = false, - hideCancelButton = false, -}: ConfirmationDialogProps) { - const [isConfirming, setIsConfirming] = useState(false); - const [isDenying, setIsDenying] = useState(false); - const mutation = useHandledMutation( - onConfirmMutation?.mutationOptions ?? { - mutationFn: () => Promise.resolve(), - }, - ); - - function handleCancel(): void { - onCancel?.(); - onClose(); - } - - return ( - <BaseModal - modalTitle={title} - color={color} - open={open} - onClose={handleCancel} - > - <> - {!hideDescription && <Typography>{description}</Typography>} - {children} - <Stack - direction="row" - spacing={2} - sx={{ marginLeft: "auto", paddingTop: 2 }} - > - {!hideCancelButton && ( - <Button - size="sm" - variant="outlined" - color="neutral" - onClick={handleCancel} - > - {cancelLabel} - </Button> - )} - {onDeny !== undefined && ( - <Button - variant="outlined" - size="sm" - color="danger" - loading={isDenying} - loadingPosition={"start"} - onClick={async () => { - setIsDenying(true); - await onDeny(); - setIsDenying(false); - onClose(); - }} - > - {denyLabel} - </Button> - )} - <Button - size="sm" - color={color} - loading={isConfirming} - loadingPosition={"start"} - onClick={async () => { - setIsConfirming(true); - await mutation.mutateAsync( - onConfirmMutation?.variableSupplier?.(), - { - onError: () => setIsConfirming(false), - }, - ); - await onConfirm(); - setIsConfirming(false); - onClose(); - }} - > - {confirmLabel} - </Button> - </Stack> - </> - </BaseModal> - ); -} diff --git a/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmationDialogProvider.tsx b/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmationDialogProvider.tsx deleted file mode 100644 index b94605af42888773354c7f7f53368ed501d1d30a..0000000000000000000000000000000000000000 --- a/employee-portal/src/lib/shared/components/confirmationDialog/ConfirmationDialogProvider.tsx +++ /dev/null @@ -1,99 +0,0 @@ -/** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: Apache-2.0 - */ - -"use client"; - -import { Optional } from "@eshg/lib-portal/types/utility"; -import { - Dispatch, - ReactNode, - SetStateAction, - createContext, - useContext, - useMemo, - useState, -} from "react"; -import { isDefined } from "remeda"; - -import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; - -import { - ConfirmationDialog, - ConfirmationDialogProps, -} from "./ConfirmationDialog"; - -const ConfirmationDialogContext = createContext<{ - confirmationDialog: ConfirmationDialogProps | undefined; - setConfirmationDialog: Dispatch< - SetStateAction<ConfirmationDialogProps | undefined> - >; -}>(null!); - -export function ConfirmationDialogProvider({ - children, -}: { - children: ReactNode; -}) { - const [confirmationDialog, setConfirmationDialog] = - useState<ConfirmationDialogProps>(); - - return ( - <ConfirmationDialogContext.Provider - value={{ confirmationDialog, setConfirmationDialog }} - > - {confirmationDialog && ( - <OverlayBoundary> - <ConfirmationDialog {...confirmationDialog} /> - </OverlayBoundary> - )} - {children} - </ConfirmationDialogContext.Provider> - ); -} - -export type ConfirmationDialogOptions = Optional< - Omit<ConfirmationDialogProps, "open">, - "onClose" ->; - -export function useConfirmationDialog() { - const context = useContext(ConfirmationDialogContext); - if (context === null) { - throw new Error( - "useConfirmationDialog was called outside ConfirmationDialogProvider", - ); - } - const { setConfirmationDialog } = context; - - return useMemo(() => { - function openConfirmationDialog(options: ConfirmationDialogOptions) { - setConfirmationDialog({ - ...options, - open: true, - onClose: () => { - setConfirmationDialog(undefined); - if (isDefined(options.onClose)) { - options.onClose(); - } - }, - }); - } - - function openCancelDialog(options: ConfirmationDialogOptions) { - openConfirmationDialog({ - title: "Änderungen verwerfen?", - description: "Möchten Sie die Änderungen wirklich verwerfen?", - confirmLabel: "Verwerfen", - color: "danger", - ...options, - }); - } - - return { - openConfirmationDialog, - openCancelDialog, - }; - }, [setConfirmationDialog]); -} diff --git a/employee-portal/src/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog.tsx b/employee-portal/src/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog.tsx new file mode 100644 index 0000000000000000000000000000000000000000..f84f5cd148f90efeb85475f5c2115a1937a07f30 --- /dev/null +++ b/employee-portal/src/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog.tsx @@ -0,0 +1,31 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { + BaseConfirmationDialog, + ConfirmationDialogProps, +} from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialog"; +import { BaseConfirmationDialogButtonBar } from "@eshg/lib-portal/components/confirmationDialog/BaseConfirmationDialogButtonBar"; + +export function EmployeePortalConfirmationDialog({ + title = "Änderung speichern?", + description = "Möchten Sie die Änderung wirklich speichern?", + confirmLabel = "Speichern", + cancelLabel = "Abbrechen", + ...props +}: Readonly<ConfirmationDialogProps>) { + return ( + <BaseConfirmationDialog + title={title} + description={description} + confirmLabel={confirmLabel} + cancelLabel={cancelLabel} + buttonBarComponent={BaseConfirmationDialogButtonBar} + {...props} + /> + ); +} diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentDisplay.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentDisplay.tsx index 18b2ba9fa7ea536ee5ca06e9b201c9b0e0787ad5..306702f9a11bb1715d0c0a416891e06fc465e03e 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentDisplay.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentDisplay.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentEditor.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentEditor.tsx index 3d40846685b8a98b6da72a0dec089c0bc2b1f41c..0c149a6776c2ad5ccbfdd298f6c93fdb2bf306f5 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentEditor.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentEditor.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElement.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElement.tsx index 93eae32dd255a3842ac3c7226b6323fa435a7d86..4ea800345d510af6eebe7fb35f278c9853dd7da6 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElement.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElement.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementAudio.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementAudio.tsx index fafc63950a325c524fba35abbed95389e4ed8170..b07307b5af4c1f29eaaaa6df98c07fe95926c1a0 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementAudio.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementAudio.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementFullTextEditor.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementFullTextEditor.tsx index feb4a6babf31d7d09897cc30c0a99657daf865b9..636644db51f94c72125450841e9bdec86cd5b4ba 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementFullTextEditor.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementFullTextEditor.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementImages.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementImages.tsx index 80f46436c8aaab71ea2292d33608f3b4c04f86f2..cec0cde50b2892017db73caa896b5b349050cc94 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementImages.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementImages.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementPalette.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementPalette.tsx index 924c6738a7cce22328df37f5f4328d5e509e15d0..1f68b9887be0eec73117684e036fde5054b4f8fd 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementPalette.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementPalette.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementProperties.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementProperties.tsx index 4f16ddd3233031e19b5308fff8f0101613a16ebc..dd6ba6a3311f5946627bae32045db3b5ed3cb93a 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementProperties.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementProperties.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertiesToolbar.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertiesToolbar.tsx index 116f5475b90dcaae72118a906baf1c1b63231693..f901d6a2bc1a80f5392685cc77f99aa2eab720cd 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertiesToolbar.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertiesToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertySheet.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertySheet.tsx index 315fbdc28041c7b653ff07b39e8f347c23d9008b..774f4cda45a3f0fa7afaf5283b2e702530987347 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertySheet.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementPropertySheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementQA.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementQA.tsx index f5f630f36a32f34f9ab591a727de8c63ecadb12b..a1b93bbc93ffeb3c5a9f9d2c1ca19c21adea8006 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementQA.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementQA.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementQAEditor.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementQAEditor.tsx index d3be1cc92f783e6aa5d5f3910d8e75e1836ebc88..65b78c35ef41f7635c723924e95492a46e6425bb 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementQAEditor.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementQAEditor.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/ContentElementTextEditor.tsx b/employee-portal/src/lib/shared/components/contentEditor/ContentElementTextEditor.tsx index e53bd77e072f5a4fef55759a67b35d736745b7a1..a8ab3191f4ecd261a934a45304543a9dd9caf403 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/ContentElementTextEditor.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/ContentElementTextEditor.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentEditor/types.tsx b/employee-portal/src/lib/shared/components/contentEditor/types.tsx index 2c983beac84eed5ba0e6371018a0b35624afcf01..b188b082404793a06ab9e0600c52140ed7482193 100644 --- a/employee-portal/src/lib/shared/components/contentEditor/types.tsx +++ b/employee-portal/src/lib/shared/components/contentEditor/types.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/lib/shared/components/contentPanel/ContentPanel.tsx b/employee-portal/src/lib/shared/components/contentPanel/ContentPanel.tsx index d2748333d548c9700dc80bccb2f4f6f48d3be9f4..87a587429eaeeed061d1a887f2c3c4334e4d1cb8 100644 --- a/employee-portal/src/lib/shared/components/contentPanel/ContentPanel.tsx +++ b/employee-portal/src/lib/shared/components/contentPanel/ContentPanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/contentPanel/ContentPanelTitle.tsx b/employee-portal/src/lib/shared/components/contentPanel/ContentPanelTitle.tsx index b5533a3ed97892b83a0051a99dea1c74dd6037e8..c766a6c40a7afa1d10cd60336e6b3ee7c707b670 100644 --- a/employee-portal/src/lib/shared/components/contentPanel/ContentPanelTitle.tsx +++ b/employee-portal/src/lib/shared/components/contentPanel/ContentPanelTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/detailsSection/DetailsCell.tsx b/employee-portal/src/lib/shared/components/detailsSection/DetailsCell.tsx index cddb4db920e1fac592e02aff00a311b265da8d96..14ec2cf7bd11a650ec6a0bf45bb5902add60a0dd 100644 --- a/employee-portal/src/lib/shared/components/detailsSection/DetailsCell.tsx +++ b/employee-portal/src/lib/shared/components/detailsSection/DetailsCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/detailsSection/DetailsColumn.tsx b/employee-portal/src/lib/shared/components/detailsSection/DetailsColumn.tsx index ffd155e4477bbb7036b3610053aec256c2b66782..88bca40c22d520edc3e2e94da4c9154b37a1ab07 100644 --- a/employee-portal/src/lib/shared/components/detailsSection/DetailsColumn.tsx +++ b/employee-portal/src/lib/shared/components/detailsSection/DetailsColumn.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/detailsSection/DetailsRow.tsx b/employee-portal/src/lib/shared/components/detailsSection/DetailsRow.tsx index 6062cca45681e9ae82b54e5543eb2f686f92b5e1..fe3c91ea6475e834f21c9d66ff58e859c0945869 100644 --- a/employee-portal/src/lib/shared/components/detailsSection/DetailsRow.tsx +++ b/employee-portal/src/lib/shared/components/detailsSection/DetailsRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/detailsSection/DetailsSection.tsx b/employee-portal/src/lib/shared/components/detailsSection/DetailsSection.tsx index cd245a748d2de5e5bea347bd45cea77c2742b831..c34df3621f44f10427ef5c94178d6c7dd731b13e 100644 --- a/employee-portal/src/lib/shared/components/detailsSection/DetailsSection.tsx +++ b/employee-portal/src/lib/shared/components/detailsSection/DetailsSection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/detailsSection/ExternalLinkDetailsCell.tsx b/employee-portal/src/lib/shared/components/detailsSection/ExternalLinkDetailsCell.tsx index f33361927b693474dc9c20358490f66a82c19d83..230f0e553571778c8b3433b3e9cd0817f5bc0256 100644 --- a/employee-portal/src/lib/shared/components/detailsSection/ExternalLinkDetailsCell.tsx +++ b/employee-portal/src/lib/shared/components/detailsSection/ExternalLinkDetailsCell.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/detailsSection/SectionHeader.tsx b/employee-portal/src/lib/shared/components/detailsSection/SectionHeader.tsx index b5807669902ddf8f77f6fbbd68c263d568338a2c..7bdaeb724ddbb622c9f5076d95702dbd2e4aef63 100644 --- a/employee-portal/src/lib/shared/components/detailsSection/SectionHeader.tsx +++ b/employee-portal/src/lib/shared/components/detailsSection/SectionHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/detailsTable/DetailsTable.tsx b/employee-portal/src/lib/shared/components/detailsTable/DetailsTable.tsx index b6722f563fef383140668a79ce61aba716d9d9ab..0746aae14075fcba70a7c9e07c152f0fc14bcdd3 100644 --- a/employee-portal/src/lib/shared/components/detailsTable/DetailsTable.tsx +++ b/employee-portal/src/lib/shared/components/detailsTable/DetailsTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/drawer/SidebarSlot.tsx b/employee-portal/src/lib/shared/components/drawer/SidebarSlot.tsx index e554d808a50305e01874be35e49151b2b8855d63..ff9c54065a940e9b78bd1f06c8f680bd3eec0a5e 100644 --- a/employee-portal/src/lib/shared/components/drawer/SidebarSlot.tsx +++ b/employee-portal/src/lib/shared/components/drawer/SidebarSlot.tsx @@ -1,8 +1,9 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ +import { LoadingOverlayHiddenBackdrop } from "@eshg/lib-portal/components/LoadingOverlayHiddenBackdrop"; import { QueryBoundary } from "@eshg/lib-portal/components/boundaries/QueryBoundary"; import { ErrorAlert } from "@eshg/lib-portal/errorHandling/ErrorAlert"; import { RequiresChildren } from "@eshg/lib-portal/types/react"; @@ -10,7 +11,6 @@ import { useQueryErrorResetBoundary } from "@tanstack/react-query"; import { ReactNode, Suspense } from "react"; import { ErrorBoundary, FallbackProps } from "react-error-boundary"; -import { LoadingOverlay } from "@/lib/shared/components/LoadingOverlay"; import { DrawerFallbackOptions, DrawerInstance, @@ -84,7 +84,7 @@ function SidebarError({ function SidebarLoading({ fallbackTitle }: DrawerFallbackOptions) { return ( <SidebarContent title={fallbackTitle}> - <LoadingOverlay /> + <LoadingOverlayHiddenBackdrop /> </SidebarContent> ); } diff --git a/employee-portal/src/lib/shared/components/drawer/drawerContext.tsx b/employee-portal/src/lib/shared/components/drawer/drawerContext.tsx index 7ac414736b1b9ecc2e0d37025c251b48a50977ac..520267ec61da99cb231b5846ab03c431e7581b70 100644 --- a/employee-portal/src/lib/shared/components/drawer/drawerContext.tsx +++ b/employee-portal/src/lib/shared/components/drawer/drawerContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/drawer/useSidebar.tsx b/employee-portal/src/lib/shared/components/drawer/useSidebar.tsx index 21f4c76579e1e632674ad93b6878c471ac315488..de9ceca713abd1f8155b0a2dfd27adb28c05d165 100644 --- a/employee-portal/src/lib/shared/components/drawer/useSidebar.tsx +++ b/employee-portal/src/lib/shared/components/drawer/useSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/drawer/useSidenav.ts b/employee-portal/src/lib/shared/components/drawer/useSidenav.ts index e4c7c0d370f9426d4a182d26cc4d6027d2fe18c0..e1f59f439ff05435a1b2cfb891e885ee395a9198 100644 --- a/employee-portal/src/lib/shared/components/drawer/useSidenav.ts +++ b/employee-portal/src/lib/shared/components/drawer/useSidenav.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/ContactPersonForm.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/ContactPersonForm.tsx index 65482573c4c328a6a1600938918bd8f686e81d34..7a4fbafb0b65c8906a332bda98571229fa234eec 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/ContactPersonForm.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/ContactPersonForm.tsx @@ -1,22 +1,22 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { PhoneNumberField } from "@eshg/lib-portal/components/formFields/PhoneNumberField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + SALUTATION_OPTIONS, + TITLE_OPTIONS, +} from "@eshg/lib-portal/components/formFields/constants"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; import { Divider, Grid, Stack } from "@mui/joy"; import { ReactNode } from "react"; import { BaseFacilityContactPerson } from "@/lib/shared/components/facilitySidebar/types"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; -import { PhoneNumberField } from "@/lib/shared/components/formFields/PhoneNumberField"; -import { - SALUTATION_OPTIONS, - TITLE_OPTIONS, -} from "@/lib/shared/components/personSidebar/constants"; interface ContactPersonFormProps { name: string; diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/EditReferenceFacilitySidebar.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/EditReferenceFacilitySidebar.tsx index a8db6e5e2cf2c84b7ab26ba9bef45abf0d2fa5c5..bb5878acb70d8dc411f30f1503550655ac7fb4c3 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/EditReferenceFacilitySidebar.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/EditReferenceFacilitySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/FacilityDetailsSidebar.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/FacilityDetailsSidebar.tsx index 462c5d13bc0eb15f0748fda27c9c6a151eeacc80..8906f5f4de9e262328fd77dbccb393f8b61e49b3 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/FacilityDetailsSidebar.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/FacilityDetailsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,6 +7,10 @@ import { ApiFacilityContactPerson, ApiGetReferenceFacilityResponse, } from "@eshg/employee-portal-api/base"; +import { + SALUTATION_VALUES, + getOptionalTitle, +} from "@eshg/lib-portal/components/formFields/constants"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { Accordion, @@ -28,10 +32,6 @@ import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell" import { DetailsRow } from "@/lib/shared/components/detailsSection/DetailsRow"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { - SALUTATION_VALUES, - getOptionalTitle, -} from "@/lib/shared/components/personSidebar/constants"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { join } from "@/lib/shared/helpers/strings"; diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/FacilityForm.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/FacilityForm.tsx index df63432f8815f467c1135fe034a22b7f52e34171..ff7e896c5558146443d03946f4e4af7de0604b60 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/FacilityForm.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/FacilityForm.tsx @@ -1,14 +1,16 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { Row } from "@eshg/lib-portal/components/Row"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputArrayField, getIndexLabel, } from "@eshg/lib-portal/components/formFields/InputArrayField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { PhoneNumberField } from "@eshg/lib-portal/components/formFields/PhoneNumberField"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; import AddIcon from "@mui/icons-material/Add"; @@ -27,8 +29,6 @@ import { ContactAddressForm, OptionalBillingAddressForm, } from "@/lib/shared/components/form/address/BaseAddressForm"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; -import { PhoneNumberField } from "@/lib/shared/components/formFields/PhoneNumberField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { createEmptyContactPerson } from "@/lib/shared/helpers/facilityUtils"; diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/FacilitySidebar.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/FacilitySidebar.tsx index 17aa4432b99ea9a5264cf072ab3a6d834e4a9c46..c82c572cac0b3b9ebeabf30c20017b2e42d0ef4f 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/FacilitySidebar.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/FacilitySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/LegacyFacilitySidebar.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/LegacyFacilitySidebar.tsx index 072d5f0649b1ea321f790c9adccedb5668a0d59f..9df9ddf8090a39446f18fbc387a88f232f94bc53 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/LegacyFacilitySidebar.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/LegacyFacilitySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,7 +11,6 @@ import { isNullish } from "remeda"; import { useAddFacility } from "@/lib/baseModule/api/mutations/facility"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FacilityForm } from "@/lib/shared/components/facilitySidebar/FacilityForm"; import { FacilitySearch } from "@/lib/shared/components/facilitySidebar/search/FacilitySearch"; import { BaseFacility } from "@/lib/shared/components/facilitySidebar/types"; @@ -25,6 +24,7 @@ import { createEmptyContactPerson, mapApiContactPersonToForm, } from "@/lib/shared/helpers/facilityUtils"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export enum Mode { search, diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityContactPersonArrayForm.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityContactPersonArrayForm.tsx index c840240f66215410a671578ed353c02f676e865e..53124a0aeda9df243867215bfe65969823ce03a9 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityContactPersonArrayForm.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityContactPersonArrayForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityForm.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityForm.tsx index 58036e6d37318dde8f020ff0a4211e2a019cfa63..94c7868542d4fc546e254dba69770910f2c454cf 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityForm.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/create/FacilityForm.tsx @@ -1,13 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputArrayField, getIndexLabel, } from "@eshg/lib-portal/components/formFields/InputArrayField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; +import { PhoneNumberField } from "@eshg/lib-portal/components/formFields/PhoneNumberField"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; import { Box, Divider, Grid, Stack } from "@mui/joy"; @@ -31,8 +33,6 @@ import { BaseAddressFormInputs, createEmptyAddress, } from "@/lib/shared/components/form/address/helpers"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; -import { PhoneNumberField } from "@/lib/shared/components/formFields/PhoneNumberField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { createEmptyContactPerson } from "@/lib/shared/helpers/facilityUtils"; diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/DefaultFacilitySearchForm.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/DefaultFacilitySearchForm.tsx index 6541e37285ec75d624a5877e711d8caeb5c9b886..59660687f8d69cbbed4163fc5095013d478258d6 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/DefaultFacilitySearchForm.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/DefaultFacilitySearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearch.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearch.tsx index 68c5eb5d3fbfa03896aea1dbdbff4d152cc13308..61a36b824e8fd9ccaccb196a764fa328c6152548 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearch.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearch.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchForm.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchForm.tsx index f75bd520a7cdc9a17f533d8df268ec1d4769a61f..6c4566d51cc2a021d370ba1798f1e2d9f5d29a9a 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchForm.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchResults.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchResults.tsx index d4c5a82d7f648f0fc180e744881fcb2d030b6f1c..5ab45be832f867a806aaaf73b44e44e22357d8f0 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchResults.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/FacilitySearchResults.tsx @@ -1,11 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { ApiGetReferenceFacilityResponse } from "@eshg/employee-portal-api/base"; import { AlertProps } from "@eshg/lib-portal/components/Alert"; import { FormAddMoreButton } from "@eshg/lib-portal/components/form/FormAddMoreButton"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import ArrowBackIosOutlined from "@mui/icons-material/ArrowBackIosOutlined"; import { Box, Button, Stack, Typography } from "@mui/joy"; import { Formik, FormikErrors } from "formik"; @@ -21,7 +22,6 @@ import { SidebarForm, SidebarFormHandle, } from "@/lib/shared/components/form/SidebarForm"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { fullAddress } from "@/lib/shared/helpers/facilityUtils"; diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchForm.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchForm.tsx index 34d7f119072a3fc0025f0f9ac62b3a77d2eaaf3a..37006741028ae36f49abaa99eac3bbb41e54ec46 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchForm.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchResults.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchResults.tsx index ea89aae27d598d3f05bde0876ebde547394c47a7..633410525b48958caae8d09409e0fbad013f302a 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchResults.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/LegacyFacilitySearchResults.tsx @@ -1,11 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import type { ApiGetReferenceFacilityResponse } from "@eshg/employee-portal-api/base"; import { AlertProps } from "@eshg/lib-portal/components/Alert"; import { SubmitButton } from "@eshg/lib-portal/components/buttons/SubmitButton"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import AddOutlined from "@mui/icons-material/AddOutlined"; import SearchOutlined from "@mui/icons-material/SearchOutlined"; import { Button, Stack, Typography } from "@mui/joy"; @@ -15,7 +16,6 @@ import { ReactNode } from "react"; import { FacilityCardContent } from "@/lib/baseModule/components/facility/FacilityCardContent"; import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { fullAddress } from "@/lib/shared/helpers/facilityUtils"; diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchFooter.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchFooter.tsx index 3910ec2e8e4eb267978e38e638cfd9b10978f4f8..1c90fdf07fd0f1c8591ec4d8f998605eb0f49f69 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchFooter.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchFooter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchHeader.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchHeader.tsx index 132c9835c0fa9e774e80087ce62c1977e3404e10..81926546c066924b49c9f66c109ae6aeda15f331 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchHeader.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/search/SearchHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/types.ts b/employee-portal/src/lib/shared/components/facilitySidebar/types.ts index 6e4b2419dba50f2d3b819f0fe14e230cc647bf67..9894974b84a2f41c396fd04bcda126622d264e2a 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/types.ts +++ b/employee-portal/src/lib/shared/components/facilitySidebar/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/facilitySidebar/useFacilitySidebarState.tsx b/employee-portal/src/lib/shared/components/facilitySidebar/useFacilitySidebarState.tsx index 890e51146da6dde444f2f4e7bf7249ce8bb94c3f..a7b4583682038c9011dc5ac700e150cf695cc4e5 100644 --- a/employee-portal/src/lib/shared/components/facilitySidebar/useFacilitySidebarState.tsx +++ b/employee-portal/src/lib/shared/components/facilitySidebar/useFacilitySidebarState.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/ActiveFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/ActiveFilter.tsx index dbcd4e5caf7aa25977ec25c7657e6a98ca59bbc8..420c9f54cd1a7e8835467f4e6b58fb1a0c1a1e95 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/ActiveFilter.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/ActiveFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/DateComparisonFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/DateComparisonFilter.tsx new file mode 100644 index 0000000000000000000000000000000000000000..161a931ecce97bd996038161a1544ab9a3403e6e --- /dev/null +++ b/employee-portal/src/lib/shared/components/filterSettings/DateComparisonFilter.tsx @@ -0,0 +1,85 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { SelectOptions } from "@eshg/lib-portal/components/formFields/SelectOptions"; +import { buildEnumOptions } from "@eshg/lib-portal/helpers/form"; +import { EnumMap } from "@eshg/lib-portal/types/helpers"; +import { FormControl, FormLabel, Input, Select, Stack } from "@mui/joy"; + +import { + DateComparisonFilterDefinition, + DateComparisonFilterValue, + DateComparisonOperator, +} from "@/lib/shared/components/filterSettings/models/DateComparisonFilter"; + +export interface DateComparisonFilterProps { + definition: DateComparisonFilterDefinition; + value: DateComparisonFilterValue | null; + onChange: (value: DateComparisonFilterValue | null) => void; +} + +const dateComparisonOperators: EnumMap<DateComparisonOperator> = { + EQUAL: "Gleich", + GREATER_EQUAL: "Von einschließlich", + LESS_EQUAL: "Bis einschließlich", +}; + +export function defaultDraftValueDateComparisonFilter( + key: string, +): DateComparisonFilterValue { + return { + type: "DateComparison", + key: key, + value: "", + operator: "EQUAL", + }; +} + +export function DateComparisonFilter(props: DateComparisonFilterProps) { + const draftValue = + props.value ?? defaultDraftValueDateComparisonFilter(props.definition.key); + + function handleChange(optionValue: string | null) { + props.onChange( + optionValue + ? { + ...draftValue, + value: optionValue, + } + : null, + ); + } + + return ( + <Stack gap={2} width="100%"> + <Select + aria-label="Intervalart" + value={props.value?.operator ?? "EQUAL"} + onChange={(_event, operator) => + props.onChange( + operator + ? { + ...draftValue, + operator: operator, + } + : null, + ) + } + > + <SelectOptions options={buildEnumOptions(dateComparisonOperators)} /> + </Select> + <FormControl> + <FormLabel htmlFor="date-comparison-filter">Datum</FormLabel> + <Input + id="date-comparison-filter" + type="date" + value={props.value?.value ?? ""} + onChange={(event) => handleChange(event.target.value)} + style={{ width: "100%" }} + /> + </FormControl> + </Stack> + ); +} diff --git a/employee-portal/src/lib/shared/components/filterSettings/DateFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/DateFilter.tsx index ccc4105959c8518c5d78db2a38946645c3e64a51..acd3f295a81d907e5ff8916c1aa60b58d068485a 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/DateFilter.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/DateFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/DateSpanFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/DateSpanFilter.tsx index 3486a67c290a33f964f348dec67e8a9e84ed737e..af8941bb6921fd78223d5e564dd3f55babe8c670 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/DateSpanFilter.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/DateSpanFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -83,25 +83,36 @@ function maxInput(definition: DateSpanFilterDefinition) { } export function validateDateSpan( - { maxInputPast }: DateSpanFilterDefinition, + { maxInputPast, doNotRequireStartAndEnd }: DateSpanFilterDefinition, { startDate, endDate }: DateSpanFilterValue, ) { if (startDate === undefined && endDate === undefined) { return undefined; } - if (startDate === undefined || endDate === undefined) { + if ( + !doNotRequireStartAndEnd && + (startDate === undefined || endDate === undefined) + ) { return "Die Zeitspanne wurde unvollständig angegeben."; } - const parsedStartDate = parse(startDate, "yyyy-MM-dd", new Date()); - const parsedEndDate = parse(endDate, "yyyy-MM-dd", new Date()); + const parsedStartDate = startDate + ? parse(startDate, "yyyy-MM-dd", new Date()) + : undefined; + const parsedEndDate = endDate + ? parse(endDate, "yyyy-MM-dd", new Date()) + : undefined; - if (parsedEndDate < parsedStartDate) { + if (parsedEndDate && parsedStartDate && parsedEndDate < parsedStartDate) { return "Das Enddatum darf nicht vor dem Startdatum liegen."; } - if (maxInputPast && parsedEndDate >= startOfDay(new Date())) { + if ( + maxInputPast && + ((parsedStartDate && parsedStartDate >= startOfDay(new Date())) || + (parsedEndDate && parsedEndDate >= startOfDay(new Date()))) + ) { return "Die Zeitspanne muss in der Vergangenheit liegen."; } diff --git a/employee-portal/src/lib/shared/components/filterSettings/EnumFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/EnumFilter.tsx index f9e37079e215727d56e5b815438418493cf6ee4f..70f8f32640c45cc9a0d5418c8b737ebe2a8ac536 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/EnumFilter.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/EnumFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/EnumSingleFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/EnumSingleFilter.tsx index 6726b44d997e9391b35f68626e8aaebe731b6af0..b7354336122d1f10c8df1406623e3c34081389a9 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/EnumSingleFilter.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/EnumSingleFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/FilterSettings.tsx b/employee-portal/src/lib/shared/components/filterSettings/FilterSettings.tsx index 3328502b7c8fb0df47fc12ae0239f8ef0829efd9..fc1cb4ee893a56f7c0f6378e4dcfa582a086b448 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/FilterSettings.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/FilterSettings.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,6 +10,7 @@ import { SearchableGroupItem, SearchableGroups, } from "@/lib/shared/components/SearchableGroups"; +import { DateComparisonFilter } from "@/lib/shared/components/filterSettings/DateComparisonFilter"; import { DateSpanFilter } from "@/lib/shared/components/filterSettings/DateSpanFilter"; import { FilterSettingsContent } from "@/lib/shared/components/filterSettings/FilterSettingsContent"; import { @@ -143,6 +144,19 @@ export function FilterSettings(props: FilterSettingsProps) { } /> ); + case "DateComparison": + return ( + <DateComparisonFilter + definition={item.filterDefinition} + value={findValueByDefinition( + props.draftValues, + item.filterDefinition, + )} + onChange={(value) => + props.onDraftValueChange(item.filterDefinition.key, value) + } + /> + ); case "Year": return ( <YearFilter diff --git a/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsContent.tsx b/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsContent.tsx index 97dab614c8d57197598290fcd5d017f0d2a52cab..e85cf554233ccdf0e47c73769e969d5bf04534c4 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsContent.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsSheet.tsx b/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsSheet.tsx index 1c517424694b9f4ab5a0792455265730b7d5b3d7..159c368865f8a1631ba5b48e48b8e3cd76e32d81 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsSheet.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/FilterSettingsSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/FilterTemplates.tsx b/employee-portal/src/lib/shared/components/filterSettings/FilterTemplates.tsx index 00f4cace15bfa7c35fbc8c90a6065fd51e7249f2..3804515b13e23855c334c6ba5817ee113a5c2e10 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/FilterTemplates.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/FilterTemplates.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,8 +9,8 @@ import { Option, Select, Stack } from "@mui/joy"; import { useState } from "react"; import { ActionsMenu } from "@/lib/shared/components/buttons/ActionsMenu"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FormDialog } from "@/lib/shared/components/formDialog/FormDialog"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface TemplateNameFormModel { templateName: string; diff --git a/employee-portal/src/lib/shared/components/filterSettings/NumberFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/NumberFilter.tsx index b83a005910a05ae5e2627b6763e2b9cf9212ba98..2d799ccef2635575b0d22c1fde07df657291e0c6 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/NumberFilter.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/NumberFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/YearFilter.tsx b/employee-portal/src/lib/shared/components/filterSettings/YearFilter.tsx index 5de7017aabefa256a3174b4c7b189fbbebd7730c..d1273af0a3d934212910178b8ebce535caf401ca 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/YearFilter.tsx +++ b/employee-portal/src/lib/shared/components/filterSettings/YearFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/DateComparisonFilter.ts b/employee-portal/src/lib/shared/components/filterSettings/models/DateComparisonFilter.ts new file mode 100644 index 0000000000000000000000000000000000000000..30741448f2c242061df268f99d077e959b84f2d2 --- /dev/null +++ b/employee-portal/src/lib/shared/components/filterSettings/models/DateComparisonFilter.ts @@ -0,0 +1,33 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; + +import { FilterDefinitionBase } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; +import { FilterValueBase } from "@/lib/shared/components/filterSettings/models/FilterValue"; + +export interface DateComparisonFilterDefinition extends FilterDefinitionBase { + type: "DateComparison"; +} + +export const DateComparisonOperator = { + Equal: "EQUAL", + GreaterEqual: "GREATER_EQUAL", + LessEqual: "LESS_EQUAL", +} as const; +export type DateComparisonOperator = + (typeof DateComparisonOperator)[keyof typeof DateComparisonOperator]; + +export interface DateComparisonFilterValue extends FilterValueBase { + type: "DateComparison"; + operator: DateComparisonOperator; + value: string; +} + +export interface DateComparisonFilterDraftValue extends FilterValueBase { + type: "DateComparison"; + operator: DateComparisonOperator; + value: OptionalFieldValue<string>; +} diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/DateFilter.ts b/employee-portal/src/lib/shared/components/filterSettings/models/DateFilter.ts index ec9c309110dba5ec438c9ca14bdf92d99c488900..d6b154fc9d751df0698bcb4ac513ae7f208ffd89 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/DateFilter.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/DateFilter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/DateSpanFilter.ts b/employee-portal/src/lib/shared/components/filterSettings/models/DateSpanFilter.ts index 945c5247bf4bb1512fb44750eb692d9ee888fb7d..67fa31d57c1a8225f25996f950ad12f62446a9ab 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/DateSpanFilter.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/DateSpanFilter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ import { FilterValueBase } from "@/lib/shared/components/filterSettings/models/F export interface DateSpanFilterDefinition extends FilterDefinitionBase { type: "DateSpan"; maxInputPast?: boolean; + doNotRequireStartAndEnd?: boolean; } export interface DateSpanFilterValue extends FilterValueBase { diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/EnumFilter.ts b/employee-portal/src/lib/shared/components/filterSettings/models/EnumFilter.ts index c832dee4acb094d46412a4d68a77e837e87510fb..62d040782dac08108548892c0497b6d3bef5db51 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/EnumFilter.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/EnumFilter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/EnumSingleFilter.ts b/employee-portal/src/lib/shared/components/filterSettings/models/EnumSingleFilter.ts index 577a368d9612def237e642aa7714a29a35f83905..b2c0c0138746b842788f7283387c163b9fd5c98b 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/EnumSingleFilter.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/EnumSingleFilter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/FilterDefinition.ts b/employee-portal/src/lib/shared/components/filterSettings/models/FilterDefinition.ts index 6c75d17fc2660d577b461aff5f0e151f3db7c2fc..767c1ddb57da4cf8c9fefe83f6cf17f6c70228e3 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/FilterDefinition.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/FilterDefinition.ts @@ -1,8 +1,9 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ +import { DateComparisonFilterDefinition } from "@/lib/shared/components/filterSettings/models/DateComparisonFilter"; import { DateSpanFilterDefinition } from "@/lib/shared/components/filterSettings/models/DateSpanFilter"; import { EnumFilterDefinition } from "@/lib/shared/components/filterSettings/models/EnumFilter"; import { NumberFilterDefinition } from "@/lib/shared/components/filterSettings/models/NumberFilter"; @@ -23,5 +24,6 @@ export type FilterDefinition = | EnumSingleFilterDefinition | DateFilterDefinition | DateSpanFilterDefinition + | DateComparisonFilterDefinition | NumberFilterDefinition | YearFilterDefinition; diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/FilterValue.ts b/employee-portal/src/lib/shared/components/filterSettings/models/FilterValue.ts index fabd84e761c72f1cc210a08520eccd38d7914191..9c109b25815334166cd41299da3151b9e779b045 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/FilterValue.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/FilterValue.ts @@ -1,8 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ +import { + DateComparisonFilterDraftValue, + DateComparisonFilterValue, +} from "@/lib/shared/components/filterSettings/models/DateComparisonFilter"; import { EnumFilterValue } from "@/lib/shared/components/filterSettings/models/EnumFilter"; import { NumberFilterDraftValue, @@ -21,6 +25,7 @@ export interface FilterValueBase { export type FilterValue = | DateFilterValue | DateSpanFilterValue + | DateComparisonFilterValue | EnumFilterValue | EnumSingleFilterValue | NumberFilterValue @@ -29,6 +34,7 @@ export type FilterValue = export type FilterDraftValue = | DateFilterValue | DateSpanFilterValue + | DateComparisonFilterDraftValue | EnumFilterValue | EnumSingleFilterValue | NumberFilterDraftValue diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/NumberFilter.ts b/employee-portal/src/lib/shared/components/filterSettings/models/NumberFilter.ts index 0892227c9a709708f40f6a6b6be0d82ba598d044..48a63e2bf3a189594a6846b05c3f793f18b63ee5 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/NumberFilter.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/NumberFilter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/YearFilter.ts b/employee-portal/src/lib/shared/components/filterSettings/models/YearFilter.ts index 71332e36ca296e7b12476ac6723055695c3e4feb..698da61981fbfff4a1ed7cae1e93e1c3a81e03f6 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/YearFilter.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/YearFilter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/assertFilterType.ts b/employee-portal/src/lib/shared/components/filterSettings/models/assertFilterType.ts index 04ae59a3984c95cdc452e2d680a8b5784626ebe1..01c1120e8ba35dddbb7bd4e34bfca6913bfc95e0 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/assertFilterType.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/assertFilterType.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/findValueByDefinition.ts b/employee-portal/src/lib/shared/components/filterSettings/models/findValueByDefinition.ts index 72d2ac0a0153634793fe242bb69e358d40c3b313..1a3b95ea01c30b658f9a5c5a805ec420bd360944 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/findValueByDefinition.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/findValueByDefinition.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/getDefinitionByValue.ts b/employee-portal/src/lib/shared/components/filterSettings/models/getDefinitionByValue.ts index db112739586ccd4e77fdb68a05f2e3806a811bae..1df20d07f42d52bfdb91f0a3f4671557fbb9ecf5 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/getDefinitionByValue.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/getDefinitionByValue.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/mapActiveToDraftValues.ts b/employee-portal/src/lib/shared/components/filterSettings/models/mapActiveToDraftValues.ts index 06eb85d858f32dd06823dc9d387bc8b18433da1a..1be0c34485e72101524c9d2f5ac1cabfa6d78070 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/mapActiveToDraftValues.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/mapActiveToDraftValues.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/models/mapDraftToActiveValues.ts b/employee-portal/src/lib/shared/components/filterSettings/models/mapDraftToActiveValues.ts index 15b37477f3a63cae33cf2c6bc0238505342ae025..650f1420141e41aa3148ac247dce264a79d5523d 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/models/mapDraftToActiveValues.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/models/mapDraftToActiveValues.ts @@ -1,11 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { isEmptyString } from "@eshg/lib-portal/helpers/guards"; import { isNonNull } from "remeda"; +import { + DateComparisonFilterDraftValue, + DateComparisonFilterValue, +} from "@/lib/shared/components/filterSettings/models/DateComparisonFilter"; import { FilterDraftValue, FilterValue, @@ -26,6 +30,8 @@ export function mapDraftToActiveValues( switch (draftValue.type) { case "Number": return mapNumber(draftValue); + case "DateComparison": + return mapDateComparison(draftValue); default: return draftValue; } @@ -36,6 +42,15 @@ export function mapDraftToActiveValues( ); } +function mapDateComparison( + draftValue: DateComparisonFilterDraftValue, +): DateComparisonFilterValue | null { + if (draftValue.value && draftValue.value.trim().length > 0) { + return draftValue; + } + return null; +} + function mapNumber( draftValue: NumberFilterDraftValue, ): NumberFilterValue | null { diff --git a/employee-portal/src/lib/shared/components/filterSettings/useFilterDictionary.ts b/employee-portal/src/lib/shared/components/filterSettings/useFilterDictionary.ts index 5280d6f621c03b64b4721d0d7a78429fb9954683..82fd414d35c8dc491c0b808625b3f7ff854cb3fc 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/useFilterDictionary.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/useFilterDictionary.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/useFilterSettings.ts b/employee-portal/src/lib/shared/components/filterSettings/useFilterSettings.ts index 335028aa5d1fb34ba0e30da02b61355206c653a2..678f3c4fdbd7b589a59887ec317ecc6a819b4037 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/useFilterSettings.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/useFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/useFilterTemplate.ts b/employee-portal/src/lib/shared/components/filterSettings/useFilterTemplate.ts index c7923510b03c110d3bb6d88fc582c8e19d354852..3f0c03cbc2b506ce35c97d6c23899eb9a4aa3b8f 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/useFilterTemplate.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/useFilterTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/useSearchParamFilterSettings.ts b/employee-portal/src/lib/shared/components/filterSettings/useSearchParamFilterSettings.ts index 438d399e35a79b2aebb6c03f1a09e743a6f61ea5..1df000f0835bfad4a690e51fb7f86bafb195e452 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/useSearchParamFilterSettings.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/useSearchParamFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/filterSettings/useSearchParamStateProvider.ts b/employee-portal/src/lib/shared/components/filterSettings/useSearchParamStateProvider.ts index ab306ca19dcf495808e660be6188e67d2c364e0e..7c3838b2f8e3b29d98a43c5e20630b1c1898bfa8 100644 --- a/employee-portal/src/lib/shared/components/filterSettings/useSearchParamStateProvider.ts +++ b/employee-portal/src/lib/shared/components/filterSettings/useSearchParamStateProvider.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,6 +11,8 @@ import { } from "next/navigation"; import { SetStateAction, useCallback, useState } from "react"; +import { defaultDraftValueDateComparisonFilter } from "@/lib/shared/components/filterSettings/DateComparisonFilter"; +import { DateComparisonOperator } from "@/lib/shared/components/filterSettings/models/DateComparisonFilter"; import { FilterDefinition } from "@/lib/shared/components/filterSettings/models/FilterDefinition"; import { FilterValue } from "@/lib/shared/components/filterSettings/models/FilterValue"; import { @@ -84,6 +86,8 @@ export function activeValueToParamValues(activeValue: FilterValue): string[] { case "Date": case "Year": return [activeValue.selectedValue]; + case "DateComparison": + return [activeValue.value, activeValue.operator]; case "Enum": return activeValue.selectedValues; case "DateSpan": @@ -167,6 +171,14 @@ export function paramValuesToActiveValue( selectedValue: values[0], } : undefined; + case "DateComparison": + return values[0] && values[1] + ? { + ...defaultDraftValueDateComparisonFilter(def.key), + value: values[0], + operator: values[1] as DateComparisonOperator, + } + : undefined; case "Enum": return values.length > 0 ? { diff --git a/employee-portal/src/lib/shared/components/form/ConfirmLeaveDirtyFormEffect.ts b/employee-portal/src/lib/shared/components/form/ConfirmLeaveDirtyFormEffect.ts index 3566f8a80de17b1bf4e59d48d8523f1aa610588a..d88c6cb470f34e9bb60073060c04e9c2f269d14a 100644 --- a/employee-portal/src/lib/shared/components/form/ConfirmLeaveDirtyFormEffect.ts +++ b/employee-portal/src/lib/shared/components/form/ConfirmLeaveDirtyFormEffect.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/FieldButtonBar.tsx b/employee-portal/src/lib/shared/components/form/FieldButtonBar.tsx index 041f1d5d6db69bae1c1512df104ddf8041a72965..8fd2814e078b2592490a967f9c88650a7e7d643e 100644 --- a/employee-portal/src/lib/shared/components/form/FieldButtonBar.tsx +++ b/employee-portal/src/lib/shared/components/form/FieldButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/FormButtonBar.tsx b/employee-portal/src/lib/shared/components/form/FormButtonBar.tsx index 7ded2d97540c8bae92f8b3068e491dc3dfbb17cc..68bc73d156eddf343053c2de0022c11f7065e5ff 100644 --- a/employee-portal/src/lib/shared/components/form/FormButtonBar.tsx +++ b/employee-portal/src/lib/shared/components/form/FormButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/FormGridContainer.tsx b/employee-portal/src/lib/shared/components/form/FormGridContainer.tsx index 333f653b48d6056fb4b5c0bd80e58f519fe5a537..b28f6dab3cf54d6410f08853e6bab7463c543325 100644 --- a/employee-portal/src/lib/shared/components/form/FormGridContainer.tsx +++ b/employee-portal/src/lib/shared/components/form/FormGridContainer.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/FormGroupGrid.tsx b/employee-portal/src/lib/shared/components/form/FormGroupGrid.tsx index 3949421b670f08078ea97f15b6ee39b895176d53..8b5f723aa163eb85606a367e5f3f4ce93eda901f 100644 --- a/employee-portal/src/lib/shared/components/form/FormGroupGrid.tsx +++ b/employee-portal/src/lib/shared/components/form/FormGroupGrid.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/FormSheet.tsx b/employee-portal/src/lib/shared/components/form/FormSheet.tsx index 4669986487931c81a70baed5cd3c3bb52102e5f4..33b98700e13b882eb4a51c482ef7d5b4a0aac858 100644 --- a/employee-portal/src/lib/shared/components/form/FormSheet.tsx +++ b/employee-portal/src/lib/shared/components/form/FormSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/FormStack.tsx b/employee-portal/src/lib/shared/components/form/FormStack.tsx index 38fee797ea0c7edfdd3dd4b115506f1447ee0f9f..8425a00c3153cbd511c54acc0722fd8884bd0e0f 100644 --- a/employee-portal/src/lib/shared/components/form/FormStack.tsx +++ b/employee-portal/src/lib/shared/components/form/FormStack.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/MultiFormButtonBar.tsx b/employee-portal/src/lib/shared/components/form/MultiFormButtonBar.tsx index 0ad5aa94c00a16d7b411cc4d97a4f892975c150d..33bcbb627a885b8df3e0fe6e96f51ca522cda675 100644 --- a/employee-portal/src/lib/shared/components/form/MultiFormButtonBar.tsx +++ b/employee-portal/src/lib/shared/components/form/MultiFormButtonBar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/SidebarForm.tsx b/employee-portal/src/lib/shared/components/form/SidebarForm.tsx index 9014c4a6cf394f9bb4247486b005aae2cf7872f7..9108c44fdbfee1f2f261b0637d222488be52164b 100644 --- a/employee-portal/src/lib/shared/components/form/SidebarForm.tsx +++ b/employee-portal/src/lib/shared/components/form/SidebarForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/address/BaseAddressForm.tsx b/employee-portal/src/lib/shared/components/form/address/BaseAddressForm.tsx index dd2503c842420dc40ba6abb306186dfddeae1563..9aba32cfb65cadac90c939f2309018a3e8d783c4 100644 --- a/employee-portal/src/lib/shared/components/form/address/BaseAddressForm.tsx +++ b/employee-portal/src/lib/shared/components/form/address/BaseAddressForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/address/LegacyAddressForm.tsx b/employee-portal/src/lib/shared/components/form/address/LegacyAddressForm.tsx index 4f511e4c5180c3b7f09762ef33d6f7cffc4a0206..41895d4585ed3bf99621f6d4a1f7970488498914 100644 --- a/employee-portal/src/lib/shared/components/form/address/LegacyAddressForm.tsx +++ b/employee-portal/src/lib/shared/components/form/address/LegacyAddressForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/address/helpers.ts b/employee-portal/src/lib/shared/components/form/address/helpers.ts index 7d635169ed671c312bf0f5a7fabea896d0f9d1a8..554b008d69df900727f445ccfacdb7e658212505 100644 --- a/employee-portal/src/lib/shared/components/form/address/helpers.ts +++ b/employee-portal/src/lib/shared/components/form/address/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/form/address/legacyTypes.ts b/employee-portal/src/lib/shared/components/form/address/legacyTypes.ts index 55e78171e4f02b2dc2cbabc92e98874357816470..9f33bb893b5d74981dce78c19c0210f935bdda89 100644 --- a/employee-portal/src/lib/shared/components/form/address/legacyTypes.ts +++ b/employee-portal/src/lib/shared/components/form/address/legacyTypes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formDialog/FormDialog.tsx b/employee-portal/src/lib/shared/components/formDialog/FormDialog.tsx index d9d7e0d7d968fdf1de0cacd36c07ee30a8fabf61..efd77871f5443c98e1f56dcf7ed0cee604b0beac 100644 --- a/employee-portal/src/lib/shared/components/formDialog/FormDialog.tsx +++ b/employee-portal/src/lib/shared/components/formDialog/FormDialog.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/CheckboxField.tsx b/employee-portal/src/lib/shared/components/formFields/CheckboxField.tsx index dfa54e4b86008f48babdeed1975f3cfcaecb367b..495b8a392e9d6de7d7c34d44d87140b88f9cc477 100644 --- a/employee-portal/src/lib/shared/components/formFields/CheckboxField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/CheckboxField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,7 +7,9 @@ import { useBaseField } from "@eshg/lib-portal/components/formFields/BaseField"; import { FieldProps } from "@eshg/lib-portal/types/form"; import { Checkbox, CheckboxProps, FormControl, FormHelperText } from "@mui/joy"; import { SxProps } from "@mui/joy/styles/types"; +import { useFormikContext } from "formik"; import { ChangeEventHandler } from "react"; +import { isString } from "remeda"; export interface CheckboxFieldProps extends FieldProps<boolean> { onChange?: ChangeEventHandler<HTMLInputElement>; @@ -50,9 +52,18 @@ export function CheckboxField(props: CheckboxFieldProps) { }, }); - const showHelperText = !!meta.error && props.required; + const starLabel = + isString(props.label) && props.required ? `${props.label} *` : props.label; + + const { isValid } = useFormikContext(); + const hasValidationError = !!meta.error && !isValid; + + // Often checkbox helper text is shown for a whole group, + // only show for single checkbox if the checkbox is "required" + const showHelperText = hasValidationError && props.required != null; + return ( - <FormControl error={!!meta.error} required={required}> + <FormControl error={hasValidationError} required={required}> <Checkbox name={field.name} onChange={(event) => { @@ -62,7 +73,7 @@ export function CheckboxField(props: CheckboxFieldProps) { } }} onBlur={field.onBlur} - label={props.label} + label={starLabel} disabled={props.disabled} checked={isChecked(field.value, props.representingValue)} value={props.representingValue ?? "true"} diff --git a/employee-portal/src/lib/shared/components/formFields/CheckboxGroupField.tsx b/employee-portal/src/lib/shared/components/formFields/CheckboxGroupField.tsx index 6a93ec3a51d6d4797b2e598d9439d06cdf6f3e97..702f297f8297d90b012872adf6ce968a88202e20 100644 --- a/employee-portal/src/lib/shared/components/formFields/CheckboxGroupField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/CheckboxGroupField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,16 +10,21 @@ import { SelectOption } from "@eshg/lib-portal/components/formFields/SelectOptio import { ValidationRules } from "@eshg/lib-portal/types/form"; import { Checkbox, + CheckboxProps, + FormControl, FormControlProps, getFormControlUtilityClass, styled, } from "@mui/joy"; import { SxProps } from "@mui/joy/styles/types"; -import { ChangeEvent, ChangeEventHandler, ReactNode } from "react"; +import { ChangeEvent, ChangeEventHandler, ReactNode, useId } from "react"; import { Legend } from "./Legend"; import { OptionalHelperText } from "./OptionalHelperText"; +export interface AccessibleSelectOption extends SelectOption { + ariaLabel?: string; +} export interface CheckboxGroupFieldProps<T extends SelectOption> extends ValidationRules<T["value"][]> { options: T[]; @@ -33,6 +38,8 @@ export interface CheckboxGroupFieldProps<T extends SelectOption> // Disables the checkboxes disabled?: boolean; children?: ReactNode; + size?: CheckboxProps["size"]; + groupHelperTextId?: string; } export function CheckboxGroupField<T extends SelectOption = SelectOption>( @@ -40,6 +47,7 @@ export function CheckboxGroupField<T extends SelectOption = SelectOption>( ) { const field = useBaseField<T["value"][]>(props); const isFormDisabled = useIsFormDisabled(); + const groupHelperTextId = useId(); async function handleChange(event: ChangeEvent<HTMLInputElement>) { if (props.readOnly) { @@ -62,19 +70,24 @@ export function CheckboxGroupField<T extends SelectOption = SelectOption>( return ( <FieldSetControl onBlur={field.input.onBlur} - flexDirection={props.orientation === "vertical" ? "column" : "row"} legend={props.label} helperText={field.helperText} required={field.required} + error={field.error} + groupHelperTextId={groupHelperTextId} sx={props.sx} > <Checkboxes + orientation={props.orientation} onChange={handleChange} options={props.options} selected={field.input.value} name={props.name} + error={field.error} disabled={isFormDisabled || props.disabled} readOnly={props.readOnly} + size={props.size} + groupHelperTextId={field.helperText ? groupHelperTextId : undefined} /> {props.children} </FieldSetControl> @@ -83,31 +96,50 @@ export function CheckboxGroupField<T extends SelectOption = SelectOption>( type FieldSetProps = Pick< FormControlProps, - "required" | "error" | "sx" | "disabled" | "className" | "onBlur" + | "required" + | "error" + | "sx" + | "disabled" + | "className" + | "onBlur" + | "aria-label" > & { flexDirection?: "row" | "column" }; interface FieldSetLegendAndHelper { helperText?: string; legend?: string | ReactNode; children: ReactNode; + groupHelperTextId?: string; } export function FieldSetControl({ helperText, legend, children, + error, + groupHelperTextId, ...fieldSetProps }: FieldSetProps & FieldSetLegendAndHelper) { const rootClass = getFormControlUtilityClass("root"); + const errorClass = getFormControlUtilityClass("error"); const className = fieldSetProps.className != null ? `${rootClass} ${fieldSetProps.className}` : rootClass; + + const classNameWithError = error ? `${errorClass} ${className}` : className; return ( - <FieldSetRow component="fieldset" {...fieldSetProps} className={className}> + <FieldSetRow + component="fieldset" + flexDirection={"column"} + {...fieldSetProps} + className={classNameWithError} + > <Legend>{legend}</Legend> {children} - <OptionalHelperText>{helperText}</OptionalHelperText> + <OptionalHelperText id={groupHelperTextId}> + {helperText} + </OptionalHelperText> </FieldSetRow> ); } @@ -118,35 +150,58 @@ const FieldSetRow = styled(Row)(() => ({ border: "none", })); -interface CheckboxesProps<T extends SelectOption> { +interface CheckboxesProps<T extends AccessibleSelectOption> { name: string; options: T[]; selected: T["value"][]; disabled?: boolean; readOnly?: boolean; onChange: ChangeEventHandler<HTMLInputElement>; + size: CheckboxProps["size"]; + error: boolean; + orientation?: "vertical" | "horizontal"; + groupHelperTextId?: string; } -function Checkboxes<T extends SelectOption>({ +function Checkboxes<T extends AccessibleSelectOption>({ name, options, selected, disabled, readOnly, onChange, + size, + orientation, + error, + groupHelperTextId, }: CheckboxesProps<T>) { return ( - <Row sx={{ marginTop: 1, marginBottom: 1 }}> + <Row + sx={{ + flexDirection: orientation === "vertical" ? "column" : "row", + marginY: 1, + columnGap: 3, + rowGap: 2, + }} + > {options.map((t) => ( - <Checkbox - key={name + t.value} - checked={selected?.includes(t.value) ?? false} - value={t.value} - label={t.label} - onChange={onChange} - disabled={disabled} - readOnly={readOnly} - /> + <FormControl error={error} key={name + t.value}> + <Checkbox + checked={selected?.includes(t.value) ?? false} + value={t.value} + label={t.label} + onChange={onChange} + disabled={disabled} + readOnly={readOnly} + size={size} + slotProps={{ + input: { + "aria-describedby": groupHelperTextId, + "aria-label": t.ariaLabel, + }, + }} + /> + </FormControl> ))} </Row> ); diff --git a/employee-portal/src/lib/shared/components/formFields/CountryField.tsx b/employee-portal/src/lib/shared/components/formFields/CountryField.tsx index 64cbefba74643e763501af31525ccbfe127104d4..5a468c45f8239f7a675d468845eff3244e3d1348 100644 --- a/employee-portal/src/lib/shared/components/formFields/CountryField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/CountryField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/DateOrDateTimeField.tsx b/employee-portal/src/lib/shared/components/formFields/DateOrDateTimeField.tsx index bdbe4437dc1cc946ac8f585bfa058c37c00c0627..698443e8f6e51e52d95b5bcbd251ec0f6713f887 100644 --- a/employee-portal/src/lib/shared/components/formFields/DateOrDateTimeField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/DateOrDateTimeField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/DateTimeField.tsx b/employee-portal/src/lib/shared/components/formFields/DateTimeField.tsx index cb8824607b0d058cc7cbac8cdfe6660782debd54..3e15ca88a933ccf7b5d2bc78b28793bf0f81203d 100644 --- a/employee-portal/src/lib/shared/components/formFields/DateTimeField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/DateTimeField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/FilterSettingsField.tsx b/employee-portal/src/lib/shared/components/formFields/FilterSettingsField.tsx index 44acce2ecef9e4d16e610fb30d73030d65f6989f..e45f8d4f996b7c198bc78c4360b000339f7d3820 100644 --- a/employee-portal/src/lib/shared/components/formFields/FilterSettingsField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/FilterSettingsField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/Legend.tsx b/employee-portal/src/lib/shared/components/formFields/Legend.tsx index 4d7d0adb09ca973ec9b2378f08baa4df2084f91f..189cb4bda80110034f1580e6990675a854a58b15 100644 --- a/employee-portal/src/lib/shared/components/formFields/Legend.tsx +++ b/employee-portal/src/lib/shared/components/formFields/Legend.tsx @@ -1,25 +1,13 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { FormLabel, getFormLabelUtilityClass, useTheme } from "@mui/joy"; import { PropsWithChildren } from "react"; -export function Legend({ - children, - variant = "group", -}: PropsWithChildren<{ variant?: "group" | "single" }>) { +export function Legend({ children }: PropsWithChildren) { const theme = useTheme(); - const groupLegendStyles = { - fontWeight: 400, - fontSize: theme.fontSize.md, - }; - const singleLegendStyles = { - fontWeight: theme.fontWeight.md, - }; - const extraLegendStyles = - variant === "group" ? groupLegendStyles : singleLegendStyles; if (children == null) { return null; @@ -34,7 +22,8 @@ export function Legend({ sx={{ padding: 0, margin: "0 0 0.375rem 0", - ...extraLegendStyles, + fontSize: theme.fontSize.sm, + fontWeight: theme.fontWeight.md, }} > {children} diff --git a/employee-portal/src/lib/shared/components/formFields/OptionalHelperText.tsx b/employee-portal/src/lib/shared/components/formFields/OptionalHelperText.tsx index 7adfc34a01cb50b99cc493aee448afc4da092b58..4bb4851afe11053f63a2e5e365db35a44ab6382c 100644 --- a/employee-portal/src/lib/shared/components/formFields/OptionalHelperText.tsx +++ b/employee-portal/src/lib/shared/components/formFields/OptionalHelperText.tsx @@ -1,14 +1,23 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ -import { FormHelperText } from "@mui/joy"; +import { FormHelperText, styled } from "@mui/joy"; import { PropsWithChildren } from "react"; -export function OptionalHelperText({ children }: PropsWithChildren) { +export function OptionalHelperText({ + children, + id, +}: PropsWithChildren<{ id?: string }>) { if (children == null) { return null; } - return <FormHelperText>{children}</FormHelperText>; + return <StyledFormHelperText id={id}>{children}</StyledFormHelperText>; } + +const StyledFormHelperText = styled(FormHelperText)(({ theme }) => ({ + ".Mui-error &": { + color: theme.palette.danger[500], + }, +})); diff --git a/employee-portal/src/lib/shared/components/formFields/PasswordField.tsx b/employee-portal/src/lib/shared/components/formFields/PasswordField.tsx index b73235c6121eb9baa8715427f0b452446927ff20..fea216514ec082930906648f410b716622258554 100644 --- a/employee-portal/src/lib/shared/components/formFields/PasswordField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/PasswordField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/RadioButtonsField.tsx b/employee-portal/src/lib/shared/components/formFields/RadioButtonsField.tsx index b8335c065213d33dabc1d51485a312d2e8989f07..689f48bce41025fc1dcb1024aba5bc3b31310353 100644 --- a/employee-portal/src/lib/shared/components/formFields/RadioButtonsField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/RadioButtonsField.tsx @@ -1,37 +1,43 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { Row } from "@eshg/lib-portal/components/Row"; +import { useIsFormDisabled } from "@eshg/lib-portal/components/form/DisabledFormContext"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { SelectOption } from "@eshg/lib-portal/components/formFields/SelectOptions"; import { ValidationRules } from "@eshg/lib-portal/types/form"; -import { Radio } from "@mui/joy"; +import { Button, Radio } from "@mui/joy"; import { SxProps } from "@mui/joy/styles/types"; +import { useFormikContext } from "formik"; import { ReactNode } from "react"; -import { RadioGroupField } from "./RadioGroupField"; - -interface RadioButtonsFieldProps<T extends SelectOption> - extends ValidationRules<T["value"]> { +export interface RadioButtonsFieldProps<T extends SelectOption = SelectOption> + extends ValidationRules<T["value"] | null> { options: T[]; name: string; label?: string | ReactNode; orientation?: "vertical" | "horizontal"; - onChange?: (value: T["value"]) => unknown; + onChange?: (value: T["value"] | null) => unknown; sx?: SxProps; // Retains the styling of the radio buttons but prevents onChange from being called readOnly?: boolean; // Disables the radio buttons disabled?: boolean; "data-testid"?: string; + resettable?: true; + additionalField?: ReactNode; } export function RadioButtonsField<T extends SelectOption = SelectOption>({ onChange, + resettable, + additionalField, ...props }: RadioButtonsFieldProps<T>) { - function handleChange(value: string) { + const formDisabled = useIsFormDisabled(); + function handleChange(value: string | null) { if (props.readOnly) { return; } @@ -45,9 +51,13 @@ export function RadioButtonsField<T extends SelectOption = SelectOption>({ <RadioButtons options={props.options} name={props.name} - disabled={props.disabled} + disabled={formDisabled || props.disabled} readOnly={props.readOnly} orientation={props.orientation} + required={!!props.required} + onReset={() => handleChange(null)} + resettable={resettable} + additionalField={additionalField} /> </RadioGroupField> ); @@ -58,7 +68,11 @@ interface RadioButtonsProps<T extends SelectOption> { options: T[]; disabled?: boolean; readOnly?: boolean; + required?: boolean; orientation?: "vertical" | "horizontal"; + onReset?: () => void; + resettable?: true; + additionalField?: ReactNode; } function RadioButtons<T extends SelectOption>({ @@ -67,9 +81,26 @@ function RadioButtons<T extends SelectOption>({ disabled, readOnly, orientation, + required, + onReset, + resettable, + additionalField, }: RadioButtonsProps<T>) { + const { getFieldMeta, setFieldValue } = useFormikContext(); + const { value } = getFieldMeta(name); + + function handleReset() { + void setFieldValue(name, null); + onReset?.(); + } + + const showResetButton = + resettable && !disabled && !required && !readOnly && !!value; + + const verticalOrientation = orientation === "vertical"; + return ( - <Row flexDirection={orientation == "vertical" ? "column" : "row"}> + <Row flexDirection={verticalOrientation ? "column" : "row"}> {options.map((t) => ( <Radio key={name + t.value} @@ -79,6 +110,22 @@ function RadioButtons<T extends SelectOption>({ readOnly={readOnly} /> ))} + {additionalField} + {showResetButton ? ( + <Button + variant="plain" + size="sm" + sx={{ + marginTop: !verticalOrientation ? "-0.375rem" : undefined, + marginBottom: !verticalOrientation ? "-0.375rem" : undefined, + maxWidth: "min-content", + fontWeight: 400, + }} + onClick={handleReset} + > + Zurücksetzen + </Button> + ) : undefined} </Row> ); } diff --git a/employee-portal/src/lib/shared/components/formFields/SearchContactField.tsx b/employee-portal/src/lib/shared/components/formFields/SearchContactField.tsx index 659f7b674d5b216a24aa77ac171b91725188c0ec..bbe63f6ed91ac72118cb7f3c50317cb9fd82ebd5 100644 --- a/employee-portal/src/lib/shared/components/formFields/SearchContactField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/SearchContactField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/SearchMultipleContactsField.tsx b/employee-portal/src/lib/shared/components/formFields/SearchMultipleContactsField.tsx index c6529d2c85d33c97645607fd14750dd7e2ee571c..a26eaa9f98a374c9f05042150cdf49b27f4d9973 100644 --- a/employee-portal/src/lib/shared/components/formFields/SearchMultipleContactsField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/SearchMultipleContactsField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/SelectAsyncField.tsx b/employee-portal/src/lib/shared/components/formFields/SelectAsyncField.tsx index 16088d46c939f50e035145fa019d310a6c802e05..4cf647e21fb95e7e380221d0e9ff116083eeb016 100644 --- a/employee-portal/src/lib/shared/components/formFields/SelectAsyncField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/SelectAsyncField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/SelectMultipleContactsField.tsx b/employee-portal/src/lib/shared/components/formFields/SelectMultipleContactsField.tsx index 82e7805cf2d68e101f07c2cda1f6de3ddf2c6050..1526c83515b706e06055182b50c93170206f1231 100644 --- a/employee-portal/src/lib/shared/components/formFields/SelectMultipleContactsField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/SelectMultipleContactsField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/SelectableCardsField.tsx b/employee-portal/src/lib/shared/components/formFields/SelectableCardsField.tsx index 1ded963cb14faf11de7b2e84c50196a1b605479e..fef1f3ae5eb51765fb49ece7b95b4652788f7211 100644 --- a/employee-portal/src/lib/shared/components/formFields/SelectableCardsField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/SelectableCardsField.tsx @@ -1,17 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { useBaseField } from "@eshg/lib-portal/components/formFields/BaseField"; +import { + RadioGroupField, + RadioGroupFieldProps, +} from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { Stack } from "@mui/joy"; import { ReactElement } from "react"; import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; -import { - RadioGroupField, - RadioGroupFieldProps, -} from "@/lib/shared/components/formFields/RadioGroupField"; interface SelectableCardsFieldProps extends RadioGroupFieldProps { options: { diff --git a/employee-portal/src/lib/shared/components/formFields/SliderField.tsx b/employee-portal/src/lib/shared/components/formFields/SliderField.tsx index 792b4cc5cb607a6bcd68ea724ee8360777d26ee9..1f3e19b9e89a18ac8c84e8554f14709049709130 100644 --- a/employee-portal/src/lib/shared/components/formFields/SliderField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/SliderField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/StreetField.tsx b/employee-portal/src/lib/shared/components/formFields/StreetField.tsx index d192ffcd0b1c8a7155f32275ce5ee79832b1f895..9f4419380df6493e5c9f460629841e5e3da82f42 100644 --- a/employee-portal/src/lib/shared/components/formFields/StreetField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/StreetField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/SwitchField.tsx b/employee-portal/src/lib/shared/components/formFields/SwitchField.tsx index 78e5f0069cec97f18a1f2b614865c61a02a412fe..4ae4529787d760eaef942e14ef1cdf94ae7c1a45 100644 --- a/employee-portal/src/lib/shared/components/formFields/SwitchField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/SwitchField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/TextareaField.tsx b/employee-portal/src/lib/shared/components/formFields/TextareaField.tsx index c627251b9035c5ef69984ab29ba18ccc61d18d14..c72c643fa2071f920bfef97d9004ced6dfa7664c 100644 --- a/employee-portal/src/lib/shared/components/formFields/TextareaField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/TextareaField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/TimeField.tsx b/employee-portal/src/lib/shared/components/formFields/TimeField.tsx index 1efd7d02758d5b43790c548566e47731dab67c27..81c261662be37e375de7936faebb473789729ee6 100644 --- a/employee-portal/src/lib/shared/components/formFields/TimeField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/TimeField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/TimeSpanField.tsx b/employee-portal/src/lib/shared/components/formFields/TimeSpanField.tsx index 0a0a1071c8c55e7d578f80dae749c89de5722b9f..4dc5af26f427595e13664ed8f1a859e6a784a13b 100644 --- a/employee-portal/src/lib/shared/components/formFields/TimeSpanField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/TimeSpanField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/ToggleButtonGroupField.tsx b/employee-portal/src/lib/shared/components/formFields/ToggleButtonGroupField.tsx index f6a20f287f61fb9ea4bf4437da837c1c61323a23..0803241980935ade6ebd38b9cdb616c283c2adfd 100644 --- a/employee-portal/src/lib/shared/components/formFields/ToggleButtonGroupField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/ToggleButtonGroupField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.test.tsx b/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.test.tsx index 32c537ad621e8d042c3b5524a54805a7b63ded92..e788f0c102f3cbeb2eac9c2ebfba08dc4754fb16 100644 --- a/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.test.tsx +++ b/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.test.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.tsx b/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.tsx index 21bb4f247c009cbd2716c3dbd6a121a94410771a..e69d195e31185d8fa5c3c07ece6098ccde82896a 100644 --- a/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.tsx +++ b/employee-portal/src/lib/shared/components/formFields/dateOrDateTimeFieldHelper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/file/DeletableFileField.tsx b/employee-portal/src/lib/shared/components/formFields/file/DeletableFileField.tsx index ee7ee081c9957792120866e8f0bcda44072b75f1..6ddc9d23109a3400a57d772935a42f2e23994b82 100644 --- a/employee-portal/src/lib/shared/components/formFields/file/DeletableFileField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/file/DeletableFileField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/file/FileField.tsx b/employee-portal/src/lib/shared/components/formFields/file/FileField.tsx index 8647077de484dfead47b729f5a79adb7665a73e7..d95f0fe7de4ecfe06cc42972d6631fa1c0f61ac5 100644 --- a/employee-portal/src/lib/shared/components/formFields/file/FileField.tsx +++ b/employee-portal/src/lib/shared/components/formFields/file/FileField.tsx @@ -1,9 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { useBaseField } from "@eshg/lib-portal/components/formFields/BaseField"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; +import { useDragAndDrop } from "@eshg/lib-portal/components/formFields/file/useDragAndDrop"; +import { + FileLike, + validateFileType, +} from "@eshg/lib-portal/components/formFields/file/validators"; import { validatePipe } from "@eshg/lib-portal/helpers/validators"; import { FieldProps } from "@eshg/lib-portal/types/form"; import { @@ -16,10 +22,7 @@ import { import { ChangeEvent, ReactNode, useId, useRef } from "react"; import { isDefined, isFunction, isString } from "remeda"; -import { FileType } from "./FileType"; import { FileButton, FileInputButton } from "./buttonVariants"; -import { useDragAndDrop } from "./useDragAndDrop"; -import { FileLike, validateFileType } from "./validators"; const DEFAULT_PLACEHOLDER = "Datei auswählen"; diff --git a/employee-portal/src/lib/shared/components/formFields/file/buttonVariants.tsx b/employee-portal/src/lib/shared/components/formFields/file/buttonVariants.tsx index a67e7b19152702f2702e69e91898d5992b3f7d75..2e03fa31ae56538d90dcda9b159f8161374bf524 100644 --- a/employee-portal/src/lib/shared/components/formFields/file/buttonVariants.tsx +++ b/employee-portal/src/lib/shared/components/formFields/file/buttonVariants.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/schoolYear.tsx b/employee-portal/src/lib/shared/components/formFields/schoolYear.tsx index 65777c8c45ae4c8718137e4994ae06af3930e3d6..901ecb2d0d3d5cd437326f77a4830e64c8d86d45 100644 --- a/employee-portal/src/lib/shared/components/formFields/schoolYear.tsx +++ b/employee-portal/src/lib/shared/components/formFields/schoolYear.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/gdpr/useGdprValidationTasksAlert.ts b/employee-portal/src/lib/shared/components/gdpr/useGdprValidationTasksAlert.ts index e7fc2abebad149f7dafa919f4df1c0aae764faf1..7883c2134a994092f0a8c1fb5cc0e01318b1d9af 100644 --- a/employee-portal/src/lib/shared/components/gdpr/useGdprValidationTasksAlert.ts +++ b/employee-portal/src/lib/shared/components/gdpr/useGdprValidationTasksAlert.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/icons/CalendarAddDay.tsx b/employee-portal/src/lib/shared/components/icons/CalendarAddDay.tsx index 30131593bedc237e4845a20a0bdf661e2a0c605d..6aebfcb60490cc38c2358086034615069925046c 100644 --- a/employee-portal/src/lib/shared/components/icons/CalendarAddDay.tsx +++ b/employee-portal/src/lib/shared/components/icons/CalendarAddDay.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/icons/FormatListHistoryOutlined.tsx b/employee-portal/src/lib/shared/components/icons/FormatListHistoryOutlined.tsx index 0d8df37dcc10a4a3255a532051b206763054cf79..2f2ee8c74cebdec54d769c00b3715ea73a22ddda 100644 --- a/employee-portal/src/lib/shared/components/icons/FormatListHistoryOutlined.tsx +++ b/employee-portal/src/lib/shared/components/icons/FormatListHistoryOutlined.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/icons/HivOutlined.tsx b/employee-portal/src/lib/shared/components/icons/HivOutlined.tsx index 8a8d2e9e385184f79fdc621a139460823e62a4c3..4527b5021de967b8f53702967931cf82c429675e 100644 --- a/employee-portal/src/lib/shared/components/icons/HivOutlined.tsx +++ b/employee-portal/src/lib/shared/components/icons/HivOutlined.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -39,7 +39,7 @@ export function HivOutlined(props: SvgIconProps) { /> <path d="M14.5449 2.32294L14.2968 2.75706L14.2968 2.75707L14.5449 2.32294ZM15.4796 3.09874L15.0817 3.40164L15.3893 3.80553L15.7885 3.49191L15.4796 3.09874ZM15.4923 3.08874L15.8826 2.77621L15.5729 2.38952L15.1834 2.69557L15.4923 3.08874ZM15.5508 3.16449L15.1502 3.46372L15.155 3.4699L15.5508 3.16449ZM16.667 4.61128L17.067 4.31125L17.0628 4.30588L16.667 4.61128ZM17.06 5.13535L16.66 5.43537L16.6614 5.43718L17.06 5.13535ZM17.0593 10.5635L17.4546 10.8697L17.4579 10.8655L17.0593 10.5635ZM14.8862 13.3687L14.491 13.0625L14.2527 13.3701L14.4923 13.6766L14.8862 13.3687ZM18.9685 18.5923L19.2704 18.9909L19.675 18.6844L19.3625 18.2844L18.9685 18.5923ZM15.3473 21.3356L14.9539 21.6442L15.2574 22.0311L15.6493 21.7342L15.3473 21.3356ZM11.9845 17.048L12.3779 16.7394L11.9845 16.2378L11.591 16.7394L11.9845 17.048ZM8.62117 21.3362L8.31924 21.7347L8.71116 22.0317L9.0146 21.6448L8.62117 21.3362ZM5 18.5928L4.60604 18.285L4.29349 18.6849L4.69807 18.9914L5 18.5928ZM9.08493 13.3659L9.47889 13.6738L9.72062 13.3645L9.47751 13.0563L9.08493 13.3659ZM6.91204 10.611L6.51317 10.9127L6.51946 10.9206L6.91204 10.611ZM6.90922 10.6073L7.30801 10.3056L7.30777 10.3053L6.90922 10.6073ZM6.9085 5.17913L7.30713 5.48095L7.30847 5.47918L6.9085 5.17913ZM6.90922 5.17817L7.30918 5.47822L7.30924 5.47814L6.90922 5.17817ZM7.2976 4.66025L6.90167 4.35482L6.89758 4.36028L7.2976 4.66025ZM8.41606 3.2104L8.812 3.51584L8.81672 3.50952L8.41606 3.2104ZM8.46815 3.14267L8.85984 3.45345L8.86689 3.44456L8.87353 3.43536L8.46815 3.14267ZM14.7547 3.6999L15.1507 3.39464L14.8563 3.01282L14.464 3.29303L14.7547 3.6999ZM14.7408 3.70982L14.3339 4.00045L14.6245 4.4073L15.0314 4.11669L14.7408 3.70982ZM14.7873 3.74229L15.1893 3.44472L15.1833 3.43702L14.7873 3.74229ZM14.7766 6.03622L14.5162 6.46308L14.9027 6.69882L15.1756 6.33759L14.7766 6.03622ZM9.17076 6.05099L8.76454 6.34251L9.0437 6.73151L9.44442 6.46945L9.17076 6.05099ZM9.17937 3.78839L8.78347 3.48285L8.77751 3.49089L9.17937 3.78839ZM9.23447 3.717L9.6303 4.02249L9.636 4.01509L9.64143 4.00749L9.23447 3.717ZM9.23959 3.70982L8.83273 3.41919L8.83264 3.41933L9.23959 3.70982ZM14.0699 3.15422L13.8218 3.58834L13.8218 3.58835L14.0699 3.15422ZM9.75917 6.81242L9.50449 6.38215L9.01707 6.67065L9.36381 7.11851L9.75917 6.81242ZM11.9673 9.66457L11.572 9.97066L11.9673 10.4813L12.3627 9.97066L11.9673 9.66457ZM14.1851 6.79995L14.5805 7.10604L14.9403 6.64119L14.4238 6.36059L14.1851 6.79995ZM12.5752 10.4434L12.1798 10.1373L11.9403 10.4467L12.1831 10.7536L12.5752 10.4434ZM14.2758 12.5933L13.8837 12.9035L14.28 13.4044L14.6711 12.8995L14.2758 12.5933ZM15.4948 6.67226L15.1039 6.36042L15.0994 6.36618L15.4948 6.67226ZM16.0688 5.40947L16.4688 5.10944L15.7838 4.19628L15.5771 5.31891L16.0688 5.40947ZM16.2961 5.71254L15.8962 6.01257L15.8976 6.01447L16.2961 5.71254ZM16.2976 9.98337L16.6929 10.2896L16.6964 10.285L16.2976 9.98337ZM6.35284 18.4166L5.95888 18.1087L5.64632 18.5087L6.05092 18.8152L6.35284 18.4166ZM9.69508 14.14L10.0878 13.8305L9.69348 13.33L9.30111 13.8321L9.69508 14.14ZM8.44889 20.0045L8.14697 20.403L8.53888 20.6999L8.84231 20.313L8.44889 20.0045ZM11.3756 16.2729L11.769 16.5815L12.0116 16.2722L11.7683 15.9635L11.3756 16.2729ZM7.90308 5.44879L8.39445 5.35631L8.18443 4.24041L7.50309 5.14877L7.90308 5.44879ZM8.4737 6.71604L8.8691 6.40992L8.86463 6.40431L8.4737 6.71604ZM7.67377 5.7545L8.07122 6.0579L8.07376 6.05452L7.67377 5.7545ZM7.67238 5.75632L7.27495 5.45292L7.27383 5.45439L7.67238 5.75632ZM7.66965 10.0255L7.27064 10.327L7.27707 10.3352L7.66965 10.0255ZM10.0923 13.0971L10.4851 12.7877L10.4849 12.7874L10.0923 13.0971ZM12.3452 15.9565L12.7386 15.648L12.7379 15.6471L12.3452 15.9565ZM15.5196 20.004L15.1262 20.3125L15.4296 20.6994L15.8216 20.4025L15.5196 20.004ZM17.6156 18.4161L17.9176 18.8146L18.3221 18.5081L18.0096 18.1082L17.6156 18.4161ZM13.8886 13.647L14.2826 13.3392L14.2824 13.3389L13.8886 13.647ZM13.8869 13.6448L14.2807 13.3367L14.279 13.3346L13.8869 13.6448ZM11.593 10.7452L11.1977 11.0513L11.2009 11.0554L11.593 10.7452ZM14.793 1.88883C14.3252 1.62154 13.8077 1.5 13.2679 1.5V2.5C13.6545 2.5 13.9973 2.58589 14.2968 2.75706L14.793 1.88883ZM15.8774 2.79584C15.5482 2.36351 15.1298 2.08133 14.793 1.88882L14.2968 2.75707C14.584 2.92117 14.8701 3.12365 15.0817 3.40164L15.8774 2.79584ZM15.1834 2.69557L15.1707 2.70557L15.7885 3.49191L15.8012 3.48191L15.1834 2.69557ZM15.9514 2.8653C15.9293 2.83562 15.9064 2.80589 15.8826 2.77621L15.102 3.40127C15.1183 3.42156 15.1343 3.44235 15.1502 3.46369L15.9514 2.8653ZM17.0628 4.30588L15.9467 2.85909L15.155 3.4699L16.2711 4.91669L17.0628 4.30588ZM17.46 4.83535L17.067 4.31128L16.267 4.91129L16.66 5.43536L17.46 4.83535ZM17.4579 10.8655C18.8052 9.08697 18.8054 6.61222 17.4587 4.83353L16.6614 5.43718C17.7378 6.85878 17.7376 8.84017 16.6608 10.2616L17.4579 10.8655ZM15.2815 13.6749L17.4546 10.8697L16.664 10.2573L14.491 13.0625L15.2815 13.6749ZM19.3625 18.2844L15.2802 13.0609L14.4923 13.6766L18.5746 18.9002L19.3625 18.2844ZM15.6493 21.7342L19.2704 18.9909L18.6666 18.1938L15.0454 20.9371L15.6493 21.7342ZM11.591 17.3565L14.9539 21.6442L15.7408 21.0271L12.3779 16.7394L11.591 17.3565ZM9.0146 21.6448L12.3779 17.3565L11.591 16.7394L8.22775 21.0276L9.0146 21.6448ZM4.69807 18.9914L8.31924 21.7347L8.92311 20.9377L5.30193 18.1943L4.69807 18.9914ZM8.69097 13.058L4.60604 18.285L5.39396 18.9007L9.47889 13.6738L8.69097 13.058ZM6.51946 10.9206L8.69234 13.6755L9.47751 13.0563L7.30463 10.3013L6.51946 10.9206ZM6.51043 10.9089L6.51326 10.9126L7.31083 10.3094L7.30801 10.3056L6.51043 10.9089ZM6.50987 4.87731C5.16311 6.65605 5.16337 9.13075 6.51067 10.9092L7.30777 10.3053C6.23096 8.88395 6.23074 6.9026 7.30713 5.48095L6.50987 4.87731ZM6.50926 4.87813L6.50854 4.87908L7.30847 5.47918L7.30918 5.47822L6.50926 4.87813ZM6.89758 4.36028L6.5092 4.87821L7.30924 5.47814L7.69762 4.96022L6.89758 4.36028ZM8.02017 2.905L6.90171 4.35485L7.69349 4.96565L8.81195 3.5158L8.02017 2.905ZM8.07646 2.8319C8.05536 2.85849 8.03504 2.88498 8.01541 2.91128L8.81672 3.50952C8.83107 3.4903 8.84541 3.47163 8.85984 3.45345L8.07646 2.8319ZM10.7558 1.5C9.73562 1.5 8.6959 1.97309 8.06277 2.84998L8.87353 3.43536C9.30304 2.84049 10.0291 2.5 10.7558 2.5V1.5ZM13.2679 1.5H10.7558V2.5H13.2679V1.5ZM14.464 3.29303L14.4501 3.30296L15.0314 4.11669L15.0453 4.10676L14.464 3.29303ZM15.1833 3.43702L15.1507 3.39464L14.3587 4.00516L14.3913 4.04755L15.1833 3.43702ZM15.1756 6.33759C15.8163 5.48926 15.8207 4.2978 15.1892 3.44478L14.3855 4.03979C14.7536 4.53697 14.7508 5.24087 14.3776 5.73486L15.1756 6.33759ZM13.256 6.0947C13.6956 6.0947 14.1383 6.23256 14.5162 6.46308L15.037 5.60936C14.5207 5.29444 13.8998 5.0947 13.256 5.0947V6.0947ZM10.7439 6.0947H13.256V5.0947H10.7439V6.0947ZM9.44442 6.46945C9.82654 6.21956 10.2863 6.0947 10.7439 6.0947V5.0947C10.1103 5.0947 9.4567 5.26657 8.8971 5.63253L9.44442 6.46945ZM8.30899 4.90421C8.30899 5.39455 8.4616 5.92038 8.76454 6.34251L9.57698 5.75947C9.40474 5.51946 9.30899 5.20088 9.30899 4.90421H8.30899ZM8.77751 3.49089C8.46509 3.9129 8.30899 4.40862 8.30899 4.90421H9.30899C9.30899 4.61946 9.39828 4.33301 9.58123 4.0859L8.77751 3.49089ZM8.83864 3.41151L8.78354 3.48291L9.5752 4.09388L9.6303 4.02249L8.83864 3.41151ZM8.83264 3.41933L8.82751 3.42651L9.64143 4.00749L9.64655 4.00032L8.83264 3.41933ZM10.7558 2.45743C10.0129 2.45743 9.27001 2.80703 8.83273 3.41919L9.64645 4.00045C9.88081 3.67237 10.3087 3.45743 10.7558 3.45743V2.45743ZM13.2679 2.45743H10.7558V3.45743H13.2679V2.45743ZM14.3179 2.72011C14.0112 2.54484 13.661 2.45743 13.2679 2.45743V3.45743C13.5076 3.45743 13.6831 3.50908 13.8218 3.58834L14.3179 2.72011ZM15.1476 3.41919C14.9284 3.11228 14.6221 2.89388 14.3179 2.7201L13.8218 3.58835C14.0749 3.73296 14.2371 3.86493 14.3339 4.00045L15.1476 3.41919ZM9.36381 7.11851L11.572 9.97066L12.3627 9.35848L10.1545 6.50633L9.36381 7.11851ZM12.3627 9.97066L14.5805 7.10604L13.7897 6.49387L11.5719 9.35849L12.3627 9.97066ZM14.4238 6.36059C14.0738 6.17051 13.6671 6.05212 13.256 6.05212V7.05212C13.4792 7.05212 13.7232 7.11806 13.9464 7.23932L14.4238 6.36059ZM13.256 6.05212H10.7439V7.05212H13.256V6.05212ZM10.7439 6.05212C10.3079 6.05212 9.87528 6.16267 9.50449 6.38215L10.0138 7.2427C10.2193 7.12111 10.4737 7.05212 10.7439 7.05212V6.05212ZM12.1831 10.7536L13.8837 12.9035L14.668 12.2831L12.9673 10.1332L12.1831 10.7536ZM15.0994 6.36618L12.1798 10.1373L12.9706 10.7495L15.8901 6.97835L15.0994 6.36618ZM15.5771 5.31891C15.5082 5.69296 15.3502 6.05172 15.1039 6.36046L15.8856 6.98407C16.2382 6.54209 16.4629 6.03006 16.5605 5.50002L15.5771 5.31891ZM16.6961 5.41251L16.4688 5.10944L15.6688 5.70949L15.8962 6.01257L16.6961 5.41251ZM16.6964 10.285C17.7832 8.84824 17.7827 6.84676 16.6947 5.41061L15.8976 6.01447C16.7152 7.09366 16.7156 8.60201 15.8989 9.68174L16.6964 10.285ZM14.6711 12.8995L16.6929 10.2896L15.9024 9.67717L13.8806 12.2871L14.6711 12.8995ZM6.74681 18.7245L10.089 14.4479L9.30111 13.8321L5.95888 18.1087L6.74681 18.7245ZM8.75081 19.6059L6.65476 18.0181L6.05092 18.8152L8.14697 20.403L8.75081 19.6059ZM10.9822 15.9643L8.05546 19.6959L8.84231 20.313L11.769 16.5815L10.9822 15.9643ZM9.30233 14.4494L10.9829 16.5823L11.7683 15.9635L10.0878 13.8305L9.30233 14.4494ZM7.4117 5.54127C7.50948 6.06079 7.72905 6.58417 8.08277 7.02776L8.86463 6.40431C8.62302 6.10131 8.46528 5.73265 8.39445 5.35631L7.4117 5.54127ZM8.07376 6.05452L8.30306 5.74881L7.50309 5.14877L7.27379 5.45448L8.07376 6.05452ZM8.06982 6.05971L8.07121 6.05789L7.27634 5.45111L7.27495 5.45293L8.06982 6.05971ZM8.06859 9.72411C7.2529 8.64453 7.25372 7.137 8.07093 6.05824L7.27383 5.45439C6.18635 6.88992 6.18525 8.89031 7.27072 10.3269L8.06859 9.72411ZM10.4849 12.7874L8.06224 9.71588L7.27707 10.3352L9.69974 13.4067L10.4849 12.7874ZM12.7379 15.6471L10.4851 12.7877L9.69958 13.4065L11.9524 16.266L12.7379 15.6471ZM15.9131 19.6954L12.7386 15.648L11.9518 16.2651L15.1262 20.3125L15.9131 19.6954ZM17.3137 18.0175L15.2177 19.6054L15.8216 20.4025L17.9176 18.8146L17.3137 18.0175ZM13.4946 13.9549L17.2217 18.724L18.0096 18.1082L14.2826 13.3392L13.4946 13.9549ZM13.4931 13.953L13.4949 13.9552L14.2824 13.3389L14.2806 13.3367L13.4931 13.953ZM11.2009 11.0554L13.4948 13.955L14.279 13.3346L11.9852 10.435L11.2009 11.0554ZM8.07834 7.02213L11.1977 11.0513L11.9884 10.4391L8.86906 6.40995L8.07834 7.02213Z" - fill="#171A1C" + fill="currentColor" mask="url(#path-1-outside-1_20795_8916)" /> </svg> diff --git a/employee-portal/src/lib/shared/components/icons/PersonDocumentConsultation.tsx b/employee-portal/src/lib/shared/components/icons/PersonDocumentConsultation.tsx new file mode 100644 index 0000000000000000000000000000000000000000..4ce8a205182926a2f57ad91ca745d9f9275183ce --- /dev/null +++ b/employee-portal/src/lib/shared/components/icons/PersonDocumentConsultation.tsx @@ -0,0 +1,21 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { SvgIcon, SvgIconProps } from "@mui/joy"; + +export function PersonDocumentConsultation(props: SvgIconProps) { + return ( + <SvgIcon + {...props} + width="20" + height="20" + viewBox="0 0 20 20" + fill="none" + xmlns="http://www.w3.org/2000/svg" + > + <path d="M15 15C15.4167 15 15.7708 14.8542 16.0625 14.5625C16.3542 14.2708 16.5 13.9167 16.5 13.5C16.5 13.0833 16.3542 12.7292 16.0625 12.4375C15.7708 12.1458 15.4167 12 15 12C14.5833 12 14.2292 12.1458 13.9375 12.4375C13.6458 12.7292 13.5 13.0833 13.5 13.5C13.5 13.9167 13.6458 14.2708 13.9375 14.5625C14.2292 14.8542 14.5833 15 15 15ZM15 18C15.5333 18 16.0083 17.8833 16.425 17.65C16.8417 17.4167 17.1917 17.0917 17.475 16.675C17.1417 16.4083 16.7625 16.2125 16.3375 16.0875C15.9125 15.9625 15.4667 15.9 15 15.9C14.5333 15.9 14.0875 15.9625 13.6625 16.0875C13.2375 16.2125 12.8583 16.4083 12.525 16.675C12.8083 17.0917 13.1583 17.4167 13.575 17.65C13.9917 17.8833 14.4667 18 15 18ZM2 18C1.45 18 0.979167 17.8042 0.5875 17.4125C0.195833 17.0208 0 16.55 0 16V2C0 1.45 0.195833 0.979167 0.5875 0.5875C0.979167 0.195833 1.45 0 2 0H16C16.55 0 17.0208 0.195833 17.4125 0.5875C17.8042 0.979167 18 1.45 18 2V8.7C17.6833 8.55 17.3583 8.42083 17.025 8.3125C16.6917 8.20417 16.35 8.125 16 8.075V2H2V16H8.05C8.1 16.3667 8.17917 16.7167 8.2875 17.05C8.39583 17.3833 8.525 17.7 8.675 18H2ZM2 15V16V2V8.075V8V15ZM4 14H8.075C8.125 13.65 8.20417 13.3083 8.3125 12.975C8.42083 12.6417 8.54167 12.3167 8.675 12H4V14ZM4 10H10.1C10.6333 9.5 11.2292 9.08333 11.8875 8.75C12.5458 8.41667 13.25 8.19167 14 8.075V8H4V10ZM4 6H14V4H4V6ZM15 20C13.6167 20 12.4375 19.5125 11.4625 18.5375C10.4875 17.5625 10 16.3833 10 15C10 13.6167 10.4875 12.4375 11.4625 11.4625C12.4375 10.4875 13.6167 10 15 10C16.3833 10 17.5625 10.4875 18.5375 11.4625C19.5125 12.4375 20 13.6167 20 15C20 16.3833 19.5125 17.5625 18.5375 18.5375C17.5625 19.5125 16.3833 20 15 20Z" /> + </SvgIcon> + ); +} diff --git a/employee-portal/src/lib/shared/components/import/ImportDataForm.tsx b/employee-portal/src/lib/shared/components/import/ImportDataForm.tsx index 38899b94020f31bc186a29407c6e6fe1da4ba1b1..ae93ead1340d85e5bdd9a6ff5f6b4d0f2fed2cfe 100644 --- a/employee-portal/src/lib/shared/components/import/ImportDataForm.tsx +++ b/employee-portal/src/lib/shared/components/import/ImportDataForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/import/ImportResult.tsx b/employee-portal/src/lib/shared/components/import/ImportResult.tsx index 79beee69c0da9e71bca7ada7b5d8b32708368004..c74c1ffc24a3dba701d8b4230312570674d806f7 100644 --- a/employee-portal/src/lib/shared/components/import/ImportResult.tsx +++ b/employee-portal/src/lib/shared/components/import/ImportResult.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/import/ImportResultProceduresSummary.tsx b/employee-portal/src/lib/shared/components/import/ImportResultProceduresSummary.tsx index b555d6a93e78b0e2bfb64f89fedf9764c8860d92..fe5c4fd64c9cc69127a086f23c89859ef01903cf 100644 --- a/employee-portal/src/lib/shared/components/import/ImportResultProceduresSummary.tsx +++ b/employee-portal/src/lib/shared/components/import/ImportResultProceduresSummary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/import/ImportResultSummary.tsx b/employee-portal/src/lib/shared/components/import/ImportResultSummary.tsx index c02c7f5914d4b25094c356a5a9ffe0ed25192724..ed8d4d208204ce39f1df3941a10d2d66131433fa 100644 --- a/employee-portal/src/lib/shared/components/import/ImportResultSummary.tsx +++ b/employee-portal/src/lib/shared/components/import/ImportResultSummary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/infoTile/InfoTile.tsx b/employee-portal/src/lib/shared/components/infoTile/InfoTile.tsx index 492f8b827f7aacd9fffebf817f873c13366a65a1..d68a7224fd18f39c7517db2afc30386ade11d5e6 100644 --- a/employee-portal/src/lib/shared/components/infoTile/InfoTile.tsx +++ b/employee-portal/src/lib/shared/components/infoTile/InfoTile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/infoTile/InfoTileAddButton.tsx b/employee-portal/src/lib/shared/components/infoTile/InfoTileAddButton.tsx index ccf8c48f0bac6de1e84ed942f99602dc34fbcb2d..8ca2cec16a3ccf45a7e54a0452c3a98f1804909e 100644 --- a/employee-portal/src/lib/shared/components/infoTile/InfoTileAddButton.tsx +++ b/employee-portal/src/lib/shared/components/infoTile/InfoTileAddButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/infoTile/InformationSheet.tsx b/employee-portal/src/lib/shared/components/infoTile/InformationSheet.tsx index 9d6224fcd06a3565c993e80d0aa90fd392d1b080..87c29060d871fd2dc0ca22e3e96bec826a0723b9 100644 --- a/employee-portal/src/lib/shared/components/infoTile/InformationSheet.tsx +++ b/employee-portal/src/lib/shared/components/infoTile/InformationSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/infoTile/LabelValuePair.tsx b/employee-portal/src/lib/shared/components/infoTile/LabelValuePair.tsx index 0ef70c7bb2c515741a022664222a379b37ccc024..17951975f467edb15837ca6f657bcee66760ff2b 100644 --- a/employee-portal/src/lib/shared/components/infoTile/LabelValuePair.tsx +++ b/employee-portal/src/lib/shared/components/infoTile/LabelValuePair.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/layout/MainContentLayout.tsx b/employee-portal/src/lib/shared/components/layout/MainContentLayout.tsx index 09fe0aaee6753c55e2a85c6028ba27e08cc1216b..f8b877e2c97ccbaba777a72ff0fd80b325c21e90 100644 --- a/employee-portal/src/lib/shared/components/layout/MainContentLayout.tsx +++ b/employee-portal/src/lib/shared/components/layout/MainContentLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/layout/PersonToolbarHeader.tsx b/employee-portal/src/lib/shared/components/layout/PersonToolbarHeader.tsx index 7bba4e1715645400a0240868d3bc05716ba1b16e..32ed8f19c8af1b7bec5d741959b165f3099e3fda 100644 --- a/employee-portal/src/lib/shared/components/layout/PersonToolbarHeader.tsx +++ b/employee-portal/src/lib/shared/components/layout/PersonToolbarHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/layout/StickyToolbarLayout.tsx b/employee-portal/src/lib/shared/components/layout/StickyToolbarLayout.tsx index 4ed608e272bc1fa9a84da97255c693fbfc05edba..7ce5e9439151b38c3b1c0a1d7f0b12a48bc79f41 100644 --- a/employee-portal/src/lib/shared/components/layout/StickyToolbarLayout.tsx +++ b/employee-portal/src/lib/shared/components/layout/StickyToolbarLayout.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,10 +8,7 @@ import { Box } from "@mui/joy"; import { ReactNode } from "react"; -import { - headerHeightDesktop, - headerHeightMobile, -} from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; export interface StickyToolbarLayoutProps { children: ReactNode; @@ -27,6 +24,7 @@ export interface StickyToolbarLayoutProps { * The MainContentLayout should be passed as children. */ export function StickyToolbarLayout(props: StickyToolbarLayoutProps) { + const { headerHeightMobile, headerHeightDesktop } = useHeaderHeights(); return ( <> <Box diff --git a/employee-portal/src/lib/shared/components/layout/Toolbar.tsx b/employee-portal/src/lib/shared/components/layout/Toolbar.tsx index e2482f61d3bd11f82b68dd0000b4b8146a741e2e..3ef8b3e79e099231bee52b107b72866611bc582a 100644 --- a/employee-portal/src/lib/shared/components/layout/Toolbar.tsx +++ b/employee-portal/src/lib/shared/components/layout/Toolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/LegacyPersonSidebar.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/LegacyPersonSidebar.tsx index 32d38b059c454c2c663de17d1ba10e654cdc3723..3bfe8d3d55dc41c0a57d377e58a262f74f829dd1 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/LegacyPersonSidebar.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/LegacyPersonSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -13,7 +13,6 @@ import { ReactNode, useEffect, useRef, useState } from "react"; import { isNullish } from "remeda"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; import { LegacyMinimalPerson } from "@/lib/shared/components/legacyPersonSidebar/form/LegacyBasePersonForm"; import { @@ -29,6 +28,7 @@ import { import { ProcedureList } from "@/lib/shared/components/legacyPersonSidebar/procedures/ProcedureList"; import { LegacyPersonSearch } from "@/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearch"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface ProcedureLiteItem { link: string; diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyBasePersonForm.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyBasePersonForm.tsx index 7eb4635db3ec5ba977da75cddac8c531b1a20d3b..e2db4b2345af7f7cc5ccb6d5a23819b46c47076e 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyBasePersonForm.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyBasePersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,18 +11,18 @@ import { import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + GENDER_OPTIONS, + SALUTATION_OPTIONS, + TITLE_OPTIONS, + TITLE_VALUES, +} from "@eshg/lib-portal/components/formFields/constants"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; import { Grid, Stack } from "@mui/joy"; import { CountryField } from "@/lib/shared/components/formFields/CountryField"; import { LegacyPerson } from "@/lib/shared/components/legacyPersonSidebar/form/LegacyPersonForm"; -import { - GENDER_OPTIONS, - SALUTATION_OPTIONS, - TITLE_OPTIONS, - TITLE_VALUES, -} from "@/lib/shared/components/personSidebar/constants"; export interface LegacyMinimalPerson { firstName: string; diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyEmailAddressesForm.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyEmailAddressesForm.tsx index 4992069ab1b0cae07e35217a1d21cf6675772374..85001b48f16cff22624b62de264b8768e5129449 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyEmailAddressesForm.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyEmailAddressesForm.tsx @@ -1,15 +1,14 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import AddIcon from "@mui/icons-material/Add"; import DeleteIcon from "@mui/icons-material/Delete"; import { Button, Grid, IconButton } from "@mui/joy"; import { FieldArray } from "formik"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; - // See InputArrayField with fieldComponent={EmailField} export function LegacyEmailAddressesForm(props: { emailAddresses: string[]; diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPersonForm.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPersonForm.tsx index 543b761bc4510d6fe3b5577abf862b6cf67e9e95..c563581d919f24fa5a24114fa6f7ed2d17dd464c 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPersonForm.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPhoneNumbersForm.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPhoneNumbersForm.tsx index 5a8f24900ce4411d6ce059d0ddc50f9badbc4e20..af5a817210e5e30bb4a22253de400217be6076e8 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPhoneNumbersForm.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/form/LegacyPhoneNumbersForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/personSidebarHelper.ts b/employee-portal/src/lib/shared/components/legacyPersonSidebar/personSidebarHelper.ts index fa15535a8e1f10adedc37a25bdd7c768813c4808..f639f03b0d20cf251adf6804c191ef0aaea9ad00 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/personSidebarHelper.ts +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/personSidebarHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/procedures/ProcedureList.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/procedures/ProcedureList.tsx index b0e641033b4ddf61a01c7d3510b09d581eac56d9..3f7bfd56746aa566bb41cf7211fd8f305e200d67 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/procedures/ProcedureList.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/procedures/ProcedureList.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearch.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearch.tsx index 0be6708bd8b0600d9a4df3eede2c6f751a5d0410..597e1b241ed8215c38d5ce7d22530f77ea1ea438 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearch.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearch.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchForm.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchForm.tsx index 8c852701640ae7d46a31eb6d4e3e590d335e0949..c5a08f2c6de90dcef3eee75eb069489379e347ee 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchForm.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchResults.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchResults.tsx index 1b1da7b8f17f40a8bf07de3d67da2c7c6ad84705..0d3941450ea41f8764cf2e20e85145e6342a82d0 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchResults.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/LegacyPersonSearchResults.tsx @@ -1,10 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import type { ApiGetReferencePersonResponse } from "@eshg/employee-portal-api/base"; import { AlertProps } from "@eshg/lib-portal/components/Alert"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { Formik, FormikErrors } from "formik"; import { ReactNode } from "react"; import { isNonNullish } from "remeda"; @@ -14,7 +15,6 @@ import { NoSearchResults } from "@/lib/shared/components/NoSearchResult"; import { SelectableCard } from "@/lib/shared/components/cards/SelectableCard"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchFooter.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchFooter.tsx index 2102b0b2db6c5ec5eff6f728ad7d9bdaff952b50..4e3be40f48c216168a9af7662f8251307800b58f 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchFooter.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchFooter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchHeader.tsx b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchHeader.tsx index ec27d69c9de20560b55adf5831351a4041714e9d..5cb0b2782f2ebf2b39c6486c40b751d910601e61 100644 --- a/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchHeader.tsx +++ b/employee-portal/src/lib/shared/components/legacyPersonSidebar/search/SearchHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/modal/DataField.tsx b/employee-portal/src/lib/shared/components/modal/DataField.tsx index da86d19b49ac5be4c2adc7b92283729f27679eba..45f494f05e212d7ce6aef62b6872a181ed4316e9 100644 --- a/employee-portal/src/lib/shared/components/modal/DataField.tsx +++ b/employee-portal/src/lib/shared/components/modal/DataField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/page/PageGrid.tsx b/employee-portal/src/lib/shared/components/page/PageGrid.tsx index b8f7cc27a6c7155b85ae593e77991235151e25b5..14aa69e9c10a790a13f56335d195704a822fd2ef 100644 --- a/employee-portal/src/lib/shared/components/page/PageGrid.tsx +++ b/employee-portal/src/lib/shared/components/page/PageGrid.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/page/SubPageHeader.tsx b/employee-portal/src/lib/shared/components/page/SubPageHeader.tsx index c6b900a05d970bb61a0ae0524ea99822f5e06579..fba1578d6613ec2e96b2d08c692995617dc6a94f 100644 --- a/employee-portal/src/lib/shared/components/page/SubPageHeader.tsx +++ b/employee-portal/src/lib/shared/components/page/SubPageHeader.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,12 +7,13 @@ import { InternalLinkIconButton } from "@eshg/lib-portal/components/navigation/I import ChevronLeft from "@mui/icons-material/ChevronLeft"; import { Divider, Sheet, Stack, Typography } from "@mui/joy"; -import { headerHeightMobile } from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; export function SubPageHeader({ routeBack, header, }: Readonly<{ routeBack: string; header: string }>) { + const { headerHeightMobile } = useHeaderHeights(); const iconSize = headerHeightMobile; return ( <Sheet sx={{ padding: 0, borderRadius: 0 }} data-testid="subPageHeader"> diff --git a/employee-portal/src/lib/shared/components/pagination/IconButton.tsx b/employee-portal/src/lib/shared/components/pagination/IconButton.tsx index 476c9c773b89802355a109c44169661e275d9b77..435c51e590774a569150dc286d4875049219e25d 100644 --- a/employee-portal/src/lib/shared/components/pagination/IconButton.tsx +++ b/employee-portal/src/lib/shared/components/pagination/IconButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/pagination/Pagination.tsx b/employee-portal/src/lib/shared/components/pagination/Pagination.tsx index 08f31fa7ddd14ea8e904cfcf4f227ecd057528ff..240818119cb2567c92955587cb1cb31deb2d2c36 100644 --- a/employee-portal/src/lib/shared/components/pagination/Pagination.tsx +++ b/employee-portal/src/lib/shared/components/pagination/Pagination.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/pagination/RowsPerPageSelect.tsx b/employee-portal/src/lib/shared/components/pagination/RowsPerPageSelect.tsx index 93db8eb729f27ba53b56463c71abdfe5de4dcf4a..90d22bfc9460d5ce357eb11a70f3f41f3f658d1f 100644 --- a/employee-portal/src/lib/shared/components/pagination/RowsPerPageSelect.tsx +++ b/employee-portal/src/lib/shared/components/pagination/RowsPerPageSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/pagination/paginationHelper.ts b/employee-portal/src/lib/shared/components/pagination/paginationHelper.ts index f244e35fe239d071e039cd4c8c0a73c156ed6e51..a67832e2a14854f4cd15ef485e65c89deaaa698b 100644 --- a/employee-portal/src/lib/shared/components/pagination/paginationHelper.ts +++ b/employee-portal/src/lib/shared/components/pagination/paginationHelper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSearch/PersonSearchForm.tsx b/employee-portal/src/lib/shared/components/personSearch/PersonSearchForm.tsx index 98eefc770d32a6975e37b6736fdafe5f0d42c242..865c894eae124e335ccb0f161299ccf27200918c 100644 --- a/employee-portal/src/lib/shared/components/personSearch/PersonSearchForm.tsx +++ b/employee-portal/src/lib/shared/components/personSearch/PersonSearchForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSidebar/PersonDetailsSidebar.tsx b/employee-portal/src/lib/shared/components/personSidebar/PersonDetailsSidebar.tsx index 2caeddd4a3c1ec590b74832b9c376134bb0020bc..ccae886c9bba82b639812ec90a302c726629adc7 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/PersonDetailsSidebar.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/PersonDetailsSidebar.tsx @@ -1,9 +1,14 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { ApiGetReferencePersonResponse } from "@eshg/employee-portal-api/base"; +import { + GENDER_VALUES, + SALUTATION_VALUES, + getOptionalTitle, +} from "@eshg/lib-portal/components/formFields/constants"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { Divider, Stack } from "@mui/joy"; @@ -15,11 +20,6 @@ import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell" import { DetailsRow } from "@/lib/shared/components/detailsSection/DetailsRow"; import { MultiFormButtonBar } from "@/lib/shared/components/form/MultiFormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; -import { - GENDER_VALUES, - SALUTATION_VALUES, - getOptionalTitle, -} from "@/lib/shared/components/personSidebar/constants"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; import { translateCountry } from "@/lib/shared/helpers/i18n"; diff --git a/employee-portal/src/lib/shared/components/personSidebar/PersonEditSidebar.tsx b/employee-portal/src/lib/shared/components/personSidebar/PersonEditSidebar.tsx index 713cce4430233c5c9cd029ad51c822346254f5f3..8ba16d48d4c8b76572ee99509593df2b2cc6d011 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/PersonEditSidebar.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/PersonEditSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSidebar/PersonSidebar.tsx b/employee-portal/src/lib/shared/components/personSidebar/PersonSidebar.tsx index a7c37cfad5c7fb1060664a32908b6a8e791d7b7b..4eb26acd75360fac0ebfb122189da436a98cee24 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/PersonSidebar.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/PersonSidebar.tsx @@ -1,15 +1,15 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { ApiGetReferencePersonResponse } from "@eshg/employee-portal-api/base"; -import { ComponentType, Ref, useEffect, useState } from "react"; +import { DefaultError, UseQueryOptions, useQuery } from "@tanstack/react-query"; +import { ComponentType, ReactNode, Ref, useEffect, useState } from "react"; import { isDefined } from "remeda"; import { useSearchReferencePersonsQuery } from "@/lib/baseModule/api/queries/persons"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; -import { PersonDetailsSidebar } from "@/lib/shared/components/personSidebar/PersonDetailsSidebar"; import { DefaultPersonForm, DefaultPersonFormValues, @@ -31,6 +31,9 @@ import { SearchPersonSidebar, } from "@/lib/shared/components/personSidebar/search/SearchPersonSidebar"; +import { PersonDetailsSidebar } from "./PersonDetailsSidebar"; +import { AssociatedProceduresSearchResult } from "./search/AssociatedProceduresSearchResult"; + type CreatePersonStateMapper<TSearchValues, TCreateValues> = (props: { inputs: TSearchValues; addressRequired?: boolean; @@ -56,9 +59,25 @@ type CreateFormProps<TSearchValues, TCreateValues> = createFormComponent?: never; }; +interface AssociatedProceduresProps<TProcedure> { + getQuery: ( + personId: string | undefined, + ) => Pick< + UseQueryOptions<unknown, DefaultError, TProcedure[]>, + "queryKey" | "queryFn" + >; + cardComponent: (props: { procedure: TProcedure }) => ReactNode; +} + +const EMPTY_ASSOCIATED_PROCEDURES_QUERY = { + queryKey: ["emptyGetAssociatedProcedures"], + queryFn: () => [], +} satisfies UseQueryOptions<unknown[]>; + export type PersonSidebarProps< TSearchValues extends SearchPersonFormValues = SearchPersonFormValues, TCreateValues extends PersonFormValues = DefaultPersonFormValues, + TProcedure = unknown, > = SearchFormProps<TSearchValues> & CreateFormProps<TSearchValues, TCreateValues> & { onCancel: () => void; @@ -75,6 +94,7 @@ export type PersonSidebarProps< title: string; submitLabel: string; addressRequired?: boolean; + associatedProcedures?: AssociatedProceduresProps<TProcedure>; }; type SidebarMode = "search" | "create" | "search_results" | "display"; @@ -90,7 +110,8 @@ interface SidebarState<TSearchValues, TCreateValues> { export function PersonSidebar< TSearchValues extends SearchPersonFormValues = SearchPersonFormValues, TCreateValues extends PersonFormValues = DefaultPersonFormValues, ->(props: PersonSidebarProps<TSearchValues, TCreateValues>) { + TProcedure = unknown, +>(props: PersonSidebarProps<TSearchValues, TCreateValues, TProcedure>) { const SearchFormComponent = (props.searchFormComponent ?? DefaultSearchPersonForm) as ComponentType< SearchPersonFormProps<TSearchValues> @@ -120,8 +141,7 @@ export function PersonSidebar< } const [state, setState] = useState(getInitialState); - - const query = useSearchReferencePersonsQuery( + const searchReferencePersonsQuery = useSearchReferencePersonsQuery( { firstName: state.searchState.firstName.trim(), lastName: state.searchState.lastName.trim(), @@ -134,100 +154,149 @@ export function PersonSidebar< useEffect(() => { setState((previous) => { - if (query.data) { - return { ...previous, searchResult: query.data.persons }; + if (searchReferencePersonsQuery.data) { + return { + ...previous, + searchResult: searchReferencePersonsQuery.data.persons, + }; } else { return previous; } }); - }, [query.data]); + }, [searchReferencePersonsQuery.data]); + + const associatedProcedures = props.associatedProcedures; + const getAssociatedProceduresQuery = useQuery< + unknown, + DefaultError, + TProcedure[] + >( + isDefined(associatedProcedures) + ? associatedProcedures.getQuery(state.selectedPerson?.id) + : EMPTY_ASSOCIATED_PROCEDURES_QUERY, + ); let activeMode: SidebarMode; - if (state.mode === "display" && isDefined(state.selectedPerson)) { + if ( + state.mode === "display" && + isDefined(state.selectedPerson) && + (associatedProcedures === undefined || + getAssociatedProceduresQuery.isSuccess) + ) { activeMode = "display"; } else if (state.mode === "create") { activeMode = "create"; - } else if (state.mode === "search_results" && query.isSuccess) { + } else if ( + state.mode === "search_results" && + searchReferencePersonsQuery.isSuccess + ) { activeMode = "search_results"; } else { activeMode = "search"; } - return ( - <> - {activeMode === "search" && ( - <SearchPersonSidebar<TSearchValues> - searchFormTitle={props.title} - sidebarFormRef={props.sidebarFormRef} - onCancel={props.onCancel} - onBack={props.onBack} - initialValues={state.searchState} - searchFormComponent={SearchFormComponent} - searching={state.mode === "search_results" && query.isLoading} - onSearch={(values) => - setState((previous) => ({ - ...previous, - searchState: values, - mode: "search_results", - })) - } - /> - )} - {activeMode === "search_results" && ( - <PersonSearchResults - title={props.title} - sidebarFormRef={props.sidebarFormRef} - onCancel={props.onCancel} - onBack={() => - setState((previous) => ({ ...previous, mode: "search" })) - } - inputs={state.searchState} - persons={state.searchResult} - onSelectPerson={(person) => - setState((previous) => ({ - ...previous, - mode: "display", - selectedPerson: person, - })) - } - onCreatePerson={() => - setState((previous) => ({ - ...previous, - mode: "create", - createState: mapCreateState({ - inputs: previous.searchState, - addressRequired: props.addressRequired, - }), - selectedPerson: undefined, - })) - } - /> - )} - {activeMode === "create" && ( - <PersonSidebarForm<TCreateValues> - title={props.title} - subtitle={"Person anlegen"} - submitLabel={props.submitLabel} - sidebarFormRef={props.sidebarFormRef} + if (activeMode === "search") { + return ( + <SearchPersonSidebar<TSearchValues> + searchFormTitle={props.title} + sidebarFormRef={props.sidebarFormRef} + onCancel={props.onCancel} + onBack={props.onBack} + initialValues={state.searchState} + searchFormComponent={SearchFormComponent} + searching={ + state.mode === "search_results" && + searchReferencePersonsQuery.isLoading + } + onSearch={(values) => + setState((previous) => ({ + ...previous, + searchState: values, + mode: "search_results", + })) + } + /> + ); + } + + if (activeMode === "search_results") { + return ( + <PersonSearchResults + title={props.title} + sidebarFormRef={props.sidebarFormRef} + loadingAssociatedProcedures={getAssociatedProceduresQuery.isLoading} + onCancel={props.onCancel} + onBack={() => setState((previous) => ({ ...previous, mode: "search" }))} + inputs={state.searchState} + persons={state.searchResult} + onSelectPerson={(person) => + setState((previous) => ({ + ...previous, + mode: "display", + selectedPerson: person, + })) + } + onCreatePerson={() => + setState((previous) => ({ + ...previous, + mode: "create", + createState: mapCreateState({ + inputs: previous.searchState, + addressRequired: props.addressRequired, + }), + selectedPerson: undefined, + })) + } + /> + ); + } + + if (activeMode === "create") { + return ( + <PersonSidebarForm<TCreateValues> + title={props.title} + subtitle={"Person anlegen"} + submitLabel={props.submitLabel} + sidebarFormRef={props.sidebarFormRef} + onCancel={props.onCancel} + onBack={() => + setState((previous) => ({ + ...previous, + mode: "search_results", + })) + } + onSubmit={async (values) => + await props.onCreate({ + searchInputs: state.searchState, + createInputs: values, + }) + } + addressRequired={props.addressRequired} + initialValues={state.createState} + component={CreateFormComponent} + /> + ); + } + + if (activeMode === "display" && isDefined(state.selectedPerson)) { + if ( + isDefined(associatedProcedures) && + getAssociatedProceduresQuery.isSuccess && + getAssociatedProceduresQuery.data.length > 0 + ) { + return ( + <AssociatedProceduresSearchResult<TProcedure> onCancel={props.onCancel} onBack={() => - setState((previous) => ({ - ...previous, - mode: "search_results", - })) + setState((previous) => ({ ...previous, mode: "search_results" })) } - onSubmit={async (values) => - await props.onCreate({ - searchInputs: state.searchState, - createInputs: values, - }) - } - addressRequired={props.addressRequired} - initialValues={state.createState} - component={CreateFormComponent} + inputs={state.selectedPerson} + procedures={getAssociatedProceduresQuery.data} + procedureCard={associatedProcedures.cardComponent} /> - )} - {activeMode === "display" && isDefined(state.selectedPerson) && ( + ); + } else { + return ( <PersonDetailsSidebar title={props.title} person={state.selectedPerson} @@ -246,7 +315,9 @@ export function PersonSidebar< }) } /> - )} - </> - ); + ); + } + } + + throw new Error("Invalid sidebar state"); } diff --git a/employee-portal/src/lib/shared/components/personSidebar/form/DefaultPersonForm.tsx b/employee-portal/src/lib/shared/components/personSidebar/form/DefaultPersonForm.tsx index 87caacefc5322dcec15288fa88034a4d6ff66a1a..c01cc02472d6caeb9b7b3d92d6f4ab73878c9c6e 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/form/DefaultPersonForm.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/form/DefaultPersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,12 +10,19 @@ import { } from "@eshg/employee-portal-api/base"; import { FormAddMoreButton } from "@eshg/lib-portal/components/form/FormAddMoreButton"; import { DateField } from "@eshg/lib-portal/components/formFields/DateField"; +import { EmailField } from "@eshg/lib-portal/components/formFields/EmailField"; import { InputArrayField, getIndexLabel, } from "@eshg/lib-portal/components/formFields/InputArrayField"; import { InputField } from "@eshg/lib-portal/components/formFields/InputField"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; +import { + GENDER_OPTIONS, + PERSON_FIELD_NAME, + SALUTATION_OPTIONS, + TITLE_OPTIONS, +} from "@eshg/lib-portal/components/formFields/constants"; import { createFieldNameMapper } from "@eshg/lib-portal/helpers/form"; import { validateLength } from "@eshg/lib-portal/helpers/validators"; import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; @@ -30,13 +37,6 @@ import { createEmptyAddress, } from "@/lib/shared/components/form/address/helpers"; import { CountryField } from "@/lib/shared/components/formFields/CountryField"; -import { EmailField } from "@/lib/shared/components/formFields/EmailField"; -import { - GENDER_OPTIONS, - PERSON_FIELD_NAME, - SALUTATION_OPTIONS, - TITLE_OPTIONS, -} from "@/lib/shared/components/personSidebar/constants"; import { PersonFormProps, PersonFormValues, diff --git a/employee-portal/src/lib/shared/components/personSidebar/form/PersonSidebarForm.tsx b/employee-portal/src/lib/shared/components/personSidebar/form/PersonSidebarForm.tsx index 959beab0c89a30ea9e42bcbdcca9def63d62ea16..edd402acf08e8fcd84d36f6c354051e2305304ac 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/form/PersonSidebarForm.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/form/PersonSidebarForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSidebar/helpers.ts b/employee-portal/src/lib/shared/components/personSidebar/helpers.ts index 87288c2d6ef1891e1931b845b1bd73e1d514d8f2..0618df558446fd0e0ea2a6121987eb0c52d94673 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/helpers.ts +++ b/employee-portal/src/lib/shared/components/personSidebar/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSidebar/search/AssociatedProceduresSearchResult.tsx b/employee-portal/src/lib/shared/components/personSidebar/search/AssociatedProceduresSearchResult.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a67fbe8465aa14e53275200e84075f6eaba00454 --- /dev/null +++ b/employee-portal/src/lib/shared/components/personSidebar/search/AssociatedProceduresSearchResult.tsx @@ -0,0 +1,77 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { ApiGetReferencePersonResponse } from "@eshg/employee-portal-api/base"; +import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; +import ArrowBackIosOutlined from "@mui/icons-material/ArrowBackIosOutlined"; +import { Button, Stack, Typography } from "@mui/joy"; +import { ReactNode } from "react"; +import { isDefined } from "remeda"; + +import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; +import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; + +interface AssociatedProceduresSearchResultProps<TProcedure> { + inputs: ApiGetReferencePersonResponse; + procedures: TProcedure[]; + onCancel: () => void; + onBack?: () => void; + procedureCard: (props: { procedure: TProcedure }) => ReactNode; +} +export function AssociatedProceduresSearchResult<TProcedure>( + props: AssociatedProceduresSearchResultProps<TProcedure>, +) { + const procedures = props.procedures; + const CardComponent = props.procedureCard; + + return ( + <> + <SidebarContent + title="Vorhandene Vorgänge" + header={ + <> + <Stack gap={2}> + {isDefined(props.onBack) && ( + <Button + variant="plain" + startDecorator={<ArrowBackIosOutlined />} + sx={{ alignSelf: "start", paddingInline: 0 }} + onClick={props.onBack} + > + Zurück + </Button> + )} + <Stack> + Bereits vorhandene Vorgänge zur Person: + <Typography level={"title-md"}> + {props.inputs.firstName} {props.inputs.lastName},{" "} + {formatDate(new Date(props.inputs.dateOfBirth))} + </Typography> + </Stack> + </Stack> + </> + } + > + <Stack gap={2}> + {procedures.map((procedure, index) => ( + <CardComponent key={index} procedure={procedure} /> + ))} + </Stack> + </SidebarContent> + <SidebarActions> + <Stack direction="row" gap={2} sx={{ justifyContent: "end" }}> + <Button + onClick={props.onCancel} + color="neutral" + variant="soft" + sx={{ alignSelf: "end" }} + > + Abbrechen + </Button> + </Stack> + </SidebarActions> + </> + ); +} diff --git a/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonForm.tsx b/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonForm.tsx index 99d810f7d2bfc7ac99c4b1e3a080af76c4c2bd02..2413ff0ead9fc32e660f5924eb86bb2cf439658d 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonForm.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonFormFields.tsx b/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonFormFields.tsx index 3a85f78df36bb34b81517b17bb52c864d5835898..a67cde1868a0a88d26ddaf2c0a94727e8c50adc2 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonFormFields.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/search/DefaultSearchPersonFormFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSidebar/search/PersonSearchResults.tsx b/employee-portal/src/lib/shared/components/personSidebar/search/PersonSearchResults.tsx index 77117411c24d20ffa5dd155eda7e0ac9bbad23ae..a97bfe515df6d146e6d881c7e55220d928cbde18 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/search/PersonSearchResults.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/search/PersonSearchResults.tsx @@ -1,10 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import type { ApiGetReferencePersonResponse } from "@eshg/employee-portal-api/base"; import { FormAddMoreButton } from "@eshg/lib-portal/components/form/FormAddMoreButton"; +import { RadioGroupField } from "@eshg/lib-portal/components/formFields/RadioGroupField"; import { formatDate } from "@eshg/lib-portal/formatters/dateTime"; import ArrowBackIosOutlined from "@mui/icons-material/ArrowBackIosOutlined"; import { Box, Button, Stack, Typography } from "@mui/joy"; @@ -20,7 +21,6 @@ import { SidebarForm, SidebarFormHandle, } from "@/lib/shared/components/form/SidebarForm"; -import { RadioGroupField } from "@/lib/shared/components/formFields/RadioGroupField"; import { SearchPersonFormValues } from "@/lib/shared/components/personSidebar/search/SearchPersonSidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; @@ -29,6 +29,7 @@ interface PersonSearchResultsProps { title: string; inputs: SearchPersonFormValues; persons: ApiGetReferencePersonResponse[]; + loadingAssociatedProcedures?: boolean; onSelectPerson: (person: ApiGetReferencePersonResponse) => void; onCreatePerson: () => void; onCancel: () => void; @@ -119,7 +120,9 @@ export function PersonSearchResults(props: PersonSearchResultsProps) { </SidebarContent> <SidebarActions> <MultiFormButtonBar - submitting={isSubmitting} + submitting={ + isSubmitting || (props.loadingAssociatedProcedures ?? false) + } submitLabel={props.persons.length > 0 ? "Weiter" : undefined} onCancel={props.onCancel} onBack={props.onBack} diff --git a/employee-portal/src/lib/shared/components/personSidebar/search/SearchPersonSidebar.tsx b/employee-portal/src/lib/shared/components/personSidebar/search/SearchPersonSidebar.tsx index d7046404edfda25c64d22e13a08d52bb432ea960..23d5c58263ef6927ecafcb1155301ca3e25b8df4 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/search/SearchPersonSidebar.tsx +++ b/employee-portal/src/lib/shared/components/personSidebar/search/SearchPersonSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/constants.ts b/employee-portal/src/lib/shared/components/procedures/constants.ts index a09beda8cb415459f135ff0fe17590685c136f5e..1fb36913528a10a349b2b2857047e4a7018b73a9 100644 --- a/employee-portal/src/lib/shared/components/procedures/constants.ts +++ b/employee-portal/src/lib/shared/components/procedures/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/helper.ts b/employee-portal/src/lib/shared/components/procedures/helper.ts index f3e5d48d8f846da06ba495f2be61234ed64edb5c..7f39e895c01b654bc59a9e64160c834d24b66d1f 100644 --- a/employee-portal/src/lib/shared/components/procedures/helper.ts +++ b/employee-portal/src/lib/shared/components/procedures/helper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/hooks/useBuildRoutePreservingSearchParams.ts b/employee-portal/src/lib/shared/components/procedures/hooks/useBuildRoutePreservingSearchParams.ts index 1981ddb537129c6f193b68c1c9375ffe49e442c4..5e062dc788645be3cdb61e3ace4c66eda13dcf9e 100644 --- a/employee-portal/src/lib/shared/components/procedures/hooks/useBuildRoutePreservingSearchParams.ts +++ b/employee-portal/src/lib/shared/components/procedures/hooks/useBuildRoutePreservingSearchParams.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureDetailsSidebar.tsx b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureDetailsSidebar.tsx index 68fdfc3d4f56c9aa5fc8920200fd077ba186d94e..b7ccbed02e48542cf16a59bb9a94f7ca7117c6a8 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureDetailsSidebar.tsx +++ b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureDetailsSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -16,7 +16,7 @@ import { UseFetchInboxProcedure } from "@/lib/shared/api/queries/inboxProcedures import { FileCard } from "@/lib/shared/components/FileCard"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; -import { ConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; import { DetailsCell } from "@/lib/shared/components/detailsSection/DetailsCell"; import { DrawerProps } from "@/lib/shared/components/drawer/drawerContext"; import { procedureTypeNames } from "@/lib/shared/components/procedures/constants"; @@ -380,7 +380,7 @@ function InboxProcedureClosureModal({ return ( <OverlayBoundary> - <ConfirmationDialog + <EmployeePortalConfirmationDialog open onClose={onClose} onConfirm={handleSubmit} diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureStatusChip.tsx b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureStatusChip.tsx index 5c4a5a95e8f02ca7a3aff34010c0674e702b8504..9db3b6408c7283e7cc2e3e08a3d02acbaf19afac 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureStatusChip.tsx +++ b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProcedureStatusChip.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresPage.tsx b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresPage.tsx index ae4c7d1cc93463c2cf825c534c6bd7a10a4f5a8f..f88a91741ae3b951c7572d07635e6b08560db19b 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresPage.tsx +++ b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresTable.tsx b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresTable.tsx index 635dc5e594e6fa706341e9df1ae6721c1b55fb6d..01c755b0f8a44372b769ab2b85db1c26841feb84 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresTable.tsx +++ b/employee-portal/src/lib/shared/components/procedures/inbox/InboxProceduresTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/columns.tsx b/employee-portal/src/lib/shared/components/procedures/inbox/columns.tsx index a30680689a0e29d77add805ee85fd0854953854b..31a699b091c6e8a63117dbf012a744fb4f88365a 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/columns.tsx +++ b/employee-portal/src/lib/shared/components/procedures/inbox/columns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/constants.ts b/employee-portal/src/lib/shared/components/procedures/inbox/constants.ts index ed8deaf206f93f74afc1b8e33030f4a858de8354..d74daa5df0f306fcfaf765a3c2e1d91d434cce7b 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/constants.ts +++ b/employee-portal/src/lib/shared/components/procedures/inbox/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/hooks/useCreateInboxProcedureStatusTemplate.ts b/employee-portal/src/lib/shared/components/procedures/inbox/hooks/useCreateInboxProcedureStatusTemplate.ts index 87597821e6a37215c2a83fa8699af51f59e585e3..960951aa04e4bfd2caffd83b9be1d8e381ddff63 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/hooks/useCreateInboxProcedureStatusTemplate.ts +++ b/employee-portal/src/lib/shared/components/procedures/inbox/hooks/useCreateInboxProcedureStatusTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/inbox/mutations/useCloseInboxProcedureStatusTemplate.ts b/employee-portal/src/lib/shared/components/procedures/inbox/mutations/useCloseInboxProcedureStatusTemplate.ts index 85c3f609962942f10b6d644b9f40be550781b05b..cb1d8872f4bc6c5d83ade18f461d877802e3817a 100644 --- a/employee-portal/src/lib/shared/components/procedures/inbox/mutations/useCloseInboxProcedureStatusTemplate.ts +++ b/employee-portal/src/lib/shared/components/procedures/inbox/mutations/useCloseInboxProcedureStatusTemplate.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/EntryFile.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/EntryFile.tsx index 197beb6b101ca9ba166c401bd3cb159422baea8e..576c6c0920f8244bc889d9c33d4ba5b76f0136c0 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/EntryFile.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/EntryFile.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/FileCardWithActions.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/FileCardWithActions.tsx index 7db01f34e89458e0e6f63074df8ffbb1722387f5..5cdda86fd680c50910f508c06d946475d4500be5 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/FileCardWithActions.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/FileCardWithActions.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,7 +10,6 @@ import { downloadFileAndOpen } from "@eshg/lib-portal/api/files/download"; import DeleteIcon from "@mui/icons-material/Delete"; import FileDownloadOutlinedIcon from "@mui/icons-material/FileDownloadOutlined"; import InfoOutlinedIcon from "@mui/icons-material/InfoOutlined"; -import { useSearchParams } from "next/navigation"; import { useContext, useRef } from "react"; import { isDefined } from "remeda"; @@ -18,13 +17,11 @@ import { FileCard, FileCardActionProps, } from "@/lib/shared/components/FileCard"; -import { buildRouteWithParams } from "@/lib/shared/components/procedures/helper"; import { useDeletionProps } from "@/lib/shared/components/procedures/progress-entries/hooks/useDeletionProps"; import { ProgressEntriesContext, useIsReadOnly, - useProgressEntriesConfig, } from "./ProgressEntriesContext"; import { mapToFileCardProps } from "./mapper"; @@ -61,8 +58,9 @@ function FileCardWithOptionalDetailsLinkAndDownload({ }: FileCardWithActionsProps & { additionalAction?: FileCardActionProps; }) { - const searchParams = useSearchParams(); - const { routes, procedureId, useDownloadFile } = useProgressEntriesConfig(); + const progressEntriesContext = useContext(ProgressEntriesContext); + const { useDownloadFile } = progressEntriesContext.config; + const { openEntryDetailsSidebar } = progressEntriesContext.action; const downloadFile = useDownloadFile(); const hiddenLinkContainer = useRef<HTMLDivElement>(null); @@ -77,10 +75,7 @@ function FileCardWithOptionalDetailsLinkAndDownload({ const hasDetailsAction = isDefined(detailsProgressEntryId); if (hasDetailsAction) { actions.push({ - onClick: buildRouteWithParams( - routes.entryDetails(procedureId, detailsProgressEntryId), - searchParams, - ), + onClick: () => openEntryDetailsSidebar(detailsProgressEntryId), indicator: <InfoOutlinedIcon />, name: "Details", color: "neutral", diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/FileOrDeletionNote.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/FileOrDeletionNote.tsx index 7b14825808e32e608a3f6a9b6c78ec39c32e7e41..ec99d92a3b36c1455197263f70aebeab25834459 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/FileOrDeletionNote.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/FileOrDeletionNote.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesContext.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesContext.tsx index 029c605919cc2f3143ea5d4cf83b2d98b57dd1d8..2fd563a12f493d02c42f105cd3c3db061333f3b0 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesContext.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -24,12 +24,15 @@ interface ProgressEntriesContextProps { state: { fileIdForDeletion: string | null; entryIdForDeletion: string | null; + entryIdForDetails: string | null; }; action: { openFileDeletionModal: (fileId: string) => void; closeFileDeletionModal: () => void; openEntryDeletionModal: (entryId: string) => void; closeEntryDeletionModal: () => void; + openEntryDetailsSidebar: (entryId: string) => void; + closeEntryDetailsSidebar: () => void; }; } @@ -49,6 +52,9 @@ export function ProgressEntriesProvider( const [entryIdForDeletion, setEntryIdForDeletion] = useState<string | null>( null, ); + const [entryIdForDetails, setEntryIdForDetails] = useState<string | null>( + null, + ); function openFileDeletionModal(fileId: string) { setFileIdForDeletion(fileId); @@ -66,6 +72,14 @@ export function ProgressEntriesProvider( setEntryIdForDeletion(null); } + function openEntryDetailsSidebar(entryId: string) { + setEntryIdForDetails(entryId); + } + + function closeEntryDetailsSidebar() { + setEntryIdForDetails(null); + } + return ( <ProgressEntriesContext.Provider value={{ @@ -73,12 +87,15 @@ export function ProgressEntriesProvider( state: { fileIdForDeletion, entryIdForDeletion, + entryIdForDetails, }, action: { openFileDeletionModal, closeFileDeletionModal, openEntryDeletionModal, closeEntryDeletionModal, + openEntryDetailsSidebar, + closeEntryDetailsSidebar, }, }} > diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesPage.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesPage.tsx index f78ba94c5af058d4922a891ede8e5bcd54fc2094..c4778627a9053bdbc297ba21c194a50a7249b363 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesPage.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/ProgressEntriesPage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,10 +8,10 @@ import { DeleteOutlined } from "@mui/icons-material"; import AddIcon from "@mui/icons-material/Add"; import { Button, Divider, Grid, Sheet, Stack, Typography } from "@mui/joy"; -import { useState } from "react"; -import { isDefined } from "remeda"; +import { useContext, useState } from "react"; import { useGetUsersByGroupQuery } from "@/lib/baseModule/api/queries/users"; +import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; import { ButtonBar } from "@/lib/shared/components/buttons/ButtonBar"; import { FilterButton } from "@/lib/shared/components/buttons/FilterButton"; import { FilterSettings } from "@/lib/shared/components/filterSettings/FilterSettings"; @@ -28,6 +28,7 @@ import { useIsOffline } from "@/lib/shared/hooks/useIsOffline"; import { FileCardWithActions } from "./FileCardWithActions"; import { + ProgressEntriesContext, ProgressEntriesProvider, useHasDeletionRights, useIsReadOnly, @@ -45,7 +46,6 @@ export function ProgressEntriesPage({ useFetchProgressEntries, useFetchProgressEntryDetails, procedureId, - progressEntryId, searchParams, additionalKeyDocumentTypes, ...props @@ -87,25 +87,15 @@ export function ProgressEntriesPage({ ...props, }} > - <ProgressEntriesPageComponent - procedureId={procedureId} - progressEntryId={progressEntryId} - /> + <ProgressEntriesPageComponent /> </ProgressEntriesProvider> ); } -interface ProgressEntriesPageComponentProps { - procedureId: string; - progressEntryId: string | undefined; -} - -export function ProgressEntriesPageComponent({ - procedureId, - progressEntryId, -}: ProgressEntriesPageComponentProps) { - const { filterSettings, routes, useFetchProgressEntryDetails } = - useProgressEntriesConfig(); +export function ProgressEntriesPageComponent() { + const progressEntriesContext = useContext(ProgressEntriesContext); + const { filterSettings } = progressEntriesContext.config; + const { entryIdForDetails } = progressEntriesContext.state; const [showCreateProgressEntrySidebar, setShowCreateProgressEntrySidebar] = useState(false); const [showFilesSidebar, setShowFilesSidebar] = useState(false); @@ -209,13 +199,10 @@ export function ProgressEntriesPageComponent({ onClose={closeApprovalRequestsSidebar} /> )} - {isDefined(progressEntryId) ? ( - <ProgressEntryDetailsSidebar - procedureId={procedureId} - progressEntryId={progressEntryId} - route={routes.progressEntries} - useFetchProgressEntryDetails={useFetchProgressEntryDetails} - /> + {entryIdForDetails !== null ? ( + <OverlayBoundary> + <ProgressEntryDetailsSidebar progressEntryId={entryIdForDetails} /> + </OverlayBoundary> ) : null} <FileDeletionModal /> </> diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/SortSelect.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/SortSelect.tsx index c39be7f1c1ce87fd322fb9f7b146178dfead638b..4dc669deda5a8fae04adf4481b88aed3c9950eb3 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/SortSelect.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/SortSelect.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/buildTimelineEntryProps.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/buildTimelineEntryProps.tsx index 16b069096eec1db908c13885ce734cf7eef491c8..af8c563fab3e38c348e1f443d627e4afaf9474f2 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/buildTimelineEntryProps.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/buildTimelineEntryProps.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,16 +9,18 @@ import { ApiProcessedInboxProgressEntry, ApiSystemProgressEntry, } from "@eshg/employee-portal-api/businessProcedures"; -import { InternalLink } from "@eshg/lib-portal/components/navigation/InternalLink"; +import { ButtonLink } from "@eshg/lib-portal/components/buttons/ButtonLink"; import { formatDateTime } from "@eshg/lib-portal/formatters/dateTime"; import CheckIcon from "@mui/icons-material/Check"; import MailOutlinedIcon from "@mui/icons-material/MailOutlined"; import { Sheet, Stack, Typography } from "@mui/joy"; -import { useSearchParams } from "next/navigation"; +import { useContext } from "react"; import { isDefined, isEmpty } from "remeda"; -import { buildRouteWithParams } from "@/lib/shared/components/procedures/helper"; -import { useProgressEntriesConfig } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesContext"; +import { + ProgressEntriesContext, + useProgressEntriesConfig, +} from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesContext"; import { TimelineEntryProps } from "@/lib/shared/components/timeline/TimelineEntry"; import { TimelineEntryIndicator } from "@/lib/shared/components/timeline/TimelineEntryIndicator"; @@ -37,31 +39,23 @@ interface ProgressEntryTimelineEntryProps extends TimelineEntryProps { } export function useTimelineEntryProps(): ProgressEntryTimelineEntryProps[] { - const { procedureId, progressEntries, routes } = useProgressEntriesConfig(); - const rawSearchParams = useSearchParams(); + const { progressEntries } = useProgressEntriesConfig(); return progressEntries.map((progressEntry) => - timelineEntryPropsOfProgressEntry( - progressEntry, - buildRouteWithParams( - routes.entryDetails(procedureId, progressEntry.progressEntryId), - rawSearchParams, - ), - ), + timelineEntryPropsOfProgressEntry(progressEntry), ); } function timelineEntryPropsOfProgressEntry( progressEntry: ApiGetProgressEntriesResponseProgressEntriesInner, - detailsUrl: string, ): ProgressEntryTimelineEntryProps { switch (progressEntry.type) { case "SystemProgressEntry": - return timelineEntryPropsOfSystemProgressEntry(progressEntry, detailsUrl); + return timelineEntryPropsOfSystemProgressEntry(progressEntry); case "ManualProgressEntry": - return timelineEntryPropsOfManualProgressEntry(progressEntry, detailsUrl); + return timelineEntryPropsOfManualProgressEntry(progressEntry); case "ProcessedInboxProgressEntry": - return timelineEntryPropsOfInboxProgressEntry(progressEntry, detailsUrl); + return timelineEntryPropsOfInboxProgressEntry(progressEntry); } } @@ -79,7 +73,6 @@ function TextSheet(props: { text: string; dataTestId: string }) { function timelineEntryPropsOfSystemProgressEntry( systemProgressEntry: ApiSystemProgressEntry, - detailsUrl: string, ): ProgressEntryTimelineEntryProps { return { key: systemProgressEntry.progressEntryId, @@ -90,7 +83,7 @@ function timelineEntryPropsOfSystemProgressEntry( systemProgressEntry.systemProgressEntryType ] ?? "Unbekannt" } - detailsUrl={detailsUrl} + progressEntryId={systemProgressEntry.progressEntryId} /> ), label: buildLabel( @@ -123,7 +116,6 @@ function timelineEntryPropsOfSystemProgressEntry( function timelineEntryPropsOfManualProgressEntry( manualProgressEntry: ApiManualProgressEntry, - detailsUrl: string, ): ProgressEntryTimelineEntryProps { const note = manualProgressEntry.note; return { @@ -133,7 +125,7 @@ function timelineEntryPropsOfManualProgressEntry( title={ manualProgressEntryTitles[manualProgressEntry.manualProgressEntryType] } - detailsUrl={detailsUrl} + progressEntryId={manualProgressEntry.progressEntryId} /> ), label: buildLabel( @@ -166,7 +158,6 @@ function timelineEntryPropsOfManualProgressEntry( function timelineEntryPropsOfInboxProgressEntry( inboxProgressEntry: ApiProcessedInboxProgressEntry, - detailsUrl: string, ): ProgressEntryTimelineEntryProps { return { key: inboxProgressEntry.progressEntryId, @@ -175,7 +166,7 @@ function timelineEntryPropsOfInboxProgressEntry( title={ inboxProgressEntryTitles[inboxProgressEntry.inboxProgressEntryType] } - detailsUrl={detailsUrl} + progressEntryId={inboxProgressEntry.progressEntryId} /> ), label: buildLabel( @@ -199,13 +190,25 @@ function timelineEntryPropsOfInboxProgressEntry( }; } -function Title({ title, detailsUrl }: { title: string; detailsUrl: string }) { +function Title({ + title, + progressEntryId, +}: { + title: string; + progressEntryId: string; +}) { + const progressEntriesContext = useContext(ProgressEntriesContext); + const { openEntryDetailsSidebar } = progressEntriesContext.action; + return ( <Stack direction="row" spacing={0.75}> <Typography>{title}</Typography> - <InternalLink level="body-sm" href={detailsUrl}> + <ButtonLink + level="body-sm" + onClick={() => openEntryDetailsSidebar(progressEntryId)} + > Details - </InternalLink> + </ButtonLink> </Stack> ); } diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/constants.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/constants.tsx index 82f2001c9822e1a757f40ca3ca3ecdf7e3e22c0b..cf7584e15f790dca41de92d4e28ebc935683c0b5 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/constants.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/constants.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,6 +8,7 @@ import { ApiManualProgressEntryType, ApiProgressEntryClass, } from "@eshg/employee-portal-api/businessProcedures"; +import { FileType } from "@eshg/lib-portal/components/formFields/file/FileType"; import { CallOutlined, DescriptionOutlined, @@ -26,7 +27,6 @@ import { systemProgressEntryTypeTitles as medicalRegistrySystemProgressEntryType import { systemProgressEntryTypeTitles as schoolEntrySystemProgressEntryTypeTitles } from "@/lib/businessModules/schoolEntry/shared/constants"; import { systemProgressEntryTypeTitles as stiProtectionSystemProgressEntryTypeTitles } from "@/lib/businessModules/stiProtection/shared/constants"; import { systemProgressEntryTypeTitles as travelMedicineSystemProgressEntryTypeTitles } from "@/lib/businessModules/travelMedicine/shared/constants"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; export const manualProgressEntryTypeNames = { [ApiManualProgressEntryType.Document]: "Dokument", diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/forms/DeletionRequestForm.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/forms/DeletionRequestForm.tsx index d7c5b2afbfc5ace1cf9dac665a9b964abb3d0914..05b207ea4d355172ef0d88acbfcf0f0c669fd6a0 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/forms/DeletionRequestForm.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/forms/DeletionRequestForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/helper.ts b/employee-portal/src/lib/shared/components/procedures/progress-entries/helper.ts index b095eb8727e3e56da911d40565dc34710abe81b6..539c52305e3000aa4a096066cc1dbd88e11ae15e 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/helper.ts +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/helper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useDeletionProps.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useDeletionProps.tsx index 8c1a058e2ccb107592ba4be46912664d4f594cfc..7a32b127e5598351666853f67ac4ee7b0bad3e3f 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useDeletionProps.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useDeletionProps.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useHasEditRights.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useHasEditRights.tsx index ad95cf2d43e625b2ba50b975e9cd247196f1f59c..35c5765263f77e7484f8f3275c619d66a74de109 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useHasEditRights.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useHasEditRights.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useProgressEntriesFilterSettings.ts b/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useProgressEntriesFilterSettings.ts index d78f98325ddf8666d4746f189bc392a9d5950f52..34c7663b4a247e6767aeab2db0024d114e624001 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useProgressEntriesFilterSettings.ts +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/hooks/useProgressEntriesFilterSettings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/mapper.ts b/employee-portal/src/lib/shared/components/procedures/progress-entries/mapper.ts index 6bebdd39fd7d796b00a10904ba1d4b0a37d0a403..b44baadd9862dafa84bdae00a3de0ee1d443923e 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/mapper.ts +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/mapper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDeletionRequestModal.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDeletionRequestModal.tsx index 5151ccf61f2c282d9c02d67b2e3d0956bf8f2252..f0d71b42384670b57d346dab36a3183277f49761 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDeletionRequestModal.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDeletionRequestModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDirectDeletionModal.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDirectDeletionModal.tsx index a8ca0f2751ce0cf1821043f85ceb94054d567301..242f5f8f005bdee222ffc5f632da69f14156aa82 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDirectDeletionModal.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/EntryDirectDeletionModal.tsx @@ -1,12 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { useContext } from "react"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { ConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; import { ProgressEntriesContext } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesContext"; import { EntryDeletionModalProps } from "@/lib/shared/components/procedures/progress-entries/types"; @@ -27,7 +27,7 @@ export function EntryDirectDeletionModalContent( const { closeEntryDeletionModal } = progressEntriesContext.action; const deleteProgressEntry = useDeleteProgressEntry(); return ( - <ConfirmationDialog + <EmployeePortalConfirmationDialog open={entryIdForDeletion !== null} onClose={closeEntryDeletionModal} onConfirm={() => { diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDeletionRequestModal.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDeletionRequestModal.tsx index 92194d63402ca568e4cf9e7fbb6523b16f3f5195..507f470848272cfc7cd3f95c351751808c26e485 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDeletionRequestModal.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDeletionRequestModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDirectDeletionModal.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDirectDeletionModal.tsx index 6ad1fd2a8437dd55dc21d80f21a0144858f7e5a0..99273f48e5c61b859dafc8375a3792c7e28dbfb3 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDirectDeletionModal.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/modals/FileDirectDeletionModal.tsx @@ -1,12 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { useContext } from "react"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { ConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialog"; +import { EmployeePortalConfirmationDialog } from "@/lib/shared/components/confirmationDialog/EmployeePortalConfirmationDialog"; import { ProgressEntriesContext } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesContext"; export function FileDirectDeletionModal() { @@ -24,7 +24,7 @@ export function FileDirectDeletionModalContent() { const { closeFileDeletionModal } = progressEntriesContext.action; const deleteFile = useDeleteFile(); return ( - <ConfirmationDialog + <EmployeePortalConfirmationDialog open={fileIdForDeletion !== null} onClose={closeFileDeletionModal} onConfirm={() => { diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/CreateProgressEntrySidebar.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/CreateProgressEntrySidebar.tsx index ca8ae0719b8ad82f4a98848b0cd6b8db93633d7d..96be24a58a74f1c451fe5c3c3fdf13e611f99b6c 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/CreateProgressEntrySidebar.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/CreateProgressEntrySidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,13 +8,13 @@ import { ApiManualProgressEntryType } from "@eshg/employee-portal-api/businessProcedures"; import { SelectField } from "@eshg/lib-portal/components/formFields/SelectField"; import { buildEnumOptions } from "@eshg/lib-portal/helpers/form"; +import { validateFile } from "@eshg/lib-portal/helpers/validators"; import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; import { Stack } from "@mui/joy"; import { Formik, FormikHelpers } from "formik"; import { isEmpty } from "remeda"; import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { FormButtonBar } from "@/lib/shared/components/form/FormButtonBar"; import { SidebarForm } from "@/lib/shared/components/form/SidebarForm"; import { TextareaField } from "@/lib/shared/components/formFields/TextareaField"; @@ -32,7 +32,7 @@ import { mapFormValuesToCreateProgressEntryRequest } from "@/lib/shared/componen import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; import { SidebarActions } from "@/lib/shared/components/sidebar/SidebarActions"; import { SidebarContent } from "@/lib/shared/components/sidebar/SidebarContent"; -import { validateFile } from "@/lib/shared/helpers/validators"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; interface CreateProgressEntrySidebarProps { open: boolean; diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/FilesSidebar.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/FilesSidebar.tsx index 78a0653b891896673715517325456e3ef3695603..803cd8a0f898a03700051206fdc1e06abc534f7e 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/FilesSidebar.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/FilesSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestCard.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestCard.tsx index 9f37712534c7921c6b710be13944dcf99b7e00bb..8cf815fb7d69058b8cb7bbf3d6c15f5dc017fd2f 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestCard.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestCard.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestsOverviewSidebar.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestsOverviewSidebar.tsx index a95cb65dec64086e98b01432692087295acae26d..a4d1eaa132f099c6feaae5f0a6c31382891a848b 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestsOverviewSidebar.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ApprovalRequestsOverviewSidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/FileAsApprovalRequestEntity.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/FileAsApprovalRequestEntity.tsx index da3afd15cfda02bc901311476d576456f5c57394..cec23dafc24b5eee8eca4d7a47f49a81599949e2 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/FileAsApprovalRequestEntity.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/FileAsApprovalRequestEntity.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ProgressEntryAsApprovalRequestEntity.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ProgressEntryAsApprovalRequestEntity.tsx index a87b54c6196d3384d949fd54e67553b95d6a2343..885e8dfa28fcfbe2d7d345c49de0120ccdc03e10 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ProgressEntryAsApprovalRequestEntity.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/approvalRequestOverviewSidebar/ProgressEntryAsApprovalRequestEntity.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsContentWrapper.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsContentWrapper.tsx index e0503adcd8f38b8bc2943e2049bb6a66099b9399..ee5b1b6ba1f271ba15d0cbfcc45b8530b587f4a9 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsContentWrapper.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsContentWrapper.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsHistory.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsHistory.tsx index 13d41eb93185244f532630cb8658e92732f476f6..c270ebe38a6f73be6fe131a8448723230141c95c 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsHistory.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/DetailsHistory.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/InboxProgressEntryDetails.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/InboxProgressEntryDetails.tsx index a7f549fb452f0060ff656809f9b61250d75a4bd5..e21af9c81e9f2f4da5fe4fffc8f425cf92b0b70b 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/InboxProgressEntryDetails.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/InboxProgressEntryDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/LabelValueDisplay.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/LabelValueDisplay.tsx index 7c5317834bd57cc401886204e90ce641f00fb9e5..924cbdbc05f50ccb958ad7cf4f2a5c3270bce06f 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/LabelValueDisplay.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/LabelValueDisplay.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ManualProgressEntryDetails.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ManualProgressEntryDetails.tsx index 8936c753b179204bbb69461614c4d55e201a83fb..42343d89840a46f3e5dc8666f0673e66f97a5aa9 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ManualProgressEntryDetails.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ManualProgressEntryDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ProgressEntryDetailsSidebar.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ProgressEntryDetailsSidebar.tsx index 45b58bbd5e8d7ec5b5a0b784ccf51274f041bd39..130db2aed61a4eca798dd38f22275e8ae962a5fe 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ProgressEntryDetailsSidebar.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ProgressEntryDetailsSidebar.tsx @@ -1,77 +1,58 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ "use client"; -import { ApiGetProgressEntryResponse } from "@eshg/employee-portal-api/businessProcedures"; -import { UseSuspenseQueryResult } from "@tanstack/react-query"; -import { useRouter } from "next/navigation"; +import { useContext } from "react"; import { isDefined } from "remeda"; -import { OverlayBoundary } from "@/lib/shared/components/boundaries/OverlayBoundary"; -import { useBuildRoutePreservingSearchParams } from "@/lib/shared/components/procedures/hooks/useBuildRoutePreservingSearchParams"; +import { ProgressEntriesContext } from "@/lib/shared/components/procedures/progress-entries/ProgressEntriesContext"; import { InboxProgressEntryDetails } from "@/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/InboxProgressEntryDetails"; import { ManualProgressEntryDetails } from "@/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/ManualProgressEntryDetails"; import { SystemProgressEntryDetails } from "@/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/SystemProgressEntryDetails"; import { Sidebar } from "@/lib/shared/components/sidebar/Sidebar"; interface ProgressEntryDetailsSidebarProps { - procedureId: string; progressEntryId: string; - route: (procedureId: string, entryId: string) => string; - useFetchProgressEntryDetails: ( - procedureId: string, - entryId: string, - ) => UseSuspenseQueryResult<ApiGetProgressEntryResponse>; } export function ProgressEntryDetailsSidebar({ - procedureId, progressEntryId, - route, - useFetchProgressEntryDetails, -}: Readonly<ProgressEntryDetailsSidebarProps>) { +}: ProgressEntryDetailsSidebarProps) { + const progressEntriesContext = useContext(ProgressEntriesContext); + const { procedureId, useFetchProgressEntryDetails } = + progressEntriesContext.config; + const { closeEntryDetailsSidebar } = progressEntriesContext.action; const { progressEntry, relatedKeyDocumentProgressEntries } = useFetchProgressEntryDetails(procedureId, progressEntryId).data; - const router = useRouter(); - const buildRoutePreservingSearchParams = - useBuildRoutePreservingSearchParams(); - - function onClose() { - router.push( - buildRoutePreservingSearchParams(route(procedureId, progressEntryId)), - ); - } return ( - <OverlayBoundary> - <Sidebar open={isDefined(progressEntry)} onClose={onClose}> - {isDefined(progressEntry) && - progressEntry.type === "ManualProgressEntry" && ( - <ManualProgressEntryDetails - entry={progressEntry} - relatedKeyDocumentProgressEntries={ - relatedKeyDocumentProgressEntries - } - onClose={onClose} - /> - )} - {isDefined(progressEntry) && - progressEntry.type === "SystemProgressEntry" && ( - <SystemProgressEntryDetails - entry={progressEntry} - relatedKeyDocumentProgressEntries={ - relatedKeyDocumentProgressEntries - } - /> - )} - {isDefined(progressEntry) && - progressEntry.type === "ProcessedInboxProgressEntry" && ( - <InboxProgressEntryDetails entry={progressEntry} /> - )} - </Sidebar> - </OverlayBoundary> + <Sidebar open onClose={closeEntryDetailsSidebar}> + {isDefined(progressEntry) && + progressEntry.type === "ManualProgressEntry" && ( + <ManualProgressEntryDetails + entry={progressEntry} + relatedKeyDocumentProgressEntries={ + relatedKeyDocumentProgressEntries + } + onClose={closeEntryDetailsSidebar} + /> + )} + {isDefined(progressEntry) && + progressEntry.type === "SystemProgressEntry" && ( + <SystemProgressEntryDetails + entry={progressEntry} + relatedKeyDocumentProgressEntries={ + relatedKeyDocumentProgressEntries + } + /> + )} + {isDefined(progressEntry) && + progressEntry.type === "ProcessedInboxProgressEntry" && ( + <InboxProgressEntryDetails entry={progressEntry} /> + )} + </Sidebar> ); } diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/SystemProgressEntryDetails.tsx b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/SystemProgressEntryDetails.tsx index 3a063092be7b5f7bba41182b89787b1e78c8cd05..96a69ccb8802133d12ee0bf89627d5d7ac69e64c 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/SystemProgressEntryDetails.tsx +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/sidebars/progressEntryDetailsSidebar/SystemProgressEntryDetails.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/procedures/progress-entries/types.ts b/employee-portal/src/lib/shared/components/procedures/progress-entries/types.ts index 20406664ac39ffecd5b993368fd18470b0af791d..268caacf5fb6c0ecca1915ed691a83fe2d60d9b2 100644 --- a/employee-portal/src/lib/shared/components/procedures/progress-entries/types.ts +++ b/employee-portal/src/lib/shared/components/procedures/progress-entries/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -44,16 +44,9 @@ export type ProgressEntriesSearchParams = Omit< "procedureId" >; -interface Routes { - entryDetails: (procedureId: string, entryId: string) => string; - progressEntries: (procedureId: string) => string; -} - export interface ProgressEntriesPageProps extends ProgressEntryApiMethods { procedureId: string; - progressEntryId: string | undefined; searchParams: SearchParams; - routes: Routes; leaderRole: ApiUserRole; systemProgressEntryTypes: Record<string, string>; groupName: string; @@ -68,7 +61,6 @@ export interface ProgressEntriesConfig extends ProgressEntryApiActions { files: ApiProgressEntryReferenceFilePair[]; searchParams: ProgressEntriesSearchParams; filterSettings: UseFilterSettings; - routes: Routes; leaderRole: ApiUserRole; keyDocumentTypes: Record<string, string>; approvalRequestsResponse?: ApiGetProcedureApprovalRequestsResponse; diff --git a/employee-portal/src/lib/shared/components/sidePanel/SidePanel.tsx b/employee-portal/src/lib/shared/components/sidePanel/SidePanel.tsx index b63899e4b3ab098aabf3c89cd05aed84a8b4b3dc..f3898ddde498b59988c90d530e696efa122e5d75 100644 --- a/employee-portal/src/lib/shared/components/sidePanel/SidePanel.tsx +++ b/employee-portal/src/lib/shared/components/sidePanel/SidePanel.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/sidePanel/SidePanelDownloadButton.tsx b/employee-portal/src/lib/shared/components/sidePanel/SidePanelDownloadButton.tsx index 704da987083523ea41fbffbef1f7af9b0d3d1f80..265799d94601762f52d114be97fbdb222d22ecf4 100644 --- a/employee-portal/src/lib/shared/components/sidePanel/SidePanelDownloadButton.tsx +++ b/employee-portal/src/lib/shared/components/sidePanel/SidePanelDownloadButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/sidePanel/SidePanelNav.tsx b/employee-portal/src/lib/shared/components/sidePanel/SidePanelNav.tsx index 2d2266375d2b309b96fb8fa41aca8eaa7106e21d..a312f27b48b56f1c60b7cc9a744d7c72a31b5ad2 100644 --- a/employee-portal/src/lib/shared/components/sidePanel/SidePanelNav.tsx +++ b/employee-portal/src/lib/shared/components/sidePanel/SidePanelNav.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/sidePanel/SidePanelNavLink.tsx b/employee-portal/src/lib/shared/components/sidePanel/SidePanelNavLink.tsx index 1ad761d2546db26969791708d94310e5785d4ec4..d5ba587b9eb28629bad85c6893c67f3b1b2fdf97 100644 --- a/employee-portal/src/lib/shared/components/sidePanel/SidePanelNavLink.tsx +++ b/employee-portal/src/lib/shared/components/sidePanel/SidePanelNavLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/sidePanel/SidePanelTitle.tsx b/employee-portal/src/lib/shared/components/sidePanel/SidePanelTitle.tsx index 307e7a03d3199aa8bd32610fc4f93be02cda3469..5aae3790902741dd6c802d4abe4c75f11f89a9e2 100644 --- a/employee-portal/src/lib/shared/components/sidePanel/SidePanelTitle.tsx +++ b/employee-portal/src/lib/shared/components/sidePanel/SidePanelTitle.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/sidebar/Sidebar.tsx b/employee-portal/src/lib/shared/components/sidebar/Sidebar.tsx index 83c82e4d0b04979a22b10400dc75cc5377598d67..890038cbcb43fde11cb4c4cf1b8c05a9fb767bc3 100644 --- a/employee-portal/src/lib/shared/components/sidebar/Sidebar.tsx +++ b/employee-portal/src/lib/shared/components/sidebar/Sidebar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -7,10 +7,7 @@ import { useResetAlertContext } from "@eshg/lib-portal/errorHandling/AlertContex import { Drawer, DrawerProps, ModalClose, Stack, ZIndex } from "@mui/joy"; import { PropsWithChildren } from "react"; -import { - headerHeightDesktop, - headerHeightMobile, -} from "@/lib/baseModule/components/layout/sizes"; +import { useHeaderHeights } from "@/lib/baseModule/components/layout/useHeaderHeights"; export const sidebarPadding = 3; @@ -26,6 +23,7 @@ export function Sidebar({ children, }: SidebarProps) { const resetAlertContext = useResetAlertContext(); + const { headerHeightMobile, headerHeightDesktop } = useHeaderHeights(); function handleClose( ...args: Parameters<NonNullable<DrawerProps["onClose"]>> diff --git a/employee-portal/src/lib/shared/components/sidebar/SidebarActions.tsx b/employee-portal/src/lib/shared/components/sidebar/SidebarActions.tsx index 17076c92f59b8d43db577113799e053cf3424060..063910b404d93c5ac5641474f2a6647287b1e832 100644 --- a/employee-portal/src/lib/shared/components/sidebar/SidebarActions.tsx +++ b/employee-portal/src/lib/shared/components/sidebar/SidebarActions.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/sidebar/SidebarContent.tsx b/employee-portal/src/lib/shared/components/sidebar/SidebarContent.tsx index 433a317ea03f6cb66b85bdde423bf55a8ccdf09b..69c662002f25903f326b9fa1425f35c1a1016070 100644 --- a/employee-portal/src/lib/shared/components/sidebar/SidebarContent.tsx +++ b/employee-portal/src/lib/shared/components/sidebar/SidebarContent.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/tabNavigation/TabNavigation.tsx b/employee-portal/src/lib/shared/components/tabNavigation/TabNavigation.tsx index 29be3818e5543100d0c8122462229b66f0b93f72..1f11a66feb7be09b4da0cebb1980da250642add9 100644 --- a/employee-portal/src/lib/shared/components/tabNavigation/TabNavigation.tsx +++ b/employee-portal/src/lib/shared/components/tabNavigation/TabNavigation.tsx @@ -1,18 +1,16 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ "use client"; -import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; import { Stack } from "@mui/joy"; -import { theme } from "@/lib/baseModule/theme/theme"; +import { TabNavigationItemButton } from "@/lib/shared/components/tabNavigation/TabNavigationButton"; import { TabNavigationItem } from "@/lib/shared/components/tabNavigation/types"; import { noCheck } from "@/lib/shared/helpers/accessControl"; import { useAccessControl } from "@/lib/shared/hooks/useAccessControl"; -import { useIsActiveRoute } from "@/lib/shared/hooks/useIsActiveRoute"; interface TabNavigationProps { items: TabNavigationItem[]; @@ -21,7 +19,6 @@ interface TabNavigationProps { export function TabNavigation({ items, index }: TabNavigationProps) { const checkAccess = useAccessControl(); - const isActiveRoute = useIsActiveRoute(index); const filteredItems = items.filter((item) => checkAccess(item.accessCheck ?? noCheck()), @@ -35,27 +32,13 @@ export function TabNavigation({ items, index }: TabNavigationProps) { gap={2} alignItems="center" > - {filteredItems.map((item) => { - const selected = isActiveRoute(item.href, item.exactMatch); - return ( - <InternalLinkButton - key={item.tabButtonName} - href={item.href} - disabled={item.disabled} - startDecorator={item.decorator} - variant={selected ? "soft" : "plain"} - color={item.color ?? (selected ? "primary" : "neutral")} - aria-current={selected ? "true" : undefined} - sx={{ - fontSize: theme.fontSize.md, - lineHeight: theme.lineHeight.sm, - height: "1rem", - }} - > - {item.tabButtonName} - </InternalLinkButton> - ); - })} + {filteredItems.map((item) => ( + <TabNavigationItemButton + key={item.tabButtonName} + item={item} + index={index} + /> + ))} </Stack> ); } diff --git a/employee-portal/src/lib/shared/components/tabNavigation/TabNavigationButton.tsx b/employee-portal/src/lib/shared/components/tabNavigation/TabNavigationButton.tsx new file mode 100644 index 0000000000000000000000000000000000000000..42ee5ec39954d6a06642106ffc80369f2d688e68 --- /dev/null +++ b/employee-portal/src/lib/shared/components/tabNavigation/TabNavigationButton.tsx @@ -0,0 +1,58 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { InternalLinkButton } from "@eshg/lib-portal/components/navigation/InternalLinkButton"; +import { useEffect, useRef } from "react"; + +import { theme } from "@/lib/baseModule/theme/theme"; +import { TabNavigationItem } from "@/lib/shared/components/tabNavigation/types"; +import { useIsActiveRoute } from "@/lib/shared/hooks/useIsActiveRoute"; + +interface TabNavigationItemButtonProps { + item: TabNavigationItem; + index?: string; +} + +export function TabNavigationItemButton({ + index, + item, +}: TabNavigationItemButtonProps) { + const isActiveRoute = useIsActiveRoute(index); + const selected = isActiveRoute(item.href, item.exactMatch); + + const linkRef = useRef<HTMLAnchorElement>(null); + const firstRenderRef = useRef(true); + + useEffect(() => { + if (selected) { + linkRef.current?.scrollIntoView({ + inline: "center", + behavior: firstRenderRef.current ? "instant" : "smooth", + }); + } + firstRenderRef.current = false; + }, [selected]); + + return ( + <InternalLinkButton + ref={linkRef} + href={item.href} + disabled={item.disabled} + startDecorator={item.decorator} + variant={selected ? "soft" : "plain"} + color={item.color ?? (selected ? "primary" : "neutral")} + aria-current={selected ? "true" : undefined} + sx={{ + fontSize: theme.fontSize.md, + lineHeight: theme.lineHeight.sm, + height: "1rem", + }} + > + {item.tabButtonName} + </InternalLinkButton> + ); +} diff --git a/employee-portal/src/lib/shared/components/tabNavigation/types.ts b/employee-portal/src/lib/shared/components/tabNavigation/types.ts index ba9ea7140027b772ef4065760685986d41c52351..2881da21680987d9c8e4277b3767a8198dcd3bc2 100644 --- a/employee-portal/src/lib/shared/components/tabNavigation/types.ts +++ b/employee-portal/src/lib/shared/components/tabNavigation/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/tabNavigationToolbar/HorizontalScrollBoxWithButtons.tsx b/employee-portal/src/lib/shared/components/tabNavigationToolbar/HorizontalScrollBoxWithButtons.tsx new file mode 100644 index 0000000000000000000000000000000000000000..f739bd5717e2d906d15c3e6b096abb456ab3d2d8 --- /dev/null +++ b/employee-portal/src/lib/shared/components/tabNavigationToolbar/HorizontalScrollBoxWithButtons.tsx @@ -0,0 +1,196 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { ChevronLeft, ChevronRight } from "@mui/icons-material"; +import { Box, IconButton, styled } from "@mui/joy"; +import { PropsWithChildren, useCallback, useEffect, useRef } from "react"; + +type Direction = -1 | 1; +const SCROLL_SPEED = 4; // pixels per frame @ 60PFS +const START_CLASS = "scroll-position-start"; +const END_CLASS = "scroll-position-end"; +const FADE_WIDTH = "2rem"; + +// This box allows horizontal scrolling with two buttons at the edges that are +// hidden if we can't scroll in that direction. +// Use an IntersectionObserver to check if divs at the start and end of the +// content are visible and apply css classes `scroll-position-start` and +// `scroll-position-end` to the container. +// These classes are used to hide the buttons and enabled a fade-effect. +export function HorizontalScrollBoxWithButtons({ + children, +}: PropsWithChildren) { + const outerBoxRef = useRef<HTMLDivElement>(null); + const scrollBoxRef = useRef<HTMLDivElement>(null); + const startRef = useRef<HTMLDivElement>(null); + const endRef = useRef<HTMLDivElement>(null); + const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null); + + const startScroll = useCallback((direction: Direction) => { + scrollBoxRef.current?.scrollBy(direction * SCROLL_SPEED, 0); + if (timerRef.current) { + clearTimeout(timerRef.current); + } + timerRef.current = setTimeout(() => { + startScroll(direction); + }, 1000 / 60); + }, []); + + const endScroll = useCallback(() => { + if (timerRef.current) { + clearTimeout(timerRef.current); + timerRef.current = null; + } + }, []); + + useEffect(() => { + function createObserver(cssClass: string) { + return new IntersectionObserver( + (entries) => { + if (entries[0]?.isIntersecting) { + outerBoxRef.current?.classList.add(cssClass); + // The scroll button might have vanished under the cursor. Stop scrolling. + endScroll(); + } else { + outerBoxRef.current?.classList.remove(cssClass); + } + }, + { + root: scrollBoxRef.current, + }, + ); + } + const startObserver = createObserver(START_CLASS); + const endObserver = createObserver(END_CLASS); + + startObserver.observe(startRef.current!); + endObserver.observe(endRef.current!); + + return () => { + startObserver.disconnect(); + endObserver.disconnect(); + }; + }, [endScroll]); + + return ( + <Box + ref={outerBoxRef} + sx={{ + display: "flex", + height: "100%", + position: "relative", + [`&:not(.${START_CLASS}):not(.${END_CLASS})`]: { + // can scroll left and right + "& > div": { + maskImage: `linear-gradient(to right, transparent, transparent ${FADE_WIDTH}, black calc(2 * ${FADE_WIDTH}), black calc(100% - 2 * ${FADE_WIDTH}), transparent calc(100% - ${FADE_WIDTH}), transparent)`, + }, + }, + [`&.${START_CLASS}:not(.${END_CLASS})`]: { + // can only scroll right + "& > div": { + maskImage: `linear-gradient(to right, black, black calc(100% - 2 * ${FADE_WIDTH}), transparent calc(100% - ${FADE_WIDTH}), transparent)`, + }, + "& > button:first-child": { + display: "none", + }, + }, + [`&:not(.${START_CLASS}).${END_CLASS}`]: { + // can only scroll left + "& > div": { + maskImage: `linear-gradient(to right, transparent, transparent ${FADE_WIDTH}, black calc(2 * ${FADE_WIDTH}), black)`, + }, + "& > button:last-child": { + display: "none", + }, + }, + [`&.${START_CLASS}.${END_CLASS}`]: { + // cannot scroll + "& > button": { + display: "none", + }, + }, + }} + > + <ScrollButton dir={-1} startScroll={startScroll} endScroll={endScroll} /> + <Box + ref={scrollBoxRef} + sx={{ + // allow horizontal scrolling + overflowX: "auto", + // take up all the remaining vertical space + flexGrow: 1, + // centered content + display: "flex", + alignItems: "center", + // hide scrollbar + scrollbarWidth: "none", + }} + > + <EdgeSensor ref={startRef} /> + {children} + <EdgeSensor ref={endRef} /> + </Box> + <ScrollButton dir={1} startScroll={startScroll} endScroll={endScroll} /> + </Box> + ); +} + +const EdgeSensor = styled(Box)(() => ({ + opacity: 0, + flex: "0 0 2px", + ml: "-1px", + mr: "-1px", + height: 1, +})); + +// Button that behaves like a native scrollbar button, i.e. scroll as long as +// the user holds the mouse button down. +function ScrollButton({ + dir, + startScroll, + endScroll, +}: { + dir: Direction; + startScroll: (dir: Direction) => void; + endScroll: () => void; +}) { + const Icon = dir < 0 ? ChevronLeft : ChevronRight; + const label = dir < 0 ? "Links scrollen" : "Rechts scrollen"; + const sx = { + position: "absolute", + zIndex: 2, + left: dir < 0 ? 0 : "auto", + right: dir < 0 ? "auto" : 0, + top: 0, + bottom: 0, + marginTop: "auto", + marginBottom: "auto", + }; + return ( + <IconButton + variant="plain" + sx={sx} + disabled={false} + aria-label={label} + onMouseDown={() => startScroll(dir)} + onMouseUp={endScroll} + onMouseLeave={endScroll} + onContextMenu={(e) => { + e.preventDefault(); + e.stopPropagation(); + return false; + }} + onTouchStart={() => startScroll(dir)} + onTouchEnd={endScroll} + onTouchCancel={endScroll} + onKeyDown={(e) => ["Enter", " "].includes(e.key) && startScroll(dir)} + onKeyUp={endScroll} + > + <Icon size="lg" color="neutral" /> + </IconButton> + ); +} diff --git a/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationHeader.tsx b/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationHeader.tsx index af8b985168d2069b91999e77733b38da108b23d2..fd2f3a5a00beb8bc6160e50faed3d004ae939754 100644 --- a/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationHeader.tsx +++ b/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationHeader.tsx @@ -1,16 +1,23 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { RequiresChildren } from "@eshg/lib-portal/types/react"; import { Stack, Typography, TypographyProps } from "@mui/joy"; +import { Children } from "react"; + +import { useIsMobile } from "@/lib/shared/hooks/useIsMobile"; export interface TabNavigationHeaderProps extends RequiresChildren { titleAsH1?: boolean; } export function TabNavigationHeader(props: TabNavigationHeaderProps) { + const isMobile = useIsMobile(); + + const firstChild = Children.toArray(props.children)[0]; + return ( <Stack component={props.titleAsH1 ? "h1" : "div"} @@ -19,7 +26,7 @@ export function TabNavigationHeader(props: TabNavigationHeaderProps) { gap={4} data-testid="tabNavigationHeader" > - {props.children} + {isMobile ? firstChild : props.children} </Stack> ); } @@ -35,6 +42,7 @@ export function TabNavigationHeaderTypography({ component="p" sx={{ lineHeight: "27px", ...sx }} {...props} + noWrap > {children} </Typography> diff --git a/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationToolbar.tsx b/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationToolbar.tsx index 7294a1f41e32ccfba0a375ce662c7837dbcfa2e9..4d9e4b26d02eec6602acb1dc7a37e53186248226 100644 --- a/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationToolbar.tsx +++ b/employee-portal/src/lib/shared/components/tabNavigationToolbar/TabNavigationToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -10,6 +10,7 @@ import { ReactNode } from "react"; import { TabNavigation } from "@/lib/shared/components/tabNavigation/TabNavigation"; import { TabNavigationItem } from "@/lib/shared/components/tabNavigation/types"; +import { HorizontalScrollBoxWithButtons } from "@/lib/shared/components/tabNavigationToolbar/HorizontalScrollBoxWithButtons"; export interface TabNavigationToolbarProps { /** tab definitions */ @@ -53,17 +54,7 @@ export function TabNavigationToolbar(props: TabNavigationToolbarProps) { )} <Stack divider={<Divider />} sx={{ flexGrow: 1, minWidth: 0 }}> <Box sx={{ paddingInline: 3 }}>{props.header}</Box> - <Box - sx={{ - // allow horizontal scrolling - overflowX: "auto", - // take up all the remaining vertical space - flexGrow: 1, - // keep the tabs centered - display: "flex", - alignItems: "center", - }} - > + <HorizontalScrollBoxWithButtons> <Stack direction="row" sx={{ @@ -82,7 +73,7 @@ export function TabNavigationToolbar(props: TabNavigationToolbarProps) { <Box sx={{ alignSelf: "center" }}>{props.afterTabs}</Box> )} </Stack> - </Box> + </HorizontalScrollBoxWithButtons> </Stack> </Stack> </Sheet> diff --git a/employee-portal/src/lib/shared/components/table/DataTable.tsx b/employee-portal/src/lib/shared/components/table/DataTable.tsx index d68498738d6a2d9422a28099ac2d79e61002228c..069eb6fae2a8dc7e2f7738bbaf9408da3828352d 100644 --- a/employee-portal/src/lib/shared/components/table/DataTable.tsx +++ b/employee-portal/src/lib/shared/components/table/DataTable.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/Header.tsx b/employee-portal/src/lib/shared/components/table/Header.tsx index 81ffec8b7590286bc43d340a9b1c97e23aa64c88..f0002b63bba3b901af0b2cc849ea6b528e02ee21 100644 --- a/employee-portal/src/lib/shared/components/table/Header.tsx +++ b/employee-portal/src/lib/shared/components/table/Header.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbar.tsx b/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbar.tsx index 76ebbd780ef43e34b007bdc521c16329a2d7f712..4f1a39bb9c9b6863ea3f0e2093df577c46e5bcab 100644 --- a/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbar.tsx +++ b/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbarButton.tsx b/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbarButton.tsx index 63aef1c64086e577910e239974953ee2e1cf3501..de8cea8c30362247b3a068e98217739fc5c63f27 100644 --- a/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbarButton.tsx +++ b/employee-portal/src/lib/shared/components/table/RowSelectionTableToolbarButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/TablePage.tsx b/employee-portal/src/lib/shared/components/table/TablePage.tsx index 22726f903fcbeddd1e65df65271b1fa972b66dcd..f297cfc134dc6819af9ebbbba3d5bf65b5ab02cd 100644 --- a/employee-portal/src/lib/shared/components/table/TablePage.tsx +++ b/employee-portal/src/lib/shared/components/table/TablePage.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/TableRow.tsx b/employee-portal/src/lib/shared/components/table/TableRow.tsx index bba0f7c3871c350e55bda290c945f41672873050..8992dda60662123c85b147de79649a2da4a56eeb 100644 --- a/employee-portal/src/lib/shared/components/table/TableRow.tsx +++ b/employee-portal/src/lib/shared/components/table/TableRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/TableSheet.tsx b/employee-portal/src/lib/shared/components/table/TableSheet.tsx index 147b29420dfdda042e64b340d952f5ffe2145893..b8114b28259c4d6c69bbca21a3227389ebef6f31 100644 --- a/employee-portal/src/lib/shared/components/table/TableSheet.tsx +++ b/employee-portal/src/lib/shared/components/table/TableSheet.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/TableSubRow.tsx b/employee-portal/src/lib/shared/components/table/TableSubRow.tsx index 13886eee783efdeeec4a10f3c3796e7b9890cf5a..75be0f5d4df9f0d3d04561739e5db60ab28a1324 100644 --- a/employee-portal/src/lib/shared/components/table/TableSubRow.tsx +++ b/employee-portal/src/lib/shared/components/table/TableSubRow.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/cellStyles.ts b/employee-portal/src/lib/shared/components/table/cellStyles.ts index e45f43bdadc9f56d04070dee65ac9e1db9fcdcc7..9f7a5241d819e5cb4119409a86a1ad95d8c34c2d 100644 --- a/employee-portal/src/lib/shared/components/table/cellStyles.ts +++ b/employee-portal/src/lib/shared/components/table/cellStyles.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/columns/ToggleExpandColumn.tsx b/employee-portal/src/lib/shared/components/table/columns/ToggleExpandColumn.tsx index 3e8a2175f5f6899717a75ed7929c07fe81abcaf5..436dc67564e0c6cae210362a85296afa57f64c8a 100644 --- a/employee-portal/src/lib/shared/components/table/columns/ToggleExpandColumn.tsx +++ b/employee-portal/src/lib/shared/components/table/columns/ToggleExpandColumn.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/columns/ToggleSelectColumn.tsx b/employee-portal/src/lib/shared/components/table/columns/ToggleSelectColumn.tsx index 9e4832500efd0cf81ceb646849e91a344bc45b20..47c06010e5c81f92662f352178d772361c9ac7ef 100644 --- a/employee-portal/src/lib/shared/components/table/columns/ToggleSelectColumn.tsx +++ b/employee-portal/src/lib/shared/components/table/columns/ToggleSelectColumn.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/columns/addFeatureColumns.tsx b/employee-portal/src/lib/shared/components/table/columns/addFeatureColumns.tsx index 89cc8aa6969b13a958c8a31f83734327996964a3..432c85b710e6dd272d20a83d3d8a9749ce338e90 100644 --- a/employee-portal/src/lib/shared/components/table/columns/addFeatureColumns.tsx +++ b/employee-portal/src/lib/shared/components/table/columns/addFeatureColumns.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/table/sorting.ts b/employee-portal/src/lib/shared/components/table/sorting.ts index 45f77f51faf014ea96f7d2ac3f241428b7a686e6..f53a14085a62ad6f5009308c8f35613b8f229412 100644 --- a/employee-portal/src/lib/shared/components/table/sorting.ts +++ b/employee-portal/src/lib/shared/components/table/sorting.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/tableFilters/MultiSelectFilter.tsx b/employee-portal/src/lib/shared/components/tableFilters/MultiSelectFilter.tsx index 3b50a17fce480aa7bf23d91f36e459b7859e4d68..4738b00f0bf026bf897d5694fa2688588eae7b63 100644 --- a/employee-portal/src/lib/shared/components/tableFilters/MultiSelectFilter.tsx +++ b/employee-portal/src/lib/shared/components/tableFilters/MultiSelectFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/tableFilters/SearchFilter.tsx b/employee-portal/src/lib/shared/components/tableFilters/SearchFilter.tsx index aca29777d11669fec563295199bc2a8a40afd8ac..e3ada56e177baaebb7a352b097835933e1ea95be 100644 --- a/employee-portal/src/lib/shared/components/tableFilters/SearchFilter.tsx +++ b/employee-portal/src/lib/shared/components/tableFilters/SearchFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/tableFilters/SingleSelectFilter.tsx b/employee-portal/src/lib/shared/components/tableFilters/SingleSelectFilter.tsx index 524da6d6dc8de2a96cf3756378313770175c8a70..b9acc4a9e313998c0301c617c18cb3fdc1be13c7 100644 --- a/employee-portal/src/lib/shared/components/tableFilters/SingleSelectFilter.tsx +++ b/employee-portal/src/lib/shared/components/tableFilters/SingleSelectFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/tableFilters/TextInputClientFilter.tsx b/employee-portal/src/lib/shared/components/tableFilters/TextInputClientFilter.tsx index 4e771e49a20192cffbfadba2d68544a4e4a8893d..d5623e96c9539d951d96b703cf3ebc6e317e1613 100644 --- a/employee-portal/src/lib/shared/components/tableFilters/TextInputClientFilter.tsx +++ b/employee-portal/src/lib/shared/components/tableFilters/TextInputClientFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/tableFilters/TextInputFilter.tsx b/employee-portal/src/lib/shared/components/tableFilters/TextInputFilter.tsx index 92d8afe0b4bb81290ac452029c9c958d9d3c0936..109206b380b29b0c708d96beee00bf707aae717c 100644 --- a/employee-portal/src/lib/shared/components/tableFilters/TextInputFilter.tsx +++ b/employee-portal/src/lib/shared/components/tableFilters/TextInputFilter.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/timeline/Timeline.tsx b/employee-portal/src/lib/shared/components/timeline/Timeline.tsx index ce99d8fa77ca33a84bbbe2d64af4c98f0e182d56..8e1a9b7cfc5f969188c986731ecebd695e83143c 100644 --- a/employee-portal/src/lib/shared/components/timeline/Timeline.tsx +++ b/employee-portal/src/lib/shared/components/timeline/Timeline.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/timeline/TimelineEntry.tsx b/employee-portal/src/lib/shared/components/timeline/TimelineEntry.tsx index efb00e005945a1c789ad0191c8b62fba90ca551c..fe2d419bdf3b21fefdd412b1e7276b101a1e8f62 100644 --- a/employee-portal/src/lib/shared/components/timeline/TimelineEntry.tsx +++ b/employee-portal/src/lib/shared/components/timeline/TimelineEntry.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/timeline/TimelineEntryIndicator.tsx b/employee-portal/src/lib/shared/components/timeline/TimelineEntryIndicator.tsx index 180fb20354d0caedeaf827a33776d31e35813493..de8639e9aa7324f8e8fe3caf0b40b230413931bb 100644 --- a/employee-portal/src/lib/shared/components/timeline/TimelineEntryIndicator.tsx +++ b/employee-portal/src/lib/shared/components/timeline/TimelineEntryIndicator.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/users/UserLink.tsx b/employee-portal/src/lib/shared/components/users/UserLink.tsx index c2d16afd9fe5afabcb8450f24219febfbe491997..d64c7a80e3f06af1fed83b90ad3f596c3430191d 100644 --- a/employee-portal/src/lib/shared/components/users/UserLink.tsx +++ b/employee-portal/src/lib/shared/components/users/UserLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/users/userFormatter.ts b/employee-portal/src/lib/shared/components/users/userFormatter.ts index 5966b916b278f21db60dde485674203cc00f5900..d58edee476da9b758ea6dd73d6cc8ad62dc314d8 100644 --- a/employee-portal/src/lib/shared/components/users/userFormatter.ts +++ b/employee-portal/src/lib/shared/components/users/userFormatter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/accessControl.ts b/employee-portal/src/lib/shared/helpers/accessControl.ts index af25dae160c7e0f299e07738e4e070887ea2238f..8fd51c66f9bc70644a0c05885eeb88a4c6264082 100644 --- a/employee-portal/src/lib/shared/helpers/accessControl.ts +++ b/employee-portal/src/lib/shared/helpers/accessControl.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/address.ts b/employee-portal/src/lib/shared/helpers/address.ts index 74f22baa2c5408ebb013de3f963b0c92e5de7619..02dd9f1791595c08fb4a6b96f63f0d7ec1df9bec 100644 --- a/employee-portal/src/lib/shared/helpers/address.ts +++ b/employee-portal/src/lib/shared/helpers/address.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/contactCategoryMapper.ts b/employee-portal/src/lib/shared/helpers/contactCategoryMapper.ts index 6cc9f9082544075325d94f743d42de0f5c170aa2..923aafe925eb0f5ba2cca59d3872fa6eda2d6ef7 100644 --- a/employee-portal/src/lib/shared/helpers/contactCategoryMapper.ts +++ b/employee-portal/src/lib/shared/helpers/contactCategoryMapper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/dateTime.ts b/employee-portal/src/lib/shared/helpers/dateTime.ts index 524f2d64069bd425aa2aecea46bb9dedd8f171a0..2cf3ce3e85c57ee1b259b47939f15cedcde86921 100644 --- a/employee-portal/src/lib/shared/helpers/dateTime.ts +++ b/employee-portal/src/lib/shared/helpers/dateTime.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/facilityUtils.ts b/employee-portal/src/lib/shared/helpers/facilityUtils.ts index 3cfcbaffbe40a34c0f05f6de1757326c6ed34bfe..7bb7d767381e0bfa5f7c273d3bb04849e83be773 100644 --- a/employee-portal/src/lib/shared/helpers/facilityUtils.ts +++ b/employee-portal/src/lib/shared/helpers/facilityUtils.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/filter.ts b/employee-portal/src/lib/shared/helpers/filter.ts index b7d316282a90d263e058b55cdf628e7b693efb18..30a2f1a390787ea689d1126898795e23dca593a6 100644 --- a/employee-portal/src/lib/shared/helpers/filter.ts +++ b/employee-portal/src/lib/shared/helpers/filter.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/formatters.ts b/employee-portal/src/lib/shared/helpers/formatters.ts index f8f08d33ae413fb21953288452ad6ea56298a10e..eb3551eedcb6635605f9aa2a9b3a16204b31c2eb 100644 --- a/employee-portal/src/lib/shared/helpers/formatters.ts +++ b/employee-portal/src/lib/shared/helpers/formatters.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/guards.ts b/employee-portal/src/lib/shared/helpers/guards.ts index 504243025be5ab0ba63eb7521389cfd78b3f3dac..008390a30d022372621749baedcfaac4ce7eba48 100644 --- a/employee-portal/src/lib/shared/helpers/guards.ts +++ b/employee-portal/src/lib/shared/helpers/guards.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/i18n.ts b/employee-portal/src/lib/shared/helpers/i18n.ts index 3651cfc6a4760de24a988124b5e4e78c0893be42..6730ca19945687eece723355d7e1492775a97fd5 100644 --- a/employee-portal/src/lib/shared/helpers/i18n.ts +++ b/employee-portal/src/lib/shared/helpers/i18n.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/imageCompressor.ts b/employee-portal/src/lib/shared/helpers/imageCompressor.ts index fa74eb87d470215cffcd61ce9bbc1ffb57e1f1f9..e4210f11ab2438f1461adbcd9187e0b7d7e387a1 100644 --- a/employee-portal/src/lib/shared/helpers/imageCompressor.ts +++ b/employee-portal/src/lib/shared/helpers/imageCompressor.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/import.ts b/employee-portal/src/lib/shared/helpers/import.ts index 356a73b7b4cea414af76e3a43e4914a52c9efb74..0aa79f2135c4f93625e638185524c7069f547eae 100644 --- a/employee-portal/src/lib/shared/helpers/import.ts +++ b/employee-portal/src/lib/shared/helpers/import.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/numbers.ts b/employee-portal/src/lib/shared/helpers/numbers.ts index 6e1b1f2676e797c8960c1cd0143006e9a8dac168..86328ecf336e2055efa0cb1913ea91386b29b103 100644 --- a/employee-portal/src/lib/shared/helpers/numbers.ts +++ b/employee-portal/src/lib/shared/helpers/numbers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/searchParams.ts b/employee-portal/src/lib/shared/helpers/searchParams.ts index a4cc0e5846e8042bbf9bf5f29d813f624f3d7737..81f4a5c80e0235f1921399d68e6e5b02887f7105 100644 --- a/employee-portal/src/lib/shared/helpers/searchParams.ts +++ b/employee-portal/src/lib/shared/helpers/searchParams.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/strings.ts b/employee-portal/src/lib/shared/helpers/strings.ts index ec647abd26258a37d8ef8e6183db91554fdeac68..eb45b6ab4531544121fc1f6d4b6414486d2b9415 100644 --- a/employee-portal/src/lib/shared/helpers/strings.ts +++ b/employee-portal/src/lib/shared/helpers/strings.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/users.ts b/employee-portal/src/lib/shared/helpers/users.ts index 7546750d62144be818e2496c0113ab4c38afcc69..0710f08f2a8b01abe1c1d879e4dbff7341942ea2 100644 --- a/employee-portal/src/lib/shared/helpers/users.ts +++ b/employee-portal/src/lib/shared/helpers/users.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/validatePassword.tsx b/employee-portal/src/lib/shared/helpers/validatePassword.tsx index aa46dccf0a3382744e86067435900bc680a29538..b740e897bf91b90b889903c8709b35ab9ed35c70 100644 --- a/employee-portal/src/lib/shared/helpers/validatePassword.tsx +++ b/employee-portal/src/lib/shared/helpers/validatePassword.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/validators.ts b/employee-portal/src/lib/shared/helpers/validators.ts index da3a56ad9ef49a3e09cd7829155ea71dcfbd4e72..32b62d577ce4e1290353f5f4039f6f9084b29b6b 100644 --- a/employee-portal/src/lib/shared/helpers/validators.ts +++ b/employee-portal/src/lib/shared/helpers/validators.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -11,20 +11,11 @@ import { isValidURL } from "@eshg/lib-portal/helpers/url"; import { OptionalFieldValue } from "@eshg/lib-portal/types/form"; import { endOfDay, isPast } from "date-fns"; import { FormikErrors } from "formik"; -import { isEmpty, isNullish } from "remeda"; +import { isEmpty } from "remeda"; import { isInteger } from "@/lib/shared/helpers/guards"; import { isDateTimeString, isTimeString } from "./dateTime"; -import { - fileExtensionChanged, - fileHasAcceptedExtension, - fileIsTooLarge, - fileNameIsTooLong, - fileNameIsValid, - formatFileSize, - getExtensionFromFileName, -} from "./file"; export function validateTodayOrFutureDate(value: string) { if (isDateString(value) && isPast(endOfDay(value))) { @@ -164,47 +155,6 @@ export function validateFieldArray<TItem>( return arrayErrors; } -export function validateFile( - acceptedExtensions?: string[], - maxFileSize?: number, -) { - function validateFile(file: File | null) { - if (isNullish(file)) return undefined; - if (!fileNameIsValid(file)) - return "Bitte eine Datei mit gültigem Dateinamen auswählen."; - if (fileNameIsTooLong(file)) - return "Bitte eine Datei mit einem kürzeren Dateinamen auswählen."; - if (!fileHasAcceptedExtension(file, acceptedExtensions)) - return "Bitte eine Datei mit einer gültigen Dateiendung auswählen."; - if (fileIsTooLarge(file, maxFileSize)) - return `Bitte eine Datei kleiner ${formatFileSize(maxFileSize!)} auswählen.`; - return undefined; - } - - return validateFile; -} - -export function validateFileName(existingFileName?: string) { - function validateFileName(fileName: string) { - if (isEmpty(fileName)) return undefined; - - const file = new File([], fileName); - if (!fileNameIsValid(file)) - return "Bitte einen gültigen Dateinamen auswählen."; - if (fileNameIsTooLong(file)) - return "Bitte einen kürzeren Dateinamen auswählen."; - if ( - existingFileName !== undefined && - fileExtensionChanged(file, existingFileName) - ) { - return `Die ursprüngliche Dateiendung (.${getExtensionFromFileName(existingFileName)}) darf nicht verändert werden.`; - } - return undefined; - } - - return validateFileName; -} - export function validateMatches(otherValue: string, errorMessage: string) { return (value: string) => { if (value === otherValue) { diff --git a/employee-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts b/employee-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts index 77f60b2d82872086ff8d46dd7f41a0a9b2f1bc3f..977ebdba5556e97f66ebf6844fafa4d463511038 100644 --- a/employee-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts +++ b/employee-portal/src/lib/shared/hooks/searchParams/useReplaceSearchParams.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/searchParams/useSearchParam.ts b/employee-portal/src/lib/shared/hooks/searchParams/useSearchParam.ts index dd9fa3044f7fd4674460dac175f7ef5d5a3ffe97..03151082e7686a0d3a7aa80192d00ce92d3d0e14 100644 --- a/employee-portal/src/lib/shared/hooks/searchParams/useSearchParam.ts +++ b/employee-portal/src/lib/shared/hooks/searchParams/useSearchParam.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/searchParams/useTableControl.ts b/employee-portal/src/lib/shared/hooks/searchParams/useTableControl.ts index 75a8a11a77069033565106801ded0f02d1891639..4ca700ef16a5edfe7711b49a140a6ccd2d3beea4 100644 --- a/employee-portal/src/lib/shared/hooks/searchParams/useTableControl.ts +++ b/employee-portal/src/lib/shared/hooks/searchParams/useTableControl.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/table/usePagination.ts b/employee-portal/src/lib/shared/hooks/table/usePagination.ts index bda33a479571a33e449ddaef6aa1f8375c0fa71e..bfe2b260890a85a3af68997268e128788db8ba88 100644 --- a/employee-portal/src/lib/shared/hooks/table/usePagination.ts +++ b/employee-portal/src/lib/shared/hooks/table/usePagination.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/table/useRowSelection.ts b/employee-portal/src/lib/shared/hooks/table/useRowSelection.ts index 1b9a3551095f8284fa744763ebd3f93537f2e51b..c68e691f01606b5192108ba9dc15ec4a793cd8a1 100644 --- a/employee-portal/src/lib/shared/hooks/table/useRowSelection.ts +++ b/employee-portal/src/lib/shared/hooks/table/useRowSelection.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/table/useTableSorting.ts b/employee-portal/src/lib/shared/hooks/table/useTableSorting.ts index aabdd96d80d07eb0c0f13b710b6fd81da1258baf..b7d40c94e42e67b5627ef3e20b2e04e506ddce89 100644 --- a/employee-portal/src/lib/shared/hooks/table/useTableSorting.ts +++ b/employee-portal/src/lib/shared/hooks/table/useTableSorting.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useAccessControl.ts b/employee-portal/src/lib/shared/hooks/useAccessControl.ts index 187e3e1ba1080acc934510aa61111b76e705ef5a..3d9125c43e4452b19668a2394c834445ffeda85d 100644 --- a/employee-portal/src/lib/shared/hooks/useAccessControl.ts +++ b/employee-portal/src/lib/shared/hooks/useAccessControl.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useConfirmNavigationEffect.ts b/employee-portal/src/lib/shared/hooks/useConfirmNavigationEffect.ts index 953c9896ff4e643bf22b0c0e794c07df7aead943..23493868316a50a3df0907147df10bf83ad405af 100644 --- a/employee-portal/src/lib/shared/hooks/useConfirmNavigationEffect.ts +++ b/employee-portal/src/lib/shared/hooks/useConfirmNavigationEffect.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useConfirmUnloadEffect.ts b/employee-portal/src/lib/shared/hooks/useConfirmUnloadEffect.ts index 57e9a0be654e12721ca4b89e4f3fbd5d4fa5a2b9..d366c4c8fffbafdfbf2c6b4e5999128af3e4831e 100644 --- a/employee-portal/src/lib/shared/hooks/useConfirmUnloadEffect.ts +++ b/employee-portal/src/lib/shared/hooks/useConfirmUnloadEffect.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useConfirmationDialog.ts b/employee-portal/src/lib/shared/hooks/useConfirmationDialog.ts new file mode 100644 index 0000000000000000000000000000000000000000..1057ead67c0b40239ab991d751c10470c5afcec0 --- /dev/null +++ b/employee-portal/src/lib/shared/hooks/useConfirmationDialog.ts @@ -0,0 +1,51 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { + ConfirmationDialogContext, + ConfirmationDialogOptions, +} from "@eshg/lib-portal/components/confirmationDialog/ConfirmationDialogProvider"; +import { useContext, useMemo } from "react"; +import { isDefined } from "remeda"; + +export function useConfirmationDialog() { + const context = useContext(ConfirmationDialogContext); + if (context === null) { + throw new Error( + "useConfirmationDialog was called outside ConfirmationDialogProvider", + ); + } + const { setConfirmationDialog } = context; + + return useMemo(() => { + function openConfirmationDialog(options: ConfirmationDialogOptions) { + setConfirmationDialog({ + ...options, + open: true, + onClose: () => { + setConfirmationDialog(undefined); + if (isDefined(options.onClose)) { + options.onClose(); + } + }, + }); + } + + function openCancelDialog(options: ConfirmationDialogOptions) { + openConfirmationDialog({ + title: "Änderungen verwerfen?", + description: "Möchten Sie die Änderungen wirklich verwerfen?", + confirmLabel: "Verwerfen", + color: "danger", + ...options, + }); + } + + return { + openConfirmationDialog, + openCancelDialog, + }; + }, [setConfirmationDialog]); +} diff --git a/employee-portal/src/lib/shared/hooks/useCopy.ts b/employee-portal/src/lib/shared/hooks/useCopy.ts index e571fb35ed1dfc8df89a8b4d7343b440333d540b..da28f7bcea1c5f715f54b062e2c8b8165743de87 100644 --- a/employee-portal/src/lib/shared/hooks/useCopy.ts +++ b/employee-portal/src/lib/shared/hooks/useCopy.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useIsActiveRoute.ts b/employee-portal/src/lib/shared/hooks/useIsActiveRoute.ts index b4862f67ab4ed8dcdc94ba9f5e3eea6e08fa16f6..886cb79336086018650f69e2b4da9ba7ea8fa9ae 100644 --- a/employee-portal/src/lib/shared/hooks/useIsActiveRoute.ts +++ b/employee-portal/src/lib/shared/hooks/useIsActiveRoute.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useIsMobile.ts b/employee-portal/src/lib/shared/hooks/useIsMobile.ts new file mode 100644 index 0000000000000000000000000000000000000000..5fe959596dbb6de56b6166e6e8e9b8af82413d2a --- /dev/null +++ b/employee-portal/src/lib/shared/hooks/useIsMobile.ts @@ -0,0 +1,13 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { useWindowDimensions } from "@eshg/lib-portal/hooks/useWindowDimension"; +import { useTheme } from "@mui/joy"; + +export function useIsMobile() { + const theme = useTheme(); + const { width } = useWindowDimensions(); + return width && width <= theme.breakpoints.values.sm; +} diff --git a/employee-portal/src/lib/shared/hooks/useIsOffline.ts b/employee-portal/src/lib/shared/hooks/useIsOffline.ts index 097eea427434eec7cb84610bbcbe91645163d97b..fefd6d335accb8c51b26d6b07cb0586413db440b 100644 --- a/employee-portal/src/lib/shared/hooks/useIsOffline.ts +++ b/employee-portal/src/lib/shared/hooks/useIsOffline.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useSessionStorage.ts b/employee-portal/src/lib/shared/hooks/useSessionStorage.ts index bf1f2795f3fde798c03e63993f4991f84959bc12..41050861da8892a58ed4f83f728989f14c9f3118 100644 --- a/employee-portal/src/lib/shared/hooks/useSessionStorage.ts +++ b/employee-portal/src/lib/shared/hooks/useSessionStorage.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useSidebarForm.ts b/employee-portal/src/lib/shared/hooks/useSidebarForm.ts index 6c90cb025573aeba179c52a300b6d4f36488e26a..057da8750894f449a7e5d045f4a9f520e0016eb5 100644 --- a/employee-portal/src/lib/shared/hooks/useSidebarForm.ts +++ b/employee-portal/src/lib/shared/hooks/useSidebarForm.ts @@ -1,12 +1,12 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { Ref, useCallback, useRef } from "react"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface UseSidebarFormProps { onClose: () => void; diff --git a/employee-portal/src/lib/shared/hooks/useSidebarWithFormRef.tsx b/employee-portal/src/lib/shared/hooks/useSidebarWithFormRef.tsx index 262caecc331909821c18939174176a7afc35931b..720193582d3e66cb1d3f92892462b4b09a5284ac 100644 --- a/employee-portal/src/lib/shared/hooks/useSidebarWithFormRef.tsx +++ b/employee-portal/src/lib/shared/hooks/useSidebarWithFormRef.tsx @@ -1,11 +1,10 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { Ref, useRef } from "react"; -import { useConfirmationDialog } from "@/lib/shared/components/confirmationDialog/ConfirmationDialogProvider"; import { DrawerOpenOptions, DrawerProps, @@ -15,6 +14,7 @@ import { useSidebar, } from "@/lib/shared/components/drawer/useSidebar"; import { SidebarFormHandle } from "@/lib/shared/components/form/SidebarForm"; +import { useConfirmationDialog } from "@/lib/shared/hooks/useConfirmationDialog"; export interface SidebarWithFormRefProps extends DrawerProps { formRef: Ref<SidebarFormHandle>; diff --git a/employee-portal/src/lib/shared/hooks/useToggle.ts b/employee-portal/src/lib/shared/hooks/useToggle.ts index 8ed8c57f42ca3ecc5419f0b36fd77667a1af2d16..aecce49366e7689d06b8754135cc43486adbfbb3 100644 --- a/employee-portal/src/lib/shared/hooks/useToggle.ts +++ b/employee-portal/src/lib/shared/hooks/useToggle.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/hooks/useWindowFocus.ts b/employee-portal/src/lib/shared/hooks/useWindowFocus.ts index a17042cb0ae77c56db319ef14c1fc3fbc12967e4..d342de9c676a0595ed5f59ec13fbaf0788049376 100644 --- a/employee-portal/src/lib/shared/hooks/useWindowFocus.ts +++ b/employee-portal/src/lib/shared/hooks/useWindowFocus.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/types/react.ts b/employee-portal/src/lib/types/react.ts index f903e12f321d9439aaea46b5a0038eec8067c4ef..90bfa7bfc7d2e93bc66c03ba8d824cd95f2055a0 100644 --- a/employee-portal/src/lib/types/react.ts +++ b/employee-portal/src/lib/types/react.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/middleware.ts b/employee-portal/src/middleware.ts index c6e3af08f05be5997590a39994fa5d4b659362a8..93d12570249c09a157546d68da559e5d99400f70 100644 --- a/employee-portal/src/middleware.ts +++ b/employee-portal/src/middleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/common.ts b/employee-portal/src/serviceWorker/common/common.ts index f83a6c9f10c27566380a2333da2e261a1658a8d6..e20a0bf8fc4b22c54bddc1fca1fbfddfe6147cfc 100644 --- a/employee-portal/src/serviceWorker/common/common.ts +++ b/employee-portal/src/serviceWorker/common/common.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/inspectionOfflineDb.ts b/employee-portal/src/serviceWorker/common/inspectionOfflineDb.ts index a71988ea5539656ffbfeaab3aa728cb04f0de672..17cca6cc6e7372bded30c1c27117e62fa1fff607 100644 --- a/employee-portal/src/serviceWorker/common/inspectionOfflineDb.ts +++ b/employee-portal/src/serviceWorker/common/inspectionOfflineDb.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/offlinePasswordBroadCastChannel.ts b/employee-portal/src/serviceWorker/common/offlinePasswordBroadCastChannel.ts index 1e964543a3794b4bd87bfeef3ab57d5b4e570031..49f282aa5a6e12cc66157d50abe4ab3157a01c7f 100644 --- a/employee-portal/src/serviceWorker/common/offlinePasswordBroadCastChannel.ts +++ b/employee-portal/src/serviceWorker/common/offlinePasswordBroadCastChannel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/precachedInspectionIds.ts b/employee-portal/src/serviceWorker/common/precachedInspectionIds.ts index d65b76e6cb75029bdaa8a939e70d93047174a7d6..b4af2ce772a94fe43bd1f48d3239fced199ac128 100644 --- a/employee-portal/src/serviceWorker/common/precachedInspectionIds.ts +++ b/employee-portal/src/serviceWorker/common/precachedInspectionIds.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/precachedInspectionIdsBroadCastChannel.ts b/employee-portal/src/serviceWorker/common/precachedInspectionIdsBroadCastChannel.ts index 5b352c2af6b4a258b6427030581b47a0ab4471e7..e55939b40a56538b7291191cc93d7b3f7cc78c18 100644 --- a/employee-portal/src/serviceWorker/common/precachedInspectionIdsBroadCastChannel.ts +++ b/employee-portal/src/serviceWorker/common/precachedInspectionIdsBroadCastChannel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/queueBroadCastChannel.ts b/employee-portal/src/serviceWorker/common/queueBroadCastChannel.ts index 413dfeb47dc8c90367afcea8543e53b2f5e283a9..0a3c94b0bff32ec1735128764c790b5861a8e173 100644 --- a/employee-portal/src/serviceWorker/common/queueBroadCastChannel.ts +++ b/employee-portal/src/serviceWorker/common/queueBroadCastChannel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/registrationPersistence.ts b/employee-portal/src/serviceWorker/common/registrationPersistence.ts index eceb5f921600d21575f4d3a6f23d1fd7e31eda5a..fd2866074be35c3059629594468ab37c8ef1f755 100644 --- a/employee-portal/src/serviceWorker/common/registrationPersistence.ts +++ b/employee-portal/src/serviceWorker/common/registrationPersistence.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/unregisterBroadCastChannel.ts b/employee-portal/src/serviceWorker/common/unregisterBroadCastChannel.ts index b892b6e18e4ec5b7ceee3f063a4622f0f290aa7f..b0cf7b0f74cdd357a559a1596d6166d3663e4eca 100644 --- a/employee-portal/src/serviceWorker/common/unregisterBroadCastChannel.ts +++ b/employee-portal/src/serviceWorker/common/unregisterBroadCastChannel.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/common/validatePassword.ts b/employee-portal/src/serviceWorker/common/validatePassword.ts index fb19779b245f713bff052fd498edf1c74479935f..68c2c9d475835dba573e4620fe8b49da990178f3 100644 --- a/employee-portal/src/serviceWorker/common/validatePassword.ts +++ b/employee-portal/src/serviceWorker/common/validatePassword.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/CacheableResponsePlugin.ts b/employee-portal/src/serviceWorker/sw/CacheableResponsePlugin.ts index 3291768cedcac3cd35959eb4763b94501b53723d..1e82e07fe1955b797e4c0db2d15a61dfca8f77e3 100644 --- a/employee-portal/src/serviceWorker/sw/CacheableResponsePlugin.ts +++ b/employee-portal/src/serviceWorker/sw/CacheableResponsePlugin.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/CustomOfflineHandlerStrategy.ts b/employee-portal/src/serviceWorker/sw/CustomOfflineHandlerStrategy.ts index 5a5880577683d9ce6f4aecce1d3e64b05e27019e..00086d6503fedb0b20f8486b3c5e05d95729b97a 100644 --- a/employee-portal/src/serviceWorker/sw/CustomOfflineHandlerStrategy.ts +++ b/employee-portal/src/serviceWorker/sw/CustomOfflineHandlerStrategy.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/EncryptPlugin.ts b/employee-portal/src/serviceWorker/sw/EncryptPlugin.ts index d6b0dc77fcabb50e82a8db9a547a9a6fb53f2b3c..8ffa826f8b720c6bf8085531ebfc45977d9359e9 100644 --- a/employee-portal/src/serviceWorker/sw/EncryptPlugin.ts +++ b/employee-portal/src/serviceWorker/sw/EncryptPlugin.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/RedirectOnErrorPlugin.ts b/employee-portal/src/serviceWorker/sw/RedirectOnErrorPlugin.ts index cabc05700c247f678e4ee8ff8e0fafabf8febafe..4e1cb124cea6d9e36b8b32495340123a3ccdf99f 100644 --- a/employee-portal/src/serviceWorker/sw/RedirectOnErrorPlugin.ts +++ b/employee-portal/src/serviceWorker/sw/RedirectOnErrorPlugin.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/StripRscRequestPlugin.ts b/employee-portal/src/serviceWorker/sw/StripRscRequestPlugin.ts index d9eaaff7b93b8d955dab02e7c8137fe7dc42bdba..244579c271d3a43b6341859a59d46156e26f30c1 100644 --- a/employee-portal/src/serviceWorker/sw/StripRscRequestPlugin.ts +++ b/employee-portal/src/serviceWorker/sw/StripRscRequestPlugin.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/cache.ts b/employee-portal/src/serviceWorker/sw/cache.ts index b6579d85bdda2391d5327a2127ebf754fe85366d..a34bc01c44094d22fc2f95230d3dc0d4bd434b75 100644 --- a/employee-portal/src/serviceWorker/sw/cache.ts +++ b/employee-portal/src/serviceWorker/sw/cache.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/config.ts b/employee-portal/src/serviceWorker/sw/config.ts index 30665256f64c4e102c19cbed2f81a7cc4b7c765e..b279f8fa1d56f30aa8c006daf54fe85e9c6e2e3f 100644 --- a/employee-portal/src/serviceWorker/sw/config.ts +++ b/employee-portal/src/serviceWorker/sw/config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/crypto/crypto.ts b/employee-portal/src/serviceWorker/sw/crypto/crypto.ts index ad5b8fceedf69832b514337a72f3c2e9bfbaf93b..b078efdb4693c5a306c43ed5fd0f3a066c987292 100644 --- a/employee-portal/src/serviceWorker/sw/crypto/crypto.ts +++ b/employee-portal/src/serviceWorker/sw/crypto/crypto.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/crypto/getKey.ts b/employee-portal/src/serviceWorker/sw/crypto/getKey.ts index 711a3f1ad02ac021edee69c1d9d7e09f72ddb331..ca1f1ff628ee81a5f1746d02c6f657d5cbe80d71 100644 --- a/employee-portal/src/serviceWorker/sw/crypto/getKey.ts +++ b/employee-portal/src/serviceWorker/sw/crypto/getKey.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/crypto/saltStore.ts b/employee-portal/src/serviceWorker/sw/crypto/saltStore.ts index 214c1b90dd68203d5cf75f23262599ec5c533971..44f1d2f609df0c599c62382a9b57f83fb5e1d2f1 100644 --- a/employee-portal/src/serviceWorker/sw/crypto/saltStore.ts +++ b/employee-portal/src/serviceWorker/sw/crypto/saltStore.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/index.ts b/employee-portal/src/serviceWorker/sw/index.ts index 1182141125b82775a97e041873e40e66b3c68fee..1656d88a74301fdf148e47384e9e6b4aa86d72bb 100644 --- a/employee-portal/src/serviceWorker/sw/index.ts +++ b/employee-portal/src/serviceWorker/sw/index.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/controller/getPendingFacilities.ts b/employee-portal/src/serviceWorker/sw/inspection/controller/getPendingFacilities.ts index d17e66f42e9614d7fc2611b6e26ed38eb6393eb3..060363a395fcb0b5b99373dc95c719d36cd74e24 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/controller/getPendingFacilities.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/controller/getPendingFacilities.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/controller/updateChecklist.ts b/employee-portal/src/serviceWorker/sw/inspection/controller/updateChecklist.ts index bb1ef766aabfdca3271c9af58fc42d4e5d5c8e8c..0e026407c283d93d8297a62f675eac0e6cb29f25 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/controller/updateChecklist.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/controller/updateChecklist.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/controller/updateFile.ts b/employee-portal/src/serviceWorker/sw/inspection/controller/updateFile.ts index a032874bbd2b89fad383332ba0fae56b35fecfd7..d9683a82eb2a1a6ed0b91d60c0580d67323ad23a 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/controller/updateFile.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/controller/updateFile.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/controller/updateIncidents.ts b/employee-portal/src/serviceWorker/sw/inspection/controller/updateIncidents.ts index eaf737efce928c3f381c9b67f058a98e28a8cb28..d3d61fb8f4535d9e33dc08c326b3e8b58b040685 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/controller/updateIncidents.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/controller/updateIncidents.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/controller/updateInspection.ts b/employee-portal/src/serviceWorker/sw/inspection/controller/updateInspection.ts index 6b8368af3af254981710e1619fc9e17a6beeee8d..264da5c5cfa176975a00368799575396f6b51dca 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/controller/updateInspection.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/controller/updateInspection.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/controller/updatePacklists.ts b/employee-portal/src/serviceWorker/sw/inspection/controller/updatePacklists.ts index accda99fd1c621a581929d6c49cd065887cfd39f..9f43edb59485eea6d9a5224ab2b4dbae3a9fedf9 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/controller/updatePacklists.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/controller/updatePacklists.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/service/getFacilities.ts b/employee-portal/src/serviceWorker/sw/inspection/service/getFacilities.ts index f8850e769a45b95fe4bea2cb5c653e3f84d9b0cd..6a0586f6e3cdda2d1f97f771503b13197f1037ed 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/service/getFacilities.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/service/getFacilities.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/service/updateChecklist.ts b/employee-portal/src/serviceWorker/sw/inspection/service/updateChecklist.ts index f258af6e593afb73bc8277ca1ca3608cf9f0365c..282b86a858ccd440cf9cde51b643f9c91b4e68db 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/service/updateChecklist.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/service/updateChecklist.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/service/updateFile.ts b/employee-portal/src/serviceWorker/sw/inspection/service/updateFile.ts index 55d2eb561e980e23d09fc0a2c166e08b1e2137b8..fb76efd03d2fc4f82befc069f6a31e0c8ec9aeed 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/service/updateFile.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/service/updateFile.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/service/updateIncidents.ts b/employee-portal/src/serviceWorker/sw/inspection/service/updateIncidents.ts index 88c774330ad44cbd2d0aee5c786dab21cbf62610..a2ef56f40d81b041902558bd0dd78cb831595113 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/service/updateIncidents.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/service/updateIncidents.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/service/updateInspection.ts b/employee-portal/src/serviceWorker/sw/inspection/service/updateInspection.ts index 48c37bc0ef3ff586f8a7a1361dbacda347b3ae36..9a31b92c008b0aa40f2d43d1a98c068280befe87 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/service/updateInspection.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/service/updateInspection.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/service/updatePacklistElement.ts b/employee-portal/src/serviceWorker/sw/inspection/service/updatePacklistElement.ts index 6d37ed341b7a0a29ad11083cdf46fce04627c833..6791deb575c5ce5e20fe7c36b7ca9808e7c6fc58 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/service/updatePacklistElement.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/service/updatePacklistElement.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/test/cacheMock.ts b/employee-portal/src/serviceWorker/sw/inspection/test/cacheMock.ts index 4e38dfc11a9c18b0bffab9ab96223f73ed864a88..608ac26cb4cc66721fcf15b9bd8d1c93ab4870d2 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/test/cacheMock.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/test/cacheMock.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/test/config.ts b/employee-portal/src/serviceWorker/sw/inspection/test/config.ts index 7f854add77367c89547baa652ca0deb40d101b82..7b6af97d429f164f56ed2c47d7015393cc16cc08 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/test/config.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/test/config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/test/cryptoMock.ts b/employee-portal/src/serviceWorker/sw/inspection/test/cryptoMock.ts index 0923ec3d02469a7eb9a257acdc9aed085c8dd744..e4a0c44ac3a10bc3d4d39592b387da43493eb2a9 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/test/cryptoMock.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/test/cryptoMock.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/test/helper.ts b/employee-portal/src/serviceWorker/sw/inspection/test/helper.ts index 8d0d66aa67429e03ce107bcc79ccbfaf0bbc367f..709d5146ffd46710a2634f54a6641cdd2a8ed031 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/test/helper.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/test/helper.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/inspection/test/idbMock.ts b/employee-portal/src/serviceWorker/sw/inspection/test/idbMock.ts index 78844f339218315ac955d92ab8ce4696b89740c8..f7aa2f2fc40ad3e00e1fd40df15352a804a7343f 100644 --- a/employee-portal/src/serviceWorker/sw/inspection/test/idbMock.ts +++ b/employee-portal/src/serviceWorker/sw/inspection/test/idbMock.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/queue.ts b/employee-portal/src/serviceWorker/sw/queue.ts index 0c662c33292d57885b6c4693c70abcdab2af12cb..fc4f8af89408831ad6dcccca412170fee41ff511 100644 --- a/employee-portal/src/serviceWorker/sw/queue.ts +++ b/employee-portal/src/serviceWorker/sw/queue.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/replaceRecursive.ts b/employee-portal/src/serviceWorker/sw/replaceRecursive.ts index 1da35b3ae69ced47a822e951b13e301f42ab1cf0..f946e83328a954ef064ba19fbd5fc7addf6a32ce 100644 --- a/employee-portal/src/serviceWorker/sw/replaceRecursive.ts +++ b/employee-portal/src/serviceWorker/sw/replaceRecursive.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/requestHandlers.ts b/employee-portal/src/serviceWorker/sw/requestHandlers.ts index dbc6b47108f4a76ef7e49c38eda0be0f2e427547..52d36cd864fb0157674cb1a1f05493a8d3809901 100644 --- a/employee-portal/src/serviceWorker/sw/requestHandlers.ts +++ b/employee-portal/src/serviceWorker/sw/requestHandlers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/src/serviceWorker/sw/util.ts b/employee-portal/src/serviceWorker/sw/util.ts index 4e2ae20f7a123dea95abb77be909c00ecf7294e0..a3424cb03b4af0a025a2b5e29804bf8b8a37e871 100644 --- a/employee-portal/src/serviceWorker/sw/util.ts +++ b/employee-portal/src/serviceWorker/sw/util.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 SCOOP Software GmbH, cronn GmbH + * Copyright 2025 SCOOP Software GmbH, cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/staticSvgImage.d.ts b/employee-portal/staticSvgImage.d.ts index 615bbf02cde8416e7779be99deaff556dd8bdcf3..1ead3f5f61e76f87eb3783ad9935757bb637f535 100644 --- a/employee-portal/staticSvgImage.d.ts +++ b/employee-portal/staticSvgImage.d.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/employee-portal/vitest.config.ts b/employee-portal/vitest.config.ts index d9edccc4e2dd97abceb9eb8d86d06ea8f65e335d..a5b0b7bc8b07c480eae5a8e8a3041e2b78a31466 100644 --- a/employee-portal/vitest.config.ts +++ b/employee-portal/vitest.config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/lib-portal/eslint.config.js b/lib-portal/eslint.config.js index 646b1c4a045c20b2859d3cd53319670eec77cec2..c2ceebe980b0ca6fee4346c8f5902aec2dc5dd04 100644 --- a/lib-portal/eslint.config.js +++ b/lib-portal/eslint.config.js @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/package.json b/lib-portal/package.json index 2eee548721ba7a849d9532bcd33c5d41b9ea04e8..c4d23bb94f1309fe251f431c9a25deec5d59acd0 100644 --- a/lib-portal/package.json +++ b/lib-portal/package.json @@ -18,7 +18,8 @@ "react": "catalog:react", "react-dom": "catalog:react", "remeda": "catalog:common", - "uuid": "catalog:common" + "uuid": "catalog:common", + "valibot": "catalog:common" }, "devDependencies": { "@eslint/compat": "catalog:eslint", diff --git a/lib-portal/src/api/ApiProvider.tsx b/lib-portal/src/api/ApiProvider.tsx index b756300f6d4198e4d3704e9319211d105362ad48..05e4ce15d0f6cf183b23880f78e48bf089ad1f9d 100644 --- a/lib-portal/src/api/ApiProvider.tsx +++ b/lib-portal/src/api/ApiProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/clientOnlyMiddleware.ts b/lib-portal/src/api/clientOnlyMiddleware.ts index f67d0dbedb42803257b8eb734d69e8a8eb43e364..1866f19b0001b834ec6e3952a0b55c29109a03db 100644 --- a/lib-portal/src/api/clientOnlyMiddleware.ts +++ b/lib-portal/src/api/clientOnlyMiddleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/errorInterceptionMiddleware.ts b/lib-portal/src/api/errorInterceptionMiddleware.ts index b41d730a2acd98c6e2a5d4eca7262dcc219bc2d4..87f12040107d6facceec0c2935503300fe90912f 100644 --- a/lib-portal/src/api/errorInterceptionMiddleware.ts +++ b/lib-portal/src/api/errorInterceptionMiddleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/featureToggles.ts b/lib-portal/src/api/featureToggles.ts index f4bcce164d0ec00c8f098c02e0bc8634d147e161..4c34682c6ce06c1f6466a7d8c841f496e49568bd 100644 --- a/lib-portal/src/api/featureToggles.ts +++ b/lib-portal/src/api/featureToggles.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/files/DownloadButton.tsx b/lib-portal/src/api/files/DownloadButton.tsx index e561b7f67117ea1eb2a4eaf9583938fd77a3b755..1c992a2ac035475536cc458ef3a80c17b84a5afa 100644 --- a/lib-portal/src/api/files/DownloadButton.tsx +++ b/lib-portal/src/api/files/DownloadButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/files/DownloadLink.tsx b/lib-portal/src/api/files/DownloadLink.tsx index d707516cbfca8f25fdc3819a4f19176224e33102..b02211c916b79e2aa7b54c132e99697f82523dcf 100644 --- a/lib-portal/src/api/files/DownloadLink.tsx +++ b/lib-portal/src/api/files/DownloadLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/files/download.ts b/lib-portal/src/api/files/download.ts index 49f7a193b201fb909b506388ebbb095978aa7f05..cebe97a162e3bd0388beb555d125a9a99443ad5b 100644 --- a/lib-portal/src/api/files/download.ts +++ b/lib-portal/src/api/files/download.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/queryKeyFactory.ts b/lib-portal/src/api/queryKeyFactory.ts index 7387d3e8ee253dd888ec611c83b668b26205436a..c9872fb6c4a568a89f220817e68be456f42ffb23 100644 --- a/lib-portal/src/api/queryKeyFactory.ts +++ b/lib-portal/src/api/queryKeyFactory.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/queryOptions.ts b/lib-portal/src/api/queryOptions.ts index 7a9e316b98eacd68c565cdc1cc41691271584656..97270b7067a237357ed8dc4cc7b23e02120f1ae2 100644 --- a/lib-portal/src/api/queryOptions.ts +++ b/lib-portal/src/api/queryOptions.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/unwrapRawResponse.ts b/lib-portal/src/api/unwrapRawResponse.ts index b30bd1f96f8aec2e0677c56ab2616f4603db01cc..08fc897a4ba5712268a2d2b2f1671d32fdae9317 100644 --- a/lib-portal/src/api/unwrapRawResponse.ts +++ b/lib-portal/src/api/unwrapRawResponse.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/useHandledBackgroundQuery.ts b/lib-portal/src/api/useHandledBackgroundQuery.ts index 56e5e10b2f3c71fa5154ff62c453dbaf2ac0c6c8..ccd36fa5a554e375ec66d50141fb077da4394a87 100644 --- a/lib-portal/src/api/useHandledBackgroundQuery.ts +++ b/lib-portal/src/api/useHandledBackgroundQuery.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/api/useHandledMutation.ts b/lib-portal/src/api/useHandledMutation.ts index d858e20a86c9536f0f3a4a0280346ce41beaedf1..101b75c4d9880bfd4eb7bff45fcf297bc0eabd85 100644 --- a/lib-portal/src/api/useHandledMutation.ts +++ b/lib-portal/src/api/useHandledMutation.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/api/mapper.ts b/lib-portal/src/businessModules/medicalRegistry/api/mapper.ts similarity index 93% rename from employee-portal/src/lib/businessModules/medicalRegistry/api/mapper.ts rename to lib-portal/src/businessModules/medicalRegistry/api/mapper.ts index bc705d7e1aa6c8ccc10a54211af28b7da2a9d5ae..2c6671693e7f3e17eede7bd5003d922c547d4eda 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/api/mapper.ts +++ b/lib-portal/src/businessModules/medicalRegistry/api/mapper.ts @@ -1,6 +1,6 @@ /** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 */ import { @@ -14,14 +14,14 @@ import { ApiTypeOfPracticeChange, CreateProcedureRequest, } from "@eshg/employee-portal-api/medicalRegistry"; +import { isEmpty } from "remeda"; + import { mapNullableValue, mapOptionalValue, mapRequiredValue, -} from "@eshg/lib-portal/helpers/form"; -import { isEmpty } from "remeda"; - -import { MedicalRegistryCreateProcedureFormValues } from "@/lib/businessModules/medicalRegistry/components/procedures/create/MedicalRegistryCreateProcedureForm"; +} from "../../../helpers/form"; +import { MedicalRegistryCreateProcedureFormValues } from "../medicalRegistryCreateProcedureFormValues"; export function mapCreateProcedureRequest( values: MedicalRegistryCreateProcedureFormValues, @@ -80,7 +80,7 @@ function mapCreateApplicantChangeRequest( ): ApiCreateProcedureRequestProcedure { return { type: "CreateApplicantChangeRequest", - consentToPrivacyPolicy: values.dataPrivacyForm.agreed, + consentToPrivacyPolicy: true, applicant: mapApplicant(values), requestForWrittenConfirmation: values.writtenConfirmationForm.requestForWrittenConfirmation, @@ -94,7 +94,7 @@ function mapCreatePracticeChangeRequest( ): ApiCreateProcedureRequestProcedure { return { type: "CreatePracticeChangeRequest", - consentToPrivacyPolicy: values.dataPrivacyForm.agreed, + consentToPrivacyPolicy: true, employeesEmployed: values.employeeInformationForm.employeesEmployed, applicant: mapApplicant(values), requestForWrittenConfirmation: @@ -110,7 +110,7 @@ function mapCreateFullChangeRequest( ): ApiCreateProcedureRequestProcedure { return { type: "CreateFullChangeRequest", - consentToPrivacyPolicy: values.dataPrivacyForm.agreed, + consentToPrivacyPolicy: true, employeesEmployed: values.employeeInformationForm.employeesEmployed, practice: values.practiceInformationForm.proprietaryPractice ? mapPractice(values) @@ -135,11 +135,11 @@ function mapApplicant( street: values.personalInformationForm.street, }, dateOfBirth: new Date(values.personalInformationForm.birthDate), - emailAddress: values.personalInformationForm.email, + emailAddress: mapOptionalValue(values.personalInformationForm.email), firstName: values.personalInformationForm.firstName, gender: mapRequiredValue(values.personalInformationForm.gender), lastName: values.personalInformationForm.lastName, - nameAtBirth: values.personalInformationForm.birthName, + nameAtBirth: mapOptionalValue(values.personalInformationForm.birthName), phoneNumber: values.personalInformationForm.phoneNumber, placeOfBirth: values.personalInformationForm.birthPlace, title: mapOptionalValue(values.personalInformationForm.title), diff --git a/lib-portal/src/businessModules/medicalRegistry/constants.ts b/lib-portal/src/businessModules/medicalRegistry/constants.ts new file mode 100644 index 0000000000000000000000000000000000000000..cc7f763b0dd7860aa46ec6d852eb1404f393d2b0 --- /dev/null +++ b/lib-portal/src/businessModules/medicalRegistry/constants.ts @@ -0,0 +1,88 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { + ApiEmploymentStatus, + ApiEmploymentType, + ApiProfessionalTitle, + ApiTypeOfChange, +} from "@eshg/employee-portal-api/medicalRegistry"; + +export const changeTypeNames = { + [ApiTypeOfChange.NewRegistration]: "Neuanmeldung", + [ApiTypeOfChange.SecondPractice]: "Zweitpraxis", + [ApiTypeOfChange.ReRegistration]: "Wiederanmeldung", + [ApiTypeOfChange.ChangeOfRegistration]: "Ummeldung", + [ApiTypeOfChange.ChangeOfName]: "Namensänderung", + [ApiTypeOfChange.Relocation]: "Wegzug", + [ApiTypeOfChange.Deregistration]: "Abmeldung", + [ApiTypeOfChange.Other]: "Sonstiges", +} satisfies Record<ApiTypeOfChange, string>; + +export const professionalTitleNames = { + [ApiProfessionalTitle.Doctor]: "Arzt", + [ApiProfessionalTitle.Dentist]: "Zahnarzt", + [ApiProfessionalTitle.PsychologicalPsychotherapist]: + "Psychologischer Psychotherapeut", + [ApiProfessionalTitle.NursingAssistant]: "Altenpflegehelfer", + [ApiProfessionalTitle.GeriatricNurse]: "Altenpfleger", + [ApiProfessionalTitle.Dietician]: "Diätassistent", + [ApiProfessionalTitle.Disinfector]: "Desinfektor", + [ApiProfessionalTitle.OccupationalTherapist]: "Ergotherapeut", + [ApiProfessionalTitle.HealthSupervisor]: "Gesundheitsaufseher", + [ApiProfessionalTitle.HealthcareAndPediatricNurse]: + "Gesundheits- und Kinderkrankenpfleger (ehem. Kinderkrankenschwester / Kinderkrankenpfleger)", + [ApiProfessionalTitle.HealthcareAndNursingAssistant]: + "Gesundheits- und Krankenpflegehelfer (ehem. Krankenpflegehelfer)", + [ApiProfessionalTitle.HealthcareAndNursingAssistantsHelper]: + "Gesundheits- und Krankenpfleger (ehem. Krankenschwester / Krankenpfleger)", + [ApiProfessionalTitle.MidwiveMaternityNurse]: "Hebamme / Entbindungspfleger", + [ApiProfessionalTitle.AlternativePractitioner]: "Heilpraktiker (HP)", + [ApiProfessionalTitle.NonMedicalPractitionerForChiropractic]: + "Heilpraktiker für Chiropraktik", + [ApiProfessionalTitle.AlternativePractitionerForSpeechTherapy]: + "Heilpraktiker für Logopädie", + [ApiProfessionalTitle.NonMedicalPractitionerForPhysiotherapy]: + "Heilpraktiker für Physiotherapie", + [ApiProfessionalTitle.NonMedicalPractitionerForPsychotherapy]: + "Heilpraktiker für Psychotherapie", + [ApiProfessionalTitle.ChildAndYouthPsychotherapist]: + "Kinder- und Jugendpsychotherapeut", + [ApiProfessionalTitle.SpeechTherapist]: "Logopäde", + [ApiProfessionalTitle.MasseurAndMedicalBathAttendant]: + "Masseur und medizinischer Bademeister", + [ApiProfessionalTitle.MedicalDocumentalist]: "Medizinischer Dokumentar", + [ApiProfessionalTitle.MedicalTechnicalLaboratoryAssistant]: + "Medizinisch-Technischer Laboratoriums-Assistent", + [ApiProfessionalTitle.MedicalTechnicalRadiologyAssistant]: + "Medizinisch-Technischer Radiologie-Assistent", + [ApiProfessionalTitle.MedicalTechnicalAssistantForFunctionalDiagnostics]: + "Medizinisch-Technischer Assistent für Funktionsdiagnostik", + [ApiProfessionalTitle.EmergencyParamedic]: + "Notfallsanitäter (ehem. Rettungsassistent)", + [ApiProfessionalTitle.Orthoptist]: "Orthoptist", + [ApiProfessionalTitle.CareAssistant]: "Pflegehelfer", + [ApiProfessionalTitle.NursingService]: "Pflegedienst", + [ApiProfessionalTitle.NursingServiceManager]: "Pflegedienstleiter", + [ApiProfessionalTitle.PharmaceuticalTechnicalAssistant]: + "Pharmazeutisch-Technischer Assistent", + [ApiProfessionalTitle.Physiotherapist]: "Physiotherapeut", + [ApiProfessionalTitle.Podiatrist]: "Podologe", + [ApiProfessionalTitle.RadiologyAssistant]: "Radiologieassistent", + [ApiProfessionalTitle.SportsTherapist]: "Sporttherapeut", + [ApiProfessionalTitle.Pharmacist]: "Apotheker", + [ApiProfessionalTitle.Veterinarian]: "Tierarzt", +} satisfies Record<ApiProfessionalTitle, string>; + +export const employmentTypeNames = { + [ApiEmploymentType.FullTime]: "Hauptberuflich", + [ApiEmploymentType.PartTime]: "Nebenberuflich", +} satisfies Record<ApiEmploymentType, string>; + +export const employmentStatusNames = { + [ApiEmploymentStatus.SelfEmployed]: "Selbstständig", + [ApiEmploymentStatus.Freelance]: "Freiberuflich", + [ApiEmploymentStatus.Employee]: "Angestellt", +} satisfies Record<ApiEmploymentStatus, string>; diff --git a/lib-portal/src/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues.ts b/lib-portal/src/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues.ts new file mode 100644 index 0000000000000000000000000000000000000000..e165f205bf7aef17be587f3c85b985d8ef4a980b --- /dev/null +++ b/lib-portal/src/businessModules/medicalRegistry/medicalRegistryCreateProcedureFormValues.ts @@ -0,0 +1,194 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { ApiCountryCode, ApiGender } from "@eshg/employee-portal-api/base"; +import { + ApiEmploymentStatus, + ApiEmploymentType, + ApiProfessionalTitle, + ApiTypeOfChange, +} from "@eshg/employee-portal-api/medicalRegistry"; + +import { NullableFieldValue, OptionalFieldValue } from "../../types/form"; + +export interface MedicalRegistryCreateProcedureFormValues { + generalInformationForm: GeneralInformationFormValues; + personalInformationForm: PersonalInformationFormValues; + occupationalInformationForm: OccupationalInformationFormValues; + professionalismInformationForm: ProfessionalismInformationFormValues; + practiceInformationForm: PracticeInformationFormValues; + employeeInformationForm: EmployeeInformationFormValues; + requiredDocumentsForm: RequiredDocumentsFormValues; + dataPrivacyForm: DataPrivacyFormValues; + writtenConfirmationForm: WrittenConfirmationFormValues; +} + +export interface GeneralInformationFormValues { + changeType: OptionalFieldValue<ApiTypeOfChange>; +} + +export interface PersonalInformationFormValues { + title: OptionalFieldValue<string>; + firstName: string; + lastName: string; + birthName: OptionalFieldValue<string>; + gender: OptionalFieldValue<ApiGender>; + street: string; + houseNumber: string; + postalCode: string; + city: string; + country: OptionalFieldValue<ApiCountryCode>; + phoneNumber: string; + email: OptionalFieldValue<string>; + birthDate: OptionalFieldValue<Date>; + birthPlace: string; + nationality: OptionalFieldValue<ApiCountryCode>; +} + +export interface OccupationalInformationFormValues { + professionalTitle: OptionalFieldValue<ApiProfessionalTitle>; + fieldOfExpertise: OptionalFieldValue<string>; + specialistTitle: OptionalFieldValue<string>; + furtherTraining: OptionalFieldValue<string>; + qualifications: OptionalFieldValue<string>; + approbationGrantedOn: OptionalFieldValue<Date>; + approbationIssuingAuthority: string; + lifetimeDoctorNumber: OptionalFieldValue<string>; +} + +export interface ProfessionalismInformationFormValues { + employmentType: ApiEmploymentType; + employmentStatus: ApiEmploymentStatus; +} + +export interface PracticeInformationFormValues { + proprietaryPractice: boolean; + practiceName: string; + street: string; + houseNumber: string; + postalCode: string; + city: string; + phoneNumber: string; + email: string; + website: OptionalFieldValue<string>; + openingHours: OptionalFieldValue<string>; + institutionIdentifier: OptionalFieldValue<string>; + establishmentNumber: OptionalFieldValue<string>; + healthInsuranceAuthorization: boolean; +} + +export interface EmployeeInformationFormValues { + employeesEmployed: boolean; + employeesFile: NullableFieldValue<File>; +} + +export interface RequiredDocumentsFormValues { + license: NullableFieldValue<File>; + identificationDocument: NullableFieldValue<File>; + workPermit: NullableFieldValue<File>; + otherRelevantDocuments: File[]; +} + +export interface DataPrivacyFormValues { + agreedDataPrivacyNotice: boolean; + agreedDataPrivacyPolicy: boolean; +} + +export interface WrittenConfirmationFormValues { + requestForWrittenConfirmation: boolean; + confirmationFee: boolean; + confirmationByPost: boolean; +} + +const initialGeneralInformationFormValues: GeneralInformationFormValues = { + changeType: "", +}; + +const initialPersonalInformationFormValues: PersonalInformationFormValues = { + title: "", + firstName: "", + lastName: "", + birthName: "", + gender: "", + street: "", + houseNumber: "", + postalCode: "", + city: "", + country: "", + phoneNumber: "", + email: "", + birthDate: "", + birthPlace: "", + nationality: "", +}; + +const initialOccupationalInformationFormValues: OccupationalInformationFormValues = + { + professionalTitle: "", + fieldOfExpertise: "", + specialistTitle: "", + furtherTraining: "", + qualifications: "", + approbationGrantedOn: "", + approbationIssuingAuthority: "", + lifetimeDoctorNumber: "", + }; + +const initialProfessionalismInformationFormValues: ProfessionalismInformationFormValues = + { + employmentType: ApiEmploymentType.FullTime, + employmentStatus: ApiEmploymentStatus.Employee, + }; + +const initialPracticeInformationFormValues: PracticeInformationFormValues = { + proprietaryPractice: false, + practiceName: "", + street: "", + houseNumber: "", + postalCode: "", + city: "", + phoneNumber: "", + email: "", + website: "", + openingHours: "", + institutionIdentifier: "", + establishmentNumber: "", + healthInsuranceAuthorization: true, +}; + +const initialEmployeeInformationFormValues: EmployeeInformationFormValues = { + employeesEmployed: false, + employeesFile: null, +}; + +const initialRequiredDocumentsFormValues: RequiredDocumentsFormValues = { + license: null, + identificationDocument: null, + workPermit: null, + otherRelevantDocuments: [], +}; + +const initialDataPrivacyFormValues: DataPrivacyFormValues = { + agreedDataPrivacyNotice: false, + agreedDataPrivacyPolicy: false, +}; + +const initialWrittenConfirmationFormValues: WrittenConfirmationFormValues = { + requestForWrittenConfirmation: false, + confirmationFee: false, + confirmationByPost: false, +}; + +export const initialValues: MedicalRegistryCreateProcedureFormValues = { + generalInformationForm: initialGeneralInformationFormValues, + personalInformationForm: initialPersonalInformationFormValues, + occupationalInformationForm: initialOccupationalInformationFormValues, + professionalismInformationForm: initialProfessionalismInformationFormValues, + practiceInformationForm: initialPracticeInformationFormValues, + employeeInformationForm: initialEmployeeInformationFormValues, + requiredDocumentsForm: initialRequiredDocumentsFormValues, + dataPrivacyForm: initialDataPrivacyFormValues, + writtenConfirmationForm: initialWrittenConfirmationFormValues, +}; diff --git a/lib-portal/src/businessModules/medicalRegistry/sections.ts b/lib-portal/src/businessModules/medicalRegistry/sections.ts new file mode 100644 index 0000000000000000000000000000000000000000..58b51b74bf48d41026dec583519e9bef343bf903 --- /dev/null +++ b/lib-portal/src/businessModules/medicalRegistry/sections.ts @@ -0,0 +1,56 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { ApiTypeOfChange } from "@eshg/employee-portal-api/medicalRegistry"; + +type Section = + | "profession" + | "practice" + | "employees" + | "optionalDocuments" + | "practiceChoice"; +const sectionEnabled: Record<Section, ApiTypeOfChange[]> = { + profession: [ + ApiTypeOfChange.NewRegistration, + ApiTypeOfChange.ReRegistration, + ApiTypeOfChange.Other, + ], + practice: [ + ApiTypeOfChange.NewRegistration, + ApiTypeOfChange.ReRegistration, + ApiTypeOfChange.Other, + ApiTypeOfChange.SecondPractice, + ApiTypeOfChange.ChangeOfRegistration, + ], + employees: [ + ApiTypeOfChange.NewRegistration, + ApiTypeOfChange.ReRegistration, + ApiTypeOfChange.Other, + ApiTypeOfChange.SecondPractice, + ], + optionalDocuments: [ + ApiTypeOfChange.NewRegistration, + ApiTypeOfChange.ReRegistration, + ApiTypeOfChange.Other, + ], + practiceChoice: [ + ApiTypeOfChange.NewRegistration, + ApiTypeOfChange.ReRegistration, + ApiTypeOfChange.ChangeOfName, + ApiTypeOfChange.Relocation, + ApiTypeOfChange.Deregistration, + ApiTypeOfChange.Other, + ], +}; + +export function shouldEnable( + section: Section, + typeOfChange: ApiTypeOfChange | "", +): boolean { + if (typeOfChange === "") { + return true; + } + return sectionEnabled[section].includes(typeOfChange); +} diff --git a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/validator.ts b/lib-portal/src/businessModules/medicalRegistry/validator.ts similarity index 60% rename from employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/validator.ts rename to lib-portal/src/businessModules/medicalRegistry/validator.ts index 8cfa024bb2e26b106ddb60d35f47cbf18a7204f7..22ee2c78fee956ed88c2945a97babec85a704e22 100644 --- a/employee-portal/src/lib/businessModules/medicalRegistry/components/procedures/create/validator.ts +++ b/lib-portal/src/businessModules/medicalRegistry/validator.ts @@ -1,9 +1,9 @@ /** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 */ -import { validateRegex } from "@eshg/lib-portal/helpers/validators"; +import { validateRegex } from "../../helpers/validators"; const lifetimeDoctorNumberRegex = new RegExp(/^\d{9}$/); diff --git a/lib-portal/src/businessModules/schoolEntry/features/procedures/fieldVariants.tsx b/lib-portal/src/businessModules/schoolEntry/features/procedures/fieldVariants.tsx index 466f9056ed747409881ead3307c86e767e3eea7f..ac709ddc2a76ebca02fe4a56fd1c495ec1653d38 100644 --- a/lib-portal/src/businessModules/schoolEntry/features/procedures/fieldVariants.tsx +++ b/lib-portal/src/businessModules/schoolEntry/features/procedures/fieldVariants.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/Alert.tsx b/lib-portal/src/components/Alert.tsx index 8d9b3b8141f1e96814e8939eb76bf9f087753f19..bdcffee122994ae17939c7343f139d14c5360aa8 100644 --- a/lib-portal/src/components/Alert.tsx +++ b/lib-portal/src/components/Alert.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/BaseModal.tsx b/lib-portal/src/components/BaseModal.tsx index 7e77754f583f507677fff88ffb1d8d260a85340d..305e86a377c41e53051781d063e44a951529f058 100644 --- a/lib-portal/src/components/BaseModal.tsx +++ b/lib-portal/src/components/BaseModal.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/EnvironmentIndicator.tsx b/lib-portal/src/components/EnvironmentIndicator.tsx new file mode 100644 index 0000000000000000000000000000000000000000..d785530fcad00eaa431705ee6e8a89ac40d65acd --- /dev/null +++ b/lib-portal/src/components/EnvironmentIndicator.tsx @@ -0,0 +1,44 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { WarningAmberOutlined } from "@mui/icons-material"; +import { Box, Typography } from "@mui/joy"; + +import { useIsDevEnvironment } from "./EnvironmentTypeProvider"; + +export function useEnvironmentIndicatorHeight(): string { + const isDevEnvironment = useIsDevEnvironment(); + return isDevEnvironment ? "2.5rem" : "0px"; +} + +export function EnvironmentIndicator() { + const isDevEnvironment = useIsDevEnvironment(); + const environmentIndicatorHeight = useEnvironmentIndicatorHeight(); + + if (!isDevEnvironment) { + return null; + } + + return ( + <Box + sx={{ + display: "flex", + flexDirection: "row", + justifyContent: "center", + alignItems: "center", + gap: 1, + height: environmentIndicatorHeight, + backgroundColor: "warning.100", + }} + > + <WarningAmberOutlined /> + <Typography level="title-md" fontWeight="600" textTransform="uppercase"> + Testumgebung + </Typography> + </Box> + ); +} diff --git a/lib-portal/src/components/EnvironmentTypeProvider.tsx b/lib-portal/src/components/EnvironmentTypeProvider.tsx new file mode 100644 index 0000000000000000000000000000000000000000..17274788e9cf98931b096cded299a6e9480c7b7c --- /dev/null +++ b/lib-portal/src/components/EnvironmentTypeProvider.tsx @@ -0,0 +1,47 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { createContext, useContext } from "react"; + +import { RequiresChildren } from "../types/react"; + +export type EnvironmentType = "local" | "dev" | "production"; + +const EnvironmentTypeContext = createContext<EnvironmentType | undefined>( + undefined, +); + +interface EnvironmentTypeProps extends RequiresChildren { + environmentType: EnvironmentType; +} + +export function EnvironmentTypeProvider(props: EnvironmentTypeProps) { + return ( + <EnvironmentTypeContext.Provider value={props.environmentType}> + {props.children} + </EnvironmentTypeContext.Provider> + ); +} + +export function useEnvironmentType() { + const environmentType = useContext(EnvironmentTypeContext); + + if (environmentType === undefined) { + throw new Error("Environment type is not initialized"); + } + + return environmentType; +} + +export function useIsDevEnvironment() { + return useIsEnvironment("dev"); +} + +export function useIsEnvironment(wantedEnvironmentType: EnvironmentType) { + const environmentType = useEnvironmentType(); + return environmentType === wantedEnvironmentType; +} diff --git a/lib-portal/src/components/HiddenContainer.tsx b/lib-portal/src/components/HiddenContainer.tsx index 0f3c2783b13431a35d7fd266d91bb52a7d1f0bf1..a8d3a0ea60de67e2ae2c4456be726ab48495cf36 100644 --- a/lib-portal/src/components/HiddenContainer.tsx +++ b/lib-portal/src/components/HiddenContainer.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/LoadingIndicator.tsx b/lib-portal/src/components/LoadingIndicator.tsx index 28fe09ac900e13f2ccc9d2e881f130b0ba59185c..df2d60286bb81d2e9966810f6c2da757bef90dc0 100644 --- a/lib-portal/src/components/LoadingIndicator.tsx +++ b/lib-portal/src/components/LoadingIndicator.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/LoadingOverlay.tsx b/lib-portal/src/components/LoadingOverlay.tsx index 46c3a6bb646492f0cfdae45bff81dfe45c8be9eb..76b44b53517cf9bb11ee04255711e3fbbdc98aff 100644 --- a/lib-portal/src/components/LoadingOverlay.tsx +++ b/lib-portal/src/components/LoadingOverlay.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/LoadingOverlayHiddenBackdrop.tsx b/lib-portal/src/components/LoadingOverlayHiddenBackdrop.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0411d633cb83556267b217f897f768424246e098 --- /dev/null +++ b/lib-portal/src/components/LoadingOverlayHiddenBackdrop.tsx @@ -0,0 +1,20 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { Modal } from "@mui/joy"; + +import { LoadingIndicator, LoadingIndicatorProps } from "./LoadingIndicator"; + +type LoadingOverlayHiddenBackdropProps = Pick<LoadingIndicatorProps, "text">; + +export function LoadingOverlayHiddenBackdrop( + props: LoadingOverlayHiddenBackdropProps, +) { + return ( + <Modal open disablePortal hideBackdrop> + <LoadingIndicator fullHeight {...props} /> + </Modal> + ); +} diff --git a/lib-portal/src/components/NonceProvider.tsx b/lib-portal/src/components/NonceProvider.tsx index 64224f10c3ff182f02e9d3ace6c101144a3c313a..e59485cc73997dd4df24ea75ad391fa8d86b7a49 100644 --- a/lib-portal/src/components/NonceProvider.tsx +++ b/lib-portal/src/components/NonceProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/Row.tsx b/lib-portal/src/components/Row.tsx index 1ade54005d80919f7d4715adfbeb5d450858af84..5c2ae3413d0b88e84276d3addbe14dacdd2878ac 100644 --- a/lib-portal/src/components/Row.tsx +++ b/lib-portal/src/components/Row.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/boundaries/ErrorModal.tsx b/lib-portal/src/components/boundaries/BaseErrorModal.tsx similarity index 59% rename from employee-portal/src/lib/shared/components/boundaries/ErrorModal.tsx rename to lib-portal/src/components/boundaries/BaseErrorModal.tsx index 673a6b44f7961c6fb14b0a2369fd033e841014a4..24720ef4b9ad4f952999bf5d537103fc21f1bc0a 100644 --- a/employee-portal/src/lib/shared/components/boundaries/ErrorModal.tsx +++ b/lib-portal/src/components/boundaries/BaseErrorModal.tsx @@ -1,14 +1,16 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ -import { BaseModal } from "@eshg/lib-portal/components/BaseModal"; -import { ErrorAlert } from "@eshg/lib-portal/errorHandling/ErrorAlert"; import { useQueryErrorResetBoundary } from "@tanstack/react-query"; import { useState } from "react"; -interface ErrorModalProps { +import { ErrorAlert } from "../../errorHandling/ErrorAlert"; +import { WithRequired } from "../../types/utility"; +import { BaseModal } from "../BaseModal"; + +export interface ErrorModalProps { title?: string; error: unknown; digest?: string; @@ -16,7 +18,9 @@ interface ErrorModalProps { onClose?: () => void; } -export function ErrorModal(props: ErrorModalProps) { +export type BaseErrorModalProps = WithRequired<ErrorModalProps, "title">; + +export function BaseErrorModal(props: BaseErrorModalProps) { const { reset } = useQueryErrorResetBoundary(); const [open, setOpen] = useState(true); @@ -31,11 +35,7 @@ export function ErrorModal(props: ErrorModalProps) { } return ( - <BaseModal - modalTitle={props.title ?? "Fehler beim Laden"} - open={open} - onClose={handleClose} - > + <BaseModal modalTitle={props.title} open={open} onClose={handleClose}> <ErrorAlert error={props.error} digest={props.digest} diff --git a/lib-portal/src/components/boundaries/BaseOverlayBoundary.tsx b/lib-portal/src/components/boundaries/BaseOverlayBoundary.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a0b592293655dfd9d971abc4583b1675cbe8f2a4 --- /dev/null +++ b/lib-portal/src/components/boundaries/BaseOverlayBoundary.tsx @@ -0,0 +1,45 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { ReactNode, Suspense } from "react"; +import { ErrorBoundary } from "react-error-boundary"; + +import { RequiresChildren } from "../../types/react"; +import { LoadingOverlayHiddenBackdrop } from "../LoadingOverlayHiddenBackdrop"; + +import { ErrorModalProps } from "./BaseErrorModal"; +import { QueryBoundary } from "./QueryBoundary"; + +export interface BaseOverlayBoundaryProps extends RequiresChildren { + fallbackTitle?: string; + loadingText?: string; + fallbackErrorModal: (props: ErrorModalProps) => ReactNode; +} + +export function BaseOverlayBoundary(props: BaseOverlayBoundaryProps) { + const FallbackErrorModal = props.fallbackErrorModal; + + return ( + <QueryBoundary> + <ErrorBoundary + fallbackRender={({ error, resetErrorBoundary }) => ( + <FallbackErrorModal + error={error as unknown} + title={props.fallbackTitle} + onReset={resetErrorBoundary} + /> + )} + > + <Suspense + fallback={<LoadingOverlayHiddenBackdrop text={props.loadingText} />} + > + {props.children} + </Suspense> + </ErrorBoundary> + </QueryBoundary> + ); +} diff --git a/lib-portal/src/components/boundaries/NextErrorBoundary.tsx b/lib-portal/src/components/boundaries/NextErrorBoundary.tsx index 286bf603be15596b6e6ec635a88d6adc10d591d7..9554b0a298e49f9afa3ab53b3491ee8377bda89d 100644 --- a/lib-portal/src/components/boundaries/NextErrorBoundary.tsx +++ b/lib-portal/src/components/boundaries/NextErrorBoundary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/boundaries/QueryBoundary.tsx b/lib-portal/src/components/boundaries/QueryBoundary.tsx index 7e7125491a8677f78ae00f67456db1db64de3d9d..26174fae98ef82a142e4f461ab124cc203901eb9 100644 --- a/lib-portal/src/components/boundaries/QueryBoundary.tsx +++ b/lib-portal/src/components/boundaries/QueryBoundary.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/buttons/ButtonLink.tsx b/lib-portal/src/components/buttons/ButtonLink.tsx index 726f39e9e54739cf667f684eee371726f65f6567..ea16ba53ae270cefcd411a5108ab6903093bde23 100644 --- a/lib-portal/src/components/buttons/ButtonLink.tsx +++ b/lib-portal/src/components/buttons/ButtonLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/buttons/SubmitButton.tsx b/lib-portal/src/components/buttons/SubmitButton.tsx index 1bd121b759bcd67e7025b4a97c3fe30303ff370f..cbf564569af5432bb040936173b8c5188b06e1d6 100644 --- a/lib-portal/src/components/buttons/SubmitButton.tsx +++ b/lib-portal/src/components/buttons/SubmitButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/confirmationDialog/BaseConfirmationDialog.tsx b/lib-portal/src/components/confirmationDialog/BaseConfirmationDialog.tsx new file mode 100644 index 0000000000000000000000000000000000000000..06028100f959526fe023314e12394199538c6271 --- /dev/null +++ b/lib-portal/src/components/confirmationDialog/BaseConfirmationDialog.tsx @@ -0,0 +1,79 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { Typography } from "@mui/joy"; +import { ReactNode } from "react"; + +import { MutationBundle } from "../../types/query"; +import { WithRequired } from "../../types/utility"; +import { BaseModal } from "../BaseModal"; + +import { + BaseConfirmationDialogButtonBar, + DioalogButtonBarProps, +} from "./BaseConfirmationDialogButtonBar"; + +export interface ConfirmationDialogProps { + open: boolean; + onClose: () => void; + title?: string; + description?: string; + children?: ReactNode; + color?: "primary" | "danger"; + confirmLabel?: string; + onConfirm: () => Promise<void> | void; + onConfirmMutation?: MutationBundle; + denyLabel?: string; + onDeny?: () => Promise<void> | void; + onCancel?: () => void; + cancelLabel?: string; + hideDescription?: boolean; + hideCancelButton?: boolean; + buttonBarComponent?: (props: DioalogButtonBarProps) => ReactNode; +} + +export type BaseConfirmationDialogProps = WithRequired< + ConfirmationDialogProps, + "title" | "description" | "confirmLabel" | "cancelLabel" +>; + +export function BaseConfirmationDialog({ + open, + title, + color = "primary", + description, + children, + onCancel, + hideDescription = false, + buttonBarComponent, + ...props +}: BaseConfirmationDialogProps) { + const ButtonBarComponent = + buttonBarComponent ?? BaseConfirmationDialogButtonBar; + + function handleCancel(): void { + onCancel?.(); + props.onClose(); + } + + return ( + <BaseModal + modalTitle={title} + color={color} + open={open} + onClose={handleCancel} + > + {!hideDescription && <Typography>{description}</Typography>} + {children} + <ButtonBarComponent + {...props} + color={color} + handleCancel={handleCancel} + /> + </BaseModal> + ); +} diff --git a/lib-portal/src/components/confirmationDialog/BaseConfirmationDialogButtonBar.tsx b/lib-portal/src/components/confirmationDialog/BaseConfirmationDialogButtonBar.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5fdc65bf5abd6f6cc2a8f4530a3aeb3474077f50 --- /dev/null +++ b/lib-portal/src/components/confirmationDialog/BaseConfirmationDialogButtonBar.tsx @@ -0,0 +1,111 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { Button, Stack } from "@mui/joy"; +import { useState } from "react"; +import { isDefined } from "remeda"; + +import { useHandledMutation } from "../../api/useHandledMutation"; + +import { ConfirmationDialogProps } from "./BaseConfirmationDialog"; + +export type DioalogButtonBarProps = Pick< + ConfirmationDialogProps, + | "onClose" + | "color" + | "confirmLabel" + | "onConfirm" + | "onConfirmMutation" + | "denyLabel" + | "onDeny" + | "onCancel" + | "cancelLabel" + | "hideCancelButton" +> & { handleCancel: () => Promise<void> | void }; + +export function BaseConfirmationDialogButtonBar({ + onClose, + color = "primary", + confirmLabel, + onConfirm, + onConfirmMutation, + denyLabel, + onDeny, + cancelLabel, + hideCancelButton = false, + handleCancel, +}: DioalogButtonBarProps) { + const [isConfirming, setIsConfirming] = useState(false); + const [isDenying, setIsDenying] = useState(false); + const mutation = useHandledMutation( + onConfirmMutation?.mutationOptions ?? { + mutationFn: () => { + throw new Error( + "Called empty mutation, which might interfere with query cache invalidation", + ); + }, + }, + ); + + return ( + <Stack + direction="row" + spacing={2} + sx={{ marginLeft: "auto", paddingTop: 2 }} + > + {!hideCancelButton && ( + <Button + size="sm" + variant="outlined" + color="neutral" + onClick={handleCancel} + > + {cancelLabel} + </Button> + )} + {onDeny !== undefined && ( + <Button + variant="outlined" + size="sm" + color="danger" + loading={isDenying} + loadingPosition="start" + onClick={async () => { + setIsDenying(true); + await onDeny(); + setIsDenying(false); + onClose(); + }} + > + {denyLabel} + </Button> + )} + <Button + size="sm" + color={color} + loading={isConfirming} + loadingPosition="start" + onClick={async () => { + setIsConfirming(true); + if (isDefined(onConfirmMutation?.mutationOptions)) { + await mutation.mutateAsync( + onConfirmMutation?.variableSupplier?.(), + { + onError: () => setIsConfirming(false), + }, + ); + } + await onConfirm(); + setIsConfirming(false); + onClose(); + }} + > + {confirmLabel} + </Button> + </Stack> + ); +} diff --git a/lib-portal/src/components/confirmationDialog/ConfirmationDialogProvider.tsx b/lib-portal/src/components/confirmationDialog/ConfirmationDialogProvider.tsx new file mode 100644 index 0000000000000000000000000000000000000000..6623b6f83591f6cb6b769a55ba6725346c5edd5d --- /dev/null +++ b/lib-portal/src/components/confirmationDialog/ConfirmationDialogProvider.tsx @@ -0,0 +1,61 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +"use client"; + +import { + Dispatch, + ReactNode, + SetStateAction, + createContext, + useState, +} from "react"; + +import { Optional } from "../../types/utility"; +import { ErrorModalProps } from "../boundaries/BaseErrorModal"; +import { BaseOverlayBoundary } from "../boundaries/BaseOverlayBoundary"; + +import { ConfirmationDialogProps } from "./BaseConfirmationDialog"; + +export const ConfirmationDialogContext = createContext<{ + confirmationDialog: ConfirmationDialogProps | undefined; + setConfirmationDialog: Dispatch< + SetStateAction<ConfirmationDialogProps | undefined> + >; +}>(null!); + +interface ConfirmationDialogProviderProps { + component: (props: ConfirmationDialogProps) => ReactNode; + children: ReactNode; + errorModal: (props: ErrorModalProps) => ReactNode; +} + +export function ConfirmationDialogProvider({ + component, + children, + errorModal, +}: ConfirmationDialogProviderProps) { + const [confirmationDialog, setConfirmationDialog] = + useState<ConfirmationDialogProps>(); + const DialogComponent = component; + + return ( + <ConfirmationDialogContext.Provider + value={{ confirmationDialog, setConfirmationDialog }} + > + {confirmationDialog && ( + <BaseOverlayBoundary fallbackErrorModal={errorModal}> + <DialogComponent {...confirmationDialog} /> + </BaseOverlayBoundary> + )} + {children} + </ConfirmationDialogContext.Provider> + ); +} + +export type ConfirmationDialogOptions = Optional< + Omit<ConfirmationDialogProps, "open">, + "onClose" +>; diff --git a/lib-portal/src/components/form/DisabledFormContext.tsx b/lib-portal/src/components/form/DisabledFormContext.tsx index cf7e444c871fc58be4b0fa42d48c325b97222261..e0e568249c84769490e868c4eef214fbbd7c6687 100644 --- a/lib-portal/src/components/form/DisabledFormContext.tsx +++ b/lib-portal/src/components/form/DisabledFormContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/form/FormAddMoreButton.tsx b/lib-portal/src/components/form/FormAddMoreButton.tsx index b4f074bde4d0c056bdc626e628985d43828042d5..fc8d2d40e7bae837d617b3ce09250e034b5062e6 100644 --- a/lib-portal/src/components/form/FormAddMoreButton.tsx +++ b/lib-portal/src/components/form/FormAddMoreButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/form/FormPlus.tsx b/lib-portal/src/components/form/FormPlus.tsx index 9a76ff2a73e1c90178075036cb430cd6d5e5105c..f202f5cb426bb0971511adfcda4f659938164abd 100644 --- a/lib-portal/src/components/form/FormPlus.tsx +++ b/lib-portal/src/components/form/FormPlus.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/form/MultiStepForm.tsx b/lib-portal/src/components/form/MultiStepForm.tsx index 9e645835f0f83b375e642b0b5c67d51a69990f23..7f5e9a92f1eef32e8c3d2cf3232d29af85c340f3 100644 --- a/lib-portal/src/components/form/MultiStepForm.tsx +++ b/lib-portal/src/components/form/MultiStepForm.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/BaseField.tsx b/lib-portal/src/components/formFields/BaseField.tsx index 4f71dc99d551a66eaf9278c4d430a704df7288f5..4f5f184ed69452b4b907c13873c8a425d8d5b913 100644 --- a/lib-portal/src/components/formFields/BaseField.tsx +++ b/lib-portal/src/components/formFields/BaseField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/BooleanRadioField.tsx b/lib-portal/src/components/formFields/BooleanRadioField.tsx index 49debc51af6319e160f0693e91b4d1a185ab0220..5d3beb167b78af2b0948ee224a968641031f5671 100644 --- a/lib-portal/src/components/formFields/BooleanRadioField.tsx +++ b/lib-portal/src/components/formFields/BooleanRadioField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/BooleanSelectField.tsx b/lib-portal/src/components/formFields/BooleanSelectField.tsx index 5600fdac09b5bf4ee56d84526b71bd4f41443591..c75cdfe32cdafd39dcb701a9417291087f29060b 100644 --- a/lib-portal/src/components/formFields/BooleanSelectField.tsx +++ b/lib-portal/src/components/formFields/BooleanSelectField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/DateField.tsx b/lib-portal/src/components/formFields/DateField.tsx index 19c851fb161a28d858dc972dd2fa561366963409..5c6a99ade5ad2a6878c5eb6b66907c58cd270252 100644 --- a/lib-portal/src/components/formFields/DateField.tsx +++ b/lib-portal/src/components/formFields/DateField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/DecoratedInputField.tsx b/lib-portal/src/components/formFields/DecoratedInputField.tsx index 5aa536fb263f146baec5e737583c18dca1b8a585..a996da263a45fd3978cdce8fdfd2ef876864c86b 100644 --- a/lib-portal/src/components/formFields/DecoratedInputField.tsx +++ b/lib-portal/src/components/formFields/DecoratedInputField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/EmailField.tsx b/lib-portal/src/components/formFields/EmailField.tsx similarity index 52% rename from employee-portal/src/lib/shared/components/formFields/EmailField.tsx rename to lib-portal/src/components/formFields/EmailField.tsx index 5e4ad975fddad94b253fad6995a11331e54bb741..0944d9fde6fbe522746676836cc006212776cbef 100644 --- a/employee-portal/src/lib/shared/components/formFields/EmailField.tsx +++ b/lib-portal/src/components/formFields/EmailField.tsx @@ -1,15 +1,11 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ -import { - InputField, - InputFieldProps, -} from "@eshg/lib-portal/components/formFields/InputField"; -import { validatePipe } from "@eshg/lib-portal/helpers/validators"; +import { validateEmail, validatePipe } from "../../helpers/validators"; -import { validateEmail } from "@/lib/shared/helpers/validators"; +import { InputField, InputFieldProps } from "./InputField"; type EmailFieldProps = Omit<InputFieldProps, "type">; diff --git a/lib-portal/src/components/formFields/HorizontalField.tsx b/lib-portal/src/components/formFields/HorizontalField.tsx index 17a38153cfb06fa13245886c2cafc7b4b643ccf6..29350b3f3b30aded0aaca1fa0fb1f0a5910166a3 100644 --- a/lib-portal/src/components/formFields/HorizontalField.tsx +++ b/lib-portal/src/components/formFields/HorizontalField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/InputArrayField.tsx b/lib-portal/src/components/formFields/InputArrayField.tsx index b4322caeda821965f540c9b07290931381471e4f..48fa7e6da1060cb385a1cc8d4718d903e5a9a2f0 100644 --- a/lib-portal/src/components/formFields/InputArrayField.tsx +++ b/lib-portal/src/components/formFields/InputArrayField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/InputField.tsx b/lib-portal/src/components/formFields/InputField.tsx index f54fcc29b25c3c7bb859ad480c15e2efafde9616..4d45fbe1b7507fdbcbdbd59055c0b027ab7afb94 100644 --- a/lib-portal/src/components/formFields/InputField.tsx +++ b/lib-portal/src/components/formFields/InputField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -42,6 +42,7 @@ export interface InputFieldProps "aria-details"?: string; untrimmedInput?: boolean; autoComplete?: InputProps["autoComplete"]; + autoFocus?: boolean; } export function InputField(props: Readonly<InputFieldProps>) { @@ -100,6 +101,7 @@ export function InputField(props: Readonly<InputFieldProps>) { readOnly: props.readOnly === true || props.unstyledReadOnly, maxLength: props.maxLength, "aria-details": props["aria-details"], + autoFocus: props.autoFocus ?? false, }, }} /> diff --git a/lib-portal/src/components/formFields/MonthAndYearFields.tsx b/lib-portal/src/components/formFields/MonthAndYearFields.tsx index 93cf802f8db7454340e815cad7a0f34965c10835..42271e53647d379de9dbc482c91e0b442d4c5468 100644 --- a/lib-portal/src/components/formFields/MonthAndYearFields.tsx +++ b/lib-portal/src/components/formFields/MonthAndYearFields.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/NumberField.tsx b/lib-portal/src/components/formFields/NumberField.tsx index 3e88aaf4e06540c441f4191f8c31b99fe122ea9f..b5a255a8450afeaa2317b00d2f4bca03fc867fd1 100644 --- a/lib-portal/src/components/formFields/NumberField.tsx +++ b/lib-portal/src/components/formFields/NumberField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/PhoneNumberField.tsx b/lib-portal/src/components/formFields/PhoneNumberField.tsx similarity index 63% rename from employee-portal/src/lib/shared/components/formFields/PhoneNumberField.tsx rename to lib-portal/src/components/formFields/PhoneNumberField.tsx index 1d36db1c2f4c1e74e5f440c840b4f02261ff94ae..e2fa7f57f092d06afae4aed2385c7dc1a42f6d7b 100644 --- a/employee-portal/src/lib/shared/components/formFields/PhoneNumberField.tsx +++ b/lib-portal/src/components/formFields/PhoneNumberField.tsx @@ -1,12 +1,9 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ -import { - InputField, - InputFieldProps, -} from "@eshg/lib-portal/components/formFields/InputField"; +import { InputField, InputFieldProps } from "./InputField"; type PhoneNumberFieldProps = Omit<InputFieldProps, "type">; diff --git a/employee-portal/src/lib/shared/components/formFields/RadioGroupField.tsx b/lib-portal/src/components/formFields/RadioGroupField.tsx similarity index 76% rename from employee-portal/src/lib/shared/components/formFields/RadioGroupField.tsx rename to lib-portal/src/components/formFields/RadioGroupField.tsx index 4fdb0e276d528be574f996fd055e2e029fbca1fb..2cf82d3d5a0b025d3851f21235cca71ac161da1b 100644 --- a/employee-portal/src/lib/shared/components/formFields/RadioGroupField.tsx +++ b/lib-portal/src/components/formFields/RadioGroupField.tsx @@ -1,17 +1,17 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ -import { useIsFormDisabled } from "@eshg/lib-portal/components/form/DisabledFormContext"; -import { useBaseField } from "@eshg/lib-portal/components/formFields/BaseField"; -import { ValidationRules } from "@eshg/lib-portal/types/form"; import { FormControl, FormHelperText, FormLabel, RadioGroup } from "@mui/joy"; import { SxProps } from "@mui/joy/styles/types"; import { ChangeEvent, PropsWithChildren, ReactNode } from "react"; import { isDefined } from "remeda"; -import { radioGroupLabelClassName } from "@/lib/baseModule/theme/theme"; +import { ValidationRules } from "../../types/form"; +import { useIsFormDisabled } from "../form/DisabledFormContext"; + +import { useBaseField } from "./BaseField"; export interface RadioGroupFieldProps extends ValidationRules<string>, @@ -49,9 +49,7 @@ export function RadioGroupField({ disabled={isFormDisabled} data-testid={props["data-testid"]} > - {label && ( - <FormLabel className={radioGroupLabelClassName}>{label}</FormLabel> - )} + {label && <FormLabel>{label}</FormLabel>} <RadioGroup name={input.name} value={input.value} diff --git a/lib-portal/src/components/formFields/SelectField.tsx b/lib-portal/src/components/formFields/SelectField.tsx index 366c8e34890d8496b7289e475beddab36c521c1c..ec77a9ea584b0404874d56649ab543295d8d2dd3 100644 --- a/lib-portal/src/components/formFields/SelectField.tsx +++ b/lib-portal/src/components/formFields/SelectField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/SelectObjectField.tsx b/lib-portal/src/components/formFields/SelectObjectField.tsx index a351c6560de4b7061d25a9532831a94d6c46096c..5246fa155a27238dea57be4de8251f2ac1f37590 100644 --- a/lib-portal/src/components/formFields/SelectObjectField.tsx +++ b/lib-portal/src/components/formFields/SelectObjectField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/SelectOptions.tsx b/lib-portal/src/components/formFields/SelectOptions.tsx index 0d4576cc4b365f8d3235d5b9b60c828df8afdfb2..cf2e78e1b6aac42ffc8cae7be2ab5c4ff84bf30a 100644 --- a/lib-portal/src/components/formFields/SelectOptions.tsx +++ b/lib-portal/src/components/formFields/SelectOptions.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/YearField.tsx b/lib-portal/src/components/formFields/YearField.tsx index 8d03f06b8d8d2d74bf5120222c335931d6ea98cb..b46d7e7f1a9eb19ed2b4e9050afc49c9484aa38d 100644 --- a/lib-portal/src/components/formFields/YearField.tsx +++ b/lib-portal/src/components/formFields/YearField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/AppointmentCalendar.tsx b/lib-portal/src/components/formFields/appointmentPicker/AppointmentCalendar.tsx index 99784ffc9c53d32646ab7a598765a9bf7a6463d7..1ae7b3737c8a5afac667356ba6306734bb98e1fc 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/AppointmentCalendar.tsx +++ b/lib-portal/src/components/formFields/appointmentPicker/AppointmentCalendar.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/AppointmentListForDate.tsx b/lib-portal/src/components/formFields/appointmentPicker/AppointmentListForDate.tsx index ec3bd622e4d8129329b4c5d081b820bcddfa0f06..9601bea3d3592e999b79fea0ee6568f6e22ee253 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/AppointmentListForDate.tsx +++ b/lib-portal/src/components/formFields/appointmentPicker/AppointmentListForDate.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/AppointmentPickerField.tsx b/lib-portal/src/components/formFields/appointmentPicker/AppointmentPickerField.tsx index 115d4cbe03707176334e81950da82e09b46c7030..a660d4210fbbe90dab887dadc28251ef27a117f3 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/AppointmentPickerField.tsx +++ b/lib-portal/src/components/formFields/appointmentPicker/AppointmentPickerField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/Day.tsx b/lib-portal/src/components/formFields/appointmentPicker/Day.tsx index 6873b2dc58ff48f2f7d0e5a88dc90569037dcdc4..a3c9ef3ac4ac388f84c569efac91cb3fa8ff44c0 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/Day.tsx +++ b/lib-portal/src/components/formFields/appointmentPicker/Day.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/MonthSelection.tsx b/lib-portal/src/components/formFields/appointmentPicker/MonthSelection.tsx index 22bd97c12a2f7a396573c780b76af89168221a64..66c1378b0968e1adeb9e4b73cac35272f2f84f6c 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/MonthSelection.tsx +++ b/lib-portal/src/components/formFields/appointmentPicker/MonthSelection.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/WeekdayHeaders.tsx b/lib-portal/src/components/formFields/appointmentPicker/WeekdayHeaders.tsx index 33c35c98a2b2ec89fe517b9ccacee8450211705b..2d114146cbd5184c9419869f41683d8eab311ed5 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/WeekdayHeaders.tsx +++ b/lib-portal/src/components/formFields/appointmentPicker/WeekdayHeaders.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/helpers.ts b/lib-portal/src/components/formFields/appointmentPicker/helpers.ts index 84a38941001b6265632ee8d347925db16add5f8b..daf1b4f782a191cf87efd0fad38fb087a8adafc7 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/helpers.ts +++ b/lib-portal/src/components/formFields/appointmentPicker/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/appointmentPicker/labels.ts b/lib-portal/src/components/formFields/appointmentPicker/labels.ts index edbdd827d3b400b7bf93c6993f4297f2ff33c262..98eb79c2002cc789dcc2d070b0d6033f322613ac 100644 --- a/lib-portal/src/components/formFields/appointmentPicker/labels.ts +++ b/lib-portal/src/components/formFields/appointmentPicker/labels.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/autocomplete/AutocompleteSelectOptions.tsx b/lib-portal/src/components/formFields/autocomplete/AutocompleteSelectOptions.tsx index 3020594904540858c830fe8c71bb4520321e7f58..6f67bf7e0219e6e6061d6565a47a379362f243e0 100644 --- a/lib-portal/src/components/formFields/autocomplete/AutocompleteSelectOptions.tsx +++ b/lib-portal/src/components/formFields/autocomplete/AutocompleteSelectOptions.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/autocomplete/MultiAutocompleteField.tsx b/lib-portal/src/components/formFields/autocomplete/MultiAutocompleteField.tsx index 212fcbae4dba86d74234635200c1bd6f23995989..f7f7f4213fc81ec8559283c16356f79ea8ce5bc4 100644 --- a/lib-portal/src/components/formFields/autocomplete/MultiAutocompleteField.tsx +++ b/lib-portal/src/components/formFields/autocomplete/MultiAutocompleteField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/autocomplete/SingleAutocompleteField.tsx b/lib-portal/src/components/formFields/autocomplete/SingleAutocompleteField.tsx index f96f57daa0c3e5195adc835e7ac0bef23f92db3a..e0e779418d6dd8cb0e20c33bbe5a6c6ce554df60 100644 --- a/lib-portal/src/components/formFields/autocomplete/SingleAutocompleteField.tsx +++ b/lib-portal/src/components/formFields/autocomplete/SingleAutocompleteField.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/formFields/autocomplete/useAutocompleteFieldContext.ts b/lib-portal/src/components/formFields/autocomplete/useAutocompleteFieldContext.ts index 04cee1fcb7340e0bbf3f7d50ba5ade570e01bbfb..73b93639d3497eed22f816e16fcd01e87c74cdd6 100644 --- a/lib-portal/src/components/formFields/autocomplete/useAutocompleteFieldContext.ts +++ b/lib-portal/src/components/formFields/autocomplete/useAutocompleteFieldContext.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/personSidebar/constants.ts b/lib-portal/src/components/formFields/constants.ts similarity index 92% rename from employee-portal/src/lib/shared/components/personSidebar/constants.ts rename to lib-portal/src/components/formFields/constants.ts index 09e07fb6d4504e4a912a1a711ef717dc18c19e8e..a4f2c7450d4bda7df1fb5fd2443901fb23d2da4f 100644 --- a/employee-portal/src/lib/shared/components/personSidebar/constants.ts +++ b/lib-portal/src/components/formFields/constants.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -8,10 +8,12 @@ import { ApiPersonFileState, ApiSalutation, } from "@eshg/employee-portal-api/base"; -import { SelectOption } from "@eshg/lib-portal/components/formFields/SelectOptions"; -import { buildEnumOptions } from "@eshg/lib-portal/helpers/form"; import { isDefined } from "remeda"; +import { buildEnumOptions } from "../../helpers/form"; + +import { SelectOption } from "./SelectOptions"; + export const SALUTATION_VALUES = { [ApiSalutation.NotSpecified]: "Keine Angabe", [ApiSalutation.Neutral]: "Neutral", diff --git a/employee-portal/src/lib/businessModules/stiProtection/shared/countryCodes.ts b/lib-portal/src/components/formFields/countryCodes.ts similarity index 98% rename from employee-portal/src/lib/businessModules/stiProtection/shared/countryCodes.ts rename to lib-portal/src/components/formFields/countryCodes.ts index 4b33886fffc497adf25d5c8790c405c08acf8455..38f3a45ece191cd45f4fd75f3c50691600d3fad7 100644 --- a/employee-portal/src/lib/businessModules/stiProtection/shared/countryCodes.ts +++ b/lib-portal/src/components/formFields/countryCodes.ts @@ -1,9 +1,9 @@ /** - * Copyright 2024 cronn GmbH - * SPDX-License-Identifier: AGPL-3.0-only + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 */ -import { ApiCountryCode } from "@eshg/employee-portal-api/stiProtection"; +import { ApiCountryCode } from "@eshg/employee-portal-api/base"; export const COUNTRY_CODE_LABELS = { [ApiCountryCode.Af]: "Afghanistan", diff --git a/employee-portal/src/lib/shared/components/formFields/file/FileType.ts b/lib-portal/src/components/formFields/file/FileType.ts similarity index 97% rename from employee-portal/src/lib/shared/components/formFields/file/FileType.ts rename to lib-portal/src/components/formFields/file/FileType.ts index 77b4acb78180e775b31bdb36950f6980abcd4390..e724314a47cc601fe378446057ff22a2c7bc276e 100644 --- a/employee-portal/src/lib/shared/components/formFields/file/FileType.ts +++ b/lib-portal/src/components/formFields/file/FileType.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/file/useDragAndDrop.tsx b/lib-portal/src/components/formFields/file/useDragAndDrop.tsx similarity index 98% rename from employee-portal/src/lib/shared/components/formFields/file/useDragAndDrop.tsx rename to lib-portal/src/components/formFields/file/useDragAndDrop.tsx index dd9d973efada61772f7ea5de7d77ac980cfa76b0..5eeed0c7f606cdf92016c66bcb240c362dfad6d8 100644 --- a/employee-portal/src/lib/shared/components/formFields/file/useDragAndDrop.tsx +++ b/lib-portal/src/components/formFields/file/useDragAndDrop.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/components/formFields/file/validators.ts b/lib-portal/src/components/formFields/file/validators.ts similarity index 84% rename from employee-portal/src/lib/shared/components/formFields/file/validators.ts rename to lib-portal/src/components/formFields/file/validators.ts index e7e35b714ea6d13b9fc0cb1cccaee888c52df5e5..3b70b254e4979e640eb8544babe981bc4e296683 100644 --- a/employee-portal/src/lib/shared/components/formFields/file/validators.ts +++ b/lib-portal/src/components/formFields/file/validators.ts @@ -1,12 +1,13 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ -import { Validator } from "@eshg/lib-portal/types/form"; import { isString } from "remeda"; -import { FileType } from "@/lib/shared/components/formFields/file/FileType"; +import { Validator } from "../../../types/form"; + +import { FileType } from "./FileType"; export interface FileLike { type: File["type"]; diff --git a/lib-portal/src/components/formFields/types.ts b/lib-portal/src/components/formFields/types.ts index 7dd586058c4a0522bda6a1c09f0a3fa2080ec0b3..3abb4493511b8711981e4ec734e38562cd2378cc 100644 --- a/lib-portal/src/components/formFields/types.ts +++ b/lib-portal/src/components/formFields/types.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/icons/ExpandNavigation.tsx b/lib-portal/src/components/icons/ExpandNavigation.tsx index afded8b0c1193ec80efbe914d6052cbef230be60..e1d18e23f938c4c0d24ad8fb9daf6d4abcfde6ac 100644 --- a/lib-portal/src/components/icons/ExpandNavigation.tsx +++ b/lib-portal/src/components/icons/ExpandNavigation.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/inputs/YearInput.tsx b/lib-portal/src/components/inputs/YearInput.tsx index d48ac07c5c0284f0c16895f137340f619fda0d12..76ca5f691a43b830ffc736e43d6fb48c7106dfb4 100644 --- a/lib-portal/src/components/inputs/YearInput.tsx +++ b/lib-portal/src/components/inputs/YearInput.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/navigation/ExternalLink.tsx b/lib-portal/src/components/navigation/ExternalLink.tsx index 644c3d11c1e2a0d5f55398f0ebb5cec40bcdee7e..90f3996d0c44006619b0ceac144b3be06c4a5821 100644 --- a/lib-portal/src/components/navigation/ExternalLink.tsx +++ b/lib-portal/src/components/navigation/ExternalLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/navigation/InternalLink.tsx b/lib-portal/src/components/navigation/InternalLink.tsx index de520b179e54f8e6b2612b94bf994e17f9391fef..c2b84ff72ec3c4410eb58c95eef703bf75ab0400 100644 --- a/lib-portal/src/components/navigation/InternalLink.tsx +++ b/lib-portal/src/components/navigation/InternalLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/navigation/InternalLinkButton.tsx b/lib-portal/src/components/navigation/InternalLinkButton.tsx index 6be3cecb538aef42700850c0cf634cbf5619266d..0f1d34423ec2da29e6040035f442ee641b88cac5 100644 --- a/lib-portal/src/components/navigation/InternalLinkButton.tsx +++ b/lib-portal/src/components/navigation/InternalLinkButton.tsx @@ -1,14 +1,16 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ import { Button, ButtonProps } from "@mui/joy"; +import { forwardRef } from "react"; import { NavigationLink } from "./NavigationLink"; -export function InternalLinkButton( - props: Omit<ButtonProps<typeof NavigationLink>, "component">, -) { - return <Button component={NavigationLink} {...props} />; -} +export const InternalLinkButton = forwardRef< + HTMLAnchorElement, + Omit<ButtonProps<typeof NavigationLink>, "component"> +>(function InternalLinkButton(props, ref) { + return <Button component={NavigationLink} ref={ref} {...props} />; +}); diff --git a/lib-portal/src/components/navigation/InternalLinkIconButton.tsx b/lib-portal/src/components/navigation/InternalLinkIconButton.tsx index bfbff0a1f19515a47f833b40674811401dc0a273..6680c75562a9b019c5953c03fa8458394737133a 100644 --- a/lib-portal/src/components/navigation/InternalLinkIconButton.tsx +++ b/lib-portal/src/components/navigation/InternalLinkIconButton.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/navigation/NavigationContext.tsx b/lib-portal/src/components/navigation/NavigationContext.tsx index 94bcf6520ecd9f125bab00bf763a1b6eda63eb8a..aea04e2b2b2cf09037722d8a7f48d9d3146412e7 100644 --- a/lib-portal/src/components/navigation/NavigationContext.tsx +++ b/lib-portal/src/components/navigation/NavigationContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/navigation/NavigationLink.tsx b/lib-portal/src/components/navigation/NavigationLink.tsx index 65c62d9abcc039277e9f16a3ca7a4836d0e4746c..564d9b6821814ee36bb53135bda315a9f52f8c6f 100644 --- a/lib-portal/src/components/navigation/NavigationLink.tsx +++ b/lib-portal/src/components/navigation/NavigationLink.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/snackbar/SnackbarProvider.tsx b/lib-portal/src/components/snackbar/SnackbarProvider.tsx index e5d7d6c608d7c8d17eb46a56d73014688df8a23f..1989d5c4e7138eb7fe5fe4fe7b1cfa080ae6af3e 100644 --- a/lib-portal/src/components/snackbar/SnackbarProvider.tsx +++ b/lib-portal/src/components/snackbar/SnackbarProvider.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/snackbar/snackbarUtils.ts b/lib-portal/src/components/snackbar/snackbarUtils.ts index f44be48d9ff2523e822160b6b29363935617ab1d..86316fe76e5f79a6acf6f08c83e6432e7c4acbff 100644 --- a/lib-portal/src/components/snackbar/snackbarUtils.ts +++ b/lib-portal/src/components/snackbar/snackbarUtils.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/themeRegistry/EmotionCache.tsx b/lib-portal/src/components/themeRegistry/EmotionCache.tsx index ddb144c8d86d900a3ca96dc8f84f1984a48e4d2e..b49e838c5a8b9f7c6496c9079fe131316e61f351 100644 --- a/lib-portal/src/components/themeRegistry/EmotionCache.tsx +++ b/lib-portal/src/components/themeRegistry/EmotionCache.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/components/themeRegistry/ThemeRegistry.tsx b/lib-portal/src/components/themeRegistry/ThemeRegistry.tsx index d34229727a81f0607b77e91d89664b9bfb2d2e17..6ff6bec261620b9aead76655658ce30564cca993 100644 --- a/lib-portal/src/components/themeRegistry/ThemeRegistry.tsx +++ b/lib-portal/src/components/themeRegistry/ThemeRegistry.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/errorHandling/AlertContext.tsx b/lib-portal/src/errorHandling/AlertContext.tsx index 89ef5b2bdcd55c3ac70bc2b44ea1716361e50b33..8075cd1a1fd7216081110dc9cf86ba5384dad706 100644 --- a/lib-portal/src/errorHandling/AlertContext.tsx +++ b/lib-portal/src/errorHandling/AlertContext.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/errorHandling/ErrorAlert.tsx b/lib-portal/src/errorHandling/ErrorAlert.tsx index c84ae6e758f5ed26ae1a044d088b5502be81de7f..f7a86f32ea2f3898765ed7f60ed790da23f9611a 100644 --- a/lib-portal/src/errorHandling/ErrorAlert.tsx +++ b/lib-portal/src/errorHandling/ErrorAlert.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/errorHandling/PortalError.ts b/lib-portal/src/errorHandling/PortalError.ts index 06bcc4dfbe86c28bfdfab547c557efccc408a7e3..949c01ab657ae782b2c19528fce3fd6a7e0ea902 100644 --- a/lib-portal/src/errorHandling/PortalError.ts +++ b/lib-portal/src/errorHandling/PortalError.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/errorHandling/PortalErrorCode.ts b/lib-portal/src/errorHandling/PortalErrorCode.ts index cf21d35219f3478d12c565aa6161adbd7e7e00c5..3c0412b615118eff3237b231154d0bc48b2481cf 100644 --- a/lib-portal/src/errorHandling/PortalErrorCode.ts +++ b/lib-portal/src/errorHandling/PortalErrorCode.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/errorHandling/errorMappers.tsx b/lib-portal/src/errorHandling/errorMappers.tsx index 4049eccd78f2215f83ba864e16e39f4e2b90d100..c3584fb3958c65cd1b6e506f8b9e65a0aadab1d5 100644 --- a/lib-portal/src/errorHandling/errorMappers.tsx +++ b/lib-portal/src/errorHandling/errorMappers.tsx @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/errorHandling/errorResolvers.ts b/lib-portal/src/errorHandling/errorResolvers.ts index b5fb331fc9b4d80956cdd1f1414b4af567cbe126..32c36014864796b997f85c925787d30fecca194c 100644 --- a/lib-portal/src/errorHandling/errorResolvers.ts +++ b/lib-portal/src/errorHandling/errorResolvers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/formatters/dateTime.ts b/lib-portal/src/formatters/dateTime.ts index 975bdac94feef4523d3c347d919c891e8bc4ac7e..1c7bc06920869f6c3e017c7e4b8fb8fcfb2dd6d0 100644 --- a/lib-portal/src/formatters/dateTime.ts +++ b/lib-portal/src/formatters/dateTime.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/formatters/numbers.ts b/lib-portal/src/formatters/numbers.ts index 71d07ab48dfd56d95bef91661104e3e17b44f9fb..a62f3cfe256702f8b143aef106e1c154bd9551c0 100644 --- a/lib-portal/src/formatters/numbers.ts +++ b/lib-portal/src/formatters/numbers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/formatters/person.ts b/lib-portal/src/formatters/person.ts index 59f15ca5b98b2c696d0ea7a045521ae39e05ddd7..8f376d98a0df86206f21aaf907c2e5e5104c8a77 100644 --- a/lib-portal/src/formatters/person.ts +++ b/lib-portal/src/formatters/person.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/assertions.ts b/lib-portal/src/helpers/assertions.ts index e4be5db63c40011fca21a97c52b192ae6aba44bb..3fc94d3d699bd6b2aea7a3e2610dcdcf9fdbb9a2 100644 --- a/lib-portal/src/helpers/assertions.ts +++ b/lib-portal/src/helpers/assertions.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/dateTime.ts b/lib-portal/src/helpers/dateTime.ts index c78e9d774099de93059c0a1e64cb1b59b7b60028..a7ea15cb4c9830b7eda7c803fe962baae546d1c9 100644 --- a/lib-portal/src/helpers/dateTime.ts +++ b/lib-portal/src/helpers/dateTime.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/email.ts b/lib-portal/src/helpers/email.ts index e691bd937b260241b27a88d04f8f9aba9687aaad..ea393290635aee3048d1f61be7dfab8258b1d6eb 100644 --- a/lib-portal/src/helpers/email.ts +++ b/lib-portal/src/helpers/email.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/employee-portal/src/lib/shared/helpers/file.ts b/lib-portal/src/helpers/file.ts similarity index 98% rename from employee-portal/src/lib/shared/helpers/file.ts rename to lib-portal/src/helpers/file.ts index f5cb946c873fabd3c688b35923358a96a822de52..1e836fb7356627b5e66f4a4ca533a1b9aa9c54c9 100644 --- a/employee-portal/src/lib/shared/helpers/file.ts +++ b/lib-portal/src/helpers/file.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/form.ts b/lib-portal/src/helpers/form.ts index 6412fd067ac404f0b7f302d1c45c22eea01cf094..ef2309d289f9f2f41ee95ea85745cc17475fb6a5 100644 --- a/lib-portal/src/helpers/form.ts +++ b/lib-portal/src/helpers/form.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/guards.ts b/lib-portal/src/helpers/guards.ts index f127d6cf2ae2d46b223be54062e94905e1f43b55..58e9c8e33bc7c06cdb69efbd67a6e1bd84061c97 100644 --- a/lib-portal/src/helpers/guards.ts +++ b/lib-portal/src/helpers/guards.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/htmlStringEncoder.ts b/lib-portal/src/helpers/htmlStringEncoder.ts index 7b5be3e8130addec2f58813b8d08f76067cda793..9cd9f942c720f88b4c81e3ab9dc3a1aed283c34b 100644 --- a/lib-portal/src/helpers/htmlStringEncoder.ts +++ b/lib-portal/src/helpers/htmlStringEncoder.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/ifDefined.ts b/lib-portal/src/helpers/ifDefined.ts index 0e9230f2e6e58dd479429f8439cfe419697b6c8a..b25679d8fbd2396008aa7894da4fe0c153a6b02e 100644 --- a/lib-portal/src/helpers/ifDefined.ts +++ b/lib-portal/src/helpers/ifDefined.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/routes.ts b/lib-portal/src/helpers/routes.ts index 6a9458e0a8a36bdbbc752a0824bdb0ce39785d4f..983ba0b2df92dc7a9aa182a1cd29e959f75d50ff 100644 --- a/lib-portal/src/helpers/routes.ts +++ b/lib-portal/src/helpers/routes.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/test.ts b/lib-portal/src/helpers/test.ts index 9eec0c54020bc84483830450447c6b0a21423c59..6a3faa043a5ab26bdaf8c42d7b4ea27e1b38ee34 100644 --- a/lib-portal/src/helpers/test.ts +++ b/lib-portal/src/helpers/test.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/url.ts b/lib-portal/src/helpers/url.ts index e9407e7d422dc45dab66fed04d7258d5484b3837..43a55a3601d7af7bbe2486de8fa3204b6f309a65 100644 --- a/lib-portal/src/helpers/url.ts +++ b/lib-portal/src/helpers/url.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/helpers/validators.ts b/lib-portal/src/helpers/validators.ts index 3167b83590fe592d7cc1c31d07d04b242014cde9..64363f4581660d7af8ad93c3fd3959a602fc9bd3 100644 --- a/lib-portal/src/helpers/validators.ts +++ b/lib-portal/src/helpers/validators.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ @@ -9,7 +9,23 @@ import { isDefined, isEmpty, isNullish } from "remeda"; import { OptionalFieldValue, Validator } from "../types/form"; import { isDateString, isMonthString } from "./dateTime"; -import { isDict, isEmptyString, isInteger, isStringOnlyDigits } from "./guards"; +import { isValidEmailString } from "./email"; +import { + fileExtensionChanged, + fileHasAcceptedExtension, + fileIsTooLarge, + fileNameIsTooLong, + fileNameIsValid, + formatFileSize, + getExtensionFromFileName, +} from "./file"; +import { + isDict, + isEmptyString, + isInteger, + isNonEmptyString, + isStringOnlyDigits, +} from "./guards"; export function validatePipe<TValue>( ...validators: (Validator<TValue> | undefined)[] @@ -148,3 +164,58 @@ export function validateRegex( return errorMessage; }; } + +export function validateEmail(value: string, message?: string) { + if ( + value === undefined || + isEmptyString(value) || + isValidEmailString(value) + ) { + return undefined; + } + + return isNonEmptyString(message) + ? message + : "Bitte eine gültige Email angeben."; +} + +export function validateFile( + acceptedExtensions?: string[], + maxFileSize?: number, +) { + function validateFile(file: File | null) { + if (isNullish(file)) return undefined; + if (!fileNameIsValid(file)) + return "Bitte eine Datei mit gültigem Dateinamen auswählen."; + if (fileNameIsTooLong(file)) + return "Bitte eine Datei mit einem kürzeren Dateinamen auswählen."; + if (!fileHasAcceptedExtension(file, acceptedExtensions)) + return "Bitte eine Datei mit einer gültigen Dateiendung auswählen."; + if (fileIsTooLarge(file, maxFileSize)) + return `Bitte eine Datei kleiner ${formatFileSize(maxFileSize!)} auswählen.`; + return undefined; + } + + return validateFile; +} + +export function validateFileName(existingFileName?: string) { + function validateFileName(fileName: string) { + if (isEmpty(fileName)) return undefined; + + const file = new File([], fileName); + if (!fileNameIsValid(file)) + return "Bitte einen gültigen Dateinamen auswählen."; + if (fileNameIsTooLong(file)) + return "Bitte einen kürzeren Dateinamen auswählen."; + if ( + existingFileName !== undefined && + fileExtensionChanged(file, existingFileName) + ) { + return `Die ursprüngliche Dateiendung (.${getExtensionFromFileName(existingFileName)}) darf nicht verändert werden.`; + } + return undefined; + } + + return validateFileName; +} diff --git a/lib-portal/src/hooks/useHasChanged.ts b/lib-portal/src/hooks/useHasChanged.ts index b957db5f1f3d084ea0f2cde6838794b686f07e4e..a8235820c64bad24924bf256cc0fabdf54c95d7e 100644 --- a/lib-portal/src/hooks/useHasChanged.ts +++ b/lib-portal/src/hooks/useHasChanged.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/hooks/useMonthAndYearValidations.ts b/lib-portal/src/hooks/useMonthAndYearValidations.ts index b8339fb4d76ff960f7196f8acb3be33eb2c8ace7..4818bd23ddf67b286f6d56aabd9e267296759108 100644 --- a/lib-portal/src/hooks/useMonthAndYearValidations.ts +++ b/lib-portal/src/hooks/useMonthAndYearValidations.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/hooks/useNavigateEffect.ts b/lib-portal/src/hooks/useNavigateEffect.ts index 48d5e4f49895de0e0316f45ab68f0f23c08b5a4d..0f900cc939b8b478cf93340aa6c69c3b713dfbec 100644 --- a/lib-portal/src/hooks/useNavigateEffect.ts +++ b/lib-portal/src/hooks/useNavigateEffect.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/hooks/usePrevious.ts b/lib-portal/src/hooks/usePrevious.ts index a636a60ae3bb61f49d8a7b6033a96b2e6d90a7e4..916fb787acde04ea8880a5987462ff3d44fce1c1 100644 --- a/lib-portal/src/hooks/usePrevious.ts +++ b/lib-portal/src/hooks/usePrevious.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/hooks/useToggleableState.ts b/lib-portal/src/hooks/useToggleableState.ts new file mode 100644 index 0000000000000000000000000000000000000000..48e0a95e4fa22e0ed03a185b50fb670554aedbcc --- /dev/null +++ b/lib-portal/src/hooks/useToggleableState.ts @@ -0,0 +1,22 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { useReducer } from "react"; + +/** + * Calling the dispatch function twice with the same argument results in + * the state being set to `undefined`. + * This makes it possible to toggle one state on and off or set a new state. + */ +export function useToggleableState<TPanelName>(initialState?: TPanelName) { + function reduceToggleableState( + state: TPanelName | undefined, + newState: TPanelName | undefined, + ): TPanelName | undefined { + return newState === state ? undefined : newState; + } + + return useReducer(reduceToggleableState, initialState); +} diff --git a/lib-portal/src/hooks/useUuid.ts b/lib-portal/src/hooks/useUuid.ts index ef8bda1719f8b5b7832eec9e946c79293607a661..4c2a4e8e7e9cc37ac5cd7b817c2ff359c8221621 100644 --- a/lib-portal/src/hooks/useUuid.ts +++ b/lib-portal/src/hooks/useUuid.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/hooks/useWindowDimension.ts b/lib-portal/src/hooks/useWindowDimension.ts index 8e7859128b1a3290a733135ff6d7c000b4c80975..c85d444583cbe60580d4bd45f330804eacbd1494 100644 --- a/lib-portal/src/hooks/useWindowDimension.ts +++ b/lib-portal/src/hooks/useWindowDimension.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/next/contentSecurityPolicyHeaderMiddleware.ts b/lib-portal/src/next/contentSecurityPolicyHeaderMiddleware.ts index bffbaed37c7d20186258d842e70c6f3db496bd4b..6a38e3d4c79ec06c07437992a325077993534a57 100644 --- a/lib-portal/src/next/contentSecurityPolicyHeaderMiddleware.ts +++ b/lib-portal/src/next/contentSecurityPolicyHeaderMiddleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/next/redirectToPublicUrlMiddleware.ts b/lib-portal/src/next/redirectToPublicUrlMiddleware.ts index 8752d845cf0ecd62d196d2b5021b925b5286673e..66d06f0781a1db58a815538dde7f4b20abba77bf 100644 --- a/lib-portal/src/next/redirectToPublicUrlMiddleware.ts +++ b/lib-portal/src/next/redirectToPublicUrlMiddleware.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/next/renderingHooks.ts b/lib-portal/src/next/renderingHooks.ts index 56aec42683165ad148d2c894edbcb3d845574f3a..071186ba601a6ea6060b47972b485c3f5ef96bcd 100644 --- a/lib-portal/src/next/renderingHooks.ts +++ b/lib-portal/src/next/renderingHooks.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/schemas/environment.ts b/lib-portal/src/schemas/environment.ts new file mode 100644 index 0000000000000000000000000000000000000000..bce7895aedecc28a300a5e4c5d41b94d34f7726a --- /dev/null +++ b/lib-portal/src/schemas/environment.ts @@ -0,0 +1,12 @@ +/** + * Copyright 2025 cronn GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +import { picklist, pipe, string, url } from "valibot"; + +export const nodeEnvSchema = picklist(["development", "production"]); + +export const environmentTypeSchema = picklist(["local", "dev", "production"]); + +export const urlSchema = pipe(string(), url()); diff --git a/lib-portal/src/types/form.ts b/lib-portal/src/types/form.ts index 9a25d8f3144b4cdf42e17d8108d96ff840bd2d30..f681d3ed3d6bd2b83e2a9bfcdc32ba7947ff91ba 100644 --- a/lib-portal/src/types/form.ts +++ b/lib-portal/src/types/form.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/types/helpers.ts b/lib-portal/src/types/helpers.ts index eb24e8fd81cff03d23440f428ed39741d67e1843..7f2f1241f28e600546e40b41d97420609ab3591a 100644 --- a/lib-portal/src/types/helpers.ts +++ b/lib-portal/src/types/helpers.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/types/query.ts b/lib-portal/src/types/query.ts index 49410244ce82ba941662de7506e1bebc28e86298..99a1cac442fb06775f741f68589875d139856cba 100644 --- a/lib-portal/src/types/query.ts +++ b/lib-portal/src/types/query.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/types/react.ts b/lib-portal/src/types/react.ts index 0a7c07cd501f4134f661301e0ca678bc5b9403f2..97a60d566373ab5e9e2ce2fac56eace088fa375b 100644 --- a/lib-portal/src/types/react.ts +++ b/lib-portal/src/types/react.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/src/types/utility.ts b/lib-portal/src/types/utility.ts index 33df37f8109c2c5bdf4fa89c36666f1eca9cb629..e1f424ad6a8a9fe69db4583a82aa392972cbaeb4 100644 --- a/lib-portal/src/types/utility.ts +++ b/lib-portal/src/types/utility.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/lib-portal/vitest.config.ts b/lib-portal/vitest.config.ts index f8405bb9aba0f0e0a8b23e3d57331386c048195a..a0720f9c3ef2047e3877de2b4ee1c739e7c893d2 100644 --- a/lib-portal/vitest.config.ts +++ b/lib-portal/vitest.config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: Apache-2.0 */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ad110579607071d11eb6b916c5c69560b0c9448..364fe07a8bbe8c8c725106c79c2511f7492deb97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only lockfileVersion: '9.0' @@ -118,6 +118,9 @@ catalogs: '@fontsource/poppins': specifier: 5.1.0 version: 5.1.0 + '@fontsource/source-code-pro': + specifier: 5.1.0 + version: 5.1.0 '@mui/icons-material': specifier: 5.16.8 version: 5.16.8 @@ -219,7 +222,7 @@ importers: version: 4.1.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0) next: specifier: catalog:next - version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) prettier: specifier: catalog:prettier version: 3.4.1 @@ -282,7 +285,7 @@ importers: version: 1.2.1 next: specifier: catalog:next - version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) pkijs: specifier: 3.2.4 version: 3.2.4 @@ -346,13 +349,13 @@ importers: version: 9.1.0(eslint@9.15.0) eslint-plugin-import: specifier: catalog:eslint - version: 2.31.0(@typescript-eslint/parser@8.10.0(eslint@9.15.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) + version: 2.31.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0) eslint-plugin-promise: specifier: catalog:eslint version: 7.2.1(eslint@9.15.0) eslint-plugin-unused-imports: specifier: catalog:eslint - version: 4.1.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.10.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0) + version: 4.1.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0) prettier: specifier: catalog:prettier version: 3.4.1 @@ -432,7 +435,7 @@ importers: version: 1.0.0 next: specifier: catalog:next - version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: catalog:react version: 18.3.1 @@ -525,7 +528,7 @@ importers: devDependencies: '@axe-core/playwright': specifier: 4.10.1 - version: 4.10.1(playwright-core@1.49.0) + version: 4.10.1(playwright-core@1.49.1) '@eshg/admin-portal-api': specifier: workspace:* version: link:../admin-portal-api @@ -548,8 +551,8 @@ importers: specifier: 26.0.6 version: 26.0.6 '@playwright/test': - specifier: 1.49.0 - version: 1.49.0 + specifier: 1.49.1 + version: 1.49.1 '@trivago/prettier-plugin-sort-imports': specifier: catalog:prettier version: 4.3.0(prettier@3.4.1) @@ -605,7 +608,7 @@ importers: dependencies: '@ducanh2912/next-pwa': specifier: 10.2.9 - version: 10.2.9(@types/babel__core@7.20.5)(next@14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.92.1) + version: 10.2.9(@types/babel__core@7.20.5)(next@14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.92.1) '@emotion/react': specifier: catalog:joy version: 11.13.5(@types/react@18.3.12)(react@18.3.1) @@ -621,6 +624,9 @@ importers: '@fontsource/poppins': specifier: catalog:joy version: 5.1.0 + '@fontsource/source-code-pro': + specifier: catalog:joy + version: 5.1.0 '@fullcalendar/core': specifier: catalog:fullcalendar version: 6.1.15 @@ -689,7 +695,7 @@ importers: version: 34.3.1 next: specifier: catalog:next - version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: catalog:react version: 18.3.1 @@ -821,7 +827,7 @@ importers: version: 2.4.6(react@18.3.1) next: specifier: catalog:next - version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: catalog:react version: 18.3.1 @@ -834,6 +840,9 @@ importers: uuid: specifier: catalog:common version: 11.0.3 + valibot: + specifier: catalog:common + version: 0.42.1(typescript@5.7.2) devDependencies: '@eslint/compat': specifier: catalog:eslint @@ -873,13 +882,13 @@ importers: version: 9.1.0(eslint@9.15.0) eslint-plugin-import: specifier: catalog:eslint - version: 2.31.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0) + version: 2.31.0(@typescript-eslint/parser@8.10.0(eslint@9.15.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.15.0) eslint-plugin-promise: specifier: catalog:eslint version: 7.2.1(eslint@9.15.0) eslint-plugin-unused-imports: specifier: catalog:eslint - version: 4.1.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0) + version: 4.1.4(@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.10.0(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0)(typescript@5.7.2))(eslint@9.15.0) prettier: specifier: catalog:prettier version: 3.4.1 @@ -2273,6 +2282,9 @@ packages: '@fontsource/poppins@5.1.0': resolution: {integrity: sha512-tpLXlnNi2fwQjiipvuj4uNFHCdoLA8izRsKdoexZuEzjx0r/g1aKLf4ta6lFgF7L+/+AFdmaXFlUwwvmDzYH+g==} + '@fontsource/source-code-pro@5.1.0': + resolution: {integrity: sha512-aT6pQbwEM/oGyK4Q8XOOknFcrXTAnP+GLVuEADBnB4avOYAOa4U5BG/D5JrTobwckuWyKrbMZ8EdcXPsqizfSw==} + '@fullcalendar/core@6.1.15': resolution: {integrity: sha512-BuX7o6ALpLb84cMw1FCB9/cSgF4JbVO894cjJZ6kP74jzbUZNjtwffwRdA+Id8rrLjT30d/7TrkW90k4zbXB5Q==} @@ -2680,8 +2692,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.49.0': - resolution: {integrity: sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==} + '@playwright/test@1.49.1': + resolution: {integrity: sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==} engines: {node: '>=18'} hasBin: true @@ -5693,13 +5705,13 @@ packages: resolution: {integrity: sha512-Et9V5QpvBilPFgagJcaKBqXjKrrgF5JL2mSDELk1vvbOTt4fuBhSSsGn9Tcz0TQTfS5GCpXQ31Whrpqeqp0VRg==} engines: {node: '>=12.0.0'} - playwright-core@1.49.0: - resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + playwright-core@1.49.1: + resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==} engines: {node: '>=18'} hasBin: true - playwright@1.49.0: - resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + playwright@1.49.1: + resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==} engines: {node: '>=18'} hasBin: true @@ -7125,10 +7137,10 @@ snapshots: '@bufbuild/protobuf': 1.7.2 optional: true - '@axe-core/playwright@4.10.1(playwright-core@1.49.0)': + '@axe-core/playwright@4.10.1(playwright-core@1.49.1)': dependencies: axe-core: 4.10.2 - playwright-core: 1.49.0 + playwright-core: 1.49.1 '@babel/code-frame@7.25.7': dependencies: @@ -8130,10 +8142,10 @@ snapshots: '@drauu/core@0.4.2': {} - '@ducanh2912/next-pwa@10.2.9(@types/babel__core@7.20.5)(next@14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.92.1)': + '@ducanh2912/next-pwa@10.2.9(@types/babel__core@7.20.5)(next@14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.92.1)': dependencies: fast-glob: 3.3.2 - next: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) semver: 7.6.3 webpack: 5.92.1 workbox-build: 7.1.1(@types/babel__core@7.20.5) @@ -8514,6 +8526,8 @@ snapshots: '@fontsource/poppins@5.1.0': {} + '@fontsource/source-code-pro@5.1.0': {} + '@fullcalendar/core@6.1.15': dependencies: preact: 10.12.1 @@ -8997,9 +9011,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.49.0': + '@playwright/test@1.49.1': dependencies: - playwright: 1.49.0 + playwright: 1.49.1 '@polka/url@1.0.0-next.25': {} @@ -12457,7 +12471,7 @@ snapshots: netmask@2.0.2: {} - next@14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.14(@babel/core@7.25.8)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.14 '@swc/helpers': 0.5.5 @@ -12478,7 +12492,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.14 '@next/swc-win32-ia32-msvc': 14.2.14 '@next/swc-win32-x64-msvc': 14.2.14 - '@playwright/test': 1.49.0 + '@playwright/test': 1.49.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -12862,11 +12876,11 @@ snapshots: pvutils: 1.1.3 tslib: 2.6.3 - playwright-core@1.49.0: {} + playwright-core@1.49.1: {} - playwright@1.49.0: + playwright@1.49.1: dependencies: - playwright-core: 1.49.0 + playwright-core: 1.49.1 optionalDependencies: fsevents: 2.3.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9abd4985a3fd327376c5002b42de3f337940ec5f..0de124265916bbb999f951a0dbfa5ee51658ff20 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only packages: @@ -33,6 +33,7 @@ catalogs: "@emotion/react": "11.13.5" "@emotion/styled": "11.13.5" "@fontsource/poppins": "5.1.0" + "@fontsource/source-code-pro": "5.1.0" i18next: "i18next": "24.0.2" diff --git a/publiccode.yml b/publiccode.yml index 99f4966a0564839156364d101418090d7d1bc133..584970b6944ece44ea1e60389c08f6587478d362 100644 --- a/publiccode.yml +++ b/publiccode.yml @@ -1,4 +1,4 @@ -# Copyright 2024 cronn GmbH +# Copyright 2025 cronn GmbH # SPDX-License-Identifier: AGPL-3.0-only # This repository adheres to the publiccode.yml standard by including this diff --git a/reverse-proxy/citizen-portal.conf b/reverse-proxy/citizen-portal.conf index 8704eaa39f7978037e8d4842be80a8911307a328..902ec94f9cbe3d2105cc6c87b4cf5eda31c1c6bf 100644 --- a/reverse-proxy/citizen-portal.conf +++ b/reverse-proxy/citizen-portal.conf @@ -66,6 +66,11 @@ server { proxy_pass http://host.docker.internal:8085/citizen/auth/; } + # No authorization required for public api + location /api/medical-registry/medical-registry-entries/public { + proxy_pass http://host.docker.internal:8097/medical-registry-entries/public; + } + # No authorization required for the CitizenPublicController location /api/official-medical-service/citizen-public/ { proxy_pass http://host.docker.internal:8099/citizen-public/; @@ -86,6 +91,11 @@ server { proxy_pass http://host.docker.internal:8085/feature-toggles; } + # No authorization required for the medical registry feature toggles endpoint + location = /api/medical-registry/feature-toggles { + proxy_pass http://host.docker.internal:8097/feature-toggles; + } + # handle disabled backends as 404 # note: all /api/ routes must appear before this location /api/ { diff --git a/vitest.config.ts b/vitest.config.ts index 644ad8dd332b702fa7d01d65924c48f933f3cab1..9d7c948631c463177d13e2cceb075861d0c7f89f 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */ diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 5bb839fc66eae908ab19925ebfbe2cd1e4002c9e..0654eca6e03872af9059686d200431e997f1b9e2 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,5 +1,5 @@ /** - * Copyright 2024 cronn GmbH + * Copyright 2025 cronn GmbH * SPDX-License-Identifier: AGPL-3.0-only */