export type TStoreType = {
  created: string;
  description: string;
  format: string;
  id: number;
  size: number;
  filename: string;
};

export type TStorageRecord = {
  crc: string;
  created: string;
  description: string;
  file: string;
  filename: string;
  format: string;
  free_date: string;
  id: number;
  last_access: string;
  size: number;
  type: number;
  user: number;
};

export type TStorageCardInfoField = {
  title: string;
  dataIndex: string;
  key: string;
  align: string;
};

export type TUseStorageColumns = {
  title: string;
  dataIndex: string;
  key: string;
  render?: (text: any) => JSX.Element | Element;
  align?: string;
  sortOrder?: boolean | string;
  sorter?: any;
};

export type TypeColumnsTranslations = {
  format: string;
  size: string;
  description: string;
  created: string;
  actions: string;
};
export type TypeCardInfoTranslations = {
  description: string;
  size: string;
  created: string;
  format: string;
  crc: string;
};

export type TypeCardInfoDrawer = {
  header: {
    title: string;
  };
  crcFieldBoolean: {
    true: string;
    false: string;
  };
  footer: {
    downloadButton: string;
  };
};

export type TypeSuccessfulActionsMessages = {
  downloaded: {
    title: string;
    subTitle: string;
  };
  deleted: {
    title: string;
    subTitle: string;
  };
};
export type TypeFailedActionsMessages = {
  downloaded: {
    title: string;
    subTitle: string;
  };
  deleted: {
    title: string;
    subTitle: string;
  };
};

export type TypeLeftSideBar = {
  title: string;
  download: string;
};

export type TypeUseStorageTranslation = {
  title: string;
  leftSideBarMessages: TypeLeftSideBar;
  table: {
    columnsMessages: TypeColumnsTranslations;
    cardInfoMessages: TypeCardInfoTranslations;
    drawerMessages: TypeCardInfoDrawer;
    successfulActionsMessages: TypeSuccessfulActionsMessages;
    failedActionMessages: TypeFailedActionsMessages;
  };
};
