-- Prestige Barbershop Professional v4.36.0
-- Fallback manual. Prefer upgrade_v4_36_0.php.
-- Tidak mengubah pilihan database; dijalankan pada database aktif.
SET @db := DATABASE();

SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='member_registrations' AND COLUMN_NAME='membership_level_id')=0,'ALTER TABLE member_registrations ADD COLUMN membership_level_id INT NULL AFTER notes','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='member_registrations' AND COLUMN_NAME='membership_sale_id')=0,'ALTER TABLE member_registrations ADD COLUMN membership_sale_id BIGINT NULL AFTER membership_level_id','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='pre_members' AND COLUMN_NAME='membership_level_id')=0,'ALTER TABLE pre_members ADD COLUMN membership_level_id INT NULL AFTER notes','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='pre_members' AND COLUMN_NAME='membership_sale_id')=0,'ALTER TABLE pre_members ADD COLUMN membership_sale_id BIGINT NULL AFTER membership_level_id','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;

SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_in_photo_taken_at')=0,'ALTER TABLE attendance_records ADD COLUMN check_in_photo_taken_at DATETIME NULL AFTER check_in_photo','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_in_latitude')=0,'ALTER TABLE attendance_records ADD COLUMN check_in_latitude DECIMAL(10,7) NULL AFTER check_in_photo_taken_at','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_in_longitude')=0,'ALTER TABLE attendance_records ADD COLUMN check_in_longitude DECIMAL(10,7) NULL AFTER check_in_latitude','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_in_gps_accuracy')=0,'ALTER TABLE attendance_records ADD COLUMN check_in_gps_accuracy DECIMAL(10,2) NULL AFTER check_in_longitude','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_out_photo_taken_at')=0,'ALTER TABLE attendance_records ADD COLUMN check_out_photo_taken_at DATETIME NULL AFTER check_out_photo','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_out_latitude')=0,'ALTER TABLE attendance_records ADD COLUMN check_out_latitude DECIMAL(10,7) NULL AFTER check_out_photo_taken_at','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_out_longitude')=0,'ALTER TABLE attendance_records ADD COLUMN check_out_longitude DECIMAL(10,7) NULL AFTER check_out_latitude','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='attendance_records' AND COLUMN_NAME='check_out_gps_accuracy')=0,'ALTER TABLE attendance_records ADD COLUMN check_out_gps_accuracy DECIMAL(10,2) NULL AFTER check_out_longitude','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;

SET @sql := IF((SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='member_registrations' AND INDEX_NAME='idx_member_reg_membership_sale')=0,'CREATE INDEX idx_member_reg_membership_sale ON member_registrations(membership_sale_id,status)','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='pre_members' AND INDEX_NAME='idx_pre_member_membership_sale')=0,'CREATE INDEX idx_pre_member_membership_sale ON pre_members(membership_sale_id,status)','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;

SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA=@db AND TABLE_NAME='member_registrations' AND CONSTRAINT_NAME='fk_member_reg_membership_level')=0,'ALTER TABLE member_registrations ADD CONSTRAINT fk_member_reg_membership_level FOREIGN KEY(membership_level_id) REFERENCES member_levels(id) ON DELETE SET NULL','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA=@db AND TABLE_NAME='member_registrations' AND CONSTRAINT_NAME='fk_member_reg_membership_sale')=0,'ALTER TABLE member_registrations ADD CONSTRAINT fk_member_reg_membership_sale FOREIGN KEY(membership_sale_id) REFERENCES membership_sales(id) ON DELETE SET NULL','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA=@db AND TABLE_NAME='pre_members' AND CONSTRAINT_NAME='fk_pre_member_membership_level')=0,'ALTER TABLE pre_members ADD CONSTRAINT fk_pre_member_membership_level FOREIGN KEY(membership_level_id) REFERENCES member_levels(id) ON DELETE SET NULL','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
SET @sql := IF((SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA=@db AND TABLE_NAME='pre_members' AND CONSTRAINT_NAME='fk_pre_member_membership_sale')=0,'ALTER TABLE pre_members ADD CONSTRAINT fk_pre_member_membership_sale FOREIGN KEY(membership_sale_id) REFERENCES membership_sales(id) ON DELETE SET NULL','SELECT 1'); PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;

INSERT INTO settings(setting_key,setting_value) VALUES('schema_release','4.36.0') ON DUPLICATE KEY UPDATE setting_value=VALUES(setting_value);
