import { useRepo } from 'pinia-orm'
import EntityManager from '~/services/data/entityManager'
import { useAp2iRequestService } from '~/composables/data/useAp2iRequestService'
import { useAccessProfileStore } from '~/stores/accessProfile'

let entityManager: EntityManager | null = null

export const useEntityManager = () => {
  if (entityManager === null) {
    const { apiRequestService } = useAp2iRequestService()
    const getRepo = useRepo

    const profileStore = useAccessProfileStore()
    const getProfileMask = () => {
      return {
        activityYear: profileStore.activityYear,
        historical: profileStore.historical,
      }
    }

    entityManager = new EntityManager(
      apiRequestService,
      getRepo,
      getProfileMask,
    )
  }
  return { em: entityManager }
}
