import AuditLogIcon from '../../components/Icons/AuditLogIcon'

export const AuditLog = {
  name: 'auditLog',
  label: 'Audit Log',
  prefix: 'ADL',
  icon: AuditLogIcon,
  actions: [],
  columns: [
    '_id',
    'owner',
    'owner._id',
    'parent._id',
    'operation',
    'changes',
    'createdAt'
  ],
  filters: ['_id', 'owner._id', 'parent._id', 'operation'],
  sorters: ['createdAt'],
  properties: [
    {
      name: '_id',
      label: 'ID',
      type: 'id',
      objectType: 'auditLog',
      columnFixed: 'left',
      value: null,
      showCopy: true
    },
    {
      name: 'createdAt',
      label: 'Created At',
      type: 'dateTime',
      value: null,
      readOnly: true
    },
    {
      name: 'updatedAt',
      label: 'Updated At',
      type: 'dateTime',
      value: null,
      readOnly: true
    },
    {
      name: 'owner',
      label: 'Owner',
      type: 'object',
      objectType: (objectData) => {
        return objectData.ownerType
      },
      columnFixed: 'left',
      value: null,
      showCopy: true
    },
    {
      name: 'owner._id',
      label: 'Owner ID',
      type: 'id',
      objectType: (objectData) => {
        return objectData.ownerType
      },
      columnFixed: 'left',
      showHyperlink: true,
      showCopy: true
    },
    {
      name: 'parent',
      label: 'Parent',
      type: 'object',
      objectType: (objectData) => {
        return objectData.parentType
      },
      value: null,
      showCopy: true
    },
    {
      name: 'parent._id',
      label: 'Parent ID',
      type: 'id',
      objectType: (objectData) => {
        return objectData.parentType
      },
      showHyperlink: true,
      showCopy: true
    },
    {
      name: 'operation',
      label: 'Operation',
      columnWidth: 120,
      type: 'operation'
    },
    {
      name: 'changes',
      label: 'Changes',
      columnWidth: 500,
      type: 'propertyChanges',
      objectType: (objectData) => {
        return objectData.parentType
      },
      showCopy: true
    }
  ]
}
