refactor(assets): move workflows into use cases

This commit is contained in:
2026-06-04 22:10:43 +02:00
parent e88fb2e6d4
commit 2b908b24f6
8 changed files with 648 additions and 222 deletions
@@ -1,9 +1,9 @@
"use server"
import type { AssetWithAssignment } from "@/lib/types"
import { AssetService } from "@/services/asset.service"
import { ItemService } from "@/services/item.service"
import { RecipientService } from "@/services/recipient.service"
import type { AssetWithAssignment } from "@/types"
import EditAssetForm from "../../_components/edit.asset.form"
@@ -4,20 +4,19 @@ import { zodResolver } from "@hookform/resolvers/zod"
import { useRouter } from "next/navigation"
import { useForm } from "react-hook-form"
import { toast } from "sonner"
import { updateAssetAction } from "@/actions/asset.actions"
import { SubmitButton } from "@/components/forms/submitButton"
import { ItemStatus } from "@/generated/prisma/client"
import { updateAssetAction } from "@/lib/actions/asset.actions"
import { ITEM_STATUS } from "@/lib/constants"
import {
type UpdateAssetFormType,
updateAssetSchema,
} from "@/lib/schemas/asset.schemas"
} from "@/schemas/asset.schema"
import type {
AssetWithAssignment,
Item,
Recipient,
UpdateAssetStatus,
} from "@/lib/types"
} from "@/types"
interface EditAssetFormProps {
asset: AssetWithAssignment
@@ -42,11 +41,11 @@ export default function EditAssetForm({
resolver: zodResolver(updateAssetSchema),
defaultValues: {
id: asset.id,
itemId: asset.itemId ?? "",
itemId: asset.itemId ?? undefined,
serialNumber: asset.serialNumber,
deliveryNote: asset.deliveryNote ?? "",
deliveryNote: asset.deliveryNote ?? undefined,
status: asset.status as UpdateAssetStatus,
recipientId: asset.assignment?.recipientId ?? "",
recipientId: asset.assignment?.recipientId ?? undefined,
},
shouldFocusError: true,
mode: "onSubmit",
@@ -138,7 +137,7 @@ export default function EditAssetForm({
className="w-full rounded-lg border px-4 py-2"
>
<option value="">Select a status</option>
{Object.values(ItemStatus).map((status) => (
{Object.values(ITEM_STATUS).map((status) => (
<option key={status} value={status}>
{status}
</option>
@@ -4,15 +4,14 @@ import { zodResolver } from "@hookform/resolvers/zod"
import { useRouter } from "next/navigation"
import { useForm } from "react-hook-form"
import { toast } from "sonner"
import { createAssetAction } from "@/actions/asset.actions"
import { SubmitButton } from "@/components/forms/submitButton"
import { ItemStatus } from "@/generated/prisma/client"
import { createAssetAction } from "@/lib/actions/asset.actions"
import { ITEM_STATUS } from "@/lib/constants"
import {
type CreateAssetFormType,
createAssetSchema,
} from "@/lib/schemas/asset.schemas"
import type { ItemWithoutStock, Recipient } from "@/lib/types"
} from "@/schemas/asset.schema"
import type { ItemWithoutStock, Recipient } from "@/types"
interface NewAssetFormProps {
items: ItemWithoutStock[]
@@ -123,7 +122,7 @@ export default function NewAssetForm({ items, recipients }: NewAssetFormProps) {
className="w-full rounded-lg border px-4 py-2"
>
<option value="">Select a status</option>
{Object.values(ItemStatus).map((status) => (
{Object.values(ITEM_STATUS).map((status) => (
<option key={status} value={status}>
{status}
</option>