QA-App/app/src/main/java/com/utopiaindustries/qualitychecker/db/DatabaseHelper.java

158 lines
7.0 KiB
Java

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);
}
}