diff --git a/internal/entity/discovery.go b/internal/entity/discovery.go index 7d4bcba..fbb5990 100644 --- a/internal/entity/discovery.go +++ b/internal/entity/discovery.go @@ -5,6 +5,7 @@ type DiscoverySearch struct { Long float64 Name string Region string + Status string Discover string Offset int Limit int diff --git a/internal/entity/sites.go b/internal/entity/sites.go index 247ede4..9e5e883 100644 --- a/internal/entity/sites.go +++ b/internal/entity/sites.go @@ -42,6 +42,7 @@ type SiteSearch struct { Name string Limit int Offset int + Status string } type SiteList []*SiteDB diff --git a/internal/repository/sites/sites.go b/internal/repository/sites/sites.go index 791dbc3..8a6fcff 100644 --- a/internal/repository/sites/sites.go +++ b/internal/repository/sites/sites.go @@ -93,7 +93,10 @@ func (r *SiteRepository) GetAll(ctx context.Context, req entity.SiteSearch) (ent query := r.db query = query.Where("deleted_at IS NULL") - query = query.Where("status is ?", "Active") + + if req.Status != "" { + query = query.Where("status = ?", req.Status) + } if req.Search != "" { query = query.Where("name ILIKE ?", "%"+req.Search+"%") @@ -233,6 +236,11 @@ func (r *SiteRepository) SearchSites(ctx context.Context, search *entity.Discove params = append(params, search.Region) } + if search.Status != "" { + conditions += " AND s.status = ?" + params = append(params, search.Status) + } + if search.Discover != "" { conditions += " AND s.address ILIKE ?" params = append(params, "%"+search.Discover+"%") diff --git a/internal/services/discovery/discovery.go b/internal/services/discovery/discovery.go index 52c05dd..12f862b 100644 --- a/internal/services/discovery/discovery.go +++ b/internal/services/discovery/discovery.go @@ -83,6 +83,7 @@ func (s *DiscoveryService) Search(ctx context.Context, search *entity.DiscoveryS search.Radius = radius } + search.Status = "Active" siteProducts, total, err := s.repo.SearchSites(ctx, search) if err != nil { return nil, 0, err