package com.utopiaindustries.qualitychecker.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "inventory"; // Table and columns public static final String PRODUCT_TABLE_NAME = "product"; public static final String PRODUCT_COLUMN_ASIN = "asin"; public static final String PRODUCT_COLUMN_PARENT_ASIN = "parentAsin"; public static final String PRODUCT_COLUMN_MARKETPLACE = "marketplace"; public static final String PRODUCT_COLUMN_SKU = "sku"; public static final String PRODUCT_COLUMN_TITLE = "title"; public static final String PRODUCT_COLUMN_HS_CODE = "hsCode"; public static final String PRODUCT_COLUMN_MODEL_NUMBER = "modelNumber"; public static final String PRODUCT_COLUMN_ITEM_PER_BOX = "itemPerBox"; public static final String PRODUCT_COLUMN_SM_COLOR = "smColor"; public static final String PRODUCT_COLUMN_SM_SIZE = "smSize"; public static final String PRODUCT_COLUMN_SM_ITEM_NAME = "smItemName"; public static final String PRODUCT_COLUMN_ITEM_PER_PACK = "itemPerPack"; public static final String PRODUCT_COLUMN_INVENTORY = "inventory"; public static final String PRODUCT_COLUMN_CATEGORY = "category"; public static final String PRODUCT_COLUMN_FNSKU = "fnsku"; /* * dimension table */ public static final String INSPECTION_DIMENSION_TABLE_NAME = "dimension"; public static final String DIMENSION_COLUMN_ID = "id"; public static final String DIMENSION_COLUMN_TITLE = "title"; public static final String DIMENSION_COLUMN_CATEGORY = "category"; /* * checkpoints table * */ public static final String CHECKPOINT_TABLE_NAME = "checkpoint"; public static final String CHECKPOINT_COLUMN_ID = "id"; public static final String CHECKPOINT_COLUMN_TITLE = "title"; public static final String CHECKPOINT_COLUMN_CATEGORY = "category"; /* * defect table * */ public static final String DEFECT_TABLE_NAME = "defect"; public static final String DEFECT_COLUMN_DEFECT = "defect"; public static final String DEFECT_COLUMN_CATEGORY = "category"; /* * unit table * */ public static final String UNIT_TABLE_NAME = "unit"; public static final String UNIT_COLUMN_ID = "id"; public static final String UNIT_COLUMN_TITLE = "title"; /* * report table * */ public static final String REPORT_TABLE_NAME = "report"; public static final String REPORT_COLUMN_ID = "id"; public static final String REPORT_COLUMN_CONTENT = "content"; public static final String REPORT_COLUMN_SYNCED = "synced"; /* * sku checkpoints standard * */ public static final String CHECKPOINT_SKU_TABLE_NAME = "checkpoint_sku"; public static final String CHECKPOINT_SKU_SKU = "sku"; public static final String CHECKPOINT_SKU_CHECKPOINT_ID = "checkpoint_id"; public static final String CHECKPOINT_SKU_STANDARD = "standard"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // creating product table String CREATE_PRODUCT_TABLE = "CREATE TABLE " + PRODUCT_TABLE_NAME + "(" + PRODUCT_COLUMN_ASIN + " TEXT," + PRODUCT_COLUMN_PARENT_ASIN + " TEXT," + PRODUCT_COLUMN_MARKETPLACE + " TEXT," + PRODUCT_COLUMN_SKU + " TEXT," + PRODUCT_COLUMN_TITLE + " TEXT," + PRODUCT_COLUMN_HS_CODE + " TEXT," + PRODUCT_COLUMN_MODEL_NUMBER + " TEXT," + PRODUCT_COLUMN_ITEM_PER_BOX + " INTEGER," + PRODUCT_COLUMN_SM_COLOR + " TEXT," + PRODUCT_COLUMN_SM_SIZE + " TEXT," + PRODUCT_COLUMN_SM_ITEM_NAME + " TEXT," + PRODUCT_COLUMN_ITEM_PER_PACK + " INTEGER," + PRODUCT_COLUMN_INVENTORY + " INTEGER," + PRODUCT_COLUMN_CATEGORY + " TEXT," + PRODUCT_COLUMN_FNSKU + " TEXT," + "PRIMARY KEY (" + PRODUCT_COLUMN_ASIN + ", " + PRODUCT_COLUMN_MARKETPLACE + ", " + PRODUCT_COLUMN_SKU + ")" + ")"; String CREATE_INSPECTION_DIMENSION_TABLE = "CREATE TABLE " + INSPECTION_DIMENSION_TABLE_NAME + " (" + DIMENSION_COLUMN_ID + " INTEGER PRIMARY KEY," + DIMENSION_COLUMN_TITLE + " TEXT NOT NULL," + DIMENSION_COLUMN_CATEGORY + " TEXT NOT NULL);"; String CREATE_CHECKPOINT_TABLE = "CREATE TABLE " + CHECKPOINT_TABLE_NAME + " (" + CHECKPOINT_COLUMN_ID + " INTEGER PRIMARY KEY," + CHECKPOINT_COLUMN_TITLE + " TEXT NOT NULL," + CHECKPOINT_COLUMN_CATEGORY + " TEXT NOT NULL);"; String CREATE_DEFECT_TABLE = "CREATE TABLE " + DEFECT_TABLE_NAME + " (" + DEFECT_COLUMN_DEFECT + " TEXT NOT NULL," + DEFECT_COLUMN_CATEGORY + " TEXT NOT NULL," + "PRIMARY KEY (" + DEFECT_COLUMN_DEFECT + ", " + DEFECT_COLUMN_CATEGORY + ")" + ")"; String CREATE_UNIT_TABLE = "CREATE TABLE " + UNIT_TABLE_NAME + " (" + UNIT_COLUMN_ID + " INTEGER PRIMARY KEY," + UNIT_COLUMN_TITLE + " TEXT NOT NULL )"; String CREATE_REPORT_TABLE = "CREATE TABLE " + REPORT_TABLE_NAME + " (" + REPORT_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + REPORT_COLUMN_CONTENT + " TEXT NOT NULL," + REPORT_COLUMN_SYNCED + " INTEGER DEFAULT 0 CHECK(synced IN (0, 1))" + ")"; String CREATE_SKU_CHECKPOINT_TABLE = "CREATE TABLE " + CHECKPOINT_SKU_TABLE_NAME + " (" + CHECKPOINT_SKU_SKU + " TEXT NOT NULL," + CHECKPOINT_SKU_CHECKPOINT_ID + " INTEGER NOT NULL," + CHECKPOINT_SKU_STANDARD + " TEXT," + "PRIMARY KEY (" + CHECKPOINT_SKU_SKU + ", " + CHECKPOINT_SKU_CHECKPOINT_ID + "))"; db.execSQL( CREATE_PRODUCT_TABLE ); db.execSQL( CREATE_INSPECTION_DIMENSION_TABLE ); db.execSQL( CREATE_CHECKPOINT_TABLE ); db.execSQL( CREATE_DEFECT_TABLE ); db.execSQL( CREATE_UNIT_TABLE ); db.execSQL( CREATE_REPORT_TABLE ); db.execSQL( CREATE_SKU_CHECKPOINT_TABLE ); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL( "DROP TABLE IF EXISTS " + PRODUCT_TABLE_NAME); db.execSQL( "DROP TABLE IF EXISTS " + INSPECTION_DIMENSION_TABLE_NAME ); db.execSQL( "DROP TABLE IF EXISTS " + CHECKPOINT_TABLE_NAME ); db.execSQL( "DROP TABLE IF EXISTS " + DEFECT_TABLE_NAME ); db.execSQL( "DROP TABLE IF EXISTS " + UNIT_TABLE_NAME ); db.execSQL( "DROP TABLE IF EXISTS " + REPORT_TABLE_NAME ); db.execSQL( "DROP TABLE IF EXISTS " + CHECKPOINT_SKU_TABLE_NAME ); onCreate(db); } }