define('custom:views/c-vmh-erstgespraech/record/edit', ['views/record/edit'], function (Dep) {

    return Dep.extend({

        setup: function () {
            Dep.prototype.setup.call(this);

            // Listen for changes on Kaltmiete, BK-Vorauszahlung, and BK-Pauschale
            this.listenTo(this.model, 'change:kaltmiete change:bKVorauszahlung change:bKPauschale', function () {
                this.calculateFields();
            }, this);

            // Initial calculation after fields are ready
            this.once('after:render', function () {
                this.calculateFields();
            }, this);
        },

        calculateFields: function () {
            var kaltmiete = parseFloat(this.model.get('kaltmiete')) || 0;
            var bKVorauszahlung = parseFloat(this.model.get('bKVorauszahlung')) || 0;
            var bKPauschale = parseFloat(this.model.get('bKPauschale')) || 0;

            // Berechne Warmmiete
            var warmmiete = kaltmiete + bKVorauszahlung + bKPauschale;
            this.model.set('warmmiete', warmmiete, {silent: false});

            // Berechne Streitwert
            var streitwert = (kaltmiete + bKPauschale) * 12;
            this.model.set('streitwert', streitwert, {silent: false});

            // Force update der View
            if (this.hasView('warmmiete')) {
                var warmmieteView = this.getView('warmmiete');
                if (warmmieteView && warmmieteView.reRender) {
                    warmmieteView.reRender();
                }
            }

            if (this.hasView('streitwert')) {
                var streitwertView = this.getView('streitwert');
                if (streitwertView && streitwertView.reRender) {
                    streitwertView.reRender();
                }
            }
        }

    });
});
