-- Lokasyon ayrılma kayıtları
-- Bir lokasyonun hangi kaynaktan ayrıldığını tutar.
-- Tek kaynaktan ayrılma (Osmaniye←Adana) veya
-- çok kaynaktan birleşme (Elbistan ili←KMaraş+Malatya+Kayseri) için çoklu satır.
CREATE TABLE location_splits (
    id           BIGSERIAL PRIMARY KEY,
    location_id  BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
    source_id    BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
    effective_at DATE NOT NULL,
    notes        TEXT,
    UNIQUE (location_id, source_id, effective_at)
);

CREATE INDEX idx_location_splits_location ON location_splits(location_id);
CREATE INDEX idx_location_splits_source   ON location_splits(source_id);

-- Lokasyon birleşme kayıtları
-- Bir lokasyonun hangi hedefe birleştirildiğini tutar.
-- Beyoğlu+Şekeroba→Yeniİlçe gibi çok kaynak tek hedef için çoklu satır.
CREATE TABLE location_merges (
    id           BIGSERIAL PRIMARY KEY,
    source_id    BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
    target_id    BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
    effective_at DATE NOT NULL,
    notes        TEXT,
    UNIQUE (source_id, target_id, effective_at)
);

CREATE INDEX idx_location_merges_source ON location_merges(source_id);
CREATE INDEX idx_location_merges_target ON location_merges(target_id);
