# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import api, fields, models

# Import the payment provider modules with aliases to avoid circular import errors.
try:
    import odoo.addons.payment_mercado_pago as mercado_pago
    import odoo.addons.payment_stripe as stripe
except ModuleNotFoundError:
    mercado_pago = None
    stripe = None


class ResCountry(models.Model):
    _inherit = 'res.country'

    is_mercado_pago_supported_country = fields.Boolean(compute='_compute_provider_support')
    is_stripe_supported_country = fields.Boolean(compute='_compute_provider_support')

    @api.depends('code')
    def _compute_provider_support(self):
        for country in self:
            country.is_stripe_supported_country = (
                stripe is not None
                and stripe.const.COUNTRY_MAPPING.get(
                    country.code, country.code
                ) in stripe.const.SUPPORTED_COUNTRIES
            )
            country.is_mercado_pago_supported_country = (
                mercado_pago
                and country.code in mercado_pago.const.SUPPORTED_COUNTRIES
            )
