# -*- coding: utf-8 -*-
from odoo import fields, models


class CrmLead(models.Model):
    _inherit = 'crm.lead'

    mail_sync_message_ids = fields.Many2many(
        'mail.sync.message',
        'mail_sync_message_lead_rel',
        'lead_id',
        'message_id',
        string='Inbox Messages',
    )
    mail_sync_message_count = fields.Integer(
        string='Inbox Mail Count',
        compute='_compute_mail_sync_message_count',
    )

    def _compute_mail_sync_message_count(self):
        grouped = self.env['mail.sync.message'].read_group(
            [('lead_ids', 'in', self.ids)],
            ['lead_ids'],
            ['lead_ids'],
        )
        counts = {}
        for row in grouped:
            lead = row['lead_ids']
            if lead:
                counts[lead[0]] = row['lead_ids_count']
        for lead in self:
            lead.mail_sync_message_count = counts.get(lead.id, 0)

    def action_view_mail_sync_messages(self):
        """Open inbox messages linked to this lead."""
        self.ensure_one()
        return {
            'type': 'ir.actions.act_window',
            'name': 'Inbox Messages',
            'res_model': 'mail.sync.message',
            'view_mode': 'tree,form',
            'domain': [('lead_ids', 'in', self.ids)],
        }
