const Model = require('flitter-orm/src/model/Model')
const uuid = require('uuid/v4')

/*
 * DBEntry Model
 * -------------------------------------------------------------
 * Put some description here!
 */
class DBEntry extends Model {
    static get schema() {
        // Return a flitter-orm schema here.
        return {
            DatabaseId: String,
            RowData: Object,
            UUID: { type: String, default: () => uuid() },
        }
    }
    
    // Static and instance methods can go here
    to_api_object() {
        return {
            uuid: this.UUID,
            database_id: this.DatabaseId,
            data: this.RowData,
        }
    }

    static async from_cursor(cursor) {
        const arr = await cursor.toArray()
        const collection = []
        for ( const rec of arr ) {
            collection.push(new this(rec))
        }
        return collection
    }
}

module.exports = exports = DBEntry
