"""Backfill partner_id before it becomes a required field.

partner_id used to be a stored related on user_id.partner_id; some rows
were never populated (NULL). It is now a plain required field — the
affiliate link, since not every affiliate needs a portal account. Fill
any NULL from the linked user's partner before the model load applies
the NOT NULL constraint.
"""


def migrate(cr, version):
    cr.execute(
        """
        UPDATE affiliate_widget_config c
           SET partner_id = u.partner_id
          FROM res_users u
         WHERE c.user_id = u.id
           AND c.partner_id IS NULL
           AND u.partner_id IS NOT NULL
        """
    )
