// Path: demo/src/main/java/com/basilgregory/onamsample/entities/Post.java
// @Table
// public class Post extends Entity {
//     private String title;
//     private Object post;
// 
//     //If you need to include a property that is not be inserted/updated to database then you have to specify the modifier transient
//     private transient String transientPost;
// 
// 
//     private long createdAt;
// 
//     private List<User> followers;
// 
//     private List<Comment> comments;
//     private User user;
// 
//     @Column(unique = true)
//     @Json(fieldName = "title")
//     public String getTitle() {
//         return title;
//     }
// 
//     public void setTitle(String title) {
//         this.title = title;
//     }
// 
//     @Json(fieldName = "post")
//     public Object getPost() {
//         return post;
//     }
// 
//     public void setPost(Object post) {
//         this.post = post;
//     }
// 
//     @Json(fieldName = "created_at")
//     public long getCreatedAt() {
//         return createdAt;
//     }
// 
//     public void setCreatedAt(long createdAt) {
//         this.createdAt = createdAt;
//     }
// 
//     @OneToMany(referencedColumnName = "post_id", targetEntity = Comment.class)
//     public List<Comment> getComments() {
//         return fetch(this.comments,new Comment(){});
//     }
// 
//     public void setComments(List<Comment> comments) {
//         this.comments = comments;
//     }
// 
//     @ManyToOne
//     public User getUser() {
//         return fetch(this.user,new User(){});
//     }
// 
//     public void setUser(User user) {
//         this.user = user;
//     }
// 
//     @ManyToMany(tableName = "post_followers", targetEntity = User.class)
//     public List<User> getFollowers() {
//         return fetch(this.followers,new User(){});
//     }
// 
//     public void setFollowers(List<User> followers) {
//         this.followers = followers;
//     }
// 
//     public String getTransientPost() {
//         return transientPost;
//     }
// 
//     public void setTransientPost(String transientPost) {
//         this.transientPost = transientPost;
//     }
// }
// 
// Path: demo/src/main/java/com/basilgregory/onamsample/entities/User.java
// @Table
// public class User extends Entity {
//     private String name;
//     private String bio;
// 
// 
//     private List<Post> followedPosts;
//     private List<Post> posts;
//     private List<Comment> comments;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getBio() {
//         return bio;
//     }
// 
//     public void setBio(String bio) {
//         this.bio = bio;
//     }
// 
//     @OneToMany(targetEntity = Post.class)
//     public List<Post> getPosts() {
//         return fetch(this.posts,new Post(){});
//     }
// 
//     public void setPosts(List<Post> posts) {
//         this.posts = posts;
//     }
// 
//     @OneToMany(targetEntity = Comment.class)
//     public List<Comment> getComments() {
//         return fetch(this.comments,new Comment(){});
//     }
// 
//     public void setComments(List<Comment> comments) {
//         this.comments = comments;
//     }
// 
//     @ManyToMany(tableName = "post_followers", targetEntity = Post.class)
//     public List<Post> getFollowedPosts() {
//         return fetch(this.followedPosts,new Post(){});
//     }
// 
//     public void setFollowedPosts(List<Post> followedPosts) {
//         this.followedPosts = followedPosts;
//     }
// }


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.basilgregory.onamsample.entities.Post;
import com.basilgregory.onamsample.entities.User;
package com.basilgregory.onamsample;



public class AddPostActivity extends AppCompatActivity {
    EditText postTitle,postDescription;
    Button savePost;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_post);
        connectViews();

    }

    private void connectViews(){
        savePost = (Button) findViewById(R.id.savePost);
        savePost.setOnClickListener(savePostClick);
        postTitle = (EditText) findViewById(R.id.postTitle);
        postDescription = (EditText) findViewById(R.id.postDescription);
    }

    View.OnClickListener savePostClick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Post post = new Post();
            post.setTitle(postTitle.getText().toString());
            post.setPost(postDescription.getText().toString());

// Path: demo/src/main/java/com/basilgregory/onamsample/entities/Post.java
// @Table
// public class Post extends Entity {
//     private String title;
//     private Object post;
// 
//     //If you need to include a property that is not be inserted/updated to database then you have to specify the modifier transient
//     private transient String transientPost;
// 
// 
//     private long createdAt;
// 
//     private List<User> followers;
// 
//     private List<Comment> comments;
//     private User user;
// 
//     @Column(unique = true)
//     @Json(fieldName = "title")
//     public String getTitle() {
//         return title;
//     }
// 
//     public void setTitle(String title) {
//         this.title = title;
//     }
// 
//     @Json(fieldName = "post")
//     public Object getPost() {
//         return post;
//     }
// 
//     public void setPost(Object post) {
//         this.post = post;
//     }
// 
//     @Json(fieldName = "created_at")
//     public long getCreatedAt() {
//         return createdAt;
//     }
// 
//     public void setCreatedAt(long createdAt) {
//         this.createdAt = createdAt;
//     }
// 
//     @OneToMany(referencedColumnName = "post_id", targetEntity = Comment.class)
//     public List<Comment> getComments() {
//         return fetch(this.comments,new Comment(){});
//     }
// 
//     public void setComments(List<Comment> comments) {
//         this.comments = comments;
//     }
// 
//     @ManyToOne
//     public User getUser() {
//         return fetch(this.user,new User(){});
//     }
// 
//     public void setUser(User user) {
//         this.user = user;
//     }
// 
//     @ManyToMany(tableName = "post_followers", targetEntity = User.class)
//     public List<User> getFollowers() {
//         return fetch(this.followers,new User(){});
//     }
// 
//     public void setFollowers(List<User> followers) {
//         this.followers = followers;
//     }
// 
//     public String getTransientPost() {
//         return transientPost;
//     }
// 
//     public void setTransientPost(String transientPost) {
//         this.transientPost = transientPost;
//     }
// }
// 
// Path: demo/src/main/java/com/basilgregory/onamsample/entities/User.java
// @Table
// public class User extends Entity {
//     private String name;
//     private String bio;
// 
// 
//     private List<Post> followedPosts;
//     private List<Post> posts;
//     private List<Comment> comments;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getBio() {
//         return bio;
//     }
// 
//     public void setBio(String bio) {
//         this.bio = bio;
//     }
// 
//     @OneToMany(targetEntity = Post.class)
//     public List<Post> getPosts() {
//         return fetch(this.posts,new Post(){});
//     }
// 
//     public void setPosts(List<Post> posts) {
//         this.posts = posts;
//     }
// 
//     @OneToMany(targetEntity = Comment.class)
//     public List<Comment> getComments() {
//         return fetch(this.comments,new Comment(){});
//     }
// 
//     public void setComments(List<Comment> comments) {
//         this.comments = comments;
//     }
// 
//     @ManyToMany(tableName = "post_followers", targetEntity = Post.class)
//     public List<Post> getFollowedPosts() {
//         return fetch(this.followedPosts,new Post(){});
//     }
// 
//     public void setFollowedPosts(List<Post> followedPosts) {
//         this.followedPosts = followedPosts;
//     }
// }


// Path: demo/src/main/java/com/basilgregory/onamsample/AddPostActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.basilgregory.onamsample.entities.Post;
import com.basilgregory.onamsample.entities.User;

package com.basilgregory.onamsample;



public class AddPostActivity extends AppCompatActivity {
    EditText postTitle,postDescription;
    Button savePost;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_post);
        connectViews();

    }

    private void connectViews(){
        savePost = (Button) findViewById(R.id.savePost);
        savePost.setOnClickListener(savePostClick);
        postTitle = (EditText) findViewById(R.id.postTitle);
        postDescription = (EditText) findViewById(R.id.postDescription);
    }

    View.OnClickListener savePostClick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Post post = new Post();
            post.setTitle(postTitle.getText().toString());
            post.setPost(postDescription.getText().toString());

            User registeredUser = User.find(User.class,1);