Running migrations... = avatar_url column already exists = parent_id column already exists + Added 'payway' to subscription_provider enum = location_logs table already exists = zone_categories table already exists + Updated orders_status_check constraint = password_plain column already exists = product_lists table already exists = product_list_products table already exists + Added product_list_id column to zones = zone_product_lists table already exists + Dropped legacy product_list_id column + Changed discount_type from enum to varchar = attendance_sessions table already exists = expense_claims table already exists = leave_requests table already exists = hire_date column already exists = emergency_contact_name column already exists = emergency_contact_phone column already exists = id_card_number column already exists = base_salary column already exists = commission_rate column already exists = settlements table already exists = nix_products table already exists = nix_permission_groups table already exists = nix_permissions table already exists = nix_roles table already exists = nix_role_permissions table already exists = nix_user_product_roles table already exists + Seeded nix_products (idempotent) + Seeded nix_permission_groups (idempotent) + Seeded nix_permissions (idempotent) + RBAC seeded for 15 tenant(s); 0 new role rows = cafe schema ensured = cafe.tenant_config exists = cafe.audit_log exists + Created cafe.user_pos_access = plans.product_code exists = plans.product_code already NOT NULL = subscription per-product columns exist = product_code + plan_code already NOT NULL = subscriptions unique constraint exists = subscriptions.limits_json exists = tenant_usage.product_code exists = tenant_usage new unique exists = commerce.shops exists = commerce.user_shop_access exists = commerce.invoices exists = tenant_users.full_name exists = tenant_user_refresh_tokens table exists = nix_os already absent from nix_products = users.tenant_user_id already exists = No legacy users need bridging (all linked or no tenant_id/email) = cafe.shop_pos_configs exists - Dropped cafe.user_pos_access (replaced by user_shop_access × shop_pos_configs) = commerce.pin_identities exists = cafe.tenant_config.telegram_* columns already exist = cafe.telegram_groups exists = cafe.telegram_send_log exists = cafe.payment_diff_reasons exists = cafe.sessions exists = cafe.pos_sequences exists = tenant_users.pos_pin_hash exists = cafe.draft_orders exists = cafe.cash_movements exists = commerce.shops.kitchen_display_secret exists = cafe.kitchen_orders exists = cafe.tenant_config.display_logo_url exists = cafe.tenant_config.display_primary_color exists = cafe.tenant_config.display_promo_text exists = cafe.tenant_config.display_promo_image_url exists = cafe.user_pos_access already absent Migrations complete.