initial commit

This commit is contained in:
2025-11-29 00:28:21 +05:00
parent 46229acc82
commit ec3b03a935
76 changed files with 13492 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
-- +goose Up
-- +goose StatementBegin
-- =========================================
-- КРИТИЧЕСКИЕ GIST ИНДЕКСЫ ДЛЯ ГЕОПОИСКА
-- =========================================
-- GIST индекс для геолокации пользователей (волонтёров)
-- Используется для поиска волонтёров рядом с заявкой
CREATE INDEX idx_users_location_gist ON users USING GIST(location)
WHERE location IS NOT NULL AND deleted_at IS NULL;
-- GIST индекс для геолокации заявок
-- Используется для поиска заявок рядом с волонтёром
CREATE INDEX idx_requests_location_gist ON requests USING GIST(location)
WHERE deleted_at IS NULL;
-- Составной GIST индекс для геолокации + статус заявки
-- Критично для алгоритма матчинга: поиск только одобренных заявок рядом
CREATE INDEX idx_requests_location_status_gist ON requests USING GIST(location)
WHERE status = 'approved' AND deleted_at IS NULL;
-- GIST индекс для геолокации активных заявок
-- Используется для поиска заявок, готовых к выполнению
CREATE INDEX idx_requests_location_active_gist ON requests USING GIST(location)
WHERE status IN ('approved', 'in_progress') AND deleted_at IS NULL;
COMMENT ON INDEX idx_users_location_gist IS 'GIST индекс для быстрого геопоиска волонтёров';
COMMENT ON INDEX idx_requests_location_gist IS 'GIST индекс для быстрого геопоиска всех заявок';
COMMENT ON INDEX idx_requests_location_status_gist IS 'GIST индекс для поиска одобренных заявок (алгоритм матчинга)';
COMMENT ON INDEX idx_requests_location_active_gist IS 'GIST индекс для поиска активных заявок';
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP INDEX IF EXISTS idx_requests_location_active_gist;
DROP INDEX IF EXISTS idx_requests_location_status_gist;
DROP INDEX IF EXISTS idx_requests_location_gist;
DROP INDEX IF EXISTS idx_users_location_gist;
-- +goose StatementEnd