import {
  type HistoryApprovalsFormValues,
  type PendingApprovalsFormValues,
} from './types';

export const defaultPendingApprovalsFilters: PendingApprovalsFormValues = {
  parentTaskCatalogItemsIn: [],
  parentTaskInitiatorsIn: [],
  createdAtFrom: null,
  createdAtTo: null,
  dateOptions: {
    lastSevenDays: false,
    lastFourteenDays: false,
    lastThirtyDays: false,
    dateRange: false,
  },
};

export const defaultHistoryApprovalsFilters: HistoryApprovalsFormValues = {
  parentTaskCatalogItemsIn: [],
  statesIn: [],
  parentTaskInitiatorsIn: [],
  completedAtFrom: null,
  completedAtTo: null,
  dateOptions: {
    lastSevenDays: false,
    lastFourteenDays: false,
    lastThirtyDays: false,
    dateRange: false,
  },
};

export const FILTERS_DEFAULT_VALUES = {
  statesIn: [],
  serviceItemsIn: [],
  creationDateFrom: null,
  creationDateTo: null,
  initiatorsIn: [],
  initiatorCollaboratorTypesIn: [],
  agentsIn: [],
};

export enum UserFields {
  COMPLETE_NAME = 'COMPLETE_NAME',
  EMAIL = 'EMAIL',
  DIRECT_BOSS = 'DIRECT_BOSS',
  BIRTHDATE = 'BIRTHDATE',
  HIRING_DATE = 'HIRING_DATE',
  EMPLOYEE_INTERNAL_ID = 'EMPLOYEE_INTERNAL_ID',
  DEPARTMENT = 'DEPARTMENT',
  COMPLETION_DATE = 'COMPLETION_DATE',
  POSITION = 'JOB_POSITION',
}

export const PAGE_DEFAULT_VALUE = 1;
export const LIMIT_DEFAULT_VALUE = 10;
export const ORDER_DEFAULT_VALUE = 'DESC';
export const ORDER_BY_DEFAULT_VALUE = 'UPDATED_AT';

export const ALL_SERVICE_ITEMS_VIEW_ID = 'ALL_SERVICE_ITEMS_VIEW_ID';

export const defaultTaskFilters = {
  serviceItemsIn: [],
  statesIn: [],
  agentsIn: [],
  agentGroupsIn: [],
  initiatorsIn: [],
  collaboratorTypesIn: [],
  creationDateTo: null,
  creationDateFrom: null,
  dateOptions: {
    lastSevenDays: false,
    lastFourteenDays: false,
    lastThirtyDays: false,
    dateRange: false,
  },
};

export const defaultDashboardFilters = {
  serviceItemsIn: [],
  agentGroupsIn: [],
  agentsIn: [],
  creationDateFrom: null,
  creationDateTo: null,
  dateOptions: {
    lastSevenDays: false,
    lastFourteenDays: false,
    lastThirtyDays: false,
    dateRange: false,
  },
};
