# -*- coding: utf-8 -*-
##############################################################################
#
#    Odoo, Open Source Management Solution
#    Copyright (C) 2016-TODAY Prime Consulting SA, Cape Verde (<http://prime.cv>).
#
##############################################################################

import werkzeug

from odoo import api, models, fields


def urlplus(url, params):
    return werkzeug.Href(url)(params or None)


class Partner(models.Model):

    _inherit = "res.partner"

    maps_url = fields.Char('Google Maps URL')
    maps_latitude = fields.Char('Latitude')
    maps_longitude = fields.Char('Longitude')

    @api.multi
    def google_map_img(self, zoom=8, width=298, height=298):
        google_maps_api_key = self.env['ir.config_parameter'].sudo().get_param('google_maps_api_key')
        if not google_maps_api_key:
            return False
        params = {
            'center': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.name_get()[0][1] or ''),
            'size': "%sx%s" % (height, width),
            'zoom': zoom,
            'sensor': 'false',
            'key': google_maps_api_key,
        }
        if self.maps_url:
            params = {
                'size': "%sx%s" % (width, height),
                'zoom': 17,
                'sensor': 'false',
                'key': google_maps_api_key,
                'q': self.maps_url,
            }
            if self.maps_latitude and self.maps_longitude:
                params['center'] = '%s, %s'%(self.maps_latitude, self.maps_longitude),
        return urlplus('//maps.googleapis.com/maps/api/staticmap', params)

    @api.multi
    def google_map_link(self, zoom=10):
        params = {
            'q': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.name_get()[0][1] or ''),
            'z': zoom,
        }
        if self.maps_url:
            return urlplus(self.maps_url, {})
        return urlplus('https://maps.google.com/maps', params)
