module.exports = {
    methods: {
        /**
         * Determine if the given country collects European VAT.
         */
        collectsVat(country) {
            return Spark.collectsEuropeanVat ? _.contains([
                'BE', 'BG', 'CZ', 'DK', 'DE',
                'EE', 'IE', 'GR', 'ES', 'FR',
                'HR', 'IT', 'CY', 'LV', 'LT',
                'LU', 'HU', 'MT', 'NL', 'AT',
                'PL', 'PT', 'RO', 'SI', 'SK',
                'FI', 'SE', 'GB',
            ], country) : false;
        },


        /**
         * Refresh the tax rate using the given form input.
         */
        refreshTaxRate(form) {
            axios.post('/tax-rate', JSON.parse(JSON.stringify(form)))
                .then(response => {
                    this.taxRate = response.data.rate;
                });
        },


        /**
         * Get the tax amount for the selected plan.
         */
        taxAmount(plan) {
            return plan.price * (this.taxRate / 100);
        },


        /**
         * Get the total plan price including the applicable tax.
         */
        priceWithTax(plan) {
            return plan.price + this.taxAmount(plan);
        }
    }
};
