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


class ShopifyProductPublication(models.Model):
    """
    Tabla pivote: estado de publicación de un producto en un canal de venta de Shopify.
    Cada registro indica si un producto está publicado (o no) en un canal específico.
    """
    _name = 'shopify.product.publication'
    _description = 'Publicación de Producto en Canal Shopify'
    _order = 'publication_id'

    product_tmpl_id = fields.Many2one(
        'product.template',
        string='Producto',
        required=True,
        ondelete='cascade',
        index=True,
    )
    publication_id = fields.Many2one(
        'shopify.publication',
        string='Canal de Venta',
        required=True,
        ondelete='cascade',
    )
    publication_name = fields.Char(
        related='publication_id.name',
        string='Nombre del Canal',
        readonly=True,
        store=True,
    )
    is_published = fields.Boolean(
        string='Publicado',
        default=False,
        help="Si está marcado, el producto se publicará en este canal al hacer push a Shopify.",
    )

    _sql_constraints = [
        ('unique_product_publication',
         'UNIQUE(product_tmpl_id, publication_id)',
         'El producto ya tiene un registro para este canal de venta.'),
    ]
