package com.alwaysallthetime.adnlib.data;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

import java.util.Map;

public class File extends Annotatable {
    private boolean complete;
    private String createdAt;
    private Map<String, DerivedFile> derivedFiles;
    private String fileToken;
    private boolean fileTokenRead;
    private ImageInfo imageInfo;
    private String kind;
    private String mimeType;
    private String name;
    @SerializedName("public")
    private boolean isPublic;
    private String sha1;
    private int size;
    private Source source;
    private int totalSize;
    private String type;
    private String url;
    private String urlExpires;
    private String urlPermanent;
    private String urlShort;
    private User user;

    public boolean isComplete() {
        return complete;
    }

    public String getCreatedAt() {
        return createdAt;
    }

    public Map<String, DerivedFile> getDerivedFiles() {
        return derivedFiles;
    }

    public String getFileToken() {
        return fileToken;
    }

    public boolean isFileTokenRead() {
        return fileTokenRead;
    }

    public ImageInfo getImageInfo() {
        return imageInfo;
    }

    public String getKind() {
        return kind;
    }

    public String getMimeType() {
        return mimeType;
    }

    public String getName() {
        return name;
    }

    public boolean isPublic() {
        return isPublic;
    }

    public String getSha1() {
        return sha1;
    }

    public int getSize() {
        return size;
    }

    public Source getSource() {
        return source;
    }

    public int getTotalSize() {
        return totalSize;
    }

    public String getType() {
        return type;
    }

    public String getUrl() {
        return url;
    }

    public String getUrlExpires() {
        return urlExpires;
    }

    public String getUrlPermanent() {
        return urlPermanent;
    }

    public String getUrlShort() {
        return urlShort;
    }

    public User getUser() {
        return user;
    }
}

@@ -202,144 +202,299 @@
     
-private boolean complete;%0A    private String createdAt;%0A    private Map%3CString, DerivedFile%3E derivedFiles;%0A    private String fileToken;
+@Expose(serialize = false)%0A    private boolean complete;%0A    @Expose(serialize = false)%0A    private String createdAt;%0A    @Expose(serialize = false)%0A    private Map%3CString, DerivedFile%3E derivedFiles;%0A    @Expose(serialize = false)%0A    private String fileToken;%0A    @Expose(serialize = false)
 %0A   
@@ -521,24 +521,55 @@
 eTokenRead;%0A
+    @Expose(serialize = false)%0A
     private 
@@ -610,24 +610,55 @@
 tring kind;%0A
+    @Expose(serialize = false)%0A
     private 
@@ -767,269 +767,764 @@
     
-private String sha1;%0A    private int size;%0A    private Source source;%0A    private int totalSize;%0A    private String type;%0A    private String url;%0A    private String urlExpires;%0A    private String urlPermanent;%0A    private String urlShort;%0A    private User user;
+@Expose(serialize = false)%0A    private String sha1;%0A    @Expose(serialize = false)%0A    private int size;%0A    @Expose(serialize = false)%0A    private Source source;%0A    @Expose(serialize = false)%0A    private int totalSize;%0A    private String type;%0A    @Expose(serialize = false)%0A    private String url;%0A    @Expose(serialize = false)%0A    private String urlExpires;%0A    @Expose(serialize = false)%0A    private String urlPermanent;%0A    @Expose(serialize = false)%0A    private String urlShort;%0A    @Expose(serialize = false)%0A    private User user;%0A%0A    public File() %7B%7D%0A%0A    public File(String kind, String type, String name, boolean isPublic) %7B%0A        this.kind = kind;%0A        this.type = type;%0A        this.name = name;%0A        this.isPublic = isPublic;%0A    %7D
 %0A%0A  

add @Expose annotations, constructors