-- Migration to make items, services, categories and customers shared between branches.
-- Only sales (orders) remain branch-specific.

-- Step 0: Ensure branch_id is indexed separately so we can drop the unique index later.
ALTER TABLE prices ADD INDEX idx_branch_id (branch_id);

-- Step 1: Cleanup duplicate prices across different branches for the same item/service.
-- We keep the oldest record (lowest ID).
DELETE p1 FROM prices p1
INNER JOIN prices p2 
ON p1.item_id = p2.item_id 
AND p1.service_id = p2.service_id 
AND p1.id > p2.id;

-- Step 2: Update unique index for prices to be global (item_id + service_id only).
-- Note: Dropping the index might require idx_branch_id to exist for the foreign key.
DROP INDEX unique_price ON prices;
CREATE UNIQUE INDEX unique_price ON prices (item_id, service_id);

-- Step 3: Make branch_id optional in prices and customers tables.
ALTER TABLE prices MODIFY branch_id INT NULL;
ALTER TABLE customers MODIFY branch_id INT NULL;