refactor: consolidate admin/users management under /people

This commit is contained in:
2026-06-17 09:32:26 +02:00
parent 4f370eee70
commit d6b42d78e7
31 changed files with 1928 additions and 855 deletions
+46
View File
@@ -11,12 +11,16 @@ import {
} from "@/schemas/person.schema"
import {
buildUnifiedCreateSchema,
buildUnifiedUpdateSchema,
type UnifiedCreateFormType,
type UnifiedSchemaCopy,
type UnifiedUpdateFormType,
} from "@/schemas/user.schema"
import {
createPersonUseCase,
createPersonUserUseCase,
updatePersonUseCase,
updatePersonUserUseCase,
} from "@/use-cases/person.use-cases"
import { localizePersonFieldErrors } from "./person.messages"
@@ -144,3 +148,45 @@ export async function updatePerson(formData: UpdatePersonFormType) {
}
}
}
export async function updatePersonUserAction(formData: UnifiedUpdateFormType) {
const { dictionary } = await getI18n()
const userCopy = dictionary.admin.users
const personCopy = dictionary.inventory.people
const schemaCopy: UnifiedSchemaCopy = {
...userCopy.schema,
...personCopy.schema,
}
const validatedFields =
buildUnifiedUpdateSchema(schemaCopy).safeParse(formData)
if (!validatedFields.success) {
return {
success: false,
errors: flattenError(validatedFields.error).fieldErrors,
}
}
try {
const result = await updatePersonUserUseCase(validatedFields.data)
if (!result.success) {
return {
...result,
errors: localizeUnifiedCreateFieldErrors(
result.errors,
userCopy.actions,
schemaCopy,
),
message: personCopy.actions.updateFailure,
}
}
revalidatePath("/people")
return { success: true, message: personCopy.actions.updateSuccess }
} catch (error) {
console.error("Database error:", error)
return { success: false, message: personCopy.actions.updateFailure }
}
}