-
+
\ No newline at end of file
diff --git a/src/components/Pagination.vue b/src/components/Pagination.vue
index 8b6ead5..194a328 100644
--- a/src/components/Pagination.vue
+++ b/src/components/Pagination.vue
@@ -1,9 +1,10 @@
-
+
+
@@ -87,15 +88,22 @@ const slots = defineSlots<{
const timer = ref(undefined) as undefined | any;
const currentPage = ref(0);
const searchString = ref("");
+const deferingSearch = ref(false)
watch(searchString, async () => {
+ deferingSearch.value = true
clearTimeout(timer.value);
timer.value = setTimeout(() => {
currentPage.value = 0;
+ deferingSearch.value = false
emit("search", searchString.value);
}, 600);
});
+watch(() => props.totalCount, async () => {
+ currentPage.value = 0;
+});
+
const emit = defineEmits({
submit(id: number) {
return typeof id == "number";
@@ -104,7 +112,7 @@ const emit = defineEmits({
return typeof offset == "number" && typeof offset == "number" && typeof searchString == "number";
},
search(search: string) {
- return typeof search == "number";
+ return typeof search == "string";
},
clickRow(elem: T) {
return true;
@@ -151,7 +159,8 @@ const loadPage = (newPage: number | ".") => {
if (pageEnd > entryCount.value) pageEnd = entryCount.value;
let loadedElementCount = filterData(props.items, searchString.value, pageStart, pageEnd).length;
- if (loadedElementCount < props.maxEntriesPerPage)
+ console.log(loadedElementCount, props.maxEntriesPerPage, pageStart, pageEnd)
+ if (loadedElementCount < props.maxEntriesPerPage && (pageEnd != props.totalCount || loadedElementCount == 0))
emit("loadData", pageStart, props.maxEntriesPerPage, searchString.value);
currentPage.value = newPage;
diff --git a/src/components/admin/club/calendar/CalendarLinkModal.vue b/src/components/admin/club/calendar/CalendarLinkModal.vue
index 5c16641..e304e6e 100644
--- a/src/components/admin/club/calendar/CalendarLinkModal.vue
+++ b/src/components/admin/club/calendar/CalendarLinkModal.vue
@@ -105,8 +105,8 @@ import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import { RouterLink } from "vue-router";
import { useModalStore } from "@/stores/modal";
-import { useCalendarTypeStore } from "@/stores/admin/calendarType";
-import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
+import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
+import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import TextCopy from "@/components/TextCopy.vue";
diff --git a/src/components/admin/club/calendar/CreateCalendarModal.vue b/src/components/admin/club/calendar/CreateCalendarModal.vue
index 1d71265..5b068a9 100644
--- a/src/components/admin/club/calendar/CreateCalendarModal.vue
+++ b/src/components/admin/club/calendar/CreateCalendarModal.vue
@@ -143,12 +143,12 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
-import { useCalendarStore } from "@/stores/admin/calendar";
-import type { CreateCalendarViewModel } from "@/viewmodels/admin/calendar.models";
+import { useCalendarStore } from "@/stores/admin/club/calendar";
+import type { CreateCalendarViewModel } from "@/viewmodels/admin/club/calendar.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
-import { useCalendarTypeStore } from "@/stores/admin/calendarType";
-import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
+import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
+import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
diff --git a/src/components/admin/club/member/MemberAwardListItem.vue b/src/components/admin/club/member/MemberAwardListItem.vue
index 8f14877..da4d776 100644
--- a/src/components/admin/club/member/MemberAwardListItem.vue
+++ b/src/components/admin/club/member/MemberAwardListItem.vue
@@ -16,7 +16,7 @@
diff --git a/src/components/admin/club/member/MemberCommunicationListItem.vue b/src/components/admin/club/member/MemberCommunicationListItem.vue
index 7e09f13..1aca640 100644
--- a/src/components/admin/club/member/MemberCommunicationListItem.vue
+++ b/src/components/admin/club/member/MemberCommunicationListItem.vue
@@ -16,7 +16,7 @@
diff --git a/src/components/admin/club/member/MemberExecutivePositionListItem.vue b/src/components/admin/club/member/MemberExecutivePositionListItem.vue
index 0cd4c30..87ba2b2 100644
--- a/src/components/admin/club/member/MemberExecutivePositionListItem.vue
+++ b/src/components/admin/club/member/MemberExecutivePositionListItem.vue
@@ -14,7 +14,7 @@
diff --git a/src/components/admin/club/member/MemberQualificationCreateModal.vue b/src/components/admin/club/member/MemberQualificationCreateModal.vue
index f814539..86690ff 100644
--- a/src/components/admin/club/member/MemberQualificationCreateModal.vue
+++ b/src/components/admin/club/member/MemberQualificationCreateModal.vue
@@ -106,14 +106,14 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
-import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
-import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
-import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
-import { useMembershipStore } from "@/stores/admin/membership";
-import { useQualificationStore } from "@/stores/admin/qualification";
-import type { QualificationViewModel } from "@/viewmodels/admin/qualification.models";
-import type { CreateMemberQualificationViewModel } from "@/viewmodels/admin/memberQualification.models";
-import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
+import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
+import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
+import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
+import { useMembershipStore } from "@/stores/admin/club/member/membership";
+import { useQualificationStore } from "@/stores/admin/settings/qualification";
+import type { QualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
+import type { CreateMemberQualificationViewModel } from "@/viewmodels/admin/club/member/memberQualification.models";
+import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
diff --git a/src/components/admin/club/member/MemberQualificationListItem.vue b/src/components/admin/club/member/MemberQualificationListItem.vue
index 4c8625b..8fd6b98 100644
--- a/src/components/admin/club/member/MemberQualificationListItem.vue
+++ b/src/components/admin/club/member/MemberQualificationListItem.vue
@@ -17,7 +17,7 @@
@@ -169,7 +165,6 @@ export default defineComponent({
let formData = e.target.elements;
let updateMembership: UpdateMembershipViewModel = {
id: this.membership.id,
- internalId: formData.internalId.value,
start: formData.start.value,
end: formData.end.value,
terminationReason: formData.terminationReason.value,
diff --git a/src/components/admin/club/member/MembershipListItem.vue b/src/components/admin/club/member/MembershipListItem.vue
index a7dab8c..3a674f0 100644
--- a/src/components/admin/club/member/MembershipListItem.vue
+++ b/src/components/admin/club/member/MembershipListItem.vue
@@ -8,9 +8,8 @@
-
-
Interne ID: {{ membership.internalId }}
-
beendet, weil: {{ membership.terminationReason }}
+
+
Grund: {{ membership.terminationReason }}
@@ -18,7 +17,7 @@
diff --git a/src/components/admin/club/newsletter/NewsletterPreviewModal.vue b/src/components/admin/club/newsletter/NewsletterPreviewModal.vue
index eac4d6d..c5b3b4a 100644
--- a/src/components/admin/club/newsletter/NewsletterPreviewModal.vue
+++ b/src/components/admin/club/newsletter/NewsletterPreviewModal.vue
@@ -15,7 +15,7 @@ import { mapState, mapActions } from "pinia";
import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import type { AxiosResponse } from "axios";
-import { useNewsletterPrintoutStore } from "@/stores/admin/newsletterPrintout";
+import { useNewsletterPrintoutStore } from "@/stores/admin/club/newsletter/newsletterPrintout";
diff --git a/src/components/admin/settings/calendarType/DeleteCalendarTypeModal.vue b/src/components/admin/settings/calendarType/DeleteCalendarTypeModal.vue
index e974962..46642ec 100644
--- a/src/components/admin/settings/calendarType/DeleteCalendarTypeModal.vue
+++ b/src/components/admin/settings/calendarType/DeleteCalendarTypeModal.vue
@@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
-import { useCalendarTypeStore } from "@/stores/admin/calendarType";
+import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
diff --git a/src/components/admin/settings/qualification/CreateQualificationModal.vue b/src/components/admin/settings/qualification/CreateQualificationModal.vue
index 691bbd1..a70a710 100644
--- a/src/components/admin/settings/qualification/CreateQualificationModal.vue
+++ b/src/components/admin/settings/qualification/CreateQualificationModal.vue
@@ -36,8 +36,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
-import { useQualificationStore } from "@/stores/admin/qualification";
-import type { CreateQualificationViewModel } from "@/viewmodels/admin/qualification.models";
+import { useQualificationStore } from "@/stores/admin/settings/qualification";
+import type { CreateQualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
diff --git a/src/components/queryBuilder/Join.vue b/src/components/queryBuilder/Join.vue
index 6678aa7..f652f96 100644
--- a/src/components/queryBuilder/Join.vue
+++ b/src/components/queryBuilder/Join.vue
@@ -22,7 +22,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { DynamicQueryStructure } from "@/types/dynamicQueries";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { PlusIcon } from "@heroicons/vue/24/outline";
import JoinTable from "./JoinTable.vue";
diff --git a/src/components/queryBuilder/JoinTable.vue b/src/components/queryBuilder/JoinTable.vue
index c4db5b9..cedf9c3 100644
--- a/src/components/queryBuilder/JoinTable.vue
+++ b/src/components/queryBuilder/JoinTable.vue
@@ -21,7 +21,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { DynamicQueryStructure } from "@/types/dynamicQueries";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import Table from "./Table.vue";
import { TrashIcon } from "@heroicons/vue/24/outline";
import { joinTableName } from "@/helpers/queryFormatter";
diff --git a/src/components/queryBuilder/NestedCondition.vue b/src/components/queryBuilder/NestedCondition.vue
index 111e8e3..d6ecbac 100644
--- a/src/components/queryBuilder/NestedCondition.vue
+++ b/src/components/queryBuilder/NestedCondition.vue
@@ -20,7 +20,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { ConditionStructure, WhereType } from "@/types/dynamicQueries";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { TrashIcon } from "@heroicons/vue/24/outline";
import NestedWhere from "./NestedWhere.vue";
diff --git a/src/components/queryBuilder/NestedWhere.vue b/src/components/queryBuilder/NestedWhere.vue
index eef4464..d07d108 100644
--- a/src/components/queryBuilder/NestedWhere.vue
+++ b/src/components/queryBuilder/NestedWhere.vue
@@ -33,7 +33,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { ConditionStructure } from "@/types/dynamicQueries";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import NestedCondition from "./NestedCondition.vue";
import Condition from "./Condition.vue";
import { PlusIcon, RectangleStackIcon } from "@heroicons/vue/24/outline";
diff --git a/src/components/queryBuilder/Order.vue b/src/components/queryBuilder/Order.vue
index 50fc646..b8a6988 100644
--- a/src/components/queryBuilder/Order.vue
+++ b/src/components/queryBuilder/Order.vue
@@ -23,7 +23,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { OrderByStructure } from "@/types/dynamicQueries";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import OrderStructure from "./OrderStructure.vue";
import { PlusIcon } from "@heroicons/vue/24/outline";
diff --git a/src/components/queryBuilder/OrderStructure.vue b/src/components/queryBuilder/OrderStructure.vue
index a233767..4667fcb 100644
--- a/src/components/queryBuilder/OrderStructure.vue
+++ b/src/components/queryBuilder/OrderStructure.vue
@@ -22,7 +22,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { OrderByStructure, OrderByType } from "@/types/dynamicQueries";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { TrashIcon } from "@heroicons/vue/24/outline";
diff --git a/src/components/queryBuilder/Table.vue b/src/components/queryBuilder/Table.vue
index 72ac140..3ad97ce 100644
--- a/src/components/queryBuilder/Table.vue
+++ b/src/components/queryBuilder/Table.vue
@@ -12,7 +12,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { ConditionStructure, DynamicQueryStructure, OrderByStructure } from "@/types/dynamicQueries";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import ColumnSelect from "./ColumnSelect.vue";
import Where from "./Where.vue";
import Order from "./Order.vue";
diff --git a/src/components/queryBuilder/TableSelect.vue b/src/components/queryBuilder/TableSelect.vue
index 026e363..d942da4 100644
--- a/src/components/queryBuilder/TableSelect.vue
+++ b/src/components/queryBuilder/TableSelect.vue
@@ -13,7 +13,7 @@
diff --git a/src/views/admin/club/members/Member.vue b/src/views/admin/club/members/Member.vue
index a53b80a..2d98b4d 100644
--- a/src/views/admin/club/members/Member.vue
+++ b/src/views/admin/club/members/Member.vue
@@ -11,8 +11,9 @@
:items="members"
:totalCount="totalCount"
:indicateLoading="loading == 'loading'"
- @load-data="(offset, count, search) => fetchMembers(offset, count)"
- @search="(search) => fetchMembers(0, 25, true)"
+ :useSearch="true"
+ @load-data="(offset, count, search) => fetchMembers(offset, count, search)"
+ @search="(search) => fetchMembers(0, maxEntriesPerPage, search, true)"
>
@@ -33,12 +34,11 @@
import { defineAsyncComponent, defineComponent, markRaw } from "vue";
import { mapActions, mapState } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { ChevronRightIcon, ChevronLeftIcon } from "@heroicons/vue/20/solid";
-import { useMemberStore } from "@/stores/admin/member";
+import { useMemberStore } from "@/stores/admin/club/member/member";
import MemberListItem from "@/components/admin/club/member/MemberListItem.vue";
import { useModalStore } from "@/stores/modal";
import Pagination from "@/components/Pagination.vue";
-import type { MemberViewModel } from "@/viewmodels/admin/member.models";
+import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import { useAbilityStore } from "@/stores/ability";
@@ -55,7 +55,7 @@ export default defineComponent({
...mapState(useAbilityStore, ["can"]),
},
mounted() {
- this.fetchMembers(0, this.maxEntriesPerPage, true);
+ this.fetchMembers(0, this.maxEntriesPerPage, "", true);
},
methods: {
...mapActions(useMemberStore, ["fetchMembers"]),
diff --git a/src/views/admin/club/members/MemberAwards.vue b/src/views/admin/club/members/MemberAwards.vue
index bea48f3..f535d27 100644
--- a/src/views/admin/club/members/MemberAwards.vue
+++ b/src/views/admin/club/members/MemberAwards.vue
@@ -17,7 +17,7 @@
import { defineAsyncComponent, defineComponent, markRaw } from "vue";
import { mapActions, mapState } from "pinia";
import Spinner from "@/components/Spinner.vue";
-import { useMemberAwardStore } from "@/stores/admin/memberAward";
+import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
import MemberAwardListItem from "@/components/admin/club/member/MemberAwardListItem.vue";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/club/members/MemberCommunication.vue b/src/views/admin/club/members/MemberCommunication.vue
index c6ac9f7..c948c22 100644
--- a/src/views/admin/club/members/MemberCommunication.vue
+++ b/src/views/admin/club/members/MemberCommunication.vue
@@ -20,11 +20,11 @@
diff --git a/src/views/admin/club/newsletter/NewsletterData.vue b/src/views/admin/club/newsletter/NewsletterData.vue
index ce665bd..f9195b6 100644
--- a/src/views/admin/club/newsletter/NewsletterData.vue
+++ b/src/views/admin/club/newsletter/NewsletterData.vue
@@ -51,7 +51,7 @@
import { defineComponent } from "vue";
import { mapActions, mapState, mapWritableState } from "pinia";
import Spinner from "@/components/Spinner.vue";
-import { useNewsletterStore } from "@/stores/admin/newsletter";
+import { useNewsletterStore } from "@/stores/admin/club/newsletter/newsletter";
import { QuillEditor } from "@vueup/vue-quill";
import "@vueup/vue-quill/dist/vue-quill.snow.css";
import { toolbarOptions } from "@/helpers/quillConfig";
diff --git a/src/views/admin/club/newsletter/NewsletterDates.vue b/src/views/admin/club/newsletter/NewsletterDates.vue
index cbc9414..152a63f 100644
--- a/src/views/admin/club/newsletter/NewsletterDates.vue
+++ b/src/views/admin/club/newsletter/NewsletterDates.vue
@@ -106,13 +106,13 @@ import Spinner from "@/components/Spinner.vue";
import { QuillEditor } from "@vueup/vue-quill";
import "@vueup/vue-quill/dist/vue-quill.snow.css";
import { toolbarOptions } from "@/helpers/quillConfig";
-import { useNewsletterDatesStore } from "@/stores/admin/newsletterDates";
+import { useNewsletterDatesStore } from "@/stores/admin/club/newsletter/newsletterDates";
import { useAbilityStore } from "@/stores/ability";
-import { useCalendarStore } from "@/stores/admin/calendar";
-import type { CalendarViewModel } from "@/viewmodels/admin/calendar.models";
+import { useCalendarStore } from "@/stores/admin/club/calendar";
+import type { CalendarViewModel } from "@/viewmodels/admin/club/calendar.models";
import { TrashIcon } from "@heroicons/vue/24/outline";
import cloneDeep from "lodash.clonedeep";
-import type { NewsletterDatesViewModel } from "@/viewmodels/admin/newsletterDates.models";
+import type { NewsletterDatesViewModel } from "@/viewmodels/admin/club/newsletter/newsletterDates.models";
diff --git a/src/views/admin/club/newsletter/NewsletterRouting.vue b/src/views/admin/club/newsletter/NewsletterRouting.vue
index 351d8ab..16458a1 100644
--- a/src/views/admin/club/newsletter/NewsletterRouting.vue
+++ b/src/views/admin/club/newsletter/NewsletterRouting.vue
@@ -49,12 +49,12 @@ import { defineAsyncComponent, defineComponent, markRaw } from "vue";
import { mapActions, mapState } from "pinia";
import MainTemplate from "@/templates/Main.vue";
import { RouterLink, RouterView } from "vue-router";
-import { useNewsletterStore } from "@/stores/admin/newsletter";
+import { useNewsletterStore } from "@/stores/admin/club/newsletter/newsletter";
import { useModalStore } from "@/stores/modal";
import NewsletterSyncing from "@/components/admin/club/newsletter/NewsletterSyncing.vue";
import { PrinterIcon } from "@heroicons/vue/24/outline";
-import { useNewsletterDatesStore } from "../../../../stores/admin/newsletterDates";
-import { useNewsletterRecipientsStore } from "../../../../stores/admin/newsletterRecipients";
+import { useNewsletterDatesStore } from "../../../../stores/admin/club/newsletter/newsletterDates";
+import { useNewsletterRecipientsStore } from "../../../../stores/admin/club/newsletter/newsletterRecipients";
diff --git a/src/views/admin/club/protocol/ProtocolAgenda.vue b/src/views/admin/club/protocol/ProtocolAgenda.vue
index a83f314..767d723 100644
--- a/src/views/admin/club/protocol/ProtocolAgenda.vue
+++ b/src/views/admin/club/protocol/ProtocolAgenda.vue
@@ -58,8 +58,8 @@ import Spinner from "@/components/Spinner.vue";
import { QuillEditor } from "@vueup/vue-quill";
import "@vueup/vue-quill/dist/vue-quill.snow.css";
import { toolbarOptions } from "@/helpers/quillConfig";
-import { useProtocolAgendaStore } from "@/stores/admin/protocolAgenda";
-import type { ProtocolAgendaViewModel } from "@/viewmodels/admin/protocolAgenda.models";
+import { useProtocolAgendaStore } from "@/stores/admin/club/protocol/protocolAgenda";
+import type { ProtocolAgendaViewModel } from "@/viewmodels/admin/club/protocol/protocolAgenda.models";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/club/protocol/ProtocolDecisions.vue b/src/views/admin/club/protocol/ProtocolDecisions.vue
index d365498..9f72172 100644
--- a/src/views/admin/club/protocol/ProtocolDecisions.vue
+++ b/src/views/admin/club/protocol/ProtocolDecisions.vue
@@ -55,11 +55,11 @@
import { defineComponent } from "vue";
import { mapActions, mapState, mapWritableState } from "pinia";
import Spinner from "@/components/Spinner.vue";
-import { useProtocolStore } from "@/stores/admin/protocol";
+import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import { QuillEditor } from "@vueup/vue-quill";
import "@vueup/vue-quill/dist/vue-quill.snow.css";
import { toolbarOptions } from "@/helpers/quillConfig";
-import { useProtocolDecisionStore } from "@/stores/admin/protocolDecision";
+import { useProtocolDecisionStore } from "@/stores/admin/club/protocol/protocolDecision";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/club/protocol/ProtocolOverview.vue b/src/views/admin/club/protocol/ProtocolOverview.vue
index e14788a..4a14774 100644
--- a/src/views/admin/club/protocol/ProtocolOverview.vue
+++ b/src/views/admin/club/protocol/ProtocolOverview.vue
@@ -63,7 +63,7 @@
import { defineComponent } from "vue";
import { mapActions, mapState, mapWritableState } from "pinia";
import Spinner from "@/components/Spinner.vue";
-import { useProtocolStore } from "@/stores/admin/protocol";
+import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import { QuillEditor } from "@vueup/vue-quill";
import "@vueup/vue-quill/dist/vue-quill.snow.css";
import { toolbarOptions } from "@/helpers/quillConfig";
diff --git a/src/views/admin/club/protocol/ProtocolPresence.vue b/src/views/admin/club/protocol/ProtocolPresence.vue
index be6aab5..8696512 100644
--- a/src/views/admin/club/protocol/ProtocolPresence.vue
+++ b/src/views/admin/club/protocol/ProtocolPresence.vue
@@ -96,10 +96,10 @@ import {
} from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { TrashIcon } from "@heroicons/vue/24/outline";
-import { useProtocolStore } from "@/stores/admin/protocol";
-import { useMemberStore } from "@/stores/admin/member";
-import type { MemberViewModel } from "@/viewmodels/admin/member.models";
-import { useProtocolPresenceStore } from "@/stores/admin/protocolPresence";
+import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
+import { useMemberStore } from "@/stores/admin/club/member/member";
+import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models";
+import { useProtocolPresenceStore } from "@/stores/admin/club/protocol/protocolPresence";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/club/protocol/ProtocolPrintout.vue b/src/views/admin/club/protocol/ProtocolPrintout.vue
index 54ecd3d..132ebb2 100644
--- a/src/views/admin/club/protocol/ProtocolPrintout.vue
+++ b/src/views/admin/club/protocol/ProtocolPrintout.vue
@@ -52,7 +52,7 @@ import { mapActions, mapState } from "pinia";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
-import { useProtocolPrintoutStore } from "@/stores/admin/protocolPrintout";
+import { useProtocolPrintoutStore } from "@/stores/admin/club/protocol/protocolPrintout";
import { ArrowDownTrayIcon, ViewfinderCircleIcon } from "@heroicons/vue/24/outline";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/club/protocol/ProtocolRouting.vue b/src/views/admin/club/protocol/ProtocolRouting.vue
index e333896..b730fed 100644
--- a/src/views/admin/club/protocol/ProtocolRouting.vue
+++ b/src/views/admin/club/protocol/ProtocolRouting.vue
@@ -49,7 +49,7 @@ import { defineAsyncComponent, defineComponent, markRaw } from "vue";
import { mapActions, mapState } from "pinia";
import MainTemplate from "@/templates/Main.vue";
import { RouterLink, RouterView } from "vue-router";
-import { useProtocolStore } from "@/stores/admin/protocol";
+import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import { useModalStore } from "@/stores/modal";
import ProtocolSyncing from "@/components/admin/club/protocol/ProtocolSyncing.vue";
import { PrinterIcon } from "@heroicons/vue/24/outline";
diff --git a/src/views/admin/club/protocol/ProtocolVoting.vue b/src/views/admin/club/protocol/ProtocolVoting.vue
index ce60bce..595ce43 100644
--- a/src/views/admin/club/protocol/ProtocolVoting.vue
+++ b/src/views/admin/club/protocol/ProtocolVoting.vue
@@ -72,11 +72,11 @@
import { defineComponent } from "vue";
import { mapActions, mapState } from "pinia";
import Spinner from "@/components/Spinner.vue";
-import { useProtocolStore } from "@/stores/admin/protocol";
+import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import { QuillEditor } from "@vueup/vue-quill";
import "@vueup/vue-quill/dist/vue-quill.snow.css";
import { toolbarOptions } from "@/helpers/quillConfig";
-import { useProtocolVotingStore } from "@/stores/admin/protocolVoting";
+import { useProtocolVotingStore } from "@/stores/admin/club/protocol/protocolVoting";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/club/query/Builder.vue b/src/views/admin/club/query/Builder.vue
index 762abc6..faba32c 100644
--- a/src/views/admin/club/query/Builder.vue
+++ b/src/views/admin/club/query/Builder.vue
@@ -61,10 +61,10 @@ import { defineComponent } from "vue";
import { mapActions, mapState, mapWritableState } from "pinia";
import MainTemplate from "@/templates/Main.vue";
import Pagination from "@/components/Pagination.vue";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import BuilderHost from "@/components/queryBuilder/BuilderHost.vue";
import type { DynamicQueryStructure, FieldType } from "@/types/dynamicQueries";
-import { useQueryStoreStore } from "@/stores/admin/queryStore";
+import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
diff --git a/src/views/admin/settings/CalendarType.vue b/src/views/admin/settings/calendarType/CalendarType.vue
similarity index 95%
rename from src/views/admin/settings/CalendarType.vue
rename to src/views/admin/settings/calendarType/CalendarType.vue
index 76c6296..311a4e9 100644
--- a/src/views/admin/settings/CalendarType.vue
+++ b/src/views/admin/settings/calendarType/CalendarType.vue
@@ -28,7 +28,7 @@
import { defineComponent, defineAsyncComponent, markRaw } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useCalendarTypeStore } from "@/stores/admin/calendarType";
+import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
import CalendarTypeListItem from "@/components/admin/settings/calendarType/CalendarTypeListItem.vue";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/settings/CalendarTypeEdit.vue b/src/views/admin/settings/calendarType/CalendarTypeEdit.vue
similarity index 97%
rename from src/views/admin/settings/CalendarTypeEdit.vue
rename to src/views/admin/settings/calendarType/CalendarTypeEdit.vue
index 14ea437..41f043a 100644
--- a/src/views/admin/settings/CalendarTypeEdit.vue
+++ b/src/views/admin/settings/calendarType/CalendarTypeEdit.vue
@@ -53,12 +53,12 @@
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useCalendarTypeStore } from "@/stores/admin/calendarType";
+import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { RouterLink } from "vue-router";
-import type { CalendarTypeViewModel, UpdateCalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
+import type { CalendarTypeViewModel, UpdateCalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import cloneDeep from "lodash.clonedeep";
import isEqual from "lodash.isequal";
diff --git a/src/views/admin/settings/CommunicationType.vue b/src/views/admin/settings/communicationType/CommunicationType.vue
similarity index 95%
rename from src/views/admin/settings/CommunicationType.vue
rename to src/views/admin/settings/communicationType/CommunicationType.vue
index c9bdf39..a7aa92f 100644
--- a/src/views/admin/settings/CommunicationType.vue
+++ b/src/views/admin/settings/communicationType/CommunicationType.vue
@@ -28,7 +28,7 @@
import { defineComponent, defineAsyncComponent, markRaw } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
+import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
import CommunicationTypeListItem from "@/components/admin/settings/communicationType/CommunicationTypeListItem.vue";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/settings/CommunicationTypeEdit.vue b/src/views/admin/settings/communicationType/CommunicationTypeEdit.vue
similarity index 97%
rename from src/views/admin/settings/CommunicationTypeEdit.vue
rename to src/views/admin/settings/communicationType/CommunicationTypeEdit.vue
index 00d31e9..5ba1628 100644
--- a/src/views/admin/settings/CommunicationTypeEdit.vue
+++ b/src/views/admin/settings/communicationType/CommunicationTypeEdit.vue
@@ -85,7 +85,7 @@
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
+import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
@@ -93,7 +93,7 @@ import { RouterLink } from "vue-router";
import type {
CommunicationTypeViewModel,
UpdateCommunicationTypeViewModel,
-} from "@/viewmodels/admin/communicationType.models";
+} from "@/viewmodels/admin/settings/communicationType.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import cloneDeep from "lodash.clonedeep";
diff --git a/src/views/admin/settings/ExecutivePosition.vue b/src/views/admin/settings/executivePosition/ExecutivePosition.vue
similarity index 95%
rename from src/views/admin/settings/ExecutivePosition.vue
rename to src/views/admin/settings/executivePosition/ExecutivePosition.vue
index 5bf69da..46b95ff 100644
--- a/src/views/admin/settings/ExecutivePosition.vue
+++ b/src/views/admin/settings/executivePosition/ExecutivePosition.vue
@@ -33,7 +33,7 @@
import { defineComponent, defineAsyncComponent, markRaw } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
+import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
import ExecutivePositionListItem from "@/components/admin/settings/executivePosition/ExecutivePositionListItem.vue";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/settings/ExecutivePositionEdit.vue b/src/views/admin/settings/executivePosition/ExecutivePositionEdit.vue
similarity index 96%
rename from src/views/admin/settings/ExecutivePositionEdit.vue
rename to src/views/admin/settings/executivePosition/ExecutivePositionEdit.vue
index 9cd071f..9fcb863 100644
--- a/src/views/admin/settings/ExecutivePositionEdit.vue
+++ b/src/views/admin/settings/executivePosition/ExecutivePositionEdit.vue
@@ -40,7 +40,7 @@
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
+import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
@@ -48,7 +48,7 @@ import { RouterLink } from "vue-router";
import type {
ExecutivePositionViewModel,
UpdateExecutivePositionViewModel,
-} from "@/viewmodels/admin/executivePosition.models";
+} from "@/viewmodels/admin/settings/executivePosition.models";
import cloneDeep from "lodash.clonedeep";
import isEqual from "lodash.isequal";
diff --git a/src/views/admin/settings/MembershipStatus.vue b/src/views/admin/settings/membershipStatus/MembershipStatus.vue
similarity index 95%
rename from src/views/admin/settings/MembershipStatus.vue
rename to src/views/admin/settings/membershipStatus/MembershipStatus.vue
index 05658fb..200da17 100644
--- a/src/views/admin/settings/MembershipStatus.vue
+++ b/src/views/admin/settings/membershipStatus/MembershipStatus.vue
@@ -24,7 +24,7 @@
import { defineComponent, defineAsyncComponent, markRaw } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
+import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import MembershipStatusListItem from "@/components/admin/settings/membershipStatus/MembershipStatusListItem.vue";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/settings/MembershipStatusEdit.vue b/src/views/admin/settings/membershipStatus/MembershipStatusEdit.vue
similarity index 96%
rename from src/views/admin/settings/MembershipStatusEdit.vue
rename to src/views/admin/settings/membershipStatus/MembershipStatusEdit.vue
index bddc9dc..cd41e26 100644
--- a/src/views/admin/settings/MembershipStatusEdit.vue
+++ b/src/views/admin/settings/membershipStatus/MembershipStatusEdit.vue
@@ -40,7 +40,7 @@
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
+import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
@@ -48,7 +48,7 @@ import { RouterLink } from "vue-router";
import type {
UpdateMembershipStatusViewModel,
MembershipStatusViewModel,
-} from "@/viewmodels/admin/membershipStatus.models";
+} from "@/viewmodels/admin/settings/membershipStatus.models";
import cloneDeep from "lodash.clonedeep";
import isEqual from "lodash.isequal";
diff --git a/src/views/admin/settings/newsletterConfig/NewsletterConfig.vue b/src/views/admin/settings/newsletterConfig/NewsletterConfig.vue
index e4865db..4775587 100644
--- a/src/views/admin/settings/newsletterConfig/NewsletterConfig.vue
+++ b/src/views/admin/settings/newsletterConfig/NewsletterConfig.vue
@@ -22,8 +22,8 @@ import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
import { useAbilityStore } from "@/stores/ability";
-import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
-import { useNewsletterConfigStore } from "@/stores/admin/newsletterConfig";
+import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
+import { useNewsletterConfigStore } from "@/stores/admin/settings/newsletterConfig";
import NewsletterConfigListItem from "@/components/admin/settings/newsletterConfig/NewsletterConfigListItem.vue";
diff --git a/src/views/admin/settings/Qualification.vue b/src/views/admin/settings/qualification/Qualification.vue
similarity index 95%
rename from src/views/admin/settings/Qualification.vue
rename to src/views/admin/settings/qualification/Qualification.vue
index 20ff8f8..0159c6f 100644
--- a/src/views/admin/settings/Qualification.vue
+++ b/src/views/admin/settings/qualification/Qualification.vue
@@ -28,7 +28,7 @@
import { defineComponent, defineAsyncComponent, markRaw } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useQualificationStore } from "@/stores/admin/qualification";
+import { useQualificationStore } from "@/stores/admin/settings/qualification";
import QualificationListItem from "@/components/admin/settings/qualification/QualificationListItem.vue";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/settings/QualificationEdit.vue b/src/views/admin/settings/qualification/QualificationEdit.vue
similarity index 96%
rename from src/views/admin/settings/QualificationEdit.vue
rename to src/views/admin/settings/qualification/QualificationEdit.vue
index 6ba4850..c973ece 100644
--- a/src/views/admin/settings/QualificationEdit.vue
+++ b/src/views/admin/settings/qualification/QualificationEdit.vue
@@ -44,12 +44,12 @@
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useQualificationStore } from "@/stores/admin/qualification";
+import { useQualificationStore } from "@/stores/admin/settings/qualification";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { RouterLink } from "vue-router";
-import type { UpdateQualificationViewModel, QualificationViewModel } from "@/viewmodels/admin/qualification.models";
+import type { UpdateQualificationViewModel, QualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
import cloneDeep from "lodash.clonedeep";
import isEqual from "lodash.isequal";
diff --git a/src/views/admin/settings/QueryStore.vue b/src/views/admin/settings/queryStore/QueryStore.vue
similarity index 91%
rename from src/views/admin/settings/QueryStore.vue
rename to src/views/admin/settings/queryStore/QueryStore.vue
index d849f0c..f2ccb95 100644
--- a/src/views/admin/settings/QueryStore.vue
+++ b/src/views/admin/settings/queryStore/QueryStore.vue
@@ -31,8 +31,8 @@ import { defineComponent } from "vue";
import { mapState, mapActions, mapWritableState } from "pinia";
import MainTemplate from "@/templates/Main.vue";
import { useAbilityStore } from "@/stores/ability";
-import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
-import { useQueryStoreStore } from "@/stores/admin/queryStore";
+import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
+import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
import QueryStoreListItem from "@/components/admin/settings/queryStore/QueryStoreListItem.vue";
diff --git a/src/views/admin/settings/template/Template.vue b/src/views/admin/settings/template/Template.vue
index 56cea4b..c9e019f 100644
--- a/src/views/admin/settings/template/Template.vue
+++ b/src/views/admin/settings/template/Template.vue
@@ -28,7 +28,7 @@ import { defineAsyncComponent, defineComponent, markRaw } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
import TemplateListItem from "@/components/admin/settings/template/TemplateListItem.vue";
-import { useTemplateStore } from "@/stores/admin/template";
+import { useTemplateStore } from "@/stores/admin/settings/template";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import { RouterLink } from "vue-router";
diff --git a/src/views/admin/settings/template/TemplateEdit.vue b/src/views/admin/settings/template/TemplateEdit.vue
index 2a2c07c..4317717 100644
--- a/src/views/admin/settings/template/TemplateEdit.vue
+++ b/src/views/admin/settings/template/TemplateEdit.vue
@@ -54,8 +54,8 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { RouterLink } from "vue-router";
import { configureEditor } from "@/helpers/grapesEditor";
-import type { TemplateViewModel, UpdateTemplateViewModel } from "@/viewmodels/admin/template.models";
-import { useTemplateStore } from "@/stores/admin/template";
+import type { TemplateViewModel, UpdateTemplateViewModel } from "@/viewmodels/admin/settings/template.models";
+import { useTemplateStore } from "@/stores/admin/settings/template";
import cloneDeep from "lodash.clonedeep";
import isEqual from "lodash.isequal";
import grapesjs, { Editor } from "grapesjs";
diff --git a/src/views/admin/settings/templateUsage/TemplateUsage.vue b/src/views/admin/settings/templateUsage/TemplateUsage.vue
index 9ad6332..ac08bef 100644
--- a/src/views/admin/settings/templateUsage/TemplateUsage.vue
+++ b/src/views/admin/settings/templateUsage/TemplateUsage.vue
@@ -15,9 +15,9 @@
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useTemplateUsageStore } from "@/stores/admin/templateUsage";
+import { useTemplateUsageStore } from "@/stores/admin/settings/templateUsage";
import TemplateUsageListItem from "@/components/admin/settings/templateUsage/TemplateUsageListItem.vue";
-import { useTemplateStore } from "@/stores/admin/template";
+import { useTemplateStore } from "@/stores/admin/settings/template";
diff --git a/src/views/admin/user/User.vue b/src/views/admin/user/user/User.vue
similarity index 96%
rename from src/views/admin/user/User.vue
rename to src/views/admin/user/user/User.vue
index d556cc6..0178302 100644
--- a/src/views/admin/user/User.vue
+++ b/src/views/admin/user/user/User.vue
@@ -28,7 +28,7 @@ import { defineComponent, markRaw, defineAsyncComponent } from "vue";
import { RouterLink } from "vue-router";
import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
-import { useUserStore } from "@/stores/admin/user";
+import { useUserStore } from "@/stores/admin/user/user";
import { useModalStore } from "@/stores/modal";
import UserListItem from "@/components/admin/user/user/UserListItem.vue";
import { useAbilityStore } from "@/stores/ability";
diff --git a/src/views/admin/user/UserEdit.vue b/src/views/admin/user/user/UserEdit.vue
similarity index 98%
rename from src/views/admin/user/UserEdit.vue
rename to src/views/admin/user/user/UserEdit.vue
index a4e7cfc..154b3f3 100644
--- a/src/views/admin/user/UserEdit.vue
+++ b/src/views/admin/user/user/UserEdit.vue
@@ -56,8 +56,8 @@ import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { RouterLink } from "vue-router";
-import { useUserStore } from "@/stores/admin/user";
-import type { UpdateUserViewModel, UserViewModel } from "@/viewmodels/admin/user.models";
+import { useUserStore } from "@/stores/admin/user/user";
+import type { UpdateUserViewModel, UserViewModel } from "@/viewmodels/admin/user/user.models";
import cloneDeep from "lodash.clonedeep";
import isEqual from "lodash.isequal";
diff --git a/src/views/admin/user/UserEditPermission.vue b/src/views/admin/user/user/UserEditPermission.vue
similarity index 95%
rename from src/views/admin/user/UserEditPermission.vue
rename to src/views/admin/user/user/UserEditPermission.vue
index b4b10bb..748cc18 100644
--- a/src/views/admin/user/UserEditPermission.vue
+++ b/src/views/admin/user/user/UserEditPermission.vue
@@ -28,9 +28,9 @@ import { mapState, mapActions } from "pinia";
import MainTemplate from "@/templates/Main.vue";
import Permission from "@/components/admin/Permission.vue";
import Spinner from "@/components/Spinner.vue";
-import { useUserStore } from "@/stores/admin/user";
+import { useUserStore } from "@/stores/admin/user/user";
import type { PermissionObject } from "@/types/permissionTypes";
-import type { UserViewModel } from "@/viewmodels/admin/user.models";
+import type { UserViewModel } from "@/viewmodels/admin/user/user.models";
diff --git a/src/views/public/calendar/Calendar.vue b/src/views/public/calendar/Calendar.vue
index 2a185d2..0cc8d9d 100644
--- a/src/views/public/calendar/Calendar.vue
+++ b/src/views/public/calendar/Calendar.vue
@@ -29,7 +29,7 @@ import dayGridPlugin from "@fullcalendar/daygrid";
import timeGridPlugin from "@fullcalendar/timegrid";
import interactionPlugin from "@fullcalendar/interaction";
import { InformationCircleIcon, LinkIcon } from "@heroicons/vue/24/outline";
-import type { CalendarViewModel } from "@/viewmodels/admin/calendar.models";
+import type { CalendarViewModel } from "@/viewmodels/admin/club/calendar.models";
import { RouterLink } from "vue-router";