package com.kfzs.duanduan.datashare.provider.downloadtask;

// @formatter:off

import com.kfzs.duanduan.datashare.provider.base.BaseModel;

import java.util.Date;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

/**
 * A download_task info which is part of a team.
 */
@SuppressWarnings({"WeakerAccess", "unused"})
public interface DownloadtaskModel extends BaseModel {

    /**
     * Primary key.
     */
    long getId();

    /**
     * update create_time of this download_task.
     */
    long getCreateTime();

    /**
     * download_task_id of this download_task.
     * Can be {@code null}.
     */
    @Nullable
    Integer getDownloadTaskId();

    /**
     * game_name of this download_task.
     * Cannot be {@code null}.
     */
    @NonNull
    String getGameName();

    /**
     * icon_url of this download_task.
     * Cannot be {@code null}.
     */
    @NonNull
    String getIconUrl();

    /**
     * percent of this download_task.
     * Can be {@code null}.
     */
    @Nullable
    Integer getPercent();

    /**
     * downloaded_size of this download_task.
     * Can be {@code null}.
     */
    @Nullable
    Double getDownloadedSize();

    /**
     * total_size of this download_task.
     * Can be {@code null}.
     */
    @Nullable
    Double getTotalSize();

    /**
     * status of this download_task.
     */
    int getStatus();

    /**
     * download_url of this download_task.
     * Cannot be {@code null}.
     */
    @NonNull
    String getDownloadUrl();

    /**
     * package_name of this download_task.
     * Cannot be {@code null}.
     */
    @NonNull
    String getPackageName();

    /**
     * version_code of this download_task.
     */
    int getVersionCode();

    /**
     * apk_path of this download_task.
     * Cannot be {@code null}.
     */
    @NonNull
    String getApkPath();

    /**
     * game_id of this download_task.
     * Cannot be {@code null}.
     */
    @NonNull
    String getGameId();
}
