<repo_name>suvelocity/challenge-sequelize-template<file_sep>/index.js
class MySequelize {
    constructor(connect, tableName) {
        this.connection = connect;
        this.table = tableName;
    }

    async create(obj) {

        /*
           Model.create({
               name: 'test',
               email: '<EMAIL>',
               password: '<PASSWORD>',
               is_admin: false
           })
        */
    }

    async bulkCreate(arr) {

        /*
           Model.bulkCreate([
               {
               name: 'test',
               email: '<EMAIL>',
               password: '<PASSWORD>',
               is_admin: false
           },
           {
               name: 'test1',
               email: '<EMAIL>',
               password: '<PASSWORD>',
               is_admin: false
           },
           {
               name: 'test2',
               email: '<EMAIL>',
               password: '<PASSWORD>',
               is_admin: true
           },
        ])
        */
    }

    async findAll(options) {

        /*
        Model.findAll({
            where: {
                is_admin: false
            },
            order: ['id', 'DESC'],
            limit 2
        })
        */

        /*
        Model.findAll({
            include:[
                {
                    table: playlists,             // table yo want to join
                    tableForeignKey: "creator",   // column reference in the table yo want to join
                    sourceForeignKey: "id",       // base table column reference
                }
            ] 
        })
        */

        /*
        Model.findAll({
            where: {
                [Op.gt]: {
                    id: 10
                },                // both [Op.gt] and [Op.lt] need to work so you can pass the tests
                [Op.lt]: {        
                    id: 20
                }
        })
        */
    }

    async findByPk(id) {
        /*
            Model.findByPk(id)
        */
    }

    async findOne(options) {
        /*
            Model.findOne({
                where: {
                    is_admin: true
                }
            })
        */
    }

    async update(newDetails, options) {
        /*
            Model.update( { name: 'test6', email: '<EMAIL>' } , {
                where: {                                                      // first object containing details to update
                    is_admin: true                                            // second object containing condotion for the query
                }
            })
        */
    }

    async destroy({ force, ...options }) {
        /*
            Model.destroy({
                where: {                                                      
                    is_admin: true                                            
                },
                force: true      // will cause hard delete
            })
        */

        /*
           Model.destroy({
               where: {                                                      
                   id: 10                                           
               },
               force: false      // will cause soft delete
           })
       */
        /*
           Model.destroy({
               where: {                                                      
                   id: 10                                           
               },  // will cause soft delete
           })
       */

    }

    async restore(options) {
        /*
           Model.restore({
               where: {                                                      
                   id: 12                                          
               }
           })
       */
    }

}

module.exports = { MySequelize };
<file_sep>/Op/OpSymbols.js

const Op = {}


module.exports = { Op }