diff --git a/backend/cmd/server/providers.go b/backend/cmd/server/providers.go index 0d2c4b3..2c301ba 100644 --- a/backend/cmd/server/providers.go +++ b/backend/cmd/server/providers.go @@ -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" ) diff --git a/backend/cmd/server/wire.go b/backend/cmd/server/wire.go index 98452a5..af5ecf7 100644 --- a/backend/cmd/server/wire.go +++ b/backend/cmd/server/wire.go @@ -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" ) diff --git a/backend/cmd/server/wire_gen.go b/backend/cmd/server/wire_gen.go index 9602cdd..4129a07 100644 --- a/backend/cmd/server/wire_gen.go +++ b/backend/cmd/server/wire_gen.go @@ -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" ) diff --git a/backend/internal/adapters/firebase/auth.go b/backend/internal/adapters/firebase/auth.go index 0233544..dea3af7 100644 --- a/backend/internal/adapters/firebase/auth.go +++ b/backend/internal/adapters/firebase/auth.go @@ -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. diff --git a/backend/internal/auth/handler.go b/backend/internal/domain/auth/handler.go similarity index 100% rename from backend/internal/auth/handler.go rename to backend/internal/domain/auth/handler.go diff --git a/backend/internal/auth/jwt.go b/backend/internal/domain/auth/jwt.go similarity index 100% rename from backend/internal/auth/jwt.go rename to backend/internal/domain/auth/jwt.go diff --git a/backend/internal/auth/mocks/token_verifier.go b/backend/internal/domain/auth/mocks/token_verifier.go similarity index 100% rename from backend/internal/auth/mocks/token_verifier.go rename to backend/internal/domain/auth/mocks/token_verifier.go diff --git a/backend/internal/auth/service.go b/backend/internal/domain/auth/service.go similarity index 98% rename from backend/internal/auth/service.go rename to backend/internal/domain/auth/service.go index 3d2b879..1f31286 100644 --- a/backend/internal/auth/service.go +++ b/backend/internal/domain/auth/service.go @@ -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 { diff --git a/backend/internal/auth/token_verifier.go b/backend/internal/domain/auth/token_verifier.go similarity index 100% rename from backend/internal/auth/token_verifier.go rename to backend/internal/domain/auth/token_verifier.go diff --git a/backend/internal/cuisine/handler.go b/backend/internal/domain/cuisine/handler.go similarity index 100% rename from backend/internal/cuisine/handler.go rename to backend/internal/domain/cuisine/handler.go diff --git a/backend/internal/diary/model.go b/backend/internal/domain/diary/entity.go similarity index 100% rename from backend/internal/diary/model.go rename to backend/internal/domain/diary/entity.go diff --git a/backend/internal/diary/handler.go b/backend/internal/domain/diary/handler.go similarity index 100% rename from backend/internal/diary/handler.go rename to backend/internal/domain/diary/handler.go diff --git a/backend/internal/diary/repository.go b/backend/internal/domain/diary/repository.go similarity index 100% rename from backend/internal/diary/repository.go rename to backend/internal/domain/diary/repository.go diff --git a/backend/internal/dish/model.go b/backend/internal/domain/dish/entity.go similarity index 100% rename from backend/internal/dish/model.go rename to backend/internal/domain/dish/entity.go diff --git a/backend/internal/dish/handler.go b/backend/internal/domain/dish/handler.go similarity index 100% rename from backend/internal/dish/handler.go rename to backend/internal/domain/dish/handler.go diff --git a/backend/internal/dish/repository.go b/backend/internal/domain/dish/repository.go similarity index 100% rename from backend/internal/dish/repository.go rename to backend/internal/domain/dish/repository.go diff --git a/backend/internal/home/model.go b/backend/internal/domain/home/entity.go similarity index 100% rename from backend/internal/home/model.go rename to backend/internal/domain/home/entity.go diff --git a/backend/internal/home/handler.go b/backend/internal/domain/home/handler.go similarity index 100% rename from backend/internal/home/handler.go rename to backend/internal/domain/home/handler.go diff --git a/backend/internal/ingredient/model.go b/backend/internal/domain/ingredient/entity.go similarity index 100% rename from backend/internal/ingredient/model.go rename to backend/internal/domain/ingredient/entity.go diff --git a/backend/internal/ingredient/handler.go b/backend/internal/domain/ingredient/handler.go similarity index 100% rename from backend/internal/ingredient/handler.go rename to backend/internal/domain/ingredient/handler.go diff --git a/backend/internal/ingredient/repository.go b/backend/internal/domain/ingredient/repository.go similarity index 100% rename from backend/internal/ingredient/repository.go rename to backend/internal/domain/ingredient/repository.go diff --git a/backend/internal/language/handler.go b/backend/internal/domain/language/handler.go similarity index 100% rename from backend/internal/language/handler.go rename to backend/internal/domain/language/handler.go diff --git a/backend/internal/menu/model.go b/backend/internal/domain/menu/entity.go similarity index 100% rename from backend/internal/menu/model.go rename to backend/internal/domain/menu/entity.go diff --git a/backend/internal/menu/handler.go b/backend/internal/domain/menu/handler.go similarity index 99% rename from backend/internal/menu/handler.go rename to backend/internal/domain/menu/handler.go index a2b6d55..a19caef 100644 --- a/backend/internal/menu/handler.go +++ b/backend/internal/domain/menu/handler.go @@ -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" ) diff --git a/backend/internal/menu/repository.go b/backend/internal/domain/menu/repository.go similarity index 100% rename from backend/internal/menu/repository.go rename to backend/internal/domain/menu/repository.go diff --git a/backend/internal/product/model.go b/backend/internal/domain/product/entity.go similarity index 100% rename from backend/internal/product/model.go rename to backend/internal/domain/product/entity.go diff --git a/backend/internal/product/handler.go b/backend/internal/domain/product/handler.go similarity index 100% rename from backend/internal/product/handler.go rename to backend/internal/domain/product/handler.go diff --git a/backend/internal/product/repository.go b/backend/internal/domain/product/repository.go similarity index 100% rename from backend/internal/product/repository.go rename to backend/internal/domain/product/repository.go diff --git a/backend/internal/recipe/model.go b/backend/internal/domain/recipe/entity.go similarity index 100% rename from backend/internal/recipe/model.go rename to backend/internal/domain/recipe/entity.go diff --git a/backend/internal/recipe/handler.go b/backend/internal/domain/recipe/handler.go similarity index 100% rename from backend/internal/recipe/handler.go rename to backend/internal/domain/recipe/handler.go diff --git a/backend/internal/recipe/repository.go b/backend/internal/domain/recipe/repository.go similarity index 100% rename from backend/internal/recipe/repository.go rename to backend/internal/domain/recipe/repository.go diff --git a/backend/internal/recognition/handler.go b/backend/internal/domain/recognition/handler.go similarity index 99% rename from backend/internal/recognition/handler.go rename to backend/internal/domain/recognition/handler.go index 377eb1c..9e01e1f 100644 --- a/backend/internal/recognition/handler.go +++ b/backend/internal/domain/recognition/handler.go @@ -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. diff --git a/backend/internal/recommendation/handler.go b/backend/internal/domain/recommendation/handler.go similarity index 98% rename from backend/internal/recommendation/handler.go rename to backend/internal/domain/recommendation/handler.go index dd60efc..ef1cb3c 100644 --- a/backend/internal/recommendation/handler.go +++ b/backend/internal/domain/recommendation/handler.go @@ -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. diff --git a/backend/internal/savedrecipe/model.go b/backend/internal/domain/savedrecipe/entity.go similarity index 100% rename from backend/internal/savedrecipe/model.go rename to backend/internal/domain/savedrecipe/entity.go diff --git a/backend/internal/savedrecipe/handler.go b/backend/internal/domain/savedrecipe/handler.go similarity index 100% rename from backend/internal/savedrecipe/handler.go rename to backend/internal/domain/savedrecipe/handler.go diff --git a/backend/internal/savedrecipe/repository.go b/backend/internal/domain/savedrecipe/repository.go similarity index 99% rename from backend/internal/savedrecipe/repository.go rename to backend/internal/domain/savedrecipe/repository.go index f99544f..7ec9f8e 100644 --- a/backend/internal/savedrecipe/repository.go +++ b/backend/internal/domain/savedrecipe/repository.go @@ -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" diff --git a/backend/internal/tag/handler.go b/backend/internal/domain/tag/handler.go similarity index 100% rename from backend/internal/tag/handler.go rename to backend/internal/domain/tag/handler.go diff --git a/backend/internal/units/handler.go b/backend/internal/domain/units/handler.go similarity index 100% rename from backend/internal/units/handler.go rename to backend/internal/domain/units/handler.go diff --git a/backend/internal/user/calories.go b/backend/internal/domain/user/calories.go similarity index 100% rename from backend/internal/user/calories.go rename to backend/internal/domain/user/calories.go diff --git a/backend/internal/user/model.go b/backend/internal/domain/user/entity.go similarity index 100% rename from backend/internal/user/model.go rename to backend/internal/domain/user/entity.go diff --git a/backend/internal/user/handler.go b/backend/internal/domain/user/handler.go similarity index 100% rename from backend/internal/user/handler.go rename to backend/internal/domain/user/handler.go diff --git a/backend/internal/user/mocks/repository.go b/backend/internal/domain/user/mocks/repository.go similarity index 97% rename from backend/internal/user/mocks/repository.go rename to backend/internal/domain/user/mocks/repository.go index df80ee5..95065b5 100644 --- a/backend/internal/user/mocks/repository.go +++ b/backend/internal/domain/user/mocks/repository.go @@ -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 { diff --git a/backend/internal/user/repository.go b/backend/internal/domain/user/repository.go similarity index 100% rename from backend/internal/user/repository.go rename to backend/internal/domain/user/repository.go diff --git a/backend/internal/user/service.go b/backend/internal/domain/user/service.go similarity index 100% rename from backend/internal/user/service.go rename to backend/internal/domain/user/service.go diff --git a/backend/internal/infra/server/server.go b/backend/internal/infra/server/server.go index 6ab78b8..a1a19fe 100644 --- a/backend/internal/infra/server/server.go +++ b/backend/internal/infra/server/server.go @@ -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" ) diff --git a/backend/tests/auth/handler_integration_test.go b/backend/tests/auth/handler_integration_test.go index 45783ed..a3e0639 100644 --- a/backend/tests/auth/handler_integration_test.go +++ b/backend/tests/auth/handler_integration_test.go @@ -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" ) diff --git a/backend/tests/auth/jwt_test.go b/backend/tests/auth/jwt_test.go index 113af6a..99f2d8f 100644 --- a/backend/tests/auth/jwt_test.go +++ b/backend/tests/auth/jwt_test.go @@ -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) { diff --git a/backend/tests/auth/service_test.go b/backend/tests/auth/service_test.go index 2dc6678..6e98e73 100644 --- a/backend/tests/auth/service_test.go +++ b/backend/tests/auth/service_test.go @@ -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 { diff --git a/backend/tests/ingredient/repository_integration_test.go b/backend/tests/ingredient/repository_integration_test.go index 3d84228..fd853c0 100644 --- a/backend/tests/ingredient/repository_integration_test.go +++ b/backend/tests/ingredient/repository_integration_test.go @@ -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" ) diff --git a/backend/tests/recipe/repository_integration_test.go b/backend/tests/recipe/repository_integration_test.go index cc2001e..6140768 100644 --- a/backend/tests/recipe/repository_integration_test.go +++ b/backend/tests/recipe/repository_integration_test.go @@ -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" ) diff --git a/backend/tests/user/calories_test.go b/backend/tests/user/calories_test.go index 7bb3493..29f8c62 100644 --- a/backend/tests/user/calories_test.go +++ b/backend/tests/user/calories_test.go @@ -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 } diff --git a/backend/tests/user/repository_integration_test.go b/backend/tests/user/repository_integration_test.go index debc700..dd2b31f 100644 --- a/backend/tests/user/repository_integration_test.go +++ b/backend/tests/user/repository_integration_test.go @@ -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) { diff --git a/backend/tests/user/service_test.go b/backend/tests/user/service_test.go index 27955eb..9c2ebe6 100644 --- a/backend/tests/user/service_test.go +++ b/backend/tests/user/service_test.go @@ -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 } diff --git a/examples/dishes/dish1.jpg b/examples/dishes/dish1.jpg new file mode 100644 index 0000000..f154cc5 Binary files /dev/null and b/examples/dishes/dish1.jpg differ diff --git a/examples/dishes/dish2.jpg b/examples/dishes/dish2.jpg new file mode 100644 index 0000000..4fccfaa Binary files /dev/null and b/examples/dishes/dish2.jpg differ diff --git a/examples/products/products.jpg b/examples/products/products.jpg new file mode 100644 index 0000000..f9f0eea Binary files /dev/null and b/examples/products/products.jpg differ diff --git a/examples/receipts/receipt1.webp b/examples/receipts/receipt1.webp new file mode 100644 index 0000000..e85e81f Binary files /dev/null and b/examples/receipts/receipt1.webp differ diff --git a/examples/receipts/receipt2.jpg b/examples/receipts/receipt2.jpg new file mode 100644 index 0000000..0354c0c Binary files /dev/null and b/examples/receipts/receipt2.jpg differ