import ngModule from '../module';

class Controller {
    constructor($, $http) {
        Object.assign(this, {
            $,
            $http
        });
    }

    get worker() {
        return this._worker;
    }

    set worker(value) {
        this._worker = value;
        this.$.worker = null;
        if (!value) return;

        let query = `api/Workers/${value.id}`;
        let filter = {
            include: [
                {
                    relation: 'user',
                    scope: {
                        fields: ['name', 'roleFk'],
                        include: [{
                            relation: 'role',
                            scope: {
                                fields: ['name']
                            }
                        },
                        {
                            relation: 'emailUser',
                            scope: {
                                fields: ['email']
                            }
                        }]
                    }
                }, {
                    relation: 'client',
                    scope: {fields: ['fi']}
                }, {
                    relation: 'sip',
                    scope: {fields: ['extension']}
                }, {
                    relation: 'department',
                    scope: {
                        include: {
                            relation: 'department'
                        }
                    }
                }
            ]
        };

        this.$http.get(query, {params: {filter}}).then(res => {
            this.$.worker = res.data;
        });
    }
}

Controller.$inject = ['$scope', '$http'];

ngModule.component('vnWorkerSummary', {
    template: require('./index.html'),
    controller: Controller,
    bindings: {
        worker: '<'
    }
});