import type { Ref } from 'vue' import type { EmployeeRttSummary } from '~/services/dto/employee-rtt-summary' import type { Employee } from '~/services/dto/employee' import { getEmployeeRttSummary, createRttPayment } from '~/services/employee-rtt-summary' export const useEmployeeRtt = (employee: Ref, reloadEmployee: () => Promise) => { const rttSummary = ref(null) const isRttLoading = ref(false) const rttDataLoaded = ref(false) const loadRttData = async () => { if (!employee.value || isRttLoading.value) return isRttLoading.value = true try { const rttYear = new Date().getMonth() >= 5 ? new Date().getFullYear() + 1 : new Date().getFullYear() rttSummary.value = await getEmployeeRttSummary(employee.value.id, rttYear) rttDataLoaded.value = true } finally { isRttLoading.value = false } } const resetLoaded = () => { rttDataLoaded.value = false } const submitRttPayment = async (month: number, base25Minutes: number, bonus25Minutes: number, base50Minutes: number, bonus50Minutes: number) => { if (!employee.value) return const year = rttSummary.value?.year ?? undefined await createRttPayment(employee.value.id, month, base25Minutes, bonus25Minutes, base50Minutes, bonus50Minutes, year) await reloadEmployee() } return { rttSummary, isRttLoading, rttDataLoaded, loadRttData, resetLoaded, submitRttPayment } }