refactor: introduce internal/domain/ layer, rename model.go → entity.go

Move all business-logic packages from internal/ root into internal/domain/:
  auth, cuisine, diary, dish, home, ingredient, language, menu, product,
  recipe, recognition, recommendation, savedrecipe, tag, units, user

Rename model.go → entity.go in packages that hold domain entities:
  diary, dish, home, ingredient, menu, product, recipe, savedrecipe, user

Update all import paths accordingly (adapters, infra/server, cmd/server,
tests). No logic changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
dbastrikin
2026-03-15 22:12:07 +02:00
parent 6548f868c3
commit 6594013b53
58 changed files with 73 additions and 73 deletions

View File

@@ -4,26 +4,26 @@ import (
"net/http"
"time"
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/domain/auth"
"github.com/food-ai/backend/internal/infra/config"
"github.com/food-ai/backend/internal/diary"
"github.com/food-ai/backend/internal/dish"
"github.com/food-ai/backend/internal/domain/diary"
"github.com/food-ai/backend/internal/domain/dish"
"github.com/food-ai/backend/internal/adapters/openai"
"github.com/food-ai/backend/internal/home"
"github.com/food-ai/backend/internal/ingredient"
"github.com/food-ai/backend/internal/menu"
"github.com/food-ai/backend/internal/domain/home"
"github.com/food-ai/backend/internal/domain/ingredient"
"github.com/food-ai/backend/internal/domain/menu"
"github.com/food-ai/backend/internal/infra/middleware"
"github.com/food-ai/backend/internal/adapters/pexels"
"github.com/food-ai/backend/internal/product"
"github.com/food-ai/backend/internal/recipe"
"github.com/food-ai/backend/internal/recognition"
"github.com/food-ai/backend/internal/recommendation"
"github.com/food-ai/backend/internal/savedrecipe"
"github.com/food-ai/backend/internal/cuisine"
"github.com/food-ai/backend/internal/domain/product"
"github.com/food-ai/backend/internal/domain/recipe"
"github.com/food-ai/backend/internal/domain/recognition"
"github.com/food-ai/backend/internal/domain/recommendation"
"github.com/food-ai/backend/internal/domain/savedrecipe"
"github.com/food-ai/backend/internal/domain/cuisine"
"github.com/food-ai/backend/internal/infra/server"
"github.com/food-ai/backend/internal/tag"
"github.com/food-ai/backend/internal/units"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/tag"
"github.com/food-ai/backend/internal/domain/units"
"github.com/food-ai/backend/internal/domain/user"
"github.com/jackc/pgx/v5/pgxpool"
)

View File

@@ -5,23 +5,23 @@ package main
import (
"net/http"
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/domain/auth"
"github.com/food-ai/backend/internal/adapters/firebase"
"github.com/food-ai/backend/internal/infra/config"
"github.com/food-ai/backend/internal/diary"
"github.com/food-ai/backend/internal/dish"
"github.com/food-ai/backend/internal/home"
"github.com/food-ai/backend/internal/ingredient"
"github.com/food-ai/backend/internal/menu"
"github.com/food-ai/backend/internal/domain/diary"
"github.com/food-ai/backend/internal/domain/dish"
"github.com/food-ai/backend/internal/domain/home"
"github.com/food-ai/backend/internal/domain/ingredient"
"github.com/food-ai/backend/internal/domain/menu"
"github.com/food-ai/backend/internal/infra/middleware"
"github.com/food-ai/backend/internal/adapters/openai"
"github.com/food-ai/backend/internal/adapters/pexels"
"github.com/food-ai/backend/internal/product"
"github.com/food-ai/backend/internal/recipe"
"github.com/food-ai/backend/internal/recognition"
"github.com/food-ai/backend/internal/recommendation"
"github.com/food-ai/backend/internal/savedrecipe"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/product"
"github.com/food-ai/backend/internal/domain/recipe"
"github.com/food-ai/backend/internal/domain/recognition"
"github.com/food-ai/backend/internal/domain/recommendation"
"github.com/food-ai/backend/internal/domain/savedrecipe"
"github.com/food-ai/backend/internal/domain/user"
"github.com/google/wire"
"github.com/jackc/pgx/v5/pgxpool"
)

View File

@@ -7,20 +7,20 @@
package main
import (
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/domain/auth"
"github.com/food-ai/backend/internal/adapters/firebase"
"github.com/food-ai/backend/internal/infra/config"
"github.com/food-ai/backend/internal/diary"
"github.com/food-ai/backend/internal/dish"
"github.com/food-ai/backend/internal/home"
"github.com/food-ai/backend/internal/ingredient"
"github.com/food-ai/backend/internal/menu"
"github.com/food-ai/backend/internal/product"
"github.com/food-ai/backend/internal/recipe"
"github.com/food-ai/backend/internal/recognition"
"github.com/food-ai/backend/internal/recommendation"
"github.com/food-ai/backend/internal/savedrecipe"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/diary"
"github.com/food-ai/backend/internal/domain/dish"
"github.com/food-ai/backend/internal/domain/home"
"github.com/food-ai/backend/internal/domain/ingredient"
"github.com/food-ai/backend/internal/domain/menu"
"github.com/food-ai/backend/internal/domain/product"
"github.com/food-ai/backend/internal/domain/recipe"
"github.com/food-ai/backend/internal/domain/recognition"
"github.com/food-ai/backend/internal/domain/recommendation"
"github.com/food-ai/backend/internal/domain/savedrecipe"
"github.com/food-ai/backend/internal/domain/user"
"github.com/jackc/pgx/v5/pgxpool"
"net/http"
)

View File

@@ -11,7 +11,7 @@ import (
firebaseAuth "firebase.google.com/go/v4/auth"
"google.golang.org/api/option"
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/domain/auth"
)
// Auth is the Firebase-backed implementation of auth.TokenVerifier.

View File

@@ -4,7 +4,7 @@ import (
"context"
"fmt"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
)
type Service struct {

View File

@@ -11,10 +11,10 @@ import (
"time"
"github.com/food-ai/backend/internal/adapters/ai"
"github.com/food-ai/backend/internal/dish"
"github.com/food-ai/backend/internal/domain/dish"
"github.com/food-ai/backend/internal/infra/locale"
"github.com/food-ai/backend/internal/infra/middleware"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
"github.com/go-chi/chi/v5"
)

View File

@@ -10,7 +10,7 @@ import (
"github.com/food-ai/backend/internal/adapters/ai"
"github.com/food-ai/backend/internal/infra/middleware"
"github.com/food-ai/backend/internal/ingredient"
"github.com/food-ai/backend/internal/domain/ingredient"
)
// IngredientRepository is the subset of ingredient.Repository used by this handler.

View File

@@ -11,7 +11,7 @@ import (
"github.com/food-ai/backend/internal/adapters/ai"
"github.com/food-ai/backend/internal/infra/locale"
"github.com/food-ai/backend/internal/infra/middleware"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
)
// PhotoSearcher can search for a photo by text query.

View File

@@ -6,7 +6,7 @@ import (
"errors"
"fmt"
"github.com/food-ai/backend/internal/dish"
"github.com/food-ai/backend/internal/domain/dish"
"github.com/food-ai/backend/internal/infra/locale"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgxpool"

View File

@@ -4,7 +4,7 @@ import (
"context"
"time"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
)
type MockUserRepository struct {

View File

@@ -4,20 +4,20 @@ import (
"encoding/json"
"net/http"
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/diary"
"github.com/food-ai/backend/internal/dish"
"github.com/food-ai/backend/internal/home"
"github.com/food-ai/backend/internal/ingredient"
"github.com/food-ai/backend/internal/language"
"github.com/food-ai/backend/internal/menu"
"github.com/food-ai/backend/internal/domain/auth"
"github.com/food-ai/backend/internal/domain/diary"
"github.com/food-ai/backend/internal/domain/dish"
"github.com/food-ai/backend/internal/domain/home"
"github.com/food-ai/backend/internal/domain/ingredient"
"github.com/food-ai/backend/internal/domain/language"
"github.com/food-ai/backend/internal/domain/menu"
"github.com/food-ai/backend/internal/infra/middleware"
"github.com/food-ai/backend/internal/recipe"
"github.com/food-ai/backend/internal/product"
"github.com/food-ai/backend/internal/recognition"
"github.com/food-ai/backend/internal/recommendation"
"github.com/food-ai/backend/internal/savedrecipe"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/recipe"
"github.com/food-ai/backend/internal/domain/product"
"github.com/food-ai/backend/internal/domain/recognition"
"github.com/food-ai/backend/internal/domain/recommendation"
"github.com/food-ai/backend/internal/domain/savedrecipe"
"github.com/food-ai/backend/internal/domain/user"
"github.com/go-chi/chi/v5"
"github.com/jackc/pgx/v5/pgxpool"
)

View File

@@ -11,11 +11,11 @@ import (
"testing"
"time"
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/auth/mocks"
"github.com/food-ai/backend/internal/domain/auth"
"github.com/food-ai/backend/internal/domain/auth/mocks"
"github.com/food-ai/backend/internal/infra/middleware"
"github.com/food-ai/backend/internal/testutil"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
"github.com/go-chi/chi/v5"
)

View File

@@ -4,7 +4,7 @@ import (
"testing"
"time"
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/domain/auth"
)
func TestGenerateAccessToken(t *testing.T) {

View File

@@ -6,10 +6,10 @@ import (
"testing"
"time"
"github.com/food-ai/backend/internal/auth"
"github.com/food-ai/backend/internal/auth/mocks"
"github.com/food-ai/backend/internal/user"
umocks "github.com/food-ai/backend/internal/user/mocks"
"github.com/food-ai/backend/internal/domain/auth"
"github.com/food-ai/backend/internal/domain/auth/mocks"
"github.com/food-ai/backend/internal/domain/user"
umocks "github.com/food-ai/backend/internal/domain/user/mocks"
)
func newTestService(verifier *mocks.MockTokenVerifier, repo *umocks.MockUserRepository) *auth.Service {

View File

@@ -6,7 +6,7 @@ import (
"context"
"testing"
"github.com/food-ai/backend/internal/ingredient"
"github.com/food-ai/backend/internal/domain/ingredient"
"github.com/food-ai/backend/internal/infra/locale"
"github.com/food-ai/backend/internal/testutil"
)

View File

@@ -6,7 +6,7 @@ import (
"context"
"testing"
"github.com/food-ai/backend/internal/recipe"
"github.com/food-ai/backend/internal/domain/recipe"
"github.com/food-ai/backend/internal/testutil"
)

View File

@@ -4,7 +4,7 @@ import (
"testing"
"time"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
)
func ptr[T any](v T) *T { return &v }

View File

@@ -9,7 +9,7 @@ import (
"time"
"github.com/food-ai/backend/internal/testutil"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
)
func TestRepository_UpsertByFirebaseUID_Insert(t *testing.T) {

View File

@@ -7,7 +7,7 @@ import (
"testing"
"time"
"github.com/food-ai/backend/internal/user"
"github.com/food-ai/backend/internal/domain/user"
)
func ptrStr(s string) *string { return &s }

BIN
examples/dishes/dish1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
examples/dishes/dish2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB