import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { useAppUserRoleStore } from '../stores/appUserRoleStore'
import { useAppUserRoleValidationStore } from '../validation/appUserRoleValidationStore'

export const useAppUserRoleService = defineStore('appUserRoleService', () => {
  const dataStore = useDataStore()
  const appUserRoleStore = useAppUserRoleStore()
  const appUserRoleValidationStore = useAppUserRoleValidationStore()

  const GetAppUserRoleList = async () => {
    if (appUserRoleStore.appUserRoles.length === 0) {
      let data = await dataStore.dataGet('KullaniciGorevi')
      appUserRoleStore.appUserRoles = data
    }
  }

  const SaveRole = async () => {
    if (appUserRoleValidationStore.FormCheck()) {
      if (appUserRoleStore.appUserRoleForm.appUsers === null)
        appUserRoleStore.appUserRoleForm.appUsers = []
      let dt: any
      if (!appUserRoleStore.isUpdate) {
        dt = await dataStore.dataPost('KullaniciGorevi', {
          data: appUserRoleStore.appUserRoleForm
        })
      } else {
        dt = await dataStore.dataPut('KullaniciGorevi/' + appUserRoleStore.appUserRoleForm.id, {
          data: appUserRoleStore.appUserRoleForm
        })
      }
      if (dt !== 'errorfalse') {
        appUserRoleStore.refreshList = true
        appUserRoleStore.isUpdate = false
        appUserRoleStore.rolePanel = false
      }
    }
  }

  return {
    GetAppUserRoleList,
    SaveRole
  }
})