export interface IFile {
  id: number;

  user_id: string;
  file_id: number;
  hash: string;
  mtime: string;

  ctime: string;
  mime: string;
  ext: string;
  added: string;

  size: number;
  ihash: string | null;
}

export interface IFanCard extends IFile {
  last_checked_at: string;
  /**
   * Can be empty string.
   */
  price: string;
  path: string
  server: string
}

export interface IShare {
  id: number;
  name: string;
  description: string;
  uploader: number;
  added: string;
}

export interface IShareFile {
  share_id: number;
  upload_url: string;
  upload_id: string;
  file_id: number;
  filename: string;
  id: number;
  hash: string;
  mtime: string;
  ctime: string;
  mime: string;
  ext: string;
  added: string;
}

export interface IArchiveFile {
  password?: string;
  file: {
    hash: string;
    ext: string;
  };
  file_list: string[];
}
