
import { PROVIDER_TYPE_DATABASE } from '../../../@utility/constants/provider'

import { Provider } from '../../../@utility/data-structures/provider'

import { PREPARE_PROVIDER_FOR_USE } from '../algorithms/PREPARE_PROVIDER_FOR_USE'
import { createItem } from '../algorithms/create-item'
import { createItemId } from '../algorithms/create-item-id'
import { createItemStore } from '../algorithms/create-item-store'
import { deleteItem } from '../algorithms/delete-item'
import { doesExistItem } from '../algorithms/does-exist-item'
import { getItem } from '../algorithms/get-item'
import { getItemList } from '../algorithms/get-item-list'
import { updateItem } from '../algorithms/update-item'


const MOCK_DATABASE = new Provider({
  nameVersionId: 'mock-database@default',
  type: PROVIDER_TYPE_DATABASE,
  hasOfflineSupport: true,
  functionTable: {
    PREPARE_PROVIDER_FOR_USE,
    createItem,
    createItemId,
    createItemStore,
    deleteItem,
    doesExistItem,
    getItem,
    getItemList,
    updateItem
  }
})

export {
  MOCK_DATABASE
}