From 310673940ebe512d4ccc774f098923fddf75d397 Mon Sep 17 00:00:00 2001 From: vikingowl Date: Sat, 18 Apr 2026 14:30:54 +0200 Subject: [PATCH] =?UTF-8?q?feat(discovery):=20migration=20000017=20?= =?UTF-8?q?=E2=80=94=20nullable=20bucket=5Fid;=20model=20uses=20*uuid.UUID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/domain/discovery/model.go | 2 +- backend/internal/domain/discovery/service.go | 2 +- .../000017_discovered_markets_bucket_nullable.down.sql | 8 ++++++++ .../000017_discovered_markets_bucket_nullable.up.sql | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 backend/migrations/000017_discovered_markets_bucket_nullable.down.sql create mode 100644 backend/migrations/000017_discovered_markets_bucket_nullable.up.sql diff --git a/backend/internal/domain/discovery/model.go b/backend/internal/domain/discovery/model.go index d78c3d7..af566ff 100644 --- a/backend/internal/domain/discovery/model.go +++ b/backend/internal/domain/discovery/model.go @@ -27,7 +27,7 @@ type Bucket struct { // vorjahr_unbestaetigt|abgesagt). type DiscoveredMarket struct { ID uuid.UUID `json:"id"` - BucketID uuid.UUID `json:"bucket_id"` + BucketID *uuid.UUID `json:"bucket_id"` MarktName string `json:"markt_name"` Stadt string `json:"stadt"` Bundesland string `json:"bundesland"` diff --git a/backend/internal/domain/discovery/service.go b/backend/internal/domain/discovery/service.go index 5c3bbfc..c8e9e06 100644 --- a/backend/internal/domain/discovery/service.go +++ b/backend/internal/domain/discovery/service.go @@ -205,7 +205,7 @@ func (s *Service) processBucketResponse(ctx context.Context, b Bucket, resp Pass } dm := DiscoveredMarket{ - BucketID: b.ID, + BucketID: &b.ID, MarktName: m.MarktName, Stadt: m.Stadt, Bundesland: m.Bundesland, diff --git a/backend/migrations/000017_discovered_markets_bucket_nullable.down.sql b/backend/migrations/000017_discovered_markets_bucket_nullable.down.sql new file mode 100644 index 0000000..cb3080d --- /dev/null +++ b/backend/migrations/000017_discovered_markets_bucket_nullable.down.sql @@ -0,0 +1,8 @@ +DO $$ +BEGIN + IF EXISTS (SELECT 1 FROM discovered_markets WHERE bucket_id IS NULL) THEN + RAISE EXCEPTION 'Cannot revert: % rows have NULL bucket_id (crawler-produced). Resolve manually before rolling back.', + (SELECT COUNT(*) FROM discovered_markets WHERE bucket_id IS NULL); + END IF; +END $$; +ALTER TABLE discovered_markets ALTER COLUMN bucket_id SET NOT NULL; diff --git a/backend/migrations/000017_discovered_markets_bucket_nullable.up.sql b/backend/migrations/000017_discovered_markets_bucket_nullable.up.sql new file mode 100644 index 0000000..214e236 --- /dev/null +++ b/backend/migrations/000017_discovered_markets_bucket_nullable.up.sql @@ -0,0 +1 @@ +ALTER TABLE discovered_markets ALTER COLUMN bucket_id DROP NOT NULL;