const VersionedModel = require('../VersionedModel')
const uuid = require('uuid/v4')

/*
 * FileGroup Model
 * -------------------------------------------------------------
 * Put some description here!
 */
class FileGroup extends VersionedModel {
    static get schema() {
        // Return a flitter-orm schema here.
        return {
            ...super.schema,
            NodeId: String,
            PageId: String,
            FileIds: [String],
            UUID: {type: String, default: () => uuid()}
        }
    }

    accessible_by(user, mode = 'view') {
        return user.can(`files:${this.UUID}:${mode}`)
    }
    
    // Static and instance methods can go here
    get page() {
        const Page = require('./Page.model')
        return this.belongs_to_one(Page, 'PageId', 'UUID')
    }
}

module.exports = exports = FileGroup
