package com.whatstodo.persistence;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
//Database
private static final String DATABASE_NAME = "whatsToDo.db";
private static final int DATABASE_VERSION = 4;
//TodoList Table
public static final String TODOLIST_TABLE = "todolist";
public static final String TODOLIST_COLUMN_ID = "_id";
public static final String TODOLIST_COLUMN_NAME = "name";
public static final String TODOLIST_COLUMN_SIZE = "size";
//Task Table
public static final String TASK_TABLE = "tasklist";
public static final String TASK_COLUMN_ID = "_id";
public static final String TASK_COLUMN_NAME = "name";
public static final String TASK_COLUMN_DONE = "done";
public static final String TASK_COLUMN_DATE = "date";
public static final String TASK_COLUMN_REMINDER = "reminder";
public static final String TASK_COLUMN_LIST_ID = "listid";
public static final String TASK_COLUMN_NOTICE = "notice";
public static final String TASK_COLUMN_PRIORITY = "priority";
public static final String TASK_COLUMN_ADDRESS = "address";
public static final String TASK_COLUMN_CALENDAR_CREATED = "calendarCreated";
//HistoryEvent Table
public static final String HISTORY_TABLE = "history";
public static final String HISTORY_COLUMN_ID = "_id";
public static final String HISTORY_COLUMN_ACTION = "action";
public static final String HISTORY_COLUMN_TYPE = "type";
public static final String HISTORY_COLUMN_ENTITY_UID = "entityUid";
public static final String HISTORY_COLUMN_PARENT_ENTITY_UID = "parentEntityUid";
public static final String HISTORY_COLUMN_TIME_OF_CHANGE = "timeOfChange";
public static final String HISTORY_COLUMN_IS_SYNCHRONIZED = "isSynchronized";
//SQL Statements
private static final String TODOLIST_CREATE = "CREATE TABLE "
+ TODOLIST_TABLE
+ "("
+ TODOLIST_COLUMN_ID + " integer primary key autoincrement, "
+ TODOLIST_COLUMN_NAME + " text,"
+ TODOLIST_COLUMN_SIZE + " integer"
+ ");";
private static final String TASK_CREATE = "CREATE TABLE "
+ TASK_TABLE
+ "("
+ TASK_COLUMN_ID + " integer primary key autoincrement, "
+ TASK_COLUMN_LIST_ID + " integer,"
+ TASK_COLUMN_NAME + " text,"
+ TASK_COLUMN_DONE + " integer,"
+ TASK_COLUMN_DATE + " integer,"
+ TASK_COLUMN_REMINDER + " integer,"
+ TASK_COLUMN_NOTICE + " text,"
+ TASK_COLUMN_PRIORITY + " integer,"
+ TASK_COLUMN_ADDRESS + " text,"
+ TASK_COLUMN_CALENDAR_CREATED + " integer,"
+ "FOREIGN KEY(" + TASK_COLUMN_LIST_ID + ") REFERENCES "+ TODOLIST_TABLE + "(" + TODOLIST_COLUMN_ID + ")"
+ ");";
private static final String HISTORY_CREATE = "CREATE TABLE "
+ HISTORY_TABLE
+ "("
+ HISTORY_COLUMN_ID + " integer primary key autoincrement, "
+ HISTORY_COLUMN_ACTION + " text,"
+ HISTORY_COLUMN_TYPE + " text,"
+ HISTORY_COLUMN_ENTITY_UID + " integer,"
+ HISTORY_COLUMN_PARENT_ENTITY_UID + " intgeger,"
+ HISTORY_COLUMN_TIME_OF_CHANGE + " integer,"
+ HISTORY_COLUMN_IS_SYNCHRONIZED + " integer"
+ ");";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TODOLIST_CREATE);
db.execSQL(TASK_CREATE);
db.execSQL(HISTORY_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//TODO save data on upgrade
db.execSQL("DROP TABLE IF EXISTS " + TODOLIST_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + TASK_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + HISTORY_TABLE);
onCreate(db);
}
}