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


class NacefCefSale(models.Model):
    """CEF sale declaration to the NACEF supplier platform (E0102)."""
    _name = "nacef.cef.sale"
    _description = "NACEF CEF Sale Declaration"
    _order = "sale_date desc"

    tenant_id = fields.Many2one(
        "nacef.tenant", required=True, ondelete="cascade", index=True)
    serial_number = fields.Char(required=True)
    mac_address = fields.Char(required=True)
    client_matricule = fields.Char(string="Client matricule", required=True)
    homologation_ref = fields.Char(
        string="Homologation certificate ref", required=True)
    sale_date = fields.Date(default=fields.Date.today, required=True)
    declared = fields.Boolean(readonly=True)
    declared_date = fields.Datetime(readonly=True)

    def action_declare(self):
        # hook: submit the declaration to the NACEF supplier platform
        self.write({"declared": True, "declared_date": fields.Datetime.now()})
        return True


class NacefMaintenance(models.Model):
    """Maintenance intervention declaration (E0103)."""
    _name = "nacef.maintenance"
    _description = "NACEF Maintenance Declaration"
    _order = "maintenance_date desc"

    tenant_id = fields.Many2one(
        "nacef.tenant", required=True, ondelete="cascade", index=True)
    imdf = fields.Char(string="IMDF")
    ce_serial = fields.Char(string="CE serial")
    emdf_serial = fields.Char(string="E-MDF serial")
    maintenance_date = fields.Date(default=fields.Date.today, required=True)
    maintenance_type = fields.Selection(
        [("curative", "Curative"), ("evolutive", "Evolutive")],
        default="curative", required=True)
    fault_nature = fields.Text(string="Fault")
    resolution = fields.Text()
    closed_date = fields.Date()
    declared = fields.Boolean(readonly=True)
    declared_date = fields.Datetime(readonly=True)

    def action_declare(self):
        self.write({"declared": True, "declared_date": fields.Datetime.now()})
        return True
