This is an automated email from the ASF dual-hosted git repository.

yiconghuang pushed a commit to branch feat/add-model
in repository https://gitbox.apache.org/repos/asf/texera.git


The following commit(s) were added to refs/heads/feat/add-model by this push:
     new 7d5623e4b5 feat: add jooq generated code
7d5623e4b5 is described below

commit 7d5623e4b5906a6d1c45ace25356b29a88415111
Author: Yicong Huang <[email protected]>
AuthorDate: Wed Aug 27 23:36:59 2025 -0700

    feat: add jooq generated code
---
 core/config/src/main/resources/udf.conf            |   2 +-
 .../dao/jooq/generated/tables/daos/ModelDao.java   | 178 +++++++++
 .../generated/tables/daos/ModelUserAccessDao.java  | 104 ++++++
 .../generated/tables/daos/ModelUserLikesDao.java   |  88 +++++
 .../generated/tables/daos/ModelVersionDao.java     | 163 +++++++++
 .../generated/tables/daos/ModelViewCountDao.java   | 102 ++++++
 .../jooq/generated/tables/interfaces/IModel.java   | 119 ++++++
 .../tables/interfaces/IModelUserAccess.java        |  80 ++++
 .../tables/interfaces/IModelUserLikes.java         |  68 ++++
 .../generated/tables/interfaces/IModelVersion.java | 109 ++++++
 .../tables/interfaces/IModelViewCount.java         |  68 ++++
 .../dao/jooq/generated/tables/pojos/Model.java     | 223 ++++++++++++
 .../generated/tables/pojos/ModelUserAccess.java    | 134 +++++++
 .../generated/tables/pojos/ModelUserLikes.java     | 111 ++++++
 .../jooq/generated/tables/pojos/ModelVersion.java  | 201 +++++++++++
 .../generated/tables/pojos/ModelViewCount.java     | 111 ++++++
 .../jooq/generated/tables/records/ModelRecord.java | 401 +++++++++++++++++++++
 .../tables/records/ModelUserAccessRecord.java      | 236 ++++++++++++
 .../tables/records/ModelUserLikesRecord.java       | 193 ++++++++++
 .../tables/records/ModelVersionRecord.java         | 360 ++++++++++++++++++
 .../tables/records/ModelViewCountRecord.java       | 194 ++++++++++
 21 files changed, 3244 insertions(+), 1 deletion(-)

diff --git a/core/config/src/main/resources/udf.conf 
b/core/config/src/main/resources/udf.conf
index 7212d1720e..37446a7f3a 100644
--- a/core/config/src/main/resources/udf.conf
+++ b/core/config/src/main/resources/udf.conf
@@ -17,7 +17,7 @@
 
 python {
     # python3 executable path
-    path = ""
+    path = "/Users/yicong-huang/IdeaProjects/texera/venv/bin/python"
     path = ${?UDF_PYTHON_PATH}
 
     log {
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelDao.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelDao.java
new file mode 100644
index 0000000000..b364b122fe
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelDao.java
@@ -0,0 +1,178 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.daos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.Model;
+import edu.uci.ics.texera.dao.jooq.generated.tables.records.ModelRecord;
+
+import java.sql.Timestamp;
+import java.util.List;
+import java.util.Optional;
+
+import org.jooq.Configuration;
+import org.jooq.impl.DAOImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelDao extends DAOImpl<ModelRecord, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model, Integer> {
+
+    /**
+     * Create a new ModelDao without any configuration
+     */
+    public ModelDao() {
+        super(Model.MODEL, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model.class);
+    }
+
+    /**
+     * Create a new ModelDao with an attached configuration
+     */
+    public ModelDao(Configuration configuration) {
+        super(Model.MODEL, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model.class, configuration);
+    }
+
+    @Override
+    public Integer 
getId(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model object) {
+        return object.getMid();
+    }
+
+    /**
+     * Fetch records that have <code>mid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchRangeOfMid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(Model.MODEL.MID, lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>mid IN (values)</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchByMid(Integer... values) {
+        return fetch(Model.MODEL.MID, values);
+    }
+
+    /**
+     * Fetch a unique record that has <code>mid = value</code>
+     */
+    public edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model 
fetchOneByMid(Integer value) {
+        return fetchOne(Model.MODEL.MID, value);
+    }
+
+    /**
+     * Fetch a unique record that has <code>mid = value</code>
+     */
+    public Optional<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchOptionalByMid(Integer value) {
+        return fetchOptional(Model.MODEL.MID, value);
+    }
+
+    /**
+     * Fetch records that have <code>owner_uid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchRangeOfOwnerUid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(Model.MODEL.OWNER_UID, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>owner_uid IN (values)</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchByOwnerUid(Integer... values) {
+        return fetch(Model.MODEL.OWNER_UID, values);
+    }
+
+    /**
+     * Fetch records that have <code>name BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchRangeOfName(String lowerInclusive, String upperInclusive) {
+        return fetchRange(Model.MODEL.NAME, lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>name IN (values)</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchByName(String... values) {
+        return fetch(Model.MODEL.NAME, values);
+    }
+
+    /**
+     * Fetch records that have <code>is_public BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchRangeOfIsPublic(Boolean lowerInclusive, Boolean upperInclusive) {
+        return fetchRange(Model.MODEL.IS_PUBLIC, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>is_public IN (values)</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchByIsPublic(Boolean... values) {
+        return fetch(Model.MODEL.IS_PUBLIC, values);
+    }
+
+    /**
+     * Fetch records that have <code>is_downloadable BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchRangeOfIsDownloadable(Boolean lowerInclusive, Boolean upperInclusive) {
+        return fetchRange(Model.MODEL.IS_DOWNLOADABLE, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>is_downloadable IN (values)</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchByIsDownloadable(Boolean... values) {
+        return fetch(Model.MODEL.IS_DOWNLOADABLE, values);
+    }
+
+    /**
+     * Fetch records that have <code>description BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchRangeOfDescription(String lowerInclusive, String upperInclusive) {
+        return fetchRange(Model.MODEL.DESCRIPTION, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>description IN (values)</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchByDescription(String... values) {
+        return fetch(Model.MODEL.DESCRIPTION, values);
+    }
+
+    /**
+     * Fetch records that have <code>creation_time BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchRangeOfCreationTime(Timestamp lowerInclusive, Timestamp upperInclusive) {
+        return fetchRange(Model.MODEL.CREATION_TIME, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>creation_time IN (values)</code>
+     */
+    public List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model> 
fetchByCreationTime(Timestamp... values) {
+        return fetch(Model.MODEL.CREATION_TIME, values);
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelUserAccessDao.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelUserAccessDao.java
new file mode 100644
index 0000000000..7b81c106b3
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelUserAccessDao.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.daos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.enums.PrivilegeEnum;
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelUserAccess;
+import 
edu.uci.ics.texera.dao.jooq.generated.tables.records.ModelUserAccessRecord;
+
+import java.util.List;
+
+import org.jooq.Configuration;
+import org.jooq.Record2;
+import org.jooq.impl.DAOImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelUserAccessDao extends DAOImpl<ModelUserAccessRecord, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess, 
Record2<Integer, Integer>> {
+
+    /**
+     * Create a new ModelUserAccessDao without any configuration
+     */
+    public ModelUserAccessDao() {
+        super(ModelUserAccess.MODEL_USER_ACCESS, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess.class);
+    }
+
+    /**
+     * Create a new ModelUserAccessDao with an attached configuration
+     */
+    public ModelUserAccessDao(Configuration configuration) {
+        super(ModelUserAccess.MODEL_USER_ACCESS, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess.class, 
configuration);
+    }
+
+    @Override
+    public Record2<Integer, Integer> 
getId(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess 
object) {
+        return compositeKeyRecord(object.getMid(), object.getUid());
+    }
+
+    /**
+     * Fetch records that have <code>mid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess> 
fetchRangeOfMid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelUserAccess.MODEL_USER_ACCESS.MID, 
lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>mid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess> 
fetchByMid(Integer... values) {
+        return fetch(ModelUserAccess.MODEL_USER_ACCESS.MID, values);
+    }
+
+    /**
+     * Fetch records that have <code>uid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess> 
fetchRangeOfUid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelUserAccess.MODEL_USER_ACCESS.UID, 
lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>uid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess> 
fetchByUid(Integer... values) {
+        return fetch(ModelUserAccess.MODEL_USER_ACCESS.UID, values);
+    }
+
+    /**
+     * Fetch records that have <code>privilege BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess> 
fetchRangeOfPrivilege(PrivilegeEnum lowerInclusive, PrivilegeEnum 
upperInclusive) {
+        return fetchRange(ModelUserAccess.MODEL_USER_ACCESS.PRIVILEGE, 
lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>privilege IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess> 
fetchByPrivilege(PrivilegeEnum... values) {
+        return fetch(ModelUserAccess.MODEL_USER_ACCESS.PRIVILEGE, values);
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelUserLikesDao.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelUserLikesDao.java
new file mode 100644
index 0000000000..542ff180df
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelUserLikesDao.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.daos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelUserLikes;
+import 
edu.uci.ics.texera.dao.jooq.generated.tables.records.ModelUserLikesRecord;
+
+import java.util.List;
+
+import org.jooq.Configuration;
+import org.jooq.Record2;
+import org.jooq.impl.DAOImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelUserLikesDao extends DAOImpl<ModelUserLikesRecord, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes, 
Record2<Integer, Integer>> {
+
+    /**
+     * Create a new ModelUserLikesDao without any configuration
+     */
+    public ModelUserLikesDao() {
+        super(ModelUserLikes.MODEL_USER_LIKES, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes.class);
+    }
+
+    /**
+     * Create a new ModelUserLikesDao with an attached configuration
+     */
+    public ModelUserLikesDao(Configuration configuration) {
+        super(ModelUserLikes.MODEL_USER_LIKES, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes.class, 
configuration);
+    }
+
+    @Override
+    public Record2<Integer, Integer> 
getId(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes object) 
{
+        return compositeKeyRecord(object.getUid(), object.getMid());
+    }
+
+    /**
+     * Fetch records that have <code>uid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes> 
fetchRangeOfUid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelUserLikes.MODEL_USER_LIKES.UID, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>uid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes> 
fetchByUid(Integer... values) {
+        return fetch(ModelUserLikes.MODEL_USER_LIKES.UID, values);
+    }
+
+    /**
+     * Fetch records that have <code>mid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes> 
fetchRangeOfMid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelUserLikes.MODEL_USER_LIKES.MID, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>mid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes> 
fetchByMid(Integer... values) {
+        return fetch(ModelUserLikes.MODEL_USER_LIKES.MID, values);
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelVersionDao.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelVersionDao.java
new file mode 100644
index 0000000000..790ea93a87
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelVersionDao.java
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.daos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelVersion;
+import edu.uci.ics.texera.dao.jooq.generated.tables.records.ModelVersionRecord;
+
+import java.sql.Timestamp;
+import java.util.List;
+import java.util.Optional;
+
+import org.jooq.Configuration;
+import org.jooq.impl.DAOImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelVersionDao extends DAOImpl<ModelVersionRecord, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion, Integer> {
+
+    /**
+     * Create a new ModelVersionDao without any configuration
+     */
+    public ModelVersionDao() {
+        super(ModelVersion.MODEL_VERSION, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion.class);
+    }
+
+    /**
+     * Create a new ModelVersionDao with an attached configuration
+     */
+    public ModelVersionDao(Configuration configuration) {
+        super(ModelVersion.MODEL_VERSION, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion.class, 
configuration);
+    }
+
+    @Override
+    public Integer 
getId(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion object) {
+        return object.getMvid();
+    }
+
+    /**
+     * Fetch records that have <code>mvid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchRangeOfMvid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelVersion.MODEL_VERSION.MVID, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>mvid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchByMvid(Integer... values) {
+        return fetch(ModelVersion.MODEL_VERSION.MVID, values);
+    }
+
+    /**
+     * Fetch a unique record that has <code>mvid = value</code>
+     */
+    public edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion 
fetchOneByMvid(Integer value) {
+        return fetchOne(ModelVersion.MODEL_VERSION.MVID, value);
+    }
+
+    /**
+     * Fetch a unique record that has <code>mvid = value</code>
+     */
+    public 
Optional<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchOptionalByMvid(Integer value) {
+        return fetchOptional(ModelVersion.MODEL_VERSION.MVID, value);
+    }
+
+    /**
+     * Fetch records that have <code>mid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchRangeOfMid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelVersion.MODEL_VERSION.MID, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>mid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchByMid(Integer... values) {
+        return fetch(ModelVersion.MODEL_VERSION.MID, values);
+    }
+
+    /**
+     * Fetch records that have <code>creator_uid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchRangeOfCreatorUid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelVersion.MODEL_VERSION.CREATOR_UID, 
lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>creator_uid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchByCreatorUid(Integer... values) {
+        return fetch(ModelVersion.MODEL_VERSION.CREATOR_UID, values);
+    }
+
+    /**
+     * Fetch records that have <code>name BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchRangeOfName(String lowerInclusive, String upperInclusive) {
+        return fetchRange(ModelVersion.MODEL_VERSION.NAME, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>name IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchByName(String... values) {
+        return fetch(ModelVersion.MODEL_VERSION.NAME, values);
+    }
+
+    /**
+     * Fetch records that have <code>version_hash BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchRangeOfVersionHash(String lowerInclusive, String upperInclusive) {
+        return fetchRange(ModelVersion.MODEL_VERSION.VERSION_HASH, 
lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>version_hash IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchByVersionHash(String... values) {
+        return fetch(ModelVersion.MODEL_VERSION.VERSION_HASH, values);
+    }
+
+    /**
+     * Fetch records that have <code>creation_time BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchRangeOfCreationTime(Timestamp lowerInclusive, Timestamp upperInclusive) {
+        return fetchRange(ModelVersion.MODEL_VERSION.CREATION_TIME, 
lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>creation_time IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion> 
fetchByCreationTime(Timestamp... values) {
+        return fetch(ModelVersion.MODEL_VERSION.CREATION_TIME, values);
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelViewCountDao.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelViewCountDao.java
new file mode 100644
index 0000000000..af19de5169
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/daos/ModelViewCountDao.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.daos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelViewCount;
+import 
edu.uci.ics.texera.dao.jooq.generated.tables.records.ModelViewCountRecord;
+
+import java.util.List;
+import java.util.Optional;
+
+import org.jooq.Configuration;
+import org.jooq.impl.DAOImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelViewCountDao extends DAOImpl<ModelViewCountRecord, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount, Integer> {
+
+    /**
+     * Create a new ModelViewCountDao without any configuration
+     */
+    public ModelViewCountDao() {
+        super(ModelViewCount.MODEL_VIEW_COUNT, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount.class);
+    }
+
+    /**
+     * Create a new ModelViewCountDao with an attached configuration
+     */
+    public ModelViewCountDao(Configuration configuration) {
+        super(ModelViewCount.MODEL_VIEW_COUNT, 
edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount.class, 
configuration);
+    }
+
+    @Override
+    public Integer 
getId(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount object) 
{
+        return object.getMid();
+    }
+
+    /**
+     * Fetch records that have <code>mid BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount> 
fetchRangeOfMid(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelViewCount.MODEL_VIEW_COUNT.MID, lowerInclusive, 
upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>mid IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount> 
fetchByMid(Integer... values) {
+        return fetch(ModelViewCount.MODEL_VIEW_COUNT.MID, values);
+    }
+
+    /**
+     * Fetch a unique record that has <code>mid = value</code>
+     */
+    public edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount 
fetchOneByMid(Integer value) {
+        return fetchOne(ModelViewCount.MODEL_VIEW_COUNT.MID, value);
+    }
+
+    /**
+     * Fetch a unique record that has <code>mid = value</code>
+     */
+    public 
Optional<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount> 
fetchOptionalByMid(Integer value) {
+        return fetchOptional(ModelViewCount.MODEL_VIEW_COUNT.MID, value);
+    }
+
+    /**
+     * Fetch records that have <code>view_count BETWEEN lowerInclusive AND
+     * upperInclusive</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount> 
fetchRangeOfViewCount(Integer lowerInclusive, Integer upperInclusive) {
+        return fetchRange(ModelViewCount.MODEL_VIEW_COUNT.VIEW_COUNT, 
lowerInclusive, upperInclusive);
+    }
+
+    /**
+     * Fetch records that have <code>view_count IN (values)</code>
+     */
+    public 
List<edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount> 
fetchByViewCount(Integer... values) {
+        return fetch(ModelViewCount.MODEL_VIEW_COUNT.VIEW_COUNT, values);
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModel.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModel.java
new file mode 100644
index 0000000000..60373276f6
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModel.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.interfaces;
+
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public interface IModel extends Serializable {
+
+    /**
+     * Setter for <code>texera_db.model.mid</code>.
+     */
+    public void setMid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model.mid</code>.
+     */
+    public Integer getMid();
+
+    /**
+     * Setter for <code>texera_db.model.owner_uid</code>.
+     */
+    public void setOwnerUid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model.owner_uid</code>.
+     */
+    public Integer getOwnerUid();
+
+    /**
+     * Setter for <code>texera_db.model.name</code>.
+     */
+    public void setName(String value);
+
+    /**
+     * Getter for <code>texera_db.model.name</code>.
+     */
+    public String getName();
+
+    /**
+     * Setter for <code>texera_db.model.is_public</code>.
+     */
+    public void setIsPublic(Boolean value);
+
+    /**
+     * Getter for <code>texera_db.model.is_public</code>.
+     */
+    public Boolean getIsPublic();
+
+    /**
+     * Setter for <code>texera_db.model.is_downloadable</code>.
+     */
+    public void setIsDownloadable(Boolean value);
+
+    /**
+     * Getter for <code>texera_db.model.is_downloadable</code>.
+     */
+    public Boolean getIsDownloadable();
+
+    /**
+     * Setter for <code>texera_db.model.description</code>.
+     */
+    public void setDescription(String value);
+
+    /**
+     * Getter for <code>texera_db.model.description</code>.
+     */
+    public String getDescription();
+
+    /**
+     * Setter for <code>texera_db.model.creation_time</code>.
+     */
+    public void setCreationTime(Timestamp value);
+
+    /**
+     * Getter for <code>texera_db.model.creation_time</code>.
+     */
+    public Timestamp getCreationTime();
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Load data from another generated Record/POJO implementing the common
+     * interface IModel
+     */
+    public void from(IModel from);
+
+    /**
+     * Copy data into another generated Record/POJO implementing the common
+     * interface IModel
+     */
+    public <E extends IModel> E into(E into);
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelUserAccess.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelUserAccess.java
new file mode 100644
index 0000000000..a661397c5a
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelUserAccess.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.interfaces;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.enums.PrivilegeEnum;
+
+import java.io.Serializable;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public interface IModelUserAccess extends Serializable {
+
+    /**
+     * Setter for <code>texera_db.model_user_access.mid</code>.
+     */
+    public void setMid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_user_access.mid</code>.
+     */
+    public Integer getMid();
+
+    /**
+     * Setter for <code>texera_db.model_user_access.uid</code>.
+     */
+    public void setUid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_user_access.uid</code>.
+     */
+    public Integer getUid();
+
+    /**
+     * Setter for <code>texera_db.model_user_access.privilege</code>.
+     */
+    public void setPrivilege(PrivilegeEnum value);
+
+    /**
+     * Getter for <code>texera_db.model_user_access.privilege</code>.
+     */
+    public PrivilegeEnum getPrivilege();
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Load data from another generated Record/POJO implementing the common
+     * interface IModelUserAccess
+     */
+    public void from(IModelUserAccess from);
+
+    /**
+     * Copy data into another generated Record/POJO implementing the common
+     * interface IModelUserAccess
+     */
+    public <E extends IModelUserAccess> E into(E into);
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelUserLikes.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelUserLikes.java
new file mode 100644
index 0000000000..b2138acd2e
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelUserLikes.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.interfaces;
+
+
+import java.io.Serializable;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public interface IModelUserLikes extends Serializable {
+
+    /**
+     * Setter for <code>texera_db.model_user_likes.uid</code>.
+     */
+    public void setUid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_user_likes.uid</code>.
+     */
+    public Integer getUid();
+
+    /**
+     * Setter for <code>texera_db.model_user_likes.mid</code>.
+     */
+    public void setMid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_user_likes.mid</code>.
+     */
+    public Integer getMid();
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Load data from another generated Record/POJO implementing the common
+     * interface IModelUserLikes
+     */
+    public void from(IModelUserLikes from);
+
+    /**
+     * Copy data into another generated Record/POJO implementing the common
+     * interface IModelUserLikes
+     */
+    public <E extends IModelUserLikes> E into(E into);
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelVersion.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelVersion.java
new file mode 100644
index 0000000000..238b80255f
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelVersion.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.interfaces;
+
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public interface IModelVersion extends Serializable {
+
+    /**
+     * Setter for <code>texera_db.model_version.mvid</code>.
+     */
+    public void setMvid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_version.mvid</code>.
+     */
+    public Integer getMvid();
+
+    /**
+     * Setter for <code>texera_db.model_version.mid</code>.
+     */
+    public void setMid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_version.mid</code>.
+     */
+    public Integer getMid();
+
+    /**
+     * Setter for <code>texera_db.model_version.creator_uid</code>.
+     */
+    public void setCreatorUid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_version.creator_uid</code>.
+     */
+    public Integer getCreatorUid();
+
+    /**
+     * Setter for <code>texera_db.model_version.name</code>.
+     */
+    public void setName(String value);
+
+    /**
+     * Getter for <code>texera_db.model_version.name</code>.
+     */
+    public String getName();
+
+    /**
+     * Setter for <code>texera_db.model_version.version_hash</code>.
+     */
+    public void setVersionHash(String value);
+
+    /**
+     * Getter for <code>texera_db.model_version.version_hash</code>.
+     */
+    public String getVersionHash();
+
+    /**
+     * Setter for <code>texera_db.model_version.creation_time</code>.
+     */
+    public void setCreationTime(Timestamp value);
+
+    /**
+     * Getter for <code>texera_db.model_version.creation_time</code>.
+     */
+    public Timestamp getCreationTime();
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Load data from another generated Record/POJO implementing the common
+     * interface IModelVersion
+     */
+    public void from(IModelVersion from);
+
+    /**
+     * Copy data into another generated Record/POJO implementing the common
+     * interface IModelVersion
+     */
+    public <E extends IModelVersion> E into(E into);
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelViewCount.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelViewCount.java
new file mode 100644
index 0000000000..1f65bbbde0
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/interfaces/IModelViewCount.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.interfaces;
+
+
+import java.io.Serializable;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public interface IModelViewCount extends Serializable {
+
+    /**
+     * Setter for <code>texera_db.model_view_count.mid</code>.
+     */
+    public void setMid(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_view_count.mid</code>.
+     */
+    public Integer getMid();
+
+    /**
+     * Setter for <code>texera_db.model_view_count.view_count</code>.
+     */
+    public void setViewCount(Integer value);
+
+    /**
+     * Getter for <code>texera_db.model_view_count.view_count</code>.
+     */
+    public Integer getViewCount();
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Load data from another generated Record/POJO implementing the common
+     * interface IModelViewCount
+     */
+    public void from(IModelViewCount from);
+
+    /**
+     * Copy data into another generated Record/POJO implementing the common
+     * interface IModelViewCount
+     */
+    public <E extends IModelViewCount> E into(E into);
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/Model.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/Model.java
new file mode 100644
index 0000000000..76bafcfc1b
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/Model.java
@@ -0,0 +1,223 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.pojos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModel;
+
+import java.sql.Timestamp;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class Model implements IModel {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer   mid;
+    private Integer   ownerUid;
+    private String    name;
+    private Boolean   isPublic;
+    private Boolean   isDownloadable;
+    private String    description;
+    private Timestamp creationTime;
+
+    public Model() {}
+
+    public Model(IModel value) {
+        this.mid = value.getMid();
+        this.ownerUid = value.getOwnerUid();
+        this.name = value.getName();
+        this.isPublic = value.getIsPublic();
+        this.isDownloadable = value.getIsDownloadable();
+        this.description = value.getDescription();
+        this.creationTime = value.getCreationTime();
+    }
+
+    public Model(
+        Integer   mid,
+        Integer   ownerUid,
+        String    name,
+        Boolean   isPublic,
+        Boolean   isDownloadable,
+        String    description,
+        Timestamp creationTime
+    ) {
+        this.mid = mid;
+        this.ownerUid = ownerUid;
+        this.name = name;
+        this.isPublic = isPublic;
+        this.isDownloadable = isDownloadable;
+        this.description = description;
+        this.creationTime = creationTime;
+    }
+
+    /**
+     * Getter for <code>texera_db.model.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return this.mid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model.mid</code>.
+     */
+    @Override
+    public void setMid(Integer mid) {
+        this.mid = mid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model.owner_uid</code>.
+     */
+    @Override
+    public Integer getOwnerUid() {
+        return this.ownerUid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model.owner_uid</code>.
+     */
+    @Override
+    public void setOwnerUid(Integer ownerUid) {
+        this.ownerUid = ownerUid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model.name</code>.
+     */
+    @Override
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * Setter for <code>texera_db.model.name</code>.
+     */
+    @Override
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Getter for <code>texera_db.model.is_public</code>.
+     */
+    @Override
+    public Boolean getIsPublic() {
+        return this.isPublic;
+    }
+
+    /**
+     * Setter for <code>texera_db.model.is_public</code>.
+     */
+    @Override
+    public void setIsPublic(Boolean isPublic) {
+        this.isPublic = isPublic;
+    }
+
+    /**
+     * Getter for <code>texera_db.model.is_downloadable</code>.
+     */
+    @Override
+    public Boolean getIsDownloadable() {
+        return this.isDownloadable;
+    }
+
+    /**
+     * Setter for <code>texera_db.model.is_downloadable</code>.
+     */
+    @Override
+    public void setIsDownloadable(Boolean isDownloadable) {
+        this.isDownloadable = isDownloadable;
+    }
+
+    /**
+     * Getter for <code>texera_db.model.description</code>.
+     */
+    @Override
+    public String getDescription() {
+        return this.description;
+    }
+
+    /**
+     * Setter for <code>texera_db.model.description</code>.
+     */
+    @Override
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    /**
+     * Getter for <code>texera_db.model.creation_time</code>.
+     */
+    @Override
+    public Timestamp getCreationTime() {
+        return this.creationTime;
+    }
+
+    /**
+     * Setter for <code>texera_db.model.creation_time</code>.
+     */
+    @Override
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder("Model (");
+
+        sb.append(mid);
+        sb.append(", ").append(ownerUid);
+        sb.append(", ").append(name);
+        sb.append(", ").append(isPublic);
+        sb.append(", ").append(isDownloadable);
+        sb.append(", ").append(description);
+        sb.append(", ").append(creationTime);
+
+        sb.append(")");
+        return sb.toString();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModel from) {
+        setMid(from.getMid());
+        setOwnerUid(from.getOwnerUid());
+        setName(from.getName());
+        setIsPublic(from.getIsPublic());
+        setIsDownloadable(from.getIsDownloadable());
+        setDescription(from.getDescription());
+        setCreationTime(from.getCreationTime());
+    }
+
+    @Override
+    public <E extends IModel> E into(E into) {
+        into.from(this);
+        return into;
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelUserAccess.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelUserAccess.java
new file mode 100644
index 0000000000..2a58c4f446
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelUserAccess.java
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.pojos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.enums.PrivilegeEnum;
+import 
edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelUserAccess;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelUserAccess implements IModelUserAccess {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer       mid;
+    private Integer       uid;
+    private PrivilegeEnum privilege;
+
+    public ModelUserAccess() {}
+
+    public ModelUserAccess(IModelUserAccess value) {
+        this.mid = value.getMid();
+        this.uid = value.getUid();
+        this.privilege = value.getPrivilege();
+    }
+
+    public ModelUserAccess(
+        Integer       mid,
+        Integer       uid,
+        PrivilegeEnum privilege
+    ) {
+        this.mid = mid;
+        this.uid = uid;
+        this.privilege = privilege;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_access.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return this.mid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_access.mid</code>.
+     */
+    @Override
+    public void setMid(Integer mid) {
+        this.mid = mid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_access.uid</code>.
+     */
+    @Override
+    public Integer getUid() {
+        return this.uid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_access.uid</code>.
+     */
+    @Override
+    public void setUid(Integer uid) {
+        this.uid = uid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_access.privilege</code>.
+     */
+    @Override
+    public PrivilegeEnum getPrivilege() {
+        return this.privilege;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_access.privilege</code>.
+     */
+    @Override
+    public void setPrivilege(PrivilegeEnum privilege) {
+        this.privilege = privilege;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder("ModelUserAccess (");
+
+        sb.append(mid);
+        sb.append(", ").append(uid);
+        sb.append(", ").append(privilege);
+
+        sb.append(")");
+        return sb.toString();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelUserAccess from) {
+        setMid(from.getMid());
+        setUid(from.getUid());
+        setPrivilege(from.getPrivilege());
+    }
+
+    @Override
+    public <E extends IModelUserAccess> E into(E into) {
+        into.from(this);
+        return into;
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelUserLikes.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelUserLikes.java
new file mode 100644
index 0000000000..d4db4f78a3
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelUserLikes.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.pojos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelUserLikes;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelUserLikes implements IModelUserLikes {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer uid;
+    private Integer mid;
+
+    public ModelUserLikes() {}
+
+    public ModelUserLikes(IModelUserLikes value) {
+        this.uid = value.getUid();
+        this.mid = value.getMid();
+    }
+
+    public ModelUserLikes(
+        Integer uid,
+        Integer mid
+    ) {
+        this.uid = uid;
+        this.mid = mid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_likes.uid</code>.
+     */
+    @Override
+    public Integer getUid() {
+        return this.uid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_likes.uid</code>.
+     */
+    @Override
+    public void setUid(Integer uid) {
+        this.uid = uid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_likes.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return this.mid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_likes.mid</code>.
+     */
+    @Override
+    public void setMid(Integer mid) {
+        this.mid = mid;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder("ModelUserLikes (");
+
+        sb.append(uid);
+        sb.append(", ").append(mid);
+
+        sb.append(")");
+        return sb.toString();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelUserLikes from) {
+        setUid(from.getUid());
+        setMid(from.getMid());
+    }
+
+    @Override
+    public <E extends IModelUserLikes> E into(E into) {
+        into.from(this);
+        return into;
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelVersion.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelVersion.java
new file mode 100644
index 0000000000..cff03a4194
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelVersion.java
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.pojos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelVersion;
+
+import java.sql.Timestamp;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelVersion implements IModelVersion {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer   mvid;
+    private Integer   mid;
+    private Integer   creatorUid;
+    private String    name;
+    private String    versionHash;
+    private Timestamp creationTime;
+
+    public ModelVersion() {}
+
+    public ModelVersion(IModelVersion value) {
+        this.mvid = value.getMvid();
+        this.mid = value.getMid();
+        this.creatorUid = value.getCreatorUid();
+        this.name = value.getName();
+        this.versionHash = value.getVersionHash();
+        this.creationTime = value.getCreationTime();
+    }
+
+    public ModelVersion(
+        Integer   mvid,
+        Integer   mid,
+        Integer   creatorUid,
+        String    name,
+        String    versionHash,
+        Timestamp creationTime
+    ) {
+        this.mvid = mvid;
+        this.mid = mid;
+        this.creatorUid = creatorUid;
+        this.name = name;
+        this.versionHash = versionHash;
+        this.creationTime = creationTime;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.mvid</code>.
+     */
+    @Override
+    public Integer getMvid() {
+        return this.mvid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.mvid</code>.
+     */
+    @Override
+    public void setMvid(Integer mvid) {
+        this.mvid = mvid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return this.mid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.mid</code>.
+     */
+    @Override
+    public void setMid(Integer mid) {
+        this.mid = mid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.creator_uid</code>.
+     */
+    @Override
+    public Integer getCreatorUid() {
+        return this.creatorUid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.creator_uid</code>.
+     */
+    @Override
+    public void setCreatorUid(Integer creatorUid) {
+        this.creatorUid = creatorUid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.name</code>.
+     */
+    @Override
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.name</code>.
+     */
+    @Override
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.version_hash</code>.
+     */
+    @Override
+    public String getVersionHash() {
+        return this.versionHash;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.version_hash</code>.
+     */
+    @Override
+    public void setVersionHash(String versionHash) {
+        this.versionHash = versionHash;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.creation_time</code>.
+     */
+    @Override
+    public Timestamp getCreationTime() {
+        return this.creationTime;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.creation_time</code>.
+     */
+    @Override
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder("ModelVersion (");
+
+        sb.append(mvid);
+        sb.append(", ").append(mid);
+        sb.append(", ").append(creatorUid);
+        sb.append(", ").append(name);
+        sb.append(", ").append(versionHash);
+        sb.append(", ").append(creationTime);
+
+        sb.append(")");
+        return sb.toString();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelVersion from) {
+        setMvid(from.getMvid());
+        setMid(from.getMid());
+        setCreatorUid(from.getCreatorUid());
+        setName(from.getName());
+        setVersionHash(from.getVersionHash());
+        setCreationTime(from.getCreationTime());
+    }
+
+    @Override
+    public <E extends IModelVersion> E into(E into) {
+        into.from(this);
+        return into;
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelViewCount.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelViewCount.java
new file mode 100644
index 0000000000..6e25a8fd23
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/pojos/ModelViewCount.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.pojos;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelViewCount;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelViewCount implements IModelViewCount {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer mid;
+    private Integer viewCount;
+
+    public ModelViewCount() {}
+
+    public ModelViewCount(IModelViewCount value) {
+        this.mid = value.getMid();
+        this.viewCount = value.getViewCount();
+    }
+
+    public ModelViewCount(
+        Integer mid,
+        Integer viewCount
+    ) {
+        this.mid = mid;
+        this.viewCount = viewCount;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_view_count.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return this.mid;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_view_count.mid</code>.
+     */
+    @Override
+    public void setMid(Integer mid) {
+        this.mid = mid;
+    }
+
+    /**
+     * Getter for <code>texera_db.model_view_count.view_count</code>.
+     */
+    @Override
+    public Integer getViewCount() {
+        return this.viewCount;
+    }
+
+    /**
+     * Setter for <code>texera_db.model_view_count.view_count</code>.
+     */
+    @Override
+    public void setViewCount(Integer viewCount) {
+        this.viewCount = viewCount;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder("ModelViewCount (");
+
+        sb.append(mid);
+        sb.append(", ").append(viewCount);
+
+        sb.append(")");
+        return sb.toString();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelViewCount from) {
+        setMid(from.getMid());
+        setViewCount(from.getViewCount());
+    }
+
+    @Override
+    public <E extends IModelViewCount> E into(E into) {
+        into.from(this);
+        return into;
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelRecord.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelRecord.java
new file mode 100644
index 0000000000..83e44e3155
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelRecord.java
@@ -0,0 +1,401 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.records;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.Model;
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModel;
+
+import java.sql.Timestamp;
+
+import org.jooq.Field;
+import org.jooq.Record1;
+import org.jooq.Record7;
+import org.jooq.Row7;
+import org.jooq.impl.UpdatableRecordImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelRecord extends UpdatableRecordImpl<ModelRecord> implements 
Record7<Integer, Integer, String, Boolean, Boolean, String, Timestamp>, IModel {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Setter for <code>texera_db.model.mid</code>.
+     */
+    @Override
+    public void setMid(Integer value) {
+        set(0, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return (Integer) get(0);
+    }
+
+    /**
+     * Setter for <code>texera_db.model.owner_uid</code>.
+     */
+    @Override
+    public void setOwnerUid(Integer value) {
+        set(1, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model.owner_uid</code>.
+     */
+    @Override
+    public Integer getOwnerUid() {
+        return (Integer) get(1);
+    }
+
+    /**
+     * Setter for <code>texera_db.model.name</code>.
+     */
+    @Override
+    public void setName(String value) {
+        set(2, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model.name</code>.
+     */
+    @Override
+    public String getName() {
+        return (String) get(2);
+    }
+
+    /**
+     * Setter for <code>texera_db.model.is_public</code>.
+     */
+    @Override
+    public void setIsPublic(Boolean value) {
+        set(3, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model.is_public</code>.
+     */
+    @Override
+    public Boolean getIsPublic() {
+        return (Boolean) get(3);
+    }
+
+    /**
+     * Setter for <code>texera_db.model.is_downloadable</code>.
+     */
+    @Override
+    public void setIsDownloadable(Boolean value) {
+        set(4, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model.is_downloadable</code>.
+     */
+    @Override
+    public Boolean getIsDownloadable() {
+        return (Boolean) get(4);
+    }
+
+    /**
+     * Setter for <code>texera_db.model.description</code>.
+     */
+    @Override
+    public void setDescription(String value) {
+        set(5, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model.description</code>.
+     */
+    @Override
+    public String getDescription() {
+        return (String) get(5);
+    }
+
+    /**
+     * Setter for <code>texera_db.model.creation_time</code>.
+     */
+    @Override
+    public void setCreationTime(Timestamp value) {
+        set(6, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model.creation_time</code>.
+     */
+    @Override
+    public Timestamp getCreationTime() {
+        return (Timestamp) get(6);
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Primary key information
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Record1<Integer> key() {
+        return (Record1) super.key();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Record7 type implementation
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Row7<Integer, Integer, String, Boolean, Boolean, String, Timestamp> 
fieldsRow() {
+        return (Row7) super.fieldsRow();
+    }
+
+    @Override
+    public Row7<Integer, Integer, String, Boolean, Boolean, String, Timestamp> 
valuesRow() {
+        return (Row7) super.valuesRow();
+    }
+
+    @Override
+    public Field<Integer> field1() {
+        return Model.MODEL.MID;
+    }
+
+    @Override
+    public Field<Integer> field2() {
+        return Model.MODEL.OWNER_UID;
+    }
+
+    @Override
+    public Field<String> field3() {
+        return Model.MODEL.NAME;
+    }
+
+    @Override
+    public Field<Boolean> field4() {
+        return Model.MODEL.IS_PUBLIC;
+    }
+
+    @Override
+    public Field<Boolean> field5() {
+        return Model.MODEL.IS_DOWNLOADABLE;
+    }
+
+    @Override
+    public Field<String> field6() {
+        return Model.MODEL.DESCRIPTION;
+    }
+
+    @Override
+    public Field<Timestamp> field7() {
+        return Model.MODEL.CREATION_TIME;
+    }
+
+    @Override
+    public Integer component1() {
+        return getMid();
+    }
+
+    @Override
+    public Integer component2() {
+        return getOwnerUid();
+    }
+
+    @Override
+    public String component3() {
+        return getName();
+    }
+
+    @Override
+    public Boolean component4() {
+        return getIsPublic();
+    }
+
+    @Override
+    public Boolean component5() {
+        return getIsDownloadable();
+    }
+
+    @Override
+    public String component6() {
+        return getDescription();
+    }
+
+    @Override
+    public Timestamp component7() {
+        return getCreationTime();
+    }
+
+    @Override
+    public Integer value1() {
+        return getMid();
+    }
+
+    @Override
+    public Integer value2() {
+        return getOwnerUid();
+    }
+
+    @Override
+    public String value3() {
+        return getName();
+    }
+
+    @Override
+    public Boolean value4() {
+        return getIsPublic();
+    }
+
+    @Override
+    public Boolean value5() {
+        return getIsDownloadable();
+    }
+
+    @Override
+    public String value6() {
+        return getDescription();
+    }
+
+    @Override
+    public Timestamp value7() {
+        return getCreationTime();
+    }
+
+    @Override
+    public ModelRecord value1(Integer value) {
+        setMid(value);
+        return this;
+    }
+
+    @Override
+    public ModelRecord value2(Integer value) {
+        setOwnerUid(value);
+        return this;
+    }
+
+    @Override
+    public ModelRecord value3(String value) {
+        setName(value);
+        return this;
+    }
+
+    @Override
+    public ModelRecord value4(Boolean value) {
+        setIsPublic(value);
+        return this;
+    }
+
+    @Override
+    public ModelRecord value5(Boolean value) {
+        setIsDownloadable(value);
+        return this;
+    }
+
+    @Override
+    public ModelRecord value6(String value) {
+        setDescription(value);
+        return this;
+    }
+
+    @Override
+    public ModelRecord value7(Timestamp value) {
+        setCreationTime(value);
+        return this;
+    }
+
+    @Override
+    public ModelRecord values(Integer value1, Integer value2, String value3, 
Boolean value4, Boolean value5, String value6, Timestamp value7) {
+        value1(value1);
+        value2(value2);
+        value3(value3);
+        value4(value4);
+        value5(value5);
+        value6(value6);
+        value7(value7);
+        return this;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModel from) {
+        setMid(from.getMid());
+        setOwnerUid(from.getOwnerUid());
+        setName(from.getName());
+        setIsPublic(from.getIsPublic());
+        setIsDownloadable(from.getIsDownloadable());
+        setDescription(from.getDescription());
+        setCreationTime(from.getCreationTime());
+    }
+
+    @Override
+    public <E extends IModel> E into(E into) {
+        into.from(this);
+        return into;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Constructors
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Create a detached ModelRecord
+     */
+    public ModelRecord() {
+        super(Model.MODEL);
+    }
+
+    /**
+     * Create a detached, initialised ModelRecord
+     */
+    public ModelRecord(Integer mid, Integer ownerUid, String name, Boolean 
isPublic, Boolean isDownloadable, String description, Timestamp creationTime) {
+        super(Model.MODEL);
+
+        setMid(mid);
+        setOwnerUid(ownerUid);
+        setName(name);
+        setIsPublic(isPublic);
+        setIsDownloadable(isDownloadable);
+        setDescription(description);
+        setCreationTime(creationTime);
+    }
+
+    /**
+     * Create a detached, initialised ModelRecord
+     */
+    public 
ModelRecord(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.Model value) {
+        super(Model.MODEL);
+
+        if (value != null) {
+            setMid(value.getMid());
+            setOwnerUid(value.getOwnerUid());
+            setName(value.getName());
+            setIsPublic(value.getIsPublic());
+            setIsDownloadable(value.getIsDownloadable());
+            setDescription(value.getDescription());
+            setCreationTime(value.getCreationTime());
+        }
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelUserAccessRecord.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelUserAccessRecord.java
new file mode 100644
index 0000000000..46b5cf5b41
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelUserAccessRecord.java
@@ -0,0 +1,236 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.records;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.enums.PrivilegeEnum;
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelUserAccess;
+import 
edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelUserAccess;
+
+import org.jooq.Field;
+import org.jooq.Record2;
+import org.jooq.Record3;
+import org.jooq.Row3;
+import org.jooq.impl.UpdatableRecordImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelUserAccessRecord extends 
UpdatableRecordImpl<ModelUserAccessRecord> implements Record3<Integer, Integer, 
PrivilegeEnum>, IModelUserAccess {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Setter for <code>texera_db.model_user_access.mid</code>.
+     */
+    @Override
+    public void setMid(Integer value) {
+        set(0, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_access.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return (Integer) get(0);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_access.uid</code>.
+     */
+    @Override
+    public void setUid(Integer value) {
+        set(1, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_access.uid</code>.
+     */
+    @Override
+    public Integer getUid() {
+        return (Integer) get(1);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_access.privilege</code>.
+     */
+    @Override
+    public void setPrivilege(PrivilegeEnum value) {
+        set(2, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_access.privilege</code>.
+     */
+    @Override
+    public PrivilegeEnum getPrivilege() {
+        return (PrivilegeEnum) get(2);
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Primary key information
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Record2<Integer, Integer> key() {
+        return (Record2) super.key();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Record3 type implementation
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Row3<Integer, Integer, PrivilegeEnum> fieldsRow() {
+        return (Row3) super.fieldsRow();
+    }
+
+    @Override
+    public Row3<Integer, Integer, PrivilegeEnum> valuesRow() {
+        return (Row3) super.valuesRow();
+    }
+
+    @Override
+    public Field<Integer> field1() {
+        return ModelUserAccess.MODEL_USER_ACCESS.MID;
+    }
+
+    @Override
+    public Field<Integer> field2() {
+        return ModelUserAccess.MODEL_USER_ACCESS.UID;
+    }
+
+    @Override
+    public Field<PrivilegeEnum> field3() {
+        return ModelUserAccess.MODEL_USER_ACCESS.PRIVILEGE;
+    }
+
+    @Override
+    public Integer component1() {
+        return getMid();
+    }
+
+    @Override
+    public Integer component2() {
+        return getUid();
+    }
+
+    @Override
+    public PrivilegeEnum component3() {
+        return getPrivilege();
+    }
+
+    @Override
+    public Integer value1() {
+        return getMid();
+    }
+
+    @Override
+    public Integer value2() {
+        return getUid();
+    }
+
+    @Override
+    public PrivilegeEnum value3() {
+        return getPrivilege();
+    }
+
+    @Override
+    public ModelUserAccessRecord value1(Integer value) {
+        setMid(value);
+        return this;
+    }
+
+    @Override
+    public ModelUserAccessRecord value2(Integer value) {
+        setUid(value);
+        return this;
+    }
+
+    @Override
+    public ModelUserAccessRecord value3(PrivilegeEnum value) {
+        setPrivilege(value);
+        return this;
+    }
+
+    @Override
+    public ModelUserAccessRecord values(Integer value1, Integer value2, 
PrivilegeEnum value3) {
+        value1(value1);
+        value2(value2);
+        value3(value3);
+        return this;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelUserAccess from) {
+        setMid(from.getMid());
+        setUid(from.getUid());
+        setPrivilege(from.getPrivilege());
+    }
+
+    @Override
+    public <E extends IModelUserAccess> E into(E into) {
+        into.from(this);
+        return into;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Constructors
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Create a detached ModelUserAccessRecord
+     */
+    public ModelUserAccessRecord() {
+        super(ModelUserAccess.MODEL_USER_ACCESS);
+    }
+
+    /**
+     * Create a detached, initialised ModelUserAccessRecord
+     */
+    public ModelUserAccessRecord(Integer mid, Integer uid, PrivilegeEnum 
privilege) {
+        super(ModelUserAccess.MODEL_USER_ACCESS);
+
+        setMid(mid);
+        setUid(uid);
+        setPrivilege(privilege);
+    }
+
+    /**
+     * Create a detached, initialised ModelUserAccessRecord
+     */
+    public 
ModelUserAccessRecord(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserAccess
 value) {
+        super(ModelUserAccess.MODEL_USER_ACCESS);
+
+        if (value != null) {
+            setMid(value.getMid());
+            setUid(value.getUid());
+            setPrivilege(value.getPrivilege());
+        }
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelUserLikesRecord.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelUserLikesRecord.java
new file mode 100644
index 0000000000..c55233de7e
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelUserLikesRecord.java
@@ -0,0 +1,193 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.records;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelUserLikes;
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelUserLikes;
+
+import org.jooq.Field;
+import org.jooq.Record2;
+import org.jooq.Row2;
+import org.jooq.impl.UpdatableRecordImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelUserLikesRecord extends 
UpdatableRecordImpl<ModelUserLikesRecord> implements Record2<Integer, Integer>, 
IModelUserLikes {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Setter for <code>texera_db.model_user_likes.uid</code>.
+     */
+    @Override
+    public void setUid(Integer value) {
+        set(0, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_likes.uid</code>.
+     */
+    @Override
+    public Integer getUid() {
+        return (Integer) get(0);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_user_likes.mid</code>.
+     */
+    @Override
+    public void setMid(Integer value) {
+        set(1, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_user_likes.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return (Integer) get(1);
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Primary key information
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Record2<Integer, Integer> key() {
+        return (Record2) super.key();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Record2 type implementation
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Row2<Integer, Integer> fieldsRow() {
+        return (Row2) super.fieldsRow();
+    }
+
+    @Override
+    public Row2<Integer, Integer> valuesRow() {
+        return (Row2) super.valuesRow();
+    }
+
+    @Override
+    public Field<Integer> field1() {
+        return ModelUserLikes.MODEL_USER_LIKES.UID;
+    }
+
+    @Override
+    public Field<Integer> field2() {
+        return ModelUserLikes.MODEL_USER_LIKES.MID;
+    }
+
+    @Override
+    public Integer component1() {
+        return getUid();
+    }
+
+    @Override
+    public Integer component2() {
+        return getMid();
+    }
+
+    @Override
+    public Integer value1() {
+        return getUid();
+    }
+
+    @Override
+    public Integer value2() {
+        return getMid();
+    }
+
+    @Override
+    public ModelUserLikesRecord value1(Integer value) {
+        setUid(value);
+        return this;
+    }
+
+    @Override
+    public ModelUserLikesRecord value2(Integer value) {
+        setMid(value);
+        return this;
+    }
+
+    @Override
+    public ModelUserLikesRecord values(Integer value1, Integer value2) {
+        value1(value1);
+        value2(value2);
+        return this;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelUserLikes from) {
+        setUid(from.getUid());
+        setMid(from.getMid());
+    }
+
+    @Override
+    public <E extends IModelUserLikes> E into(E into) {
+        into.from(this);
+        return into;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Constructors
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Create a detached ModelUserLikesRecord
+     */
+    public ModelUserLikesRecord() {
+        super(ModelUserLikes.MODEL_USER_LIKES);
+    }
+
+    /**
+     * Create a detached, initialised ModelUserLikesRecord
+     */
+    public ModelUserLikesRecord(Integer uid, Integer mid) {
+        super(ModelUserLikes.MODEL_USER_LIKES);
+
+        setUid(uid);
+        setMid(mid);
+    }
+
+    /**
+     * Create a detached, initialised ModelUserLikesRecord
+     */
+    public 
ModelUserLikesRecord(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelUserLikes
 value) {
+        super(ModelUserLikes.MODEL_USER_LIKES);
+
+        if (value != null) {
+            setUid(value.getUid());
+            setMid(value.getMid());
+        }
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelVersionRecord.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelVersionRecord.java
new file mode 100644
index 0000000000..939d871127
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelVersionRecord.java
@@ -0,0 +1,360 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.records;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelVersion;
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelVersion;
+
+import java.sql.Timestamp;
+
+import org.jooq.Field;
+import org.jooq.Record1;
+import org.jooq.Record6;
+import org.jooq.Row6;
+import org.jooq.impl.UpdatableRecordImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelVersionRecord extends 
UpdatableRecordImpl<ModelVersionRecord> implements Record6<Integer, Integer, 
Integer, String, String, Timestamp>, IModelVersion {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Setter for <code>texera_db.model_version.mvid</code>.
+     */
+    @Override
+    public void setMvid(Integer value) {
+        set(0, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.mvid</code>.
+     */
+    @Override
+    public Integer getMvid() {
+        return (Integer) get(0);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.mid</code>.
+     */
+    @Override
+    public void setMid(Integer value) {
+        set(1, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return (Integer) get(1);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.creator_uid</code>.
+     */
+    @Override
+    public void setCreatorUid(Integer value) {
+        set(2, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.creator_uid</code>.
+     */
+    @Override
+    public Integer getCreatorUid() {
+        return (Integer) get(2);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.name</code>.
+     */
+    @Override
+    public void setName(String value) {
+        set(3, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.name</code>.
+     */
+    @Override
+    public String getName() {
+        return (String) get(3);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.version_hash</code>.
+     */
+    @Override
+    public void setVersionHash(String value) {
+        set(4, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.version_hash</code>.
+     */
+    @Override
+    public String getVersionHash() {
+        return (String) get(4);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_version.creation_time</code>.
+     */
+    @Override
+    public void setCreationTime(Timestamp value) {
+        set(5, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_version.creation_time</code>.
+     */
+    @Override
+    public Timestamp getCreationTime() {
+        return (Timestamp) get(5);
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Primary key information
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Record1<Integer> key() {
+        return (Record1) super.key();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Record6 type implementation
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Row6<Integer, Integer, Integer, String, String, Timestamp> 
fieldsRow() {
+        return (Row6) super.fieldsRow();
+    }
+
+    @Override
+    public Row6<Integer, Integer, Integer, String, String, Timestamp> 
valuesRow() {
+        return (Row6) super.valuesRow();
+    }
+
+    @Override
+    public Field<Integer> field1() {
+        return ModelVersion.MODEL_VERSION.MVID;
+    }
+
+    @Override
+    public Field<Integer> field2() {
+        return ModelVersion.MODEL_VERSION.MID;
+    }
+
+    @Override
+    public Field<Integer> field3() {
+        return ModelVersion.MODEL_VERSION.CREATOR_UID;
+    }
+
+    @Override
+    public Field<String> field4() {
+        return ModelVersion.MODEL_VERSION.NAME;
+    }
+
+    @Override
+    public Field<String> field5() {
+        return ModelVersion.MODEL_VERSION.VERSION_HASH;
+    }
+
+    @Override
+    public Field<Timestamp> field6() {
+        return ModelVersion.MODEL_VERSION.CREATION_TIME;
+    }
+
+    @Override
+    public Integer component1() {
+        return getMvid();
+    }
+
+    @Override
+    public Integer component2() {
+        return getMid();
+    }
+
+    @Override
+    public Integer component3() {
+        return getCreatorUid();
+    }
+
+    @Override
+    public String component4() {
+        return getName();
+    }
+
+    @Override
+    public String component5() {
+        return getVersionHash();
+    }
+
+    @Override
+    public Timestamp component6() {
+        return getCreationTime();
+    }
+
+    @Override
+    public Integer value1() {
+        return getMvid();
+    }
+
+    @Override
+    public Integer value2() {
+        return getMid();
+    }
+
+    @Override
+    public Integer value3() {
+        return getCreatorUid();
+    }
+
+    @Override
+    public String value4() {
+        return getName();
+    }
+
+    @Override
+    public String value5() {
+        return getVersionHash();
+    }
+
+    @Override
+    public Timestamp value6() {
+        return getCreationTime();
+    }
+
+    @Override
+    public ModelVersionRecord value1(Integer value) {
+        setMvid(value);
+        return this;
+    }
+
+    @Override
+    public ModelVersionRecord value2(Integer value) {
+        setMid(value);
+        return this;
+    }
+
+    @Override
+    public ModelVersionRecord value3(Integer value) {
+        setCreatorUid(value);
+        return this;
+    }
+
+    @Override
+    public ModelVersionRecord value4(String value) {
+        setName(value);
+        return this;
+    }
+
+    @Override
+    public ModelVersionRecord value5(String value) {
+        setVersionHash(value);
+        return this;
+    }
+
+    @Override
+    public ModelVersionRecord value6(Timestamp value) {
+        setCreationTime(value);
+        return this;
+    }
+
+    @Override
+    public ModelVersionRecord values(Integer value1, Integer value2, Integer 
value3, String value4, String value5, Timestamp value6) {
+        value1(value1);
+        value2(value2);
+        value3(value3);
+        value4(value4);
+        value5(value5);
+        value6(value6);
+        return this;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelVersion from) {
+        setMvid(from.getMvid());
+        setMid(from.getMid());
+        setCreatorUid(from.getCreatorUid());
+        setName(from.getName());
+        setVersionHash(from.getVersionHash());
+        setCreationTime(from.getCreationTime());
+    }
+
+    @Override
+    public <E extends IModelVersion> E into(E into) {
+        into.from(this);
+        return into;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Constructors
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Create a detached ModelVersionRecord
+     */
+    public ModelVersionRecord() {
+        super(ModelVersion.MODEL_VERSION);
+    }
+
+    /**
+     * Create a detached, initialised ModelVersionRecord
+     */
+    public ModelVersionRecord(Integer mvid, Integer mid, Integer creatorUid, 
String name, String versionHash, Timestamp creationTime) {
+        super(ModelVersion.MODEL_VERSION);
+
+        setMvid(mvid);
+        setMid(mid);
+        setCreatorUid(creatorUid);
+        setName(name);
+        setVersionHash(versionHash);
+        setCreationTime(creationTime);
+    }
+
+    /**
+     * Create a detached, initialised ModelVersionRecord
+     */
+    public 
ModelVersionRecord(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelVersion
 value) {
+        super(ModelVersion.MODEL_VERSION);
+
+        if (value != null) {
+            setMvid(value.getMvid());
+            setMid(value.getMid());
+            setCreatorUid(value.getCreatorUid());
+            setName(value.getName());
+            setVersionHash(value.getVersionHash());
+            setCreationTime(value.getCreationTime());
+        }
+    }
+}
diff --git 
a/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelViewCountRecord.java
 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelViewCountRecord.java
new file mode 100644
index 0000000000..ed2d5699c1
--- /dev/null
+++ 
b/core/dao/src/main/scala/edu/uci/ics/texera/dao/jooq/generated/tables/records/ModelViewCountRecord.java
@@ -0,0 +1,194 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ * This file is generated by jOOQ.
+ */
+package edu.uci.ics.texera.dao.jooq.generated.tables.records;
+
+
+import edu.uci.ics.texera.dao.jooq.generated.tables.ModelViewCount;
+import edu.uci.ics.texera.dao.jooq.generated.tables.interfaces.IModelViewCount;
+
+import org.jooq.Field;
+import org.jooq.Record1;
+import org.jooq.Record2;
+import org.jooq.Row2;
+import org.jooq.impl.UpdatableRecordImpl;
+
+
+/**
+ * This class is generated by jOOQ.
+ */
+@SuppressWarnings({ "all", "unchecked", "rawtypes" })
+public class ModelViewCountRecord extends 
UpdatableRecordImpl<ModelViewCountRecord> implements Record2<Integer, Integer>, 
IModelViewCount {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Setter for <code>texera_db.model_view_count.mid</code>.
+     */
+    @Override
+    public void setMid(Integer value) {
+        set(0, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_view_count.mid</code>.
+     */
+    @Override
+    public Integer getMid() {
+        return (Integer) get(0);
+    }
+
+    /**
+     * Setter for <code>texera_db.model_view_count.view_count</code>.
+     */
+    @Override
+    public void setViewCount(Integer value) {
+        set(1, value);
+    }
+
+    /**
+     * Getter for <code>texera_db.model_view_count.view_count</code>.
+     */
+    @Override
+    public Integer getViewCount() {
+        return (Integer) get(1);
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Primary key information
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Record1<Integer> key() {
+        return (Record1) super.key();
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Record2 type implementation
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public Row2<Integer, Integer> fieldsRow() {
+        return (Row2) super.fieldsRow();
+    }
+
+    @Override
+    public Row2<Integer, Integer> valuesRow() {
+        return (Row2) super.valuesRow();
+    }
+
+    @Override
+    public Field<Integer> field1() {
+        return ModelViewCount.MODEL_VIEW_COUNT.MID;
+    }
+
+    @Override
+    public Field<Integer> field2() {
+        return ModelViewCount.MODEL_VIEW_COUNT.VIEW_COUNT;
+    }
+
+    @Override
+    public Integer component1() {
+        return getMid();
+    }
+
+    @Override
+    public Integer component2() {
+        return getViewCount();
+    }
+
+    @Override
+    public Integer value1() {
+        return getMid();
+    }
+
+    @Override
+    public Integer value2() {
+        return getViewCount();
+    }
+
+    @Override
+    public ModelViewCountRecord value1(Integer value) {
+        setMid(value);
+        return this;
+    }
+
+    @Override
+    public ModelViewCountRecord value2(Integer value) {
+        setViewCount(value);
+        return this;
+    }
+
+    @Override
+    public ModelViewCountRecord values(Integer value1, Integer value2) {
+        value1(value1);
+        value2(value2);
+        return this;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // FROM and INTO
+    // 
-------------------------------------------------------------------------
+
+    @Override
+    public void from(IModelViewCount from) {
+        setMid(from.getMid());
+        setViewCount(from.getViewCount());
+    }
+
+    @Override
+    public <E extends IModelViewCount> E into(E into) {
+        into.from(this);
+        return into;
+    }
+
+    // 
-------------------------------------------------------------------------
+    // Constructors
+    // 
-------------------------------------------------------------------------
+
+    /**
+     * Create a detached ModelViewCountRecord
+     */
+    public ModelViewCountRecord() {
+        super(ModelViewCount.MODEL_VIEW_COUNT);
+    }
+
+    /**
+     * Create a detached, initialised ModelViewCountRecord
+     */
+    public ModelViewCountRecord(Integer mid, Integer viewCount) {
+        super(ModelViewCount.MODEL_VIEW_COUNT);
+
+        setMid(mid);
+        setViewCount(viewCount);
+    }
+
+    /**
+     * Create a detached, initialised ModelViewCountRecord
+     */
+    public 
ModelViewCountRecord(edu.uci.ics.texera.dao.jooq.generated.tables.pojos.ModelViewCount
 value) {
+        super(ModelViewCount.MODEL_VIEW_COUNT);
+
+        if (value != null) {
+            setMid(value.getMid());
+            setViewCount(value.getViewCount());
+        }
+    }
+}

Reply via email to