async create(data) {
    const { acl, tags, createdAt, updatedAt, ...query } = data;
    // Open transaction
    // If tags are provided, delete existing and bulk add new
    // update query
    // commit transaction
    // return updated object
    let created;
    await this.sequelizeDb.sequelize.transaction(async (transaction) => {
      created = await this.sequelizeDb.Queries.create(query, {
        transaction,
      });

      if (Array.isArray(tags)) {
        const tagData = tags
          .filter((tag) => {
            return typeof tag === 'string' && tag.trim() !== '';
          })
          .map((tag) => {
            return { queryId: created.id, tag: tag.trim() };
          });

        await this.sequelizeDb.QueryTags.bulkCreate(tagData, { transaction });
      }

      if (acl && acl.length) {
        const aclRows = acl.map((row) => {
          return {
            queryId: created.id,
            userId: row.userId,
            userEmail: row.userEmail,
            groupId: row.groupId,
            write: row.write,
          };
        });
        await this.sequelizeDb.QueryAcl.bulkCreate(aclRows, { transaction });
      }
    });

    return this.findOneById(created.id);
  }
Create new query object
@param {object} data - query object with tags, acl