import ngModule from '../module';
import Descriptor from 'salix/components/descriptor';

class Controller extends Descriptor {
    get entity() {
        return super.entity;
    }

    set entity(value) {
        super.entity = value;

        if (value && this.$params.sendSMS)
            this.showSMSDialog();
    }

    get client() {
        return this.entity;
    }

    set client(value) {
        this.entity = value;
    }

    get filter() {
        return JSON.stringify({clientFk: this.id});
    }

    loadData() {
        return this.getData(`Clients/${this.id}/getCard`)
            .then(res => this.entity = res.data);
    }

    showSMSDialog() {
        const client = this.client || {};
        this.newSMS = {
            destinationFk: this.id,
            destination: this.$params.phone || client.mobile || client.phone,
            message: this.$params.message || ''
        };
        this.$.sms.open();
    }

    onSmsSend(sms) {
        return this.$http.post(`Clients/${this.id}/sendSms`, sms)
            .then(() => this.vnApp.showSuccess(this.$t('SMS sent')));
    }

    clientUnpaid() {
        return this.$t(`Unpaid`) + '<br/>'
             + this.$t(`Unpaid Dated`, {dated: this.client.unpaid.dated}) + '<br/>'
             + this.$t(`Unpaid Amount`, {amount: this.client.unpaid.amount});
    }
}

ngModule.vnComponent('vnClientDescriptor', {
    template: require('./index.html'),
    controller: Controller,
    bindings: {
        client: '<'
    }
});