import { useDataSource } from "@erp/core/hooks"; import { UniqueID } from "@repo/rdx-ddd"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { CustomerCreateData, CustomerData } from "../schemas"; import { CUSTOMERS_LIST_KEY } from "./use-update-customer-mutation"; type CreateCustomerPayload = { data: CustomerCreateData; }; export function useCreateCustomerMutation() { const queryClient = useQueryClient(); const dataSource = useDataSource(); return useMutation({ mutationKey: ["customer:create"], mutationFn: async (payload) => { const { data } = payload; const customerId = UniqueID.generateNewID(); const created = await dataSource.createOne("customers", { ...data, id: customerId.toString(), }); return created as CustomerData; }, onSuccess: () => { // Invalida el listado para refrescar desde servidor queryClient.invalidateQueries({ queryKey: CUSTOMERS_LIST_KEY }); }, }); }