import { ResourceWithOptions } from 'adminjs';
import { Sequelize } from 'sequelize';
import { menu } from '..';

export default (sequelize: Sequelize): ResourceWithOptions => {
  const resource: ResourceWithOptions = {
    resource: sequelize.models.UserModel,
    options: {
      actions: {
        bulkDelete: {
          isAccessible: false,
        },
        delete: {
          isAccessible: false,
        },
        edit: {
          isAccessible: false,
        },
        list: {
          isAccessible: true,
        },
        new: {
          isAccessible: false,
        },
        search: {
          isAccessible: true,
        },
        show: {
          isAccessible: true,
        },
      },
      navigation: menu.users,
      listProperties: ['id', 'email', 'firstName', 'lastName', 'role', 'createdAt'],
      showProperties: ['id', 'email', 'firstName', 'lastName', 'role', 'createdAt'],
      editProperties: ['email', 'password', 'firstName', 'lastName'],
      filterProperties: ['email', 'firstName', 'lastName', 'role', 'createdAt'],
      properties: {
        password: {
          type: 'password',
        },
      },
      sort: {
        direction: 'asc',
        sortBy: 'lastName',
      },
    },
  };

  return resource;
};
