# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import fields, models


class ScopActionRse(models.Model):
    _name = "scop.action.rse"
    _inherit = ["mail.thread"]
    _description = "Actions RSE engagées"
    _order = "partner_id, action_category, action_date"

    partner_id = fields.Many2one(
        comodel_name="res.partner",
        string="Organisme",
        domain=[("is_company", "=", True)],
        ondelete="cascade",
        index=True,
    )

    action_date = fields.Date(string="Début de l'action", index=True, tracking=True)

    action_category = fields.Selection(
        [
            ("1", "1 -	La gouvernance de l’organisation"),
            ("2", "2 -	Les droits de l’homme"),
            ("3", "3 - Les relations et les conditions de travail"),
            ("4", "4 -	L’environnement"),
            ("5", "5 -	La loyauté des pratiques dans les affaires"),
            ("6", "6 -	Les questions relatives aux consommateurs"),
            ("7", "7 -	Les communautés et le territoire"),
        ],
        string="Catégorie RSE",
        tracking=True,
    )

    action_manager = fields.Text(string="Référent de l'action", tracking=True)

    action_description = fields.Text(string="Description de l'action", tracking=True)

    action_measure = fields.Text(string="Indicateurs de suivi", tracking=True)

    # ------------------------------------------------------
    # Contraintes SQL
    # ------------------------------------------------------
    # Unicité de l'action par organisme et par date
    _sql_constraints = [
        (
            "action_rse",
            "unique(partner_id, action_category, action_date)",
            "Une action RSE a déjà été enregistrée à cette date",
        ),
    ]