import { useBaseModel, UseBaseModelType } from './use-base-model'; import { useBelongsTo, UseBelongsTo } from './use-belongs-to'; import { useHasOne, UseHasOne } from './use-has-one'; import { useHasMany, UseHasMany } from './use-has-many'; import { ApiKeys, FormData, UserData, AddressData, PersonData, LoanPartData, TinkLoanData, } from '../types'; export type UseFormModelType = UseBaseModelType & { user: UseBelongsTo; address: UseHasOne; persons: UseHasMany; loanParts: UseHasMany; tinkLoans: UseHasMany; }; export const useForms = (): UseFormModelType => { const modelHooks = useBaseModel(ApiKeys.FORMS); const user = useBelongsTo(modelHooks.model, 'user'); const address = useHasOne(modelHooks.model, 'address'); const persons = useHasMany(modelHooks.model, 'persons'); const loanParts = useHasMany(modelHooks.model, 'loanParts'); const tinkLoans = useHasMany(modelHooks.model, 'tinkLoans'); return { ...modelHooks, user, address, persons, loanParts, tinkLoans, }; };