-- 0013_project_delete_cascade — удаление проекта администратором (каскадом). -- -- Удаление проекта — действие админа (DELETE /projects/:id, RequireRole -- "admin"). Решение: проект удаляется вместе с заявками, а не запретом 409 -- на непустой проект. Каскады событий/фото на tickets (0006/0008) и -- объектов/участий на projects (0004) уже есть — здесь пересоздаются -- только два FK из tickets, чтобы и заявки уходили вместе с проектом: -- -- tickets (object_id, project_id) → project_objects (id, project_id) -- каскад нужен, чтобы объекты проекта уносили свои заявки; -- tickets (project_id, client_id) → projects (id, client_id) -- каскад: заявка проекта уходит вместе с проектом. -- -- Ограничения профилей из заявок (client_id/worker_id/assigned_by → -- profiles) остаются NO ACTION: удаление клиента с заявками — по-прежнему -- 409 «отключите вместо удаления». -- -- Применённый файл не редактировать (checksum в schema_migrations). ALTER TABLE tickets DROP CONSTRAINT IF EXISTS tickets_object_project_fk; ALTER TABLE tickets ADD CONSTRAINT tickets_object_project_fk FOREIGN KEY (object_id, project_id) REFERENCES project_objects (id, project_id) ON DELETE CASCADE; ALTER TABLE tickets DROP CONSTRAINT IF EXISTS tickets_project_client_fk; ALTER TABLE tickets ADD CONSTRAINT tickets_project_client_fk FOREIGN KEY (project_id, client_id) REFERENCES projects (id, client_id) ON DELETE CASCADE;