// Path: app/src/main/java/com/vsahin/moneycim/Model/Database/AppDatabase.java
// @Database(version = 1, entities = {RawSpending.class, SpendingGroup.class})
// @TypeConverters({Converters.class})
// public abstract class AppDatabase extends RoomDatabase{
// 
//     public abstract SpendingDao spendingDao();
//     public abstract SpendingGroupDao spendingGroupDao();
// 
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Entity/RawSpending.java
// @Entity(tableName = "spending")
// public class RawSpending implements Serializable {
// 
//     @PrimaryKey(autoGenerate = true)
//     @ColumnInfo(name = "id")
//     public int id;
// 
//     @ForeignKey(entity = SpendingGroup.class, parentColumns = "group-id", childColumns = "group-id")
//     @ColumnInfo(name = "group_id")
//     private int groupId;
// 
//     @TypeConverters(Converters.class)
//     @ColumnInfo(name = "date")
//     private Date date;
// 
//     @ColumnInfo(name = "quantity")
//     private Double quantity;
// 
//     @ColumnInfo(name = "description")
//     private String description;
// 
//     public int getId() {
//         return id;
//     }
// 
//     public int getGroupId() {
//         return groupId;
//     }
// 
//     public void setGroupId(int groupId) {
//         this.groupId = groupId;
//     }
// 
//     public Date getDate() {
//         return date;
//     }
// 
//     public void setDate(Date date) {
//         this.date = date;
//     }
// 
//     public Double getQuantity() {
//         return quantity;
//     }
// 
//     public void setQuantity(Double quantity) {
//         this.quantity = quantity;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Entity/SpendingGroup.java
// @Entity(tableName = "spending_group")
// public class SpendingGroup {
// 
//     @PrimaryKey(autoGenerate = true)
//     @ColumnInfo(name = "group_id")
//     private int groupId;
// 
//     @ColumnInfo(name = "group_name")
//     private String groupName;
// 
//     public int getGroupId() {
//         return groupId;
//     }
// 
//     public void setGroupId(int groupId) {
//         this.groupId = groupId;
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public void setGroupName(String groupName) {
//         this.groupName = groupName;
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Pojo/Spending.java
// public class Spending {
// 
//     @Embedded
//     private RawSpending rawSpending;
// 
//     @ColumnInfo(name = "group_name")
//     private String groupName;
// 
//     public RawSpending getRawSpending() {
//         return rawSpending;
//     }
// 
//     public void setRawSpending(RawSpending spending) {
//         this.rawSpending = spending;
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public void setGroupName(String groupName) {
//         this.groupName = groupName;
//     }
// 
//     public boolean isSame(Spending s1){
//         return s1.getRawSpending().getDescription().equals(this.getRawSpending().getDescription())
//                 && s1.getRawSpending().getQuantity().equals(this.getRawSpending().getQuantity())
//                 && s1.getRawSpending().getGroupId() == this.getRawSpending().getGroupId()
//                 && s1.getGroupName().equals(this.getGroupName());
// 
//     }
// }


import com.vsahin.moneycim.Model.Database.AppDatabase;
import com.vsahin.moneycim.Model.Entity.RawSpending;
import com.vsahin.moneycim.Model.Entity.SpendingGroup;
import com.vsahin.moneycim.Model.Pojo.Spending;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import androidx.lifecycle.LiveData;

package com.vsahin.moneycim.Model.Repository;





/**
 * Created by Volkan Şahin on 17.08.2017.
 */

@Singleton
public class SpendingRepository {
    private final AppDatabase appDatabase;
    @Inject
    public SpendingRepository(AppDatabase appDatabase) {
        this.appDatabase = appDatabase;
    }


// Path: app/src/main/java/com/vsahin/moneycim/Model/Database/AppDatabase.java
// @Database(version = 1, entities = {RawSpending.class, SpendingGroup.class})
// @TypeConverters({Converters.class})
// public abstract class AppDatabase extends RoomDatabase{
// 
//     public abstract SpendingDao spendingDao();
//     public abstract SpendingGroupDao spendingGroupDao();
// 
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Entity/RawSpending.java
// @Entity(tableName = "spending")
// public class RawSpending implements Serializable {
// 
//     @PrimaryKey(autoGenerate = true)
//     @ColumnInfo(name = "id")
//     public int id;
// 
//     @ForeignKey(entity = SpendingGroup.class, parentColumns = "group-id", childColumns = "group-id")
//     @ColumnInfo(name = "group_id")
//     private int groupId;
// 
//     @TypeConverters(Converters.class)
//     @ColumnInfo(name = "date")
//     private Date date;
// 
//     @ColumnInfo(name = "quantity")
//     private Double quantity;
// 
//     @ColumnInfo(name = "description")
//     private String description;
// 
//     public int getId() {
//         return id;
//     }
// 
//     public int getGroupId() {
//         return groupId;
//     }
// 
//     public void setGroupId(int groupId) {
//         this.groupId = groupId;
//     }
// 
//     public Date getDate() {
//         return date;
//     }
// 
//     public void setDate(Date date) {
//         this.date = date;
//     }
// 
//     public Double getQuantity() {
//         return quantity;
//     }
// 
//     public void setQuantity(Double quantity) {
//         this.quantity = quantity;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Entity/SpendingGroup.java
// @Entity(tableName = "spending_group")
// public class SpendingGroup {
// 
//     @PrimaryKey(autoGenerate = true)
//     @ColumnInfo(name = "group_id")
//     private int groupId;
// 
//     @ColumnInfo(name = "group_name")
//     private String groupName;
// 
//     public int getGroupId() {
//         return groupId;
//     }
// 
//     public void setGroupId(int groupId) {
//         this.groupId = groupId;
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public void setGroupName(String groupName) {
//         this.groupName = groupName;
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Model/Pojo/Spending.java
// public class Spending {
// 
//     @Embedded
//     private RawSpending rawSpending;
// 
//     @ColumnInfo(name = "group_name")
//     private String groupName;
// 
//     public RawSpending getRawSpending() {
//         return rawSpending;
//     }
// 
//     public void setRawSpending(RawSpending spending) {
//         this.rawSpending = spending;
//     }
// 
//     public String getGroupName() {
//         return groupName;
//     }
// 
//     public void setGroupName(String groupName) {
//         this.groupName = groupName;
//     }
// 
//     public boolean isSame(Spending s1){
//         return s1.getRawSpending().getDescription().equals(this.getRawSpending().getDescription())
//                 && s1.getRawSpending().getQuantity().equals(this.getRawSpending().getQuantity())
//                 && s1.getRawSpending().getGroupId() == this.getRawSpending().getGroupId()
//                 && s1.getGroupName().equals(this.getGroupName());
// 
//     }
// }


// Path: app/src/main/java/com/vsahin/moneycim/Model/Repository/SpendingRepository.java
import com.vsahin.moneycim.Model.Database.AppDatabase;
import com.vsahin.moneycim.Model.Entity.RawSpending;
import com.vsahin.moneycim.Model.Entity.SpendingGroup;
import com.vsahin.moneycim.Model.Pojo.Spending;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import androidx.lifecycle.LiveData;

package com.vsahin.moneycim.Model.Repository;





/**
 * Created by Volkan Şahin on 17.08.2017.
 */

@Singleton
public class SpendingRepository {
    private final AppDatabase appDatabase;
    @Inject
    public SpendingRepository(AppDatabase appDatabase) {
        this.appDatabase = appDatabase;
    }


    public LiveData<List<Spending>> getSpendings(){
