package com.myMinistry.provider;
import android.provider.BaseColumns;
import com.myMinistry.provider.MinistryDatabase.Tables;
public class MinistryContract {
interface TimeColumns {
/** PublisherID to link to publishers table. */
String PUBLISHER_ID = "publisherID";
/** EntryTypeID to link to entryType table. */
String ENTRY_TYPE_ID = "entryType";
/** Start Date of the time entry. */
String DATE_START = "startDate";
/** End Date of the time entry. */
String DATE_END = "endDate";
/** Start time of the entry. */
String TIME_START = "startTime";
/** End time of the entry. */
String TIME_END = "endTime";
}
public static class Time implements TimeColumns, BaseColumns {
public static final String[] All_COLS = new String[] {_ID,PUBLISHER_ID,ENTRY_TYPE_ID,DATE_START,DATE_END,TIME_START,TIME_END};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.TIMES + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + PUBLISHER_ID + " INTEGER"
+ "," + ENTRY_TYPE_ID + " INTEGER"
+ "," + DATE_START + " TEXT"
+ "," + DATE_END + " TEXT"
+ "," + TIME_START + " TEXT"
+ "," + TIME_END + " TEXT )";
}
interface RolloverColumns {
/** PublisherID to link to publishers table. */
String PUBLISHER_ID = "publisherID";
/** Date of the roll over. */
String DATE = "date";
/** Amount of time to roll over. */
String MINUTES = "minutes";
}
public static class Rollover implements RolloverColumns, BaseColumns {
public static final String[] All_COLS = new String[] {_ID,PUBLISHER_ID,DATE,MINUTES};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.ROLLOVER + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + PUBLISHER_ID + " INTEGER"
+ "," + DATE + " TEXT"
+ "," + MINUTES + " INTEGER )";
}
interface EntryTypeColumns {
/** Name of the entry type. */
String NAME = "name";
/** Active flag. */
String ACTIVE = "isActive";
/** RBC flag. */
String RBC = "isRBC";
/** Sorting. */
String SORT_ORDER = "sortOrder";
}
public static class EntryType implements EntryTypeColumns, BaseColumns {
public static final String DEFAULT_SORT = ACTIVE + " DESC," + SORT_ORDER + " ASC," + NAME + " COLLATE NOCASE ASC";
public static final String[] All_COLS = new String[] {_ID,NAME,ACTIVE,RBC,SORT_ORDER};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.ENTRY_TYPES + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + NAME + " TEXT"
+ "," + ACTIVE + " INTEGER"
+ "," + RBC + " INTEGER"
+ "," + SORT_ORDER + " INTEGER DEFAULT 0)";
}
interface HouseholderColumns {
/** Name of the householder. */
String NAME = "name";
/** Address. */
String ADDR = "address";
/** Phone mobile. */
String MOBILE_PHONE = "phoneMobile";
/** Phone home. */
String HOME_PHONE = "phoneHome";
/** Phone work. */
String WORK_PHONE = "phoneWork";
/** Phone other. */
String OTHER_PHONE = "phoneOther";
/** Active flag. */
String ACTIVE = "isActive";
/** Sort order. */
String SORT_ORDER = "sortOrder";
}
public static class Householder implements HouseholderColumns, BaseColumns {
public static final String DEFAULT_SORT = HouseholderColumns.ACTIVE + " DESC," + HouseholderColumns.SORT_ORDER + " ASC, " + HouseholderColumns.NAME + " COLLATE NOCASE ASC";
public static final String[] All_COLS = new String[] {_ID,NAME,ADDR,MOBILE_PHONE,HOME_PHONE,WORK_PHONE,OTHER_PHONE,ACTIVE};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.HOUSEHOLDERS + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + NAME + " TEXT"
+ "," + ADDR + " TEXT"
+ "," + MOBILE_PHONE + " TEXT"
+ "," + HOME_PHONE + " TEXT"
+ "," + WORK_PHONE + " TEXT"
+ "," + OTHER_PHONE + " TEXT"
+ "," + ACTIVE + " INTEGER"
+ "," + SORT_ORDER + " INTEGER DEFAULT 1)";
}
interface LiteratureColumns {
/** Name of the literature. */
String NAME = "name";
/** LiteruateTypeID to link to literatureTypes tables. */
String TYPE_OF_LIERATURE_ID = "typeID";
/** Active flag. */
String ACTIVE = "isActive";
/** Count weight of literature. */
String WEIGHT = "countWeight";
/** Sort order. */
String SORT_ORDER = "sortOrder";
}
public static class Literature implements LiteratureColumns, BaseColumns {
public static final String DEFAULT_SORT = Qualified.LITERATURE_ACTIVE + " DESC," + Qualified.LITERATURE_SORT + " ASC," + Qualified.LITERATURE_NAME + " COLLATE NOCASE ASC";
public static final String[] All_COLS = new String[] {_ID,NAME,TYPE_OF_LIERATURE_ID,ACTIVE,WEIGHT,SORT_ORDER};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.LITERATURE + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + NAME + " TEXT"
+ "," + TYPE_OF_LIERATURE_ID + " INTEGER"
+ "," + ACTIVE + " INTEGER"
+ "," + WEIGHT + " INTEGER DEFAULT 1"
+ "," + SORT_ORDER + " INTEGER )";
}
interface LiteratureTypeColumns {
/** Name of the literature. */
String NAME = "name";
/** Active flag. */
String ACTIVE = "isActive";
/** Sort order. */
String SORT_ORDER = "sortOrder";
}
public static class LiteratureType implements LiteratureTypeColumns, BaseColumns {
public static final String DEFAULT_SORT = LiteratureType.ACTIVE + " DESC, " + LiteratureType.SORT_ORDER + ", " + LiteratureType.NAME + " COLLATE NOCASE ASC";
public static final String[] All_COLS = new String[] {_ID,NAME,ACTIVE,SORT_ORDER};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.TYPES_OF_LIERATURE + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + NAME + " TEXT"
+ "," + ACTIVE + " INTEGER"
+ "," + SORT_ORDER + " INTEGER )";
}
interface PublisherColumns {
/** Name of the publisher. */
String NAME = "name";
/** Active flag. */
String ACTIVE = "isActive";
}
public static class Publisher implements PublisherColumns, BaseColumns {
public static final String DEFAULT_SORT = PublisherColumns.ACTIVE + " DESC, " + PublisherColumns.NAME + " COLLATE NOCASE ASC";
public static final String[] All_COLS = new String[] {_ID,NAME,ACTIVE};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.PUBLISHERS + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + NAME + " TEXT"
+ "," + ACTIVE + " INTEGER DEFAULT 1)";
}
interface LiteraturePlacedColumns {
/** PublisherID to link to publishers table. */
String PUBLISHER_ID = "publisherID";
/** LiteratureID to link to literatureNames table. */
String LITERATURE_ID = "litNameID";
/** HouseholderID to link to householders table. */
String HOUSEHOLDER_ID = "householderID";
/** TimeID to link to times table. */
String TIME_ID = "timeID";
/** Number of literatures placed. */
String COUNT = "count";
/** Date of the literature placed. */
String DATE = "datePlaced";
}
public static class LiteraturePlaced implements LiteraturePlacedColumns, BaseColumns {
public static final String[] All_COLS = new String[] {_ID,PUBLISHER_ID,LITERATURE_ID,HOUSEHOLDER_ID,TIME_ID,COUNT,DATE};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.PLACED_LITERATURE + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + PUBLISHER_ID + " INTEGER"
+ "," + LITERATURE_ID + " INTEGER"
+ "," + HOUSEHOLDER_ID + " INTEGER"
+ "," + TIME_ID + " INTEGER"
+ "," + COUNT + " INTEGER"
+ "," + DATE + " TEXT )";
}
interface PioneeringColumns {
/** PublisherID to link to publishers table. */
String PUBLISHER_ID = "publisherID";
String PIONEERING_TYPE_ID = "pioneeringTypeID";
String YEAR_START = "yearStart";
String MONTH_START = "monthStart";
String YEAR_END = "yearEnd";
String MONTH_END = "monthEnd";
String MONTHLY_HOURS = "monthlyHours";
}
public static class Pioneering implements PioneeringColumns, BaseColumns {
public static final String DEFAULT_SORT = null;
public static final String[] All_COLS = new String[] {_ID,PUBLISHER_ID,PIONEERING_TYPE_ID,YEAR_START,MONTH_START,YEAR_END,MONTH_END,MONTHLY_HOURS};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.PIONEERING + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + PUBLISHER_ID + " INTEGER"
+ "," + PIONEERING_TYPE_ID + " INTEGER"
+ "," + YEAR_START + " INTEGER"
+ "," + MONTH_START + " INTEGER"
+ "," + YEAR_END + " INTEGER"
+ "," + MONTH_END + " INTEGER"
+ "," + MONTHLY_HOURS + " INTEGER )";
}
interface PioneeringTypeColumns {
String NAME = "name";
}
public static class PioneeringType implements PioneeringTypeColumns, BaseColumns {
public static final String DEFAULT_SORT = PioneeringType.NAME + " COLLATE NOCASE ASC";
public static final String[] All_COLS = new String[] {_ID,NAME};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.TYPES_OF_PIONEERING + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + NAME + " TEXT )";
}
interface TimeHouseholderColumns {
/** PublisherID to link to publishers table. */
String TIME_ID = "timeID";
String HOUSEHOLDER_ID = "householderID";
String STUDY = "isStudy";
String RETURN_VISIT = "isReturnVisit";
}
public static class TimeHouseholder implements TimeHouseholderColumns, BaseColumns {
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.TIME_HOUSEHOLDERS + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + TIME_ID + " INTEGER DEFAULT 0"
+ "," + HOUSEHOLDER_ID + " INTEGER DEFAULT 0"
+ "," + STUDY + " INTEGER DEFAULT 0"
+ "," + RETURN_VISIT + " INTEGER DEFAULT 1)";
}
interface NotesColumns {
String TIME_ID = "timeID";
String HOUSEHOLDER_ID = "householderID";
String NOTES = "notes";
}
public static class Notes implements NotesColumns, BaseColumns {
public static final String[] All_COLS = new String[] {_ID,TIME_ID,HOUSEHOLDER_ID,NOTES};
public static final String SCRIPT_CREATE = "CREATE TABLE " + Tables.NOTES + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT"
+ "," + TIME_ID + " INTEGER"
+ "," + HOUSEHOLDER_ID + " INTEGER"
+ "," + NOTES + " TEXT)";
}
public interface UnionsNameAsRef {
String _ID = "_id";
String DATE = "date";
String TYPE_ID = "unionTypeID";
String TITLE = "title";
String ACTIVE = "isActive";
String NOTE_ID = "noteID";
String NAME = "name";
String DATE_START = "dateStart";
String DATE_END = "dateEnd";
String PUBLISHER_NAME = "publisherName";
String HOUSEHOLDER_NAME = "householderName";
String ENTRY_TYPE_NAME = "entryTypeName";
String COUNT = "count";
String HH_COUNT = "HHcount";
}
interface UnionsNameAsCols {
String _ID = " as " + UnionsNameAsRef._ID;
String DATE = " as " + UnionsNameAsRef.DATE;
String TYPE_ID = " as " + UnionsNameAsRef.TYPE_ID;
String TITLE = " as " + UnionsNameAsRef.TITLE;
String ACTIVE = " as " + UnionsNameAsRef.ACTIVE;
String NOTE_ID = " as " + UnionsNameAsRef.NOTE_ID;
String NAME = " as " + UnionsNameAsRef.NAME;
String DATE_START = " as " + UnionsNameAsRef.DATE_START;
String DATE_END = " as " + UnionsNameAsRef.DATE_END;
String PUBLISHER_NAME = " as " + UnionsNameAsRef.PUBLISHER_NAME;
String HOUSEHOLDER_NAME = " as " + UnionsNameAsRef.HOUSEHOLDER_NAME;
String ENTRY_TYPE_NAME = " as " + UnionsNameAsRef.ENTRY_TYPE_NAME;
String COUNT = " as " + UnionsNameAsRef.COUNT;
String HH_COUNT = " as " + UnionsNameAsRef.HH_COUNT;
}
interface Qualified {
String LITERATURE_ID = Tables.LITERATURE + "." + Literature._ID;
String LITERATURE_NAME = Tables.LITERATURE + "." + Literature.NAME;
String LITERATURE_TYPE_ID_LINK = Tables.LITERATURE + "." + Literature.TYPE_OF_LIERATURE_ID;
String LITERATURE_WEIGHT = Tables.LITERATURE + "." + Literature.WEIGHT;
String LITERATURE_SORT = Tables.LITERATURE + "." + Literature.SORT_ORDER;
String LITERATURE_ACTIVE = Tables.LITERATURE + "." + Literature.ACTIVE;
String TYPE_OF_LITERATURE_ID = Tables.TYPES_OF_LIERATURE + "." + LiteratureType._ID;
String TYPE_OF_LITERATURE_NAME = Tables.TYPES_OF_LIERATURE + "." + LiteratureType.NAME;
String PLACED_LITERATURE_PUBLISHER_ID = Tables.PLACED_LITERATURE + "." + LiteraturePlaced.PUBLISHER_ID;
String PLACED_LITERATURE_DATE = Tables.PLACED_LITERATURE + "." + LiteraturePlaced.DATE;
String PLACED_LITERATURE_ID = Tables.PLACED_LITERATURE + "." + LiteraturePlaced._ID;
String PLACED_LITERATURE_HOUSEHOLDER_ID = Tables.PLACED_LITERATURE + "." + LiteraturePlaced.HOUSEHOLDER_ID;
String PLACED_LITERATURE_COUNT = Tables.PLACED_LITERATURE + "." + LiteraturePlaced.COUNT;
String PLACED_LITERATURE_LIT_ID = Tables.PLACED_LITERATURE + "." + LiteraturePlaced.LITERATURE_ID;
String PLACED_LITERATURE_TIME_ID = Tables.PLACED_LITERATURE + "." + LiteraturePlaced.TIME_ID;
String ENTRY_TYPE_ID = Tables.ENTRY_TYPES + "." + EntryType._ID;
String ENTRY_TYPE_RBC = Tables.ENTRY_TYPES + "." + EntryType.RBC;
String ENTRY_TYPE_NAME = Tables.ENTRY_TYPES + "." + EntryType.NAME;
String TIME_ID = Tables.TIMES + "." + Time._ID;
String TIME_PUBLISHER_ID = Tables.TIMES + "." + Time.PUBLISHER_ID;
String TIME_ENTRY_TYPE_ID = Tables.TIMES + "." + Time.ENTRY_TYPE_ID;
String TIME_DATE_START = Tables.TIMES + "." + Time.DATE_START;
String TIME_DATE_END = Tables.TIMES + "." + Time.DATE_END;
String TIME_TIME_START = Tables.TIMES + "." + Time.TIME_START;
String TIME_TIME_END = Tables.TIMES + "." + Time.TIME_END;
String HOUSEHOLDER_NAME = Tables.HOUSEHOLDERS + "." + Householder.NAME;
String HOUSEHOLDER_ID = Tables.HOUSEHOLDERS + "." + Householder._ID;
String PUBLISHER_ID = Tables.PUBLISHERS + "." + Publisher._ID;
String PUBLISHER_NAME = Tables.PUBLISHERS + "." + Publisher.NAME;
String TIMEHOUSEHOLDER_ID = Tables.TIME_HOUSEHOLDERS + "." + TimeHouseholder._ID;
String TIMEHOUSEHOLDER_TIME_ID = Tables.TIME_HOUSEHOLDERS + "." + TimeHouseholder.TIME_ID;
String TIMEHOUSEHOLDER_HOUSEHOLDER_ID = Tables.TIME_HOUSEHOLDERS + "." + TimeHouseholder.HOUSEHOLDER_ID;
String TIMEHOUSEHOLDER_IS_RETURN_VISIT = Tables.TIME_HOUSEHOLDERS + "." + TimeHouseholder.RETURN_VISIT;
String NOTES_ID = Tables.NOTES + "." + Notes._ID;
String NOTES_TIME_ID = Tables.NOTES + "." + Notes.TIME_ID;
String NOTES_HOUSEHOLDER_ID = Tables.NOTES + "." + Notes.HOUSEHOLDER_ID;
String NOTES_NOTES = Tables.NOTES + "." + Notes.NOTES;
String PIONEERING_ID = Tables.PIONEERING + "." + Pioneering._ID;
String TYPE_OF_PIONEERING_ID = Tables.TYPES_OF_PIONEERING + "." + PioneeringType._ID;
}
interface Joins {
String LITERATURE_JOIN_PLACED_LITERATURE = " INNER JOIN " + Tables.LITERATURE + " ON " + Qualified.LITERATURE_ID + " = " + Qualified.PLACED_LITERATURE_LIT_ID;
String TYPE_LITERATURE_JOIN_LITERATURE = " INNER JOIN " + Tables.TYPES_OF_LIERATURE + " ON " + Qualified.TYPE_OF_LITERATURE_ID + " = " + Qualified.LITERATURE_TYPE_ID_LINK;
String TIME_JOIN_TIMEHOUSEHOLDER = " INNER JOIN " + Tables.TIMES + " ON " + Qualified.TIME_ID + " = " + Qualified.TIMEHOUSEHOLDER_TIME_ID;
String PLACED_LITERATURE_ON_TIME = " INNER JOIN " + Tables.PLACED_LITERATURE + " ON " + Qualified.PLACED_LITERATURE_TIME_ID + " = " + Qualified.TIME_ID;
String TIMEHOUSEHOLDER_JOIN_TIME = " INNER JOIN " + Tables.TIME_HOUSEHOLDERS + " ON " + Qualified.TIMEHOUSEHOLDER_TIME_ID + " = " + Qualified.TIME_ID;
String TYPE_OF_PIONEERING_JOIN_PIONEERING = " INNER JOIN " + Tables.TYPES_OF_PIONEERING + " ON " + Qualified.TYPE_OF_PIONEERING_ID + " = " + Qualified.PIONEERING_ID;
String PLACED_LITERATURE_ON_LITERATURE_NAMES = " INNER JOIN " + Tables.PLACED_LITERATURE + " ON " + Qualified.PLACED_LITERATURE_LIT_ID + " = " + Qualified.LITERATURE_ID;
String TIME_ON_PLACED_LITERATURE = " INNER JOIN " + Tables.TIMES + " ON " + Qualified.TIME_ID + " = " + Qualified.PLACED_LITERATURE_TIME_ID;
String ENTRY_TYPES_ON_TIME = " INNER JOIN " + Tables.ENTRY_TYPES + " ON " + Qualified.ENTRY_TYPE_ID + " = " + Qualified.TIME_ENTRY_TYPE_ID;
String PUBLISHERS_ON_PLACED_LITERATURE = " INNER JOIN " + Tables.PUBLISHERS + " ON " + Qualified.PUBLISHER_ID + " = " + Qualified.PLACED_LITERATURE_PUBLISHER_ID;
String PUBLISHERS_ON_TIME = " INNER JOIN " + Tables.PUBLISHERS + " ON " + Qualified.PUBLISHER_ID + " = " + Qualified.TIME_PUBLISHER_ID;
}
interface LeftJoins {
String HOUSEHOLDERS_JOIN_TIMEHOUSEHOLDERS = " LEFT JOIN " + Tables.HOUSEHOLDERS + " ON " + Qualified.HOUSEHOLDER_ID + " = " + Qualified.TIMEHOUSEHOLDER_HOUSEHOLDER_ID;
String HOUSEHOLDERS_JOIN_PLACED_LITERATURE = " LEFT JOIN " + Tables.HOUSEHOLDERS + " ON " + Qualified.HOUSEHOLDER_ID + " = " + Qualified.PLACED_LITERATURE_HOUSEHOLDER_ID;
String ENTRY_TYPES_JOIN_TIME = " LEFT JOIN " + Tables.ENTRY_TYPES + " ON " + Qualified.ENTRY_TYPE_ID + " = " + Qualified.TIME_ENTRY_TYPE_ID;
String NOTES_ON_TIMEHOUSEHOLDER_AND_TIME = " LEFT JOIN " + Tables.NOTES + " ON (" + Qualified.NOTES_HOUSEHOLDER_ID + " = " + Qualified.TIMEHOUSEHOLDER_HOUSEHOLDER_ID + " AND " + Qualified.NOTES_TIME_ID + " = " + Qualified.TIME_ID + ")";
}
private MinistryContract() { }
}