import type { UserData } from '~/services/dto/user-data' import type { TruckData } from '~/services/dto/truck-data' import type { CarrierData } from '~/services/dto/carrier-data' import { getUsers } from '~/services/auth' import { getTruckList } from '~/services/truck' import { getCarrierList } from '~/services/carrier' import { useAuthStore } from '~/stores/auth' export const useFormDataLoading = (form: { userId: string }) => { const users = ref([]) const trucks = ref([]) const carriers = ref([]) const isLoadingUsers = ref(false) const isLoadingTrucks = ref(false) const isLoadingCarriers = ref(false) const authStore = useAuthStore() const loadUsers = async () => { isLoadingUsers.value = true try { users.value = await getUsers() } finally { isLoadingUsers.value = false } } const loadTrucks = async () => { isLoadingTrucks.value = true try { trucks.value = await getTruckList() } finally { isLoadingTrucks.value = false } } const loadCarriers = async () => { isLoadingCarriers.value = true try { carriers.value = await getCarrierList() } finally { isLoadingCarriers.value = false } } const setDefaultUser = () => { if (form.userId) return if (authStore.user?.id) { form.userId = String(authStore.user.id) } } const loadCommonData = async () => { await loadUsers() await loadTrucks() await loadCarriers() await authStore.ensureSession() setDefaultUser() } return { users, trucks, carriers, isLoadingUsers, isLoadingTrucks, isLoadingCarriers, loadUsers, loadTrucks, loadCarriers, setDefaultUser, loadCommonData } }