class HaloModule implements Parcelable {

    @Api(1.0)
    @NonNull
    public static HaloModule create(@NonNull Cursor cursor) {
        HaloModule remoteModule = new HaloModule();
        remoteModule.mCustomerId = cursor.getInt(cursor.getColumnIndex(HaloManagerContract.RemoteModules.CUSTOMER));
        remoteModule.mId = cursor.getString(cursor.getColumnIndex(HaloManagerContract.RemoteModules.ID));
        remoteModule.mName = cursor.getString(cursor.getColumnIndex(HaloManagerContract.RemoteModules.NAME));
        remoteModule.mEnabled = cursor.getLong(cursor.getColumnIndex(HaloManagerContract.RemoteModules.ENABLED)) == 1;
        remoteModule.mIsSingle = cursor.getLong(cursor.getColumnIndex(HaloManagerContract.RemoteModules.SINGLE)) == 1;
        if (!cursor.isNull(cursor.getColumnIndex(HaloManagerContract.RemoteModules.UPDATED_AT))) {
            remoteModule.mLastUpdate = new Date(cursor.getLong(cursor.getColumnIndex(HaloManagerContract.RemoteModules.UPDATED_AT)));
        }
        if (!cursor.isNull(cursor.getColumnIndex(HaloManagerContract.RemoteModules.CREATED_AT))) {
            remoteModule.mCreationDate = new Date(cursor.getLong(cursor.getColumnIndex(HaloManagerContract.RemoteModules.CREATED_AT)));
        }
        remoteModule.mInternalId = cursor.getString(cursor.getColumnIndex(HaloManagerContract.RemoteModules.INTERNAL_ID));
        return remoteModule;
    }

    public  HaloModule();
    @Api(1.2) public  HaloModule(@NonNull Integer customerId, @NonNull String id, @NonNull String name, boolean enabled, @NonNull Date creationDate, @Nullable Date lastUpdate, @NonNull String internalId, boolean isSingle, JSONArray fields);
    protected  HaloModule(Parcel in);

}