import type { AuthUser } from '#shared/types/auth'; import type { AdminResources, AuthUserWithWarrens } from '~/shared/types/admin'; import type { AdminWarrenData } from '~/shared/types/warrens'; export const useAdminStore = defineStore('admin', { state: () => ({ resources: { users: [], warrens: {}, } as AdminResources, createWarrenDialogOpen: false, editWarrenDialog: null as { warren: AdminWarrenData } | null, deleteWarrenDialog: null as { warren: AdminWarrenData } | null, createUserDialogOpen: false, editUserDialog: null as { user: AuthUserWithWarrens } | null, deleteUserDialog: null as { user: AuthUser } | null, }), actions: { openCreateWarrenDialog() { this.createWarrenDialogOpen = true; }, closeCreateWarrenDialog() { this.createWarrenDialogOpen = false; }, openEditWarrenDialog(warren: AdminWarrenData) { this.editWarrenDialog = { warren, }; }, closeEditWarrenDialog() { this.editWarrenDialog = null; }, openDeleteWarrenDialog(warren: AdminWarrenData) { this.deleteWarrenDialog = { warren, }; }, closeDeleteWarrenDialog() { this.deleteWarrenDialog = null; }, openCreateUserDialog() { this.createUserDialogOpen = true; }, closeCreateUserDialog() { this.createUserDialogOpen = false; }, setEditUserDialog(user: AuthUserWithWarrens) { this.editUserDialog = { user }; }, closeEditUserDialog() { this.editUserDialog = null; }, openDeleteUserDialog(user: AuthUser) { this.deleteUserDialog = { user: user, }; }, closeDeleteUserDialog() { this.deleteUserDialog = null; }, }, });