global.ts 1.29 KB
export interface AnyObject {
  [key: string]: unknown;
}

export interface Option {
  value: unknown;
  label: string;
  disabled?: boolean;
}

export interface QueryForParams {
  [key: string]: unknown;

  setColumn?: string[];
  setWith?: string | string[];
  setSort?: string | string[];
  querySelect?: string[];
  withRelation?: string[];
  sortBy?: string;
  sortType?: 'desc' | 'asc' | '';
}

export interface QueryForPaginationParams extends QueryForParams {
  page?: number;
  pageSize?: number;
}

export type sizeType = 'mini' | 'small' | 'medium' | 'large';

export interface AttributeData {
  [key: string]: unknown;
}

export interface QueryForPaginationRes<T = object> {
  list: T[];
  current: number;
  pageSize: number;
  total: number;
}

export interface Pagination {
  current: number;
  pageSize: number;
  total: number;
  showTotal?: boolean;
  showPageSize?: boolean;
  pageSizeOptions?: number[];
}

export type SortType = 'descend' | 'ascend' | '' | string;

export interface Sort {
  column: string;
  type: SortType | string;
}

export interface HttpResponse<T = unknown> {
  status: 'success' | 'fail' | 'error';
  msg: string;
  code: number;
  data: T;
}

export interface ServiceResponse<T = unknown> extends HttpResponse<T> {
  meta: { current: number; limit: number; total: number };
}