// Path: app/src/main/java/io/github/droidkaigi/confsched/model/Category.java
// @Parcel
// @Table
// public class Category implements SearchGroup {
// 
//     @PrimaryKey(auto = false)
//     @Column(indexed = true)
//     @SerializedName("id")
//     public int id;
// 
//     @Column(indexed = true)
//     @SerializedName("name")
//     public String name;
// 
//     public Category() {
//     }
// 
//     public int getThemeResId() {
//         switch (id) {
//             case 1:
//                 return R.style.AppTheme_NoActionBar_Amber;
//             case 2:
//                 return R.style.AppTheme_NoActionBar_Indigo;
//             case 3:
//                 return R.style.AppTheme_NoActionBar_Orange;
//             case 4:
//                 return R.style.AppTheme_NoActionBar_Pink;
//             case 5:
//                 return R.style.AppTheme_NoActionBar_Purple;
//             case 6:
//                 return R.style.AppTheme_NoActionBar_Teal;
//             case 7:
//                 return R.style.AppTheme_NoActionBar_LightGreen;
//             case 8:
//                 return R.style.AppTheme_NoActionBar_Red;
//             default:
//                 return R.style.AppTheme_NoActionBar_Indigo;
//         }
//     }
// 
//     public int getVividColorResId() {
//         switch (id) {
//             case 1:
//                 return R.color.amber500;
//             case 2:
//                 return R.color.indigo500;
//             case 3:
//                 return R.color.orange500;
//             case 4:
//                 return R.color.pink500;
//             case 5:
//                 return R.color.purple500;
//             case 6:
//                 return R.color.teal500;
//             case 7:
//                 return R.color.lightgreen500;
//             case 8:
//                 return R.color.red500;
//             default:
//                 return R.color.indigo500;
//         }
//     }
// 
//     public int getPaleColorResId() {
//         switch (id) {
//             case 1:
//                 return R.color.amber500_alpha_54;
//             case 2:
//                 return R.color.indigo500_alpha_54;
//             case 3:
//                 return R.color.orange500_alpha_54;
//             case 4:
//                 return R.color.pink500_alpha_54;
//             case 5:
//                 return R.color.purple500_alpha_54;
//             case 6:
//                 return R.color.teal500_alpha_54;
//             case 7:
//                 return R.color.lightgreen500_alpha_54;
//             case 8:
//                 return R.color.red500_alpha_54;
//             default:
//                 return R.color.indigo500_alpha_54;
//         }
//     }
// 
//     @Override
//     public int getId() {
//         return id;
//     }
// 
//     @Override
//     public String getName() {
//         return name;
//     }
// 
//     @Override
//     public Type getType() {
//         return Type.CATEGORY;
//     }
// 
// }
// 
// Path: app/src/main/java/io/github/droidkaigi/confsched/model/Speaker.java
// @Parcel
// @Table
// public class Speaker {
// 
//     @PrimaryKey(auto = false)
//     @Column(indexed = true)
//     @SerializedName("id")
//     public int id;
// 
//     @Column(indexed = true)
//     @SerializedName("name")
//     public String name;
// 
//     @Column
//     @Nullable
//     @SerializedName("image_url")
//     public String imageUrl;
// 
//     @Column
//     @Nullable
//     @SerializedName("twitter_name")
//     public String twitterName;
// 
//     @Column
//     @Nullable
//     @SerializedName("github_name")
//     public String githubName;
// 
// }


import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import io.github.droidkaigi.confsched.model.Category;
import io.github.droidkaigi.confsched.model.Category_Relation;
import io.github.droidkaigi.confsched.model.OrmaDatabase;
import io.github.droidkaigi.confsched.model.Place;
import io.github.droidkaigi.confsched.model.Place_Relation;
import io.github.droidkaigi.confsched.model.Session;
import io.github.droidkaigi.confsched.model.Session_Relation;
import io.github.droidkaigi.confsched.model.Speaker;
import io.github.droidkaigi.confsched.model.Speaker_Relation;
import rx.Observable;
package io.github.droidkaigi.confsched.dao;




@Singleton
public class SessionDao {

    OrmaDatabase orma;

    @Inject
    public SessionDao(OrmaDatabase orma) {
        this.orma = orma;
    }

    public Session_Relation sessionRelation() {
        return orma.relationOfSession();
    }

    private Speaker_Relation speakerRelation() {
        return orma.relationOfSpeaker();
    }

    private Place_Relation placeRelation() {
        return orma.relationOfPlace();
    }

    private Category_Relation categoryRelation() {
        return orma.relationOfCategory();
    }

    private void insertSpeaker(Speaker speaker) {
        if (speaker != null && speakerRelation().selector().idEq(speaker.id).isEmpty()) {
            speakerRelation().inserter().execute(speaker);
        }
    }

    private void insertPlace(Place place) {
        if (place != null && placeRelation().selector().idEq(place.id).isEmpty()) {
            placeRelation().inserter().execute(place);
        }
    }

// Path: app/src/main/java/io/github/droidkaigi/confsched/model/Category.java
// @Parcel
// @Table
// public class Category implements SearchGroup {
// 
//     @PrimaryKey(auto = false)
//     @Column(indexed = true)
//     @SerializedName("id")
//     public int id;
// 
//     @Column(indexed = true)
//     @SerializedName("name")
//     public String name;
// 
//     public Category() {
//     }
// 
//     public int getThemeResId() {
//         switch (id) {
//             case 1:
//                 return R.style.AppTheme_NoActionBar_Amber;
//             case 2:
//                 return R.style.AppTheme_NoActionBar_Indigo;
//             case 3:
//                 return R.style.AppTheme_NoActionBar_Orange;
//             case 4:
//                 return R.style.AppTheme_NoActionBar_Pink;
//             case 5:
//                 return R.style.AppTheme_NoActionBar_Purple;
//             case 6:
//                 return R.style.AppTheme_NoActionBar_Teal;
//             case 7:
//                 return R.style.AppTheme_NoActionBar_LightGreen;
//             case 8:
//                 return R.style.AppTheme_NoActionBar_Red;
//             default:
//                 return R.style.AppTheme_NoActionBar_Indigo;
//         }
//     }
// 
//     public int getVividColorResId() {
//         switch (id) {
//             case 1:
//                 return R.color.amber500;
//             case 2:
//                 return R.color.indigo500;
//             case 3:
//                 return R.color.orange500;
//             case 4:
//                 return R.color.pink500;
//             case 5:
//                 return R.color.purple500;
//             case 6:
//                 return R.color.teal500;
//             case 7:
//                 return R.color.lightgreen500;
//             case 8:
//                 return R.color.red500;
//             default:
//                 return R.color.indigo500;
//         }
//     }
// 
//     public int getPaleColorResId() {
//         switch (id) {
//             case 1:
//                 return R.color.amber500_alpha_54;
//             case 2:
//                 return R.color.indigo500_alpha_54;
//             case 3:
//                 return R.color.orange500_alpha_54;
//             case 4:
//                 return R.color.pink500_alpha_54;
//             case 5:
//                 return R.color.purple500_alpha_54;
//             case 6:
//                 return R.color.teal500_alpha_54;
//             case 7:
//                 return R.color.lightgreen500_alpha_54;
//             case 8:
//                 return R.color.red500_alpha_54;
//             default:
//                 return R.color.indigo500_alpha_54;
//         }
//     }
// 
//     @Override
//     public int getId() {
//         return id;
//     }
// 
//     @Override
//     public String getName() {
//         return name;
//     }
// 
//     @Override
//     public Type getType() {
//         return Type.CATEGORY;
//     }
// 
// }
// 
// Path: app/src/main/java/io/github/droidkaigi/confsched/model/Speaker.java
// @Parcel
// @Table
// public class Speaker {
// 
//     @PrimaryKey(auto = false)
//     @Column(indexed = true)
//     @SerializedName("id")
//     public int id;
// 
//     @Column(indexed = true)
//     @SerializedName("name")
//     public String name;
// 
//     @Column
//     @Nullable
//     @SerializedName("image_url")
//     public String imageUrl;
// 
//     @Column
//     @Nullable
//     @SerializedName("twitter_name")
//     public String twitterName;
// 
//     @Column
//     @Nullable
//     @SerializedName("github_name")
//     public String githubName;
// 
// }


// Path: app/src/main/java/io/github/droidkaigi/confsched/dao/SessionDao.java
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import io.github.droidkaigi.confsched.model.Category;
import io.github.droidkaigi.confsched.model.Category_Relation;
import io.github.droidkaigi.confsched.model.OrmaDatabase;
import io.github.droidkaigi.confsched.model.Place;
import io.github.droidkaigi.confsched.model.Place_Relation;
import io.github.droidkaigi.confsched.model.Session;
import io.github.droidkaigi.confsched.model.Session_Relation;
import io.github.droidkaigi.confsched.model.Speaker;
import io.github.droidkaigi.confsched.model.Speaker_Relation;
import rx.Observable;

package io.github.droidkaigi.confsched.dao;




@Singleton
public class SessionDao {

    OrmaDatabase orma;

    @Inject
    public SessionDao(OrmaDatabase orma) {
        this.orma = orma;
    }

    public Session_Relation sessionRelation() {
        return orma.relationOfSession();
    }

    private Speaker_Relation speakerRelation() {
        return orma.relationOfSpeaker();
    }

    private Place_Relation placeRelation() {
        return orma.relationOfPlace();
    }

    private Category_Relation categoryRelation() {
        return orma.relationOfCategory();
    }

    private void insertSpeaker(Speaker speaker) {
        if (speaker != null && speakerRelation().selector().idEq(speaker.id).isEmpty()) {
            speakerRelation().inserter().execute(speaker);
        }
    }

    private void insertPlace(Place place) {
        if (place != null && placeRelation().selector().idEq(place.id).isEmpty()) {
            placeRelation().inserter().execute(place);
        }
    }

    private void insertCategory(Category category) {