import type {
  Col,
  KeyLabel,
  RecComponent,
  RecStrFuncComponent,
  RecStrFuncUnknown,
  Th,
} from '~/components/pub/custom-ui/data/types'
import { defineAsyncComponent } from 'vue'

type SmallDetailDto = any

const action = defineAsyncComponent(() => import('~/components/pub/custom-ui/data/dropdown-action-ud.vue'))

export const cols: Col[] = [{ width: 100 }, {}, {}, { width: 50 }]

export const header: Th[][] = [[{ label: 'Kode' }, { label: 'Nama' }, { label: 'Divisi Induk' }, { label: '' }]]

export const keys = ['code', 'name', 'ancestor', 'action']

export const delKeyNames: KeyLabel[] = [
  { key: 'code', label: 'Kode' },
  { key: 'name', label: 'Nama' },
]

export const funcParsed: RecStrFuncUnknown = {
  ancestor: (rec: unknown): unknown => {
    const recX = rec as SmallDetailDto
    if (recX.meta === null) {
      return '-'
    }

    return recX.meta.name
  },
}

export const funcComponent: RecStrFuncComponent = {
  action(rec, idx) {
    const res: RecComponent = {
      idx,
      rec: rec as object,
      component: action,
      props: {
        size: 'sm',
      },
    }
    return res
  },
}

export const funcHtml: RecStrFuncUnknown = {
  patient_address(_rec) {
    return '-'
  },
}
