"""
Pre-migration for laundry_management 19.0.12.0.0

Changes handled:
1. Commission states: 'paid' only → now 'pending', 'confirmed', 'paid'
   Existing 'paid' rows remain 'paid'. Existing 'pending' rows remain 'pending'.
   'confirmed' is a new state — no existing rows use it, so no data migration needed.

2. New model: laundry.payment.wizard — just a new table, nothing to clean.

3. New groups: group_laundry_operator, group_laundry_cashier added to hierarchy.
   Existing users with group_laundry_user keep all their permissions (implied).

4. Access control: new CSV entries for payment wizard and new groups.
   Handled automatically by Odoo on upgrade.

No destructive operations needed in this migration.
The pre_migrate script from 19.0.11.0.0 already cleaned the legacy tables.
"""
import logging

_logger = logging.getLogger(__name__)


def migrate(cr, version):
    if not version:
        return  # Fresh install

    _logger.info('pre_migrate laundry_management 19.0.12.0.0: checking commission states')

    # Ensure commission state column allows new 'confirmed' value.
    # In Odoo, Selection fields are stored as VARCHAR — no schema change needed.
    # Just verify the column exists and log the existing state distribution.
    cr.execute("""
        SELECT state, COUNT(*) FROM laundry_commission
        GROUP BY state
        ORDER BY state
    """)
    rows = cr.fetchall()
    if rows:
        _logger.info(
            'pre_migrate: commission state distribution: %s',
            {state: count for state, count in rows}
        )
    else:
        _logger.info('pre_migrate: laundry_commission table is empty — fresh data')

    _logger.info('pre_migrate laundry_management 19.0.12.0.0: complete')
