diff --git a/backend/app/Console/Commands/FetchNewArticlesCommand.php b/backend/app/Console/Commands/FetchNewArticlesCommand.php
index c0aef79..762f827 100644
--- a/backend/app/Console/Commands/FetchNewArticlesCommand.php
+++ b/backend/app/Console/Commands/FetchNewArticlesCommand.php
@@ -2,9 +2,9 @@
namespace App\Console\Commands;
-use App\Jobs\ArticleDiscoveryJob;
-use App\Models\Feed;
-use App\Models\Setting;
+use Domains\Article\Jobs\ArticleDiscoveryJob;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Setting;
use Illuminate\Console\Command;
class FetchNewArticlesCommand extends Command
diff --git a/backend/app/Console/Commands/SyncChannelPostsCommand.php b/backend/app/Console/Commands/SyncChannelPostsCommand.php
index 6714677..95edbfd 100644
--- a/backend/app/Console/Commands/SyncChannelPostsCommand.php
+++ b/backend/app/Console/Commands/SyncChannelPostsCommand.php
@@ -2,7 +2,7 @@
namespace App\Console\Commands;
-use App\Jobs\SyncChannelPostsJob;
+use Domains\Platform\Jobs\SyncChannelPostsJob;
use Illuminate\Console\Command;
class SyncChannelPostsCommand extends Command
diff --git a/backend/app/Http/Controllers/Api/V1/ArticlesController.php b/backend/app/Http/Controllers/Api/V1/ArticlesController.php
index a1606c6..4b0af53 100644
--- a/backend/app/Http/Controllers/Api/V1/ArticlesController.php
+++ b/backend/app/Http/Controllers/Api/V1/ArticlesController.php
@@ -2,10 +2,10 @@
namespace App\Http\Controllers\Api\V1;
-use App\Http\Resources\ArticleResource;
-use App\Models\Article;
-use App\Models\Setting;
-use App\Jobs\ArticleDiscoveryJob;
+use Domains\Article\Resources\ArticleResource;
+use Domains\Article\Models\Article;
+use Domains\Settings\Models\Setting;
+use Domains\Article\Jobs\ArticleDiscoveryJob;
use Exception;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
diff --git a/backend/app/Http/Controllers/Api/V1/AuthController.php b/backend/app/Http/Controllers/Api/V1/AuthController.php
index 8f336e0..a5e4e9e 100644
--- a/backend/app/Http/Controllers/Api/V1/AuthController.php
+++ b/backend/app/Http/Controllers/Api/V1/AuthController.php
@@ -2,7 +2,7 @@
namespace App\Http\Controllers\Api\V1;
-use App\Models\User;
+use Domains\User\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
diff --git a/backend/app/Http/Controllers/Api/V1/DashboardController.php b/backend/app/Http/Controllers/Api/V1/DashboardController.php
index 4410879..d6835de 100644
--- a/backend/app/Http/Controllers/Api/V1/DashboardController.php
+++ b/backend/app/Http/Controllers/Api/V1/DashboardController.php
@@ -2,11 +2,11 @@
namespace App\Http\Controllers\Api\V1;
-use App\Models\Article;
-use App\Models\Feed;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Services\DashboardStatsService;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Article\Services\DashboardStatsService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
diff --git a/backend/app/Http/Controllers/Api/V1/FeedsController.php b/backend/app/Http/Controllers/Api/V1/FeedsController.php
index f8b07f0..b3f3fa6 100644
--- a/backend/app/Http/Controllers/Api/V1/FeedsController.php
+++ b/backend/app/Http/Controllers/Api/V1/FeedsController.php
@@ -2,10 +2,10 @@
namespace App\Http\Controllers\Api\V1;
-use App\Http\Requests\StoreFeedRequest;
-use App\Http\Requests\UpdateFeedRequest;
-use App\Http\Resources\FeedResource;
-use App\Models\Feed;
+use Domains\Feed\Requests\StoreFeedRequest;
+use Domains\Feed\Requests\UpdateFeedRequest;
+use Domains\Feed\Resources\FeedResource;
+use Domains\Feed\Models\Feed;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
@@ -49,8 +49,8 @@ public function store(StoreFeedRequest $request): JsonResponse
// Map provider to URL and set type
$providers = [
- 'vrt' => new \App\Services\Parsers\VrtHomepageParserAdapter(),
- 'belga' => new \App\Services\Parsers\BelgaHomepageParserAdapter(),
+ 'vrt' => new \Domains\Article\Parsers\Vrt\VrtHomepageParserAdapter(),
+ 'belga' => new \Domains\Article\Parsers\Belga\BelgaHomepageParserAdapter(),
];
$adapter = $providers[$validated['provider']];
diff --git a/backend/app/Http/Controllers/Api/V1/KeywordsController.php b/backend/app/Http/Controllers/Api/V1/KeywordsController.php
index e120b41..04efdce 100644
--- a/backend/app/Http/Controllers/Api/V1/KeywordsController.php
+++ b/backend/app/Http/Controllers/Api/V1/KeywordsController.php
@@ -2,9 +2,9 @@
namespace App\Http\Controllers\Api\V1;
-use App\Models\Feed;
-use App\Models\Keyword;
-use App\Models\PlatformChannel;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Models\Keyword;
+use Domains\Platform\Models\PlatformChannel;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
diff --git a/backend/app/Http/Controllers/Api/V1/LogsController.php b/backend/app/Http/Controllers/Api/V1/LogsController.php
index 7f5867c..1abb50e 100644
--- a/backend/app/Http/Controllers/Api/V1/LogsController.php
+++ b/backend/app/Http/Controllers/Api/V1/LogsController.php
@@ -2,7 +2,7 @@
namespace App\Http\Controllers\Api\V1;
-use App\Models\Log;
+use Domains\Logging\Models\Log;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
diff --git a/backend/app/Http/Controllers/Api/V1/OnboardingController.php b/backend/app/Http/Controllers/Api/V1/OnboardingController.php
index f39c83c..a11ee4b 100644
--- a/backend/app/Http/Controllers/Api/V1/OnboardingController.php
+++ b/backend/app/Http/Controllers/Api/V1/OnboardingController.php
@@ -2,20 +2,20 @@
namespace App\Http\Controllers\Api\V1;
-use App\Http\Requests\StoreFeedRequest;
-use App\Http\Resources\FeedResource;
-use App\Http\Resources\PlatformAccountResource;
-use App\Http\Resources\PlatformChannelResource;
-use App\Http\Resources\RouteResource;
-use App\Jobs\ArticleDiscoveryJob;
-use App\Models\Feed;
-use App\Models\Language;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Models\Route;
-use App\Models\Setting;
-use App\Services\Auth\LemmyAuthService;
+use Domains\Feed\Requests\StoreFeedRequest;
+use Domains\Feed\Resources\FeedResource;
+use Domains\Platform\Resources\PlatformAccountResource;
+use Domains\Platform\Resources\PlatformChannelResource;
+use Domains\Feed\Resources\RouteResource;
+use Domains\Article\Jobs\ArticleDiscoveryJob;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Feed\Models\Route;
+use Domains\Settings\Models\Setting;
+use Domains\Platform\Services\Auth\Authenticators\LemmyAuthService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
@@ -174,7 +174,7 @@ public function createPlatform(Request $request): JsonResponse
'Platform account created successfully.'
);
- } catch (\App\Exceptions\PlatformAuthException $e) {
+ } catch (\Domains\Platform\Exceptions\PlatformAuthException $e) {
// Check if it's a rate limit error
if (str_contains($e->getMessage(), 'Rate limited by')) {
return $this->sendError($e->getMessage(), [], 429);
diff --git a/backend/app/Http/Controllers/Api/V1/PlatformAccountsController.php b/backend/app/Http/Controllers/Api/V1/PlatformAccountsController.php
index f9b3a58..e5c3c05 100644
--- a/backend/app/Http/Controllers/Api/V1/PlatformAccountsController.php
+++ b/backend/app/Http/Controllers/Api/V1/PlatformAccountsController.php
@@ -2,10 +2,10 @@
namespace App\Http\Controllers\Api\V1;
-use App\Enums\PlatformEnum;
-use App\Http\Resources\PlatformAccountResource;
-use App\Models\PlatformAccount;
-use App\Models\PlatformInstance;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Platform\Resources\PlatformAccountResource;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformInstance;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
diff --git a/backend/app/Http/Controllers/Api/V1/PlatformChannelsController.php b/backend/app/Http/Controllers/Api/V1/PlatformChannelsController.php
index 9e7fcfa..2af9663 100644
--- a/backend/app/Http/Controllers/Api/V1/PlatformChannelsController.php
+++ b/backend/app/Http/Controllers/Api/V1/PlatformChannelsController.php
@@ -2,9 +2,9 @@
namespace App\Http\Controllers\Api\V1;
-use App\Http\Resources\PlatformChannelResource;
-use App\Models\PlatformChannel;
-use App\Models\PlatformAccount;
+use Domains\Platform\Resources\PlatformChannelResource;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformAccount;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
@@ -45,7 +45,7 @@ public function store(Request $request): JsonResponse
$validated['is_active'] = $validated['is_active'] ?? true;
// Get the platform instance to check for active accounts
- $platformInstance = \App\Models\PlatformInstance::findOrFail($validated['platform_instance_id']);
+ $platformInstance = \Domains\Platform\Models\PlatformInstance::findOrFail($validated['platform_instance_id']);
// Check if there are active platform accounts for this instance
$activeAccounts = PlatformAccount::where('instance_url', $platformInstance->url)
diff --git a/backend/app/Http/Controllers/Api/V1/RoutingController.php b/backend/app/Http/Controllers/Api/V1/RoutingController.php
index 1693cd8..c5de3cf 100644
--- a/backend/app/Http/Controllers/Api/V1/RoutingController.php
+++ b/backend/app/Http/Controllers/Api/V1/RoutingController.php
@@ -2,10 +2,10 @@
namespace App\Http\Controllers\Api\V1;
-use App\Http\Resources\RouteResource;
-use App\Models\Feed;
-use App\Models\PlatformChannel;
-use App\Models\Route;
+use Domains\Feed\Resources\RouteResource;
+use Domains\Feed\Models\Feed;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Feed\Models\Route;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
diff --git a/backend/app/Http/Controllers/Api/V1/SettingsController.php b/backend/app/Http/Controllers/Api/V1/SettingsController.php
index 6e809ec..1467276 100644
--- a/backend/app/Http/Controllers/Api/V1/SettingsController.php
+++ b/backend/app/Http/Controllers/Api/V1/SettingsController.php
@@ -2,7 +2,7 @@
namespace App\Http\Controllers\Api\V1;
-use App\Models\Setting;
+use Domains\Settings\Models\Setting;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
diff --git a/backend/app/Providers/AppServiceProvider.php b/backend/app/Providers/AppServiceProvider.php
index 1ac3ea4..4681fbb 100644
--- a/backend/app/Providers/AppServiceProvider.php
+++ b/backend/app/Providers/AppServiceProvider.php
@@ -2,9 +2,9 @@
namespace App\Providers;
-use App\Enums\LogLevelEnum;
-use App\Events\ExceptionOccurred;
-use App\Listeners\LogExceptionToDatabase;
+use Domains\Logging\Enums\LogLevelEnum;
+use Domains\Logging\Events\ExceptionOccurred;
+use Domains\Logging\Listeners\LogExceptionToDatabase;
use Error;
use Illuminate\Contracts\Debug\ExceptionHandler;
use Illuminate\Support\Facades\Event;
@@ -26,8 +26,8 @@ public function boot(): void
);
Event::listen(
- \App\Events\NewArticleFetched::class,
- \App\Listeners\ValidateArticleListener::class,
+ \Domains\Article\Events\NewArticleFetched::class,
+ \Domains\Article\Listeners\ValidateArticleListener::class,
);
diff --git a/backend/bootstrap/app.php b/backend/bootstrap/app.php
index b08c378..1519da8 100644
--- a/backend/bootstrap/app.php
+++ b/backend/bootstrap/app.php
@@ -26,13 +26,13 @@
->withExceptions(function (Exceptions $exceptions) {
$exceptions->reportable(function (Throwable $e) {
$level = match (true) {
- $e instanceof Error => \App\Enums\LogLevelEnum::CRITICAL,
- $e instanceof RuntimeException => \App\Enums\LogLevelEnum::ERROR,
- $e instanceof InvalidArgumentException => \App\Enums\LogLevelEnum::WARNING,
- default => \App\Enums\LogLevelEnum::ERROR,
+ $e instanceof Error => \Domains\Logging\Enums\LogLevelEnum::CRITICAL,
+ $e instanceof RuntimeException => \Domains\Logging\Enums\LogLevelEnum::ERROR,
+ $e instanceof InvalidArgumentException => \Domains\Logging\Enums\LogLevelEnum::WARNING,
+ default => \Domains\Logging\Enums\LogLevelEnum::ERROR,
};
- App\Events\ExceptionOccurred::dispatch(
+ Domains\Logging\Events\ExceptionOccurred::dispatch(
$e,
$level,
$e->getMessage(),
diff --git a/backend/composer.json b/backend/composer.json
index efea9e1..899a47f 100644
--- a/backend/composer.json
+++ b/backend/composer.json
@@ -32,7 +32,7 @@
"autoload": {
"psr-4": {
"App\\": "app/",
- "Database\\Factories\\": "database/factories/",
+ "Domains\\": "src/Domains/",
"Database\\Seeders\\": "database/seeders/"
}
},
diff --git a/backend/config/auth.php b/backend/config/auth.php
index 0ba5d5d..3dabe9f 100644
--- a/backend/config/auth.php
+++ b/backend/config/auth.php
@@ -62,7 +62,7 @@
'providers' => [
'users' => [
'driver' => 'eloquent',
- 'model' => env('AUTH_MODEL', App\Models\User::class),
+ 'model' => env('AUTH_MODEL', Domains\User\Models\User::class),
],
// 'users' => [
diff --git a/backend/config/feed.php b/backend/config/feed.php
index 2c4288d..7809b85 100644
--- a/backend/config/feed.php
+++ b/backend/config/feed.php
@@ -20,9 +20,9 @@
'type' => 'website',
'is_active' => true,
'parsers' => [
- 'homepage' => \App\Services\Parsers\VrtHomepageParserAdapter::class,
- 'article' => \App\Services\Parsers\VrtArticleParser::class,
- 'article_page' => \App\Services\Parsers\VrtArticlePageParser::class,
+ 'homepage' => \Domains\Article\Parsers\Vrt\VrtHomepageParserAdapter::class,
+ 'article' => \Domains\Article\Parsers\Vrt\VrtArticleParser::class,
+ 'article_page' => \Domains\Article\Parsers\Vrt\VrtArticlePageParser::class,
],
],
'belga' => [
@@ -32,9 +32,9 @@
'type' => 'rss',
'is_active' => true,
'parsers' => [
- 'homepage' => \App\Services\Parsers\BelgaHomepageParserAdapter::class,
- 'article' => \App\Services\Parsers\BelgaArticleParser::class,
- 'article_page' => \App\Services\Parsers\BelgaArticlePageParser::class,
+ 'homepage' => \Domains\Article\Parsers\Belga\BelgaHomepageParserAdapter::class,
+ 'article' => \Domains\Article\Parsers\Belga\BelgaArticleParser::class,
+ 'article_page' => \Domains\Article\Parsers\Belga\BelgaArticlePageParser::class,
],
],
],
diff --git a/backend/database/seeders/PlatformInstanceSeeder.php b/backend/database/seeders/PlatformInstanceSeeder.php
index 1b3e841..e171450 100644
--- a/backend/database/seeders/PlatformInstanceSeeder.php
+++ b/backend/database/seeders/PlatformInstanceSeeder.php
@@ -2,8 +2,8 @@
namespace Database\Seeders;
-use App\Enums\PlatformEnum;
-use App\Models\PlatformInstance;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Platform\Models\PlatformInstance;
use Illuminate\Database\Seeder;
class PlatformInstanceSeeder extends Seeder
diff --git a/backend/database/seeders/SettingsSeeder.php b/backend/database/seeders/SettingsSeeder.php
index 8f6b388..2bc48fa 100644
--- a/backend/database/seeders/SettingsSeeder.php
+++ b/backend/database/seeders/SettingsSeeder.php
@@ -2,7 +2,7 @@
namespace Database\Seeders;
-use App\Models\Setting;
+use Domains\Settings\Models\Setting;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
diff --git a/backend/phpunit.xml b/backend/phpunit.xml
index dda51b4..e901f4f 100644
--- a/backend/phpunit.xml
+++ b/backend/phpunit.xml
@@ -15,6 +15,7 @@
app
+ src
diff --git a/backend/routes/console.php b/backend/routes/console.php
index 83db0a3..e904135 100644
--- a/backend/routes/console.php
+++ b/backend/routes/console.php
@@ -1,8 +1,8 @@
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\Domains\Article\Models\Article>
*/
class ArticleFactory extends Factory
{
+ /**
+ * The name of the factory's corresponding model.
+ *
+ * @var string
+ */
+ protected $model = \Domains\Article\Models\Article::class;
+
/**
* Define the model's default state.
*
@@ -17,7 +24,7 @@ class ArticleFactory extends Factory
public function definition(): array
{
return [
- 'feed_id' => \App\Models\Feed::factory(),
+ 'feed_id' => \Domains\Feed\Models\Feed::factory(),
'url' => $this->faker->url(),
'title' => $this->faker->sentence(),
'description' => $this->faker->paragraph(),
diff --git a/backend/database/factories/ArticlePublicationFactory.php b/backend/src/Domains/Article/Factories/ArticlePublicationFactory.php
similarity index 78%
rename from backend/database/factories/ArticlePublicationFactory.php
rename to backend/src/Domains/Article/Factories/ArticlePublicationFactory.php
index ed59ac4..543cf0c 100644
--- a/backend/database/factories/ArticlePublicationFactory.php
+++ b/backend/src/Domains/Article/Factories/ArticlePublicationFactory.php
@@ -1,15 +1,15 @@
\App\Models\Feed::factory(),
- 'platform_channel_id' => \App\Models\PlatformChannel::factory(),
+ 'feed_id' => \Domains\Feed\Models\Feed::factory(),
+ 'platform_channel_id' => \Domains\Platform\Models\PlatformChannel::factory(),
'keyword' => $this->faker->word(),
'is_active' => $this->faker->boolean(70), // 70% chance of being active
'created_at' => $this->faker->dateTimeBetween('-1 year', 'now'),
@@ -21,14 +21,14 @@ public function definition(): array
];
}
- public function forFeed(\App\Models\Feed $feed): static
+ public function forFeed(\Domains\Feed\Models\Feed $feed): static
{
return $this->state(fn (array $attributes) => [
'feed_id' => $feed->id,
]);
}
- public function forChannel(\App\Models\PlatformChannel $channel): static
+ public function forChannel(\Domains\Platform\Models\PlatformChannel $channel): static
{
return $this->state(fn (array $attributes) => [
'platform_channel_id' => $channel->id,
diff --git a/backend/app/Jobs/ArticleDiscoveryForFeedJob.php b/backend/src/Domains/Article/Jobs/ArticleDiscoveryForFeedJob.php
similarity index 92%
rename from backend/app/Jobs/ArticleDiscoveryForFeedJob.php
rename to backend/src/Domains/Article/Jobs/ArticleDiscoveryForFeedJob.php
index db494a6..84f437e 100644
--- a/backend/app/Jobs/ArticleDiscoveryForFeedJob.php
+++ b/backend/src/Domains/Article/Jobs/ArticleDiscoveryForFeedJob.php
@@ -1,10 +1,10 @@
$array)
+ * @method static firstOrCreate(array $array)
* @method static where(string $string, string $url)
- * @method static create(array $array)
+ * @method static create(array $array)
* @property integer $id
* @property int $feed_id
* @property Feed $feed
@@ -30,6 +32,11 @@ class Article extends Model
/** @use HasFactory */
use HasFactory;
+ protected static function newFactory()
+ {
+ return ArticleFactory::new();
+ }
+
protected $fillable = [
'feed_id',
'url',
@@ -101,7 +108,7 @@ public function canBePublished(): bool
}
// If approval system is disabled, auto-approve valid articles
- if (!\App\Models\Setting::isPublishingApprovalsEnabled()) {
+ if (!Setting::isPublishingApprovalsEnabled()) {
return true;
}
diff --git a/backend/app/Models/ArticlePublication.php b/backend/src/Domains/Article/Models/ArticlePublication.php
similarity index 76%
rename from backend/app/Models/ArticlePublication.php
rename to backend/src/Domains/Article/Models/ArticlePublication.php
index 4f12b9d..3e09446 100644
--- a/backend/app/Models/ArticlePublication.php
+++ b/backend/src/Domains/Article/Models/ArticlePublication.php
@@ -1,8 +1,8 @@
$array)
+ * @method static create(array $array)
*/
class ArticlePublication extends Model
{
/** @use HasFactory */
use HasFactory;
-
+
+ protected static function newFactory()
+ {
+ return \Domains\Article\Factories\ArticlePublicationFactory::new();
+ }
+
protected $fillable = [
'article_id',
'platform_channel_id',
diff --git a/backend/app/Models/Keyword.php b/backend/src/Domains/Article/Models/Keyword.php
similarity index 82%
rename from backend/app/Models/Keyword.php
rename to backend/src/Domains/Article/Models/Keyword.php
index 616d184..fdb68ce 100644
--- a/backend/app/Models/Keyword.php
+++ b/backend/src/Domains/Article/Models/Keyword.php
@@ -1,7 +1,9 @@
*/
use HasFactory;
+
+ protected static function newFactory()
+ {
+ return \Domains\Feed\Factories\FeedFactory::new();
+ }
private const RECENT_FETCH_THRESHOLD_HOURS = 2;
private const DAILY_FETCH_THRESHOLD_HOURS = 24;
diff --git a/backend/app/Models/Route.php b/backend/src/Domains/Feed/Models/Route.php
similarity index 84%
rename from backend/app/Models/Route.php
rename to backend/src/Domains/Feed/Models/Route.php
index b5ee7d0..0e7adfa 100644
--- a/backend/app/Models/Route.php
+++ b/backend/src/Domains/Feed/Models/Route.php
@@ -1,8 +1,10 @@
*/
use HasFactory;
+
+ protected static function newFactory()
+ {
+ return \Domains\Feed\Factories\RouteFactory::new();
+ }
protected $table = 'routes';
diff --git a/backend/app/Http/Requests/StoreFeedRequest.php b/backend/src/Domains/Feed/Requests/StoreFeedRequest.php
similarity index 94%
rename from backend/app/Http/Requests/StoreFeedRequest.php
rename to backend/src/Domains/Feed/Requests/StoreFeedRequest.php
index a49570c..eb1fe7c 100644
--- a/backend/app/Http/Requests/StoreFeedRequest.php
+++ b/backend/src/Domains/Feed/Requests/StoreFeedRequest.php
@@ -1,6 +1,6 @@
+ */
+class PlatformChannelPostFactory extends Factory
+{
+ protected $model = PlatformChannelPost::class;
+
+ public function definition(): array
+ {
+ return [
+ 'platform' => $this->faker->randomElement(PlatformEnum::cases()),
+ 'channel_id' => $this->faker->slug(2),
+ 'channel_name' => $this->faker->words(2, true),
+ 'post_id' => $this->faker->slug(3),
+ 'url' => $this->faker->url(),
+ 'title' => $this->faker->sentence(),
+ 'posted_at' => $this->faker->dateTimeBetween('-1 month', 'now'),
+ ];
+ }
+
+ public function lemmy(): static
+ {
+ return $this->state([
+ 'platform' => PlatformEnum::LEMMY,
+ ]);
+ }
+}
\ No newline at end of file
diff --git a/backend/database/factories/PlatformInstanceFactory.php b/backend/src/Domains/Platform/Factories/PlatformInstanceFactory.php
similarity index 84%
rename from backend/database/factories/PlatformInstanceFactory.php
rename to backend/src/Domains/Platform/Factories/PlatformInstanceFactory.php
index 182f9dc..b9e8da6 100644
--- a/backend/database/factories/PlatformInstanceFactory.php
+++ b/backend/src/Domains/Platform/Factories/PlatformInstanceFactory.php
@@ -1,8 +1,8 @@
$activeChannels
* @method static where(string $string, PlatformEnum $platform)
* @method static orderBy(string $string)
- * @method static create(array $validated)
+ * @method static create(array $validated)
*/
class PlatformAccount extends Model
{
/** @use HasFactory */
use HasFactory;
+ protected static function newFactory()
+ {
+ return \Domains\Platform\Factories\PlatformAccountFactory::new();
+ }
+
protected $fillable = [
'platform',
'instance_url',
@@ -64,12 +69,12 @@ protected function password(): Attribute
if (is_null($value)) {
return null;
}
-
+
// Return empty string if value is empty
if (empty($value)) {
return '';
}
-
+
try {
return Crypt::decryptString($value);
} catch (\Exception $e) {
@@ -82,12 +87,12 @@ protected function password(): Attribute
if (is_null($value)) {
return null;
}
-
+
// Store empty string as null
if (empty($value)) {
return null;
}
-
+
return Crypt::encryptString($value);
},
)->withoutObjectCaching();
diff --git a/backend/app/Models/PlatformChannel.php b/backend/src/Domains/Platform/Models/PlatformChannel.php
similarity index 89%
rename from backend/app/Models/PlatformChannel.php
rename to backend/src/Domains/Platform/Models/PlatformChannel.php
index 5179d0f..042016e 100644
--- a/backend/app/Models/PlatformChannel.php
+++ b/backend/src/Domains/Platform/Models/PlatformChannel.php
@@ -1,8 +1,10 @@
*/
use HasFactory;
+ protected static function newFactory()
+ {
+ return \Domains\Platform\Factories\PlatformChannelFactory::new();
+ }
+
protected $table = 'platform_channels';
protected $fillable = [
diff --git a/backend/app/Models/PlatformChannelPost.php b/backend/src/Domains/Platform/Models/PlatformChannelPost.php
similarity index 83%
rename from backend/app/Models/PlatformChannelPost.php
rename to backend/src/Domains/Platform/Models/PlatformChannelPost.php
index ef6a21d..e3398e6 100644
--- a/backend/app/Models/PlatformChannelPost.php
+++ b/backend/src/Domains/Platform/Models/PlatformChannelPost.php
@@ -1,18 +1,24 @@
$array, array $array1)
+ * @method static updateOrCreate(array $array, array $array1)
*/
class PlatformChannelPost extends Model
{
use HasFactory;
+
+ protected static function newFactory()
+ {
+ return PlatformChannelPostFactory::new();
+ }
protected $fillable = [
'platform',
'channel_id',
diff --git a/backend/app/Models/PlatformInstance.php b/backend/src/Domains/Platform/Models/PlatformInstance.php
similarity index 79%
rename from backend/app/Models/PlatformInstance.php
rename to backend/src/Domains/Platform/Models/PlatformInstance.php
index fa2d242..7ee5814 100644
--- a/backend/app/Models/PlatformInstance.php
+++ b/backend/src/Domains/Platform/Models/PlatformInstance.php
@@ -1,16 +1,17 @@
$array, $instanceData)
+ * @method static updateOrCreate(array $array, $instanceData)
* @method static where(string $string, mixed $operator)
* @property PlatformEnum $platform
* @property string $url
@@ -22,7 +23,12 @@ class PlatformInstance extends Model
{
/** @use HasFactory */
use HasFactory;
-
+
+ protected static function newFactory(): PlatformInstanceFactory
+ {
+ return PlatformInstanceFactory::new();
+ }
+
protected $fillable = [
'platform',
'url',
diff --git a/backend/app/Http/Resources/PlatformAccountResource.php b/backend/src/Domains/Platform/Resources/PlatformAccountResource.php
similarity index 96%
rename from backend/app/Http/Resources/PlatformAccountResource.php
rename to backend/src/Domains/Platform/Resources/PlatformAccountResource.php
index a32f771..825311d 100644
--- a/backend/app/Http/Resources/PlatformAccountResource.php
+++ b/backend/src/Domains/Platform/Resources/PlatformAccountResource.php
@@ -1,6 +1,6 @@
*/
use HasFactory;
+ protected static function newFactory()
+ {
+ return \Domains\Settings\Factories\LanguageFactory::new();
+ }
+
protected $fillable = [
'short_code',
'name',
diff --git a/backend/app/Models/Setting.php b/backend/src/Domains/Settings/Models/Setting.php
similarity index 91%
rename from backend/app/Models/Setting.php
rename to backend/src/Domains/Settings/Models/Setting.php
index ccc6c04..ad10113 100644
--- a/backend/app/Models/Setting.php
+++ b/backend/src/Domains/Settings/Models/Setting.php
@@ -1,6 +1,6 @@
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\Domains\User\Models\User>
*/
class UserFactory extends Factory
{
+ /**
+ * The name of the factory's corresponding model.
+ *
+ * @var string
+ */
+ protected $model = \Domains\User\Models\User::class;
+
/**
* The current password being used by the factory.
*/
diff --git a/backend/app/Models/User.php b/backend/src/Domains/User/Models/User.php
similarity index 82%
rename from backend/app/Models/User.php
rename to backend/src/Domains/User/Models/User.php
index a6ab88e..e489707 100644
--- a/backend/app/Models/User.php
+++ b/backend/src/Domains/User/Models/User.php
@@ -1,6 +1,6 @@
*/
+ /** @use HasFactory<\Domains\User\Factories\UserFactory> */
use HasFactory, Notifiable, HasApiTokens;
+ protected static function newFactory()
+ {
+ return \Domains\User\Factories\UserFactory::new();
+ }
+
/**
* The attributes that are mass assignable.
*
diff --git a/backend/tests/Feature/ApiAccessTest.php b/backend/tests/Feature/ApiAccessTest.php
index 1ebb64a..f5ad95d 100644
--- a/backend/tests/Feature/ApiAccessTest.php
+++ b/backend/tests/Feature/ApiAccessTest.php
@@ -2,11 +2,11 @@
namespace Tests\Feature;
-use App\Models\Article;
-use App\Models\Feed;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\Setting;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Settings\Models\Setting;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/DatabaseIntegrationTest.php b/backend/tests/Feature/DatabaseIntegrationTest.php
index e978048..4999e1b 100644
--- a/backend/tests/Feature/DatabaseIntegrationTest.php
+++ b/backend/tests/Feature/DatabaseIntegrationTest.php
@@ -2,20 +2,20 @@
namespace Tests\Feature;
-use App\Enums\PlatformEnum;
-use App\Models\Article;
-use App\Models\ArticlePublication;
-use App\Models\Feed;
-use App\Models\Keyword;
-use App\Models\Language;
-use App\Models\Log;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\PlatformChannelPost;
-use App\Models\PlatformInstance;
-use App\Models\Route;
-use App\Models\Setting;
-use App\Models\User;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Article\Models\Article;
+use Domains\Article\Models\ArticlePublication;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Models\Keyword;
+use Domains\Settings\Models\Language;
+use Domains\Logging\Models\Log;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformChannelPost;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Feed\Models\Route;
+use Domains\Settings\Models\Setting;
+use Domains\User\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Console/Commands/FetchNewArticlesCommandTest.php b/backend/tests/Feature/Http/Console/Commands/FetchNewArticlesCommandTest.php
index a74e36b..c189cad 100644
--- a/backend/tests/Feature/Http/Console/Commands/FetchNewArticlesCommandTest.php
+++ b/backend/tests/Feature/Http/Console/Commands/FetchNewArticlesCommandTest.php
@@ -2,9 +2,9 @@
namespace Tests\Feature\Http\Console\Commands;
-use App\Jobs\ArticleDiscoveryJob;
-use App\Models\Feed;
-use App\Models\Setting;
+use Domains\Article\Jobs\ArticleDiscoveryJob;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Setting;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Queue;
use Illuminate\Testing\PendingCommand;
diff --git a/backend/tests/Feature/Http/Console/Commands/SyncChannelPostsCommandTest.php b/backend/tests/Feature/Http/Console/Commands/SyncChannelPostsCommandTest.php
index dc1b71f..3c6ef94 100644
--- a/backend/tests/Feature/Http/Console/Commands/SyncChannelPostsCommandTest.php
+++ b/backend/tests/Feature/Http/Console/Commands/SyncChannelPostsCommandTest.php
@@ -2,7 +2,7 @@
namespace Tests\Feature\Http\Console\Commands;
-use App\Jobs\SyncChannelPostsJob;
+use Domains\Platform\Jobs\SyncChannelPostsJob;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Queue;
use Illuminate\Testing\PendingCommand;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/ArticlesControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/ArticlesControllerTest.php
index 0c5c8d2..cde0f8d 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/ArticlesControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/ArticlesControllerTest.php
@@ -2,9 +2,9 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\Article;
-use App\Models\Feed;
-use App\Models\Setting;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Setting;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/DashboardControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/DashboardControllerTest.php
index 6dea95f..6c06251 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/DashboardControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/DashboardControllerTest.php
@@ -2,11 +2,11 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\Article;
-use App\Models\ArticlePublication;
-use App\Models\Feed;
-use App\Models\PlatformChannel;
-use App\Models\Route;
+use Domains\Article\Models\Article;
+use Domains\Article\Models\ArticlePublication;
+use Domains\Feed\Models\Feed;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Feed\Models\Route;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/FeedsControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/FeedsControllerTest.php
index 5b53248..787b2e4 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/FeedsControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/FeedsControllerTest.php
@@ -2,8 +2,8 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\Feed;
-use App\Models\Language;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/KeywordsControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/KeywordsControllerTest.php
index 3934a15..49da759 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/KeywordsControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/KeywordsControllerTest.php
@@ -2,10 +2,10 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\Feed;
-use App\Models\Keyword;
-use App\Models\PlatformChannel;
-use App\Models\Route;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Models\Keyword;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Feed\Models\Route;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/LogsControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/LogsControllerTest.php
index de1a42b..fe7c819 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/LogsControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/LogsControllerTest.php
@@ -2,8 +2,8 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Enums\LogLevelEnum;
-use App\Models\Log;
+use Domains\Logging\Enums\LogLevelEnum;
+use Domains\Logging\Models\Log;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/OnboardingControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/OnboardingControllerTest.php
index dfca1c1..f773383 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/OnboardingControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/OnboardingControllerTest.php
@@ -2,14 +2,14 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\Feed;
-use App\Models\Language;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Models\Route;
-use App\Models\Setting;
-use App\Services\Auth\LemmyAuthService;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Feed\Models\Route;
+use Domains\Settings\Models\Setting;
+use Domains\Platform\Services\Auth\Authenticators\LemmyAuthService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/PlatformAccountsControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/PlatformAccountsControllerTest.php
index ae4573a..ecf0d0f 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/PlatformAccountsControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/PlatformAccountsControllerTest.php
@@ -2,8 +2,8 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\PlatformAccount;
-use App\Models\PlatformInstance;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformInstance;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/PlatformChannelsControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/PlatformChannelsControllerTest.php
index 63765ca..51d7adc 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/PlatformChannelsControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/PlatformChannelsControllerTest.php
@@ -2,9 +2,9 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/RoutingControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/RoutingControllerTest.php
index c8356ea..2604bd3 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/RoutingControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/RoutingControllerTest.php
@@ -2,11 +2,11 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\Feed;
-use App\Models\Language;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Models\Route;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Feed\Models\Route;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/Http/Controllers/Api/V1/SettingsControllerTest.php b/backend/tests/Feature/Http/Controllers/Api/V1/SettingsControllerTest.php
index 7b86f3a..12bb2c8 100644
--- a/backend/tests/Feature/Http/Controllers/Api/V1/SettingsControllerTest.php
+++ b/backend/tests/Feature/Http/Controllers/Api/V1/SettingsControllerTest.php
@@ -2,7 +2,7 @@
namespace Tests\Feature\Http\Controllers\Api\V1;
-use App\Models\Setting;
+use Domains\Settings\Models\Setting;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Feature/JobsAndEventsTest.php b/backend/tests/Feature/JobsAndEventsTest.php
index 7c0c4d6..e74169b 100644
--- a/backend/tests/Feature/JobsAndEventsTest.php
+++ b/backend/tests/Feature/JobsAndEventsTest.php
@@ -2,26 +2,26 @@
namespace Tests\Feature;
-use App\Events\ArticleApproved;
-// use App\Events\ArticleReadyToPublish; // Class no longer exists
-use App\Events\ExceptionLogged;
-use App\Events\ExceptionOccurred;
-use App\Events\NewArticleFetched;
-use App\Jobs\ArticleDiscoveryForFeedJob;
-use App\Jobs\ArticleDiscoveryJob;
-use App\Jobs\PublishNextArticleJob;
-use App\Jobs\SyncChannelPostsJob;
-use App\Listeners\LogExceptionToDatabase;
-// use App\Listeners\PublishApprovedArticle; // Class no longer exists
-// use App\Listeners\PublishArticle; // Class no longer exists
-use App\Listeners\ValidateArticleListener;
-use App\Models\Article;
-use App\Models\Feed;
-use App\Models\Log;
-use App\Models\PlatformChannel;
-use App\Services\Log\LogSaver;
-use App\Services\Article\ArticleFetcher;
-use App\Services\Article\ValidationService;
+use Domains\Article\Events\ArticleApproved;
+// use Domains\Article\Events\ArticleReadyToPublish; // Class no longer exists
+use Domains\Logging\Events\ExceptionLogged;
+use Domains\Logging\Events\ExceptionOccurred;
+use Domains\Article\Events\NewArticleFetched;
+use Domains\Article\Jobs\ArticleDiscoveryForFeedJob;
+use Domains\Article\Jobs\ArticleDiscoveryJob;
+use Domains\Platform\Jobs\PublishNextArticleJob;
+use Domains\Platform\Jobs\SyncChannelPostsJob;
+use Domains\Logging\Listeners\LogExceptionToDatabase;
+// use Domains\Article\Listeners\PublishApprovedArticle; // Class no longer exists
+// use Domains\Article\Listeners\PublishArticle; // Class no longer exists
+use Domains\Article\Listeners\ValidateArticleListener;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
+use Domains\Logging\Models\Log;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Logging\Services\LogSaver;
+use Domains\Article\Services\ArticleFetcher;
+use Domains\Article\Services\ValidationService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Queue;
@@ -60,14 +60,14 @@ public function test_article_discovery_for_feed_job_processes_feed(): void
]);
// Mock the ArticleFetcher service in the container
- $mockFetcher = \Mockery::mock(\App\Services\Article\ArticleFetcher::class);
+ $mockFetcher = \Mockery::mock(\Domains\Article\Services\ArticleFetcher::class);
$article1 = Article::factory()->create(['url' => 'https://example.com/article1', 'feed_id' => $feed->id]);
$article2 = Article::factory()->create(['url' => 'https://example.com/article2', 'feed_id' => $feed->id]);
$mockFetcher->shouldReceive('getArticlesFromFeed')
->with($feed)
->andReturn(collect([$article1, $article2]));
- $this->app->instance(\App\Services\Article\ArticleFetcher::class, $mockFetcher);
+ $this->app->instance(\Domains\Article\Services\ArticleFetcher::class, $mockFetcher);
$logSaver = app(LogSaver::class);
$articleFetcher = app(ArticleFetcher::class);
@@ -149,7 +149,7 @@ public function test_exception_occurred_event_is_dispatched(): void
$exception = new \Exception('Test exception');
- event(new ExceptionOccurred($exception, \App\Enums\LogLevelEnum::ERROR, 'Test exception', ['context' => 'test']));
+ event(new ExceptionOccurred($exception, \Domains\Logging\Enums\LogLevelEnum::ERROR, 'Test exception', ['context' => 'test']));
Event::assertDispatched(ExceptionOccurred::class, function (ExceptionOccurred $event) {
return $event->exception->getMessage() === 'Test exception';
@@ -184,8 +184,8 @@ public function test_validate_article_listener_processes_new_article(): void
]);
// Mock ArticleFetcher to return valid article data
- $mockFetcher = \Mockery::mock(\App\Services\Article\ArticleFetcher::class);
- $this->app->instance(\App\Services\Article\ArticleFetcher::class, $mockFetcher);
+ $mockFetcher = \Mockery::mock(\Domains\Article\Services\ArticleFetcher::class);
+ $this->app->instance(\Domains\Article\Services\ArticleFetcher::class, $mockFetcher);
$mockFetcher->shouldReceive('fetchArticleData')
->with($article)
->andReturn([
@@ -250,7 +250,7 @@ public function test_log_exception_to_database_listener_creates_log(): void
$listener = new LogExceptionToDatabase();
$exception = new \Exception('Test exception message');
- $event = new ExceptionOccurred($exception, \App\Enums\LogLevelEnum::ERROR, 'Test exception message');
+ $event = new ExceptionOccurred($exception, \Domains\Logging\Enums\LogLevelEnum::ERROR, 'Test exception message');
$listener->handle($event);
@@ -261,7 +261,7 @@ public function test_log_exception_to_database_listener_creates_log(): void
$savedLog = Log::where('message', 'Test exception message')->first();
$this->assertNotNull($savedLog);
- $this->assertEquals(\App\Enums\LogLevelEnum::ERROR, $savedLog->level);
+ $this->assertEquals(\Domains\Logging\Enums\LogLevelEnum::ERROR, $savedLog->level);
}
public function test_event_listener_registration_works(): void
diff --git a/backend/tests/Feature/NewArticleFetchedEventTest.php b/backend/tests/Feature/NewArticleFetchedEventTest.php
index c123e10..0753bd7 100644
--- a/backend/tests/Feature/NewArticleFetchedEventTest.php
+++ b/backend/tests/Feature/NewArticleFetchedEventTest.php
@@ -2,9 +2,9 @@
namespace Tests\Feature;
-use App\Events\NewArticleFetched;
-use App\Models\Article;
-use App\Models\Feed;
+use Domains\Article\Events\NewArticleFetched;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Event;
use Tests\TestCase;
diff --git a/backend/tests/Feature/ValidateArticleListenerTest.php b/backend/tests/Feature/ValidateArticleListenerTest.php
index 9256401..43c705e 100644
--- a/backend/tests/Feature/ValidateArticleListenerTest.php
+++ b/backend/tests/Feature/ValidateArticleListenerTest.php
@@ -2,13 +2,13 @@
namespace Tests\Feature;
-use App\Events\ArticleReadyToPublish;
-use App\Events\NewArticleFetched;
-use App\Listeners\ValidateArticleListener;
-use App\Models\Article;
-use App\Models\ArticlePublication;
-use App\Models\Feed;
-use App\Services\Article\ValidationService;
+use Domains\Article\Events\ArticleReadyToPublish;
+use Domains\Article\Events\NewArticleFetched;
+use Domains\Article\Listeners\ValidateArticleListener;
+use Domains\Article\Models\Article;
+use Domains\Article\Models\ArticlePublication;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Services\ValidationService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Http;
diff --git a/backend/tests/Traits/CreatesArticleFetcher.php b/backend/tests/Traits/CreatesArticleFetcher.php
index dcd38eb..92b768e 100644
--- a/backend/tests/Traits/CreatesArticleFetcher.php
+++ b/backend/tests/Traits/CreatesArticleFetcher.php
@@ -2,8 +2,8 @@
namespace Tests\Traits;
-use App\Services\Article\ArticleFetcher;
-use App\Services\Log\LogSaver;
+use Domains\Article\Services\ArticleFetcher;
+use Domains\Logging\Services\LogSaver;
use Mockery;
trait CreatesArticleFetcher
diff --git a/backend/tests/Unit/Enums/LogLevelEnumTest.php b/backend/tests/Unit/Enums/LogLevelEnumTest.php
index 88084f3..76cb49f 100644
--- a/backend/tests/Unit/Enums/LogLevelEnumTest.php
+++ b/backend/tests/Unit/Enums/LogLevelEnumTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Enums;
-use App\Enums\LogLevelEnum;
+use Domains\Logging\Enums\LogLevelEnum;
use Tests\TestCase;
class LogLevelEnumTest extends TestCase
diff --git a/backend/tests/Unit/Enums/PlatformEnumTest.php b/backend/tests/Unit/Enums/PlatformEnumTest.php
index ebd9348..7ad7fef 100644
--- a/backend/tests/Unit/Enums/PlatformEnumTest.php
+++ b/backend/tests/Unit/Enums/PlatformEnumTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Enums;
-use App\Enums\PlatformEnum;
+use Domains\Platform\Enums\PlatformEnum;
use Tests\TestCase;
class PlatformEnumTest extends TestCase
diff --git a/backend/tests/Unit/Exceptions/RoutingMismatchExceptionTest.php b/backend/tests/Unit/Exceptions/RoutingMismatchExceptionTest.php
index 2b6dd9e..85e4f5e 100644
--- a/backend/tests/Unit/Exceptions/RoutingMismatchExceptionTest.php
+++ b/backend/tests/Unit/Exceptions/RoutingMismatchExceptionTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Exceptions;
-use App\Exceptions\RoutingMismatchException;
-use App\Models\Feed;
-use App\Models\Language;
-use App\Models\PlatformChannel;
+use Domains\Feed\Exceptions\RoutingMismatchException;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformChannel;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
@@ -52,7 +52,7 @@ public function test_exception_extends_routing_exception(): void
$exception = new RoutingMismatchException($feed, $channel);
// Assert
- $this->assertInstanceOf(\App\Exceptions\RoutingException::class, $exception);
+ $this->assertInstanceOf(\Domains\Feed\Exceptions\RoutingException::class, $exception);
}
public function test_exception_with_different_languages(): void
diff --git a/backend/tests/Unit/Facades/LogSaverTest.php b/backend/tests/Unit/Facades/LogSaverTest.php
index db240c2..c116a3e 100644
--- a/backend/tests/Unit/Facades/LogSaverTest.php
+++ b/backend/tests/Unit/Facades/LogSaverTest.php
@@ -2,12 +2,12 @@
namespace Tests\Unit\Facades;
-use App\Enums\LogLevelEnum;
-use App\Facades\LogSaver;
-use App\Models\Log;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Enums\PlatformEnum;
+use Domains\Logging\Enums\LogLevelEnum;
+use Domains\Logging\Facades\LogSaver;
+use Domains\Logging\Models\Log;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Platform\Enums\PlatformEnum;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
@@ -15,15 +15,6 @@ class LogSaverTest extends TestCase
{
use RefreshDatabase;
- public function test_facade_accessor_returns_correct_service(): void
- {
- $reflection = new \ReflectionClass(LogSaver::class);
- $method = $reflection->getMethod('getFacadeAccessor');
- $method->setAccessible(true);
-
- $this->assertEquals(\App\Services\Log\LogSaver::class, $method->invoke(null));
- }
-
public function test_facade_info_method_works(): void
{
$message = 'Facade info test';
diff --git a/backend/tests/Unit/Jobs/ArticleDiscoveryForFeedJobTest.php b/backend/tests/Unit/Jobs/ArticleDiscoveryForFeedJobTest.php
index e33e3a6..cc9aba4 100644
--- a/backend/tests/Unit/Jobs/ArticleDiscoveryForFeedJobTest.php
+++ b/backend/tests/Unit/Jobs/ArticleDiscoveryForFeedJobTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Jobs;
-use App\Jobs\ArticleDiscoveryForFeedJob;
-use App\Models\Feed;
-use App\Services\Article\ArticleFetcher;
-use App\Services\Log\LogSaver;
+use Domains\Article\Jobs\ArticleDiscoveryForFeedJob;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Services\ArticleFetcher;
+use Domains\Logging\Services\LogSaver;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Queue;
use Mockery;
diff --git a/backend/tests/Unit/Jobs/ArticleDiscoveryJobTest.php b/backend/tests/Unit/Jobs/ArticleDiscoveryJobTest.php
index 4db26ae..2ff3649 100644
--- a/backend/tests/Unit/Jobs/ArticleDiscoveryJobTest.php
+++ b/backend/tests/Unit/Jobs/ArticleDiscoveryJobTest.php
@@ -2,9 +2,9 @@
namespace Tests\Unit\Jobs;
-use App\Jobs\ArticleDiscoveryJob;
-use App\Models\Setting;
-use App\Services\Log\LogSaver;
+use Domains\Article\Jobs\ArticleDiscoveryJob;
+use Domains\Settings\Models\Setting;
+use Domains\Logging\Services\LogSaver;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Queue;
use Mockery;
diff --git a/backend/tests/Unit/Jobs/PublishNextArticleJobTest.php b/backend/tests/Unit/Jobs/PublishNextArticleJobTest.php
index 9e8f6cf..26e7def 100644
--- a/backend/tests/Unit/Jobs/PublishNextArticleJobTest.php
+++ b/backend/tests/Unit/Jobs/PublishNextArticleJobTest.php
@@ -2,13 +2,13 @@
namespace Tests\Unit\Jobs;
-use App\Exceptions\PublishException;
-use App\Jobs\PublishNextArticleJob;
-use App\Models\Article;
-use App\Models\ArticlePublication;
-use App\Models\Feed;
-use App\Services\Article\ArticleFetcher;
-use App\Services\Publishing\ArticlePublishingService;
+use Domains\Platform\Exceptions\PublishException;
+use Domains\Platform\Jobs\PublishNextArticleJob;
+use Domains\Article\Models\Article;
+use Domains\Article\Models\ArticlePublication;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Services\ArticleFetcher;
+use Domains\Platform\Services\Publishing\ArticlePublishingService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Mockery;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Jobs/SyncChannelPostsJobTest.php b/backend/tests/Unit/Jobs/SyncChannelPostsJobTest.php
index 6b10a61..34e8dda 100644
--- a/backend/tests/Unit/Jobs/SyncChannelPostsJobTest.php
+++ b/backend/tests/Unit/Jobs/SyncChannelPostsJobTest.php
@@ -2,14 +2,14 @@
namespace Tests\Unit\Jobs;
-use App\Enums\PlatformEnum;
-use App\Exceptions\PlatformAuthException;
-use App\Jobs\SyncChannelPostsJob;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Modules\Lemmy\Services\LemmyApiService;
-use App\Services\Log\LogSaver;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Platform\Exceptions\PlatformAuthException;
+use Domains\Platform\Jobs\SyncChannelPostsJob;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Platform\Api\Lemmy\LemmyApiService;
+use Domains\Logging\Services\LogSaver;
use Exception;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Cache;
diff --git a/backend/tests/Unit/Models/ArticlePublicationTest.php b/backend/tests/Unit/Models/ArticlePublicationTest.php
index 0a0c1de..0cbd6c6 100644
--- a/backend/tests/Unit/Models/ArticlePublicationTest.php
+++ b/backend/tests/Unit/Models/ArticlePublicationTest.php
@@ -2,9 +2,9 @@
namespace Tests\Unit\Models;
-use App\Models\Article;
-use App\Models\ArticlePublication;
-use App\Models\PlatformChannel;
+use Domains\Article\Models\Article;
+use Domains\Article\Models\ArticlePublication;
+use Domains\Platform\Models\PlatformChannel;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Models/ArticleTest.php b/backend/tests/Unit/Models/ArticleTest.php
index 8a23dc1..093ed18 100644
--- a/backend/tests/Unit/Models/ArticleTest.php
+++ b/backend/tests/Unit/Models/ArticleTest.php
@@ -2,11 +2,11 @@
namespace Tests\Unit\Models;
-use App\Events\ArticleApproved;
-use App\Events\NewArticleFetched;
-use App\Models\Article;
-use App\Models\Feed;
-use App\Models\Setting;
+use Domains\Article\Events\ArticleApproved;
+use Domains\Article\Events\NewArticleFetched;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Setting;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Http;
diff --git a/backend/tests/Unit/Models/FeedTest.php b/backend/tests/Unit/Models/FeedTest.php
index 94beef8..0e059dc 100644
--- a/backend/tests/Unit/Models/FeedTest.php
+++ b/backend/tests/Unit/Models/FeedTest.php
@@ -2,11 +2,11 @@
namespace Tests\Unit\Models;
-use App\Models\Article;
-use App\Models\Feed;
-use App\Models\Language;
-use App\Models\PlatformChannel;
-use App\Models\Route;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Feed\Models\Route;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Models/KeywordTest.php b/backend/tests/Unit/Models/KeywordTest.php
index e8b4208..053ffec 100644
--- a/backend/tests/Unit/Models/KeywordTest.php
+++ b/backend/tests/Unit/Models/KeywordTest.php
@@ -2,9 +2,9 @@
namespace Tests\Unit\Models;
-use App\Models\Feed;
-use App\Models\Keyword;
-use App\Models\PlatformChannel;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Models\Keyword;
+use Domains\Platform\Models\PlatformChannel;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Models/LanguageTest.php b/backend/tests/Unit/Models/LanguageTest.php
index f0a768f..93ec65a 100644
--- a/backend/tests/Unit/Models/LanguageTest.php
+++ b/backend/tests/Unit/Models/LanguageTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Models;
-use App\Models\Feed;
-use App\Models\Language;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Models/PlatformAccountTest.php b/backend/tests/Unit/Models/PlatformAccountTest.php
index 7e71501..dc31a46 100644
--- a/backend/tests/Unit/Models/PlatformAccountTest.php
+++ b/backend/tests/Unit/Models/PlatformAccountTest.php
@@ -2,9 +2,9 @@
namespace Tests\Unit\Models;
-use App\Enums\PlatformEnum;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Crypt;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Models/PlatformChannelTest.php b/backend/tests/Unit/Models/PlatformChannelTest.php
index 39e5e5c..4629649 100644
--- a/backend/tests/Unit/Models/PlatformChannelTest.php
+++ b/backend/tests/Unit/Models/PlatformChannelTest.php
@@ -2,12 +2,12 @@
namespace Tests\Unit\Models;
-use App\Models\Feed;
-use App\Models\Language;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Models\Route;
+use Domains\Feed\Models\Feed;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Feed\Models\Route;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Models/PlatformInstanceTest.php b/backend/tests/Unit/Models/PlatformInstanceTest.php
index 9463493..c436432 100644
--- a/backend/tests/Unit/Models/PlatformInstanceTest.php
+++ b/backend/tests/Unit/Models/PlatformInstanceTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Models;
-use App\Enums\PlatformEnum;
-use App\Models\Language;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Settings\Models\Language;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Models/RouteTest.php b/backend/tests/Unit/Models/RouteTest.php
index af5ff16..6a17356 100644
--- a/backend/tests/Unit/Models/RouteTest.php
+++ b/backend/tests/Unit/Models/RouteTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Models;
-use App\Models\Feed;
-use App\Models\Keyword;
-use App\Models\PlatformChannel;
-use App\Models\Route;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Models\Keyword;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Feed\Models\Route;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Modules/Lemmy/LemmyRequestTest.php b/backend/tests/Unit/Modules/Lemmy/LemmyRequestTest.php
index 18cc955..19007ea 100644
--- a/backend/tests/Unit/Modules/Lemmy/LemmyRequestTest.php
+++ b/backend/tests/Unit/Modules/Lemmy/LemmyRequestTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Modules\Lemmy;
-use App\Modules\Lemmy\LemmyRequest;
+use Domains\Platform\Api\Lemmy\LemmyRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Facades\Http;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Modules/Lemmy/Services/LemmyApiServiceTest.php b/backend/tests/Unit/Modules/Lemmy/Services/LemmyApiServiceTest.php
index 784b633..5cf513f 100644
--- a/backend/tests/Unit/Modules/Lemmy/Services/LemmyApiServiceTest.php
+++ b/backend/tests/Unit/Modules/Lemmy/Services/LemmyApiServiceTest.php
@@ -2,9 +2,9 @@
namespace Tests\Unit\Modules\Lemmy\Services;
-use App\Modules\Lemmy\Services\LemmyApiService;
-use App\Models\PlatformChannelPost;
-use App\Enums\PlatformEnum;
+use Domains\Platform\Api\Lemmy\LemmyApiService;
+use Domains\Platform\Models\PlatformChannelPost;
+use Domains\Platform\Enums\PlatformEnum;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Modules/Lemmy/Services/LemmyPublisherTest.php b/backend/tests/Unit/Modules/Lemmy/Services/LemmyPublisherTest.php
index 5f17c6b..cd9d0a3 100644
--- a/backend/tests/Unit/Modules/Lemmy/Services/LemmyPublisherTest.php
+++ b/backend/tests/Unit/Modules/Lemmy/Services/LemmyPublisherTest.php
@@ -2,14 +2,14 @@
namespace Tests\Unit\Modules\Lemmy\Services;
-use App\Modules\Lemmy\Services\LemmyPublisher;
-use App\Modules\Lemmy\Services\LemmyApiService;
-use App\Services\Auth\LemmyAuthService;
-use App\Models\Article;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Exceptions\PlatformAuthException;
-use App\Enums\PlatformEnum;
+use Domains\Platform\Services\Publishing\Publishers\LemmyPublisher;
+use Domains\Platform\Api\Lemmy\LemmyApiService;
+use Domains\Platform\Services\Auth\Authenticators\LemmyAuthService;
+use Domains\Article\Models\Article;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Exceptions\PlatformAuthException;
+use Domains\Platform\Enums\PlatformEnum;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use Mockery;
diff --git a/backend/tests/Unit/Services/ArticleFetcherTest.php b/backend/tests/Unit/Services/ArticleFetcherTest.php
index c67c680..b87187e 100644
--- a/backend/tests/Unit/Services/ArticleFetcherTest.php
+++ b/backend/tests/Unit/Services/ArticleFetcherTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Services;
-use App\Services\Article\ArticleFetcher;
-use App\Services\Log\LogSaver;
-use App\Models\Feed;
-use App\Models\Article;
+use Domains\Article\Services\ArticleFetcher;
+use Domains\Logging\Services\LogSaver;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Models\Article;
use Tests\TestCase;
use Tests\Traits\CreatesArticleFetcher;
use Illuminate\Foundation\Testing\RefreshDatabase;
diff --git a/backend/tests/Unit/Services/Auth/LemmyAuthServiceTest.php b/backend/tests/Unit/Services/Auth/LemmyAuthServiceTest.php
index d77f46b..e926e0e 100644
--- a/backend/tests/Unit/Services/Auth/LemmyAuthServiceTest.php
+++ b/backend/tests/Unit/Services/Auth/LemmyAuthServiceTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Services\Auth;
-use App\Enums\PlatformEnum;
-use App\Exceptions\PlatformAuthException;
-use App\Models\PlatformAccount;
-use App\Services\Auth\LemmyAuthService;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Platform\Exceptions\PlatformAuthException;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Services\Auth\Authenticators\LemmyAuthService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Http;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Services/DashboardStatsServiceTest.php b/backend/tests/Unit/Services/DashboardStatsServiceTest.php
index d8cfc4b..6f40efa 100644
--- a/backend/tests/Unit/Services/DashboardStatsServiceTest.php
+++ b/backend/tests/Unit/Services/DashboardStatsServiceTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Services;
-use App\Services\DashboardStatsService;
+use Domains\Article\Services\DashboardStatsService;
use Tests\TestCase;
use Illuminate\Support\Facades\Http;
diff --git a/backend/tests/Unit/Services/Factories/ArticleParserFactoryTest.php b/backend/tests/Unit/Services/Factories/ArticleParserFactoryTest.php
index a0a9808..16b9002 100644
--- a/backend/tests/Unit/Services/Factories/ArticleParserFactoryTest.php
+++ b/backend/tests/Unit/Services/Factories/ArticleParserFactoryTest.php
@@ -2,10 +2,10 @@
namespace Tests\Unit\Services\Factories;
-use App\Contracts\ArticleParserInterface;
-use App\Services\Factories\ArticleParserFactory;
-use App\Services\Parsers\BelgaArticleParser;
-use App\Services\Parsers\VrtArticleParser;
+use Domains\Article\Contracts\ArticleParserInterface;
+use Domains\Article\Parsers\Factories\ArticleParserFactory;
+use Domains\Article\Parsers\Belga\BelgaArticleParser;
+use Domains\Article\Parsers\Vrt\VrtArticleParser;
use Exception;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Services/Http/HttpFetcherTest.php b/backend/tests/Unit/Services/Http/HttpFetcherTest.php
index be62d67..f913c86 100644
--- a/backend/tests/Unit/Services/Http/HttpFetcherTest.php
+++ b/backend/tests/Unit/Services/Http/HttpFetcherTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Services\Http;
-use App\Services\Http\HttpFetcher;
+use Domains\Shared\Services\HttpFetcher;
use Exception;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Facades\Http;
diff --git a/backend/tests/Unit/Services/Log/LogSaverTest.php b/backend/tests/Unit/Services/Log/LogSaverTest.php
index d8dc159..d68b825 100644
--- a/backend/tests/Unit/Services/Log/LogSaverTest.php
+++ b/backend/tests/Unit/Services/Log/LogSaverTest.php
@@ -2,12 +2,12 @@
namespace Tests\Unit\Services\Log;
-use App\Enums\LogLevelEnum;
-use App\Enums\PlatformEnum;
-use App\Models\Log;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Services\Log\LogSaver;
+use Domains\Logging\Enums\LogLevelEnum;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Logging\Models\Log;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Logging\Services\LogSaver;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Services/Parsers/BelgaArticlePageParserTest.php b/backend/tests/Unit/Services/Parsers/BelgaArticlePageParserTest.php
index cb99b5e..27b368c 100644
--- a/backend/tests/Unit/Services/Parsers/BelgaArticlePageParserTest.php
+++ b/backend/tests/Unit/Services/Parsers/BelgaArticlePageParserTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Services\Parsers;
-use App\Services\Parsers\BelgaArticlePageParser;
+use Domains\Article\Parsers\Belga\BelgaArticlePageParser;
use Tests\TestCase;
class BelgaArticlePageParserTest extends TestCase
diff --git a/backend/tests/Unit/Services/Publishing/ArticlePublishingServiceTest.php b/backend/tests/Unit/Services/Publishing/ArticlePublishingServiceTest.php
index ed58673..c7e79d3 100644
--- a/backend/tests/Unit/Services/Publishing/ArticlePublishingServiceTest.php
+++ b/backend/tests/Unit/Services/Publishing/ArticlePublishingServiceTest.php
@@ -2,18 +2,18 @@
namespace Tests\Unit\Services\Publishing;
-use App\Enums\PlatformEnum;
-use App\Exceptions\PublishException;
-use App\Models\Article;
-use App\Models\ArticlePublication;
-use App\Models\Feed;
-use App\Models\PlatformAccount;
-use App\Models\PlatformChannel;
-use App\Models\PlatformInstance;
-use App\Models\Route;
-use App\Modules\Lemmy\Services\LemmyPublisher;
-use App\Services\Log\LogSaver;
-use App\Services\Publishing\ArticlePublishingService;
+use Domains\Platform\Enums\PlatformEnum;
+use Domains\Platform\Exceptions\PublishException;
+use Domains\Article\Models\Article;
+use Domains\Article\Models\ArticlePublication;
+use Domains\Feed\Models\Feed;
+use Domains\Platform\Models\PlatformAccount;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Platform\Models\PlatformInstance;
+use Domains\Feed\Models\Route;
+use Domains\Platform\Services\Publishing\Publishers\LemmyPublisher;
+use Domains\Logging\Services\LogSaver;
+use Domains\Platform\Services\Publishing\ArticlePublishingService;
use Exception;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
use Illuminate\Foundation\Testing\RefreshDatabase;
diff --git a/backend/tests/Unit/Services/Publishing/KeywordFilteringTest.php b/backend/tests/Unit/Services/Publishing/KeywordFilteringTest.php
index 0b98504..9fc59f3 100644
--- a/backend/tests/Unit/Services/Publishing/KeywordFilteringTest.php
+++ b/backend/tests/Unit/Services/Publishing/KeywordFilteringTest.php
@@ -2,13 +2,13 @@
namespace Tests\Unit\Services\Publishing;
-use App\Models\Article;
-use App\Models\Feed;
-use App\Models\Keyword;
-use App\Models\PlatformChannel;
-use App\Models\Route;
-use App\Services\Log\LogSaver;
-use App\Services\Publishing\ArticlePublishingService;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
+use Domains\Article\Models\Keyword;
+use Domains\Platform\Models\PlatformChannel;
+use Domains\Feed\Models\Route;
+use Domains\Logging\Services\LogSaver;
+use Domains\Platform\Services\Publishing\ArticlePublishingService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Mockery;
use Tests\TestCase;
diff --git a/backend/tests/Unit/Services/SystemStatusServiceTest.php b/backend/tests/Unit/Services/SystemStatusServiceTest.php
index cd1c863..d31de90 100644
--- a/backend/tests/Unit/Services/SystemStatusServiceTest.php
+++ b/backend/tests/Unit/Services/SystemStatusServiceTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Services;
-use App\Services\SystemStatusService;
+use Domains\Settings\Services\SystemStatusService;
use Tests\TestCase;
use Illuminate\Support\Facades\Http;
diff --git a/backend/tests/Unit/Services/ValidationServiceKeywordTest.php b/backend/tests/Unit/Services/ValidationServiceKeywordTest.php
index beaf87c..c14859b 100644
--- a/backend/tests/Unit/Services/ValidationServiceKeywordTest.php
+++ b/backend/tests/Unit/Services/ValidationServiceKeywordTest.php
@@ -2,7 +2,7 @@
namespace Tests\Unit\Services;
-use App\Services\Article\ValidationService;
+use Domains\Article\Services\ValidationService;
use Tests\TestCase;
use Tests\Traits\CreatesArticleFetcher;
use ReflectionClass;
diff --git a/backend/tests/Unit/Services/ValidationServiceTest.php b/backend/tests/Unit/Services/ValidationServiceTest.php
index 97df0b9..5ba8b70 100644
--- a/backend/tests/Unit/Services/ValidationServiceTest.php
+++ b/backend/tests/Unit/Services/ValidationServiceTest.php
@@ -2,11 +2,11 @@
namespace Tests\Unit\Services;
-use App\Services\Article\ArticleFetcher;
-use App\Services\Article\ValidationService;
-use App\Services\Log\LogSaver;
-use App\Models\Article;
-use App\Models\Feed;
+use Domains\Article\Services\ArticleFetcher;
+use Domains\Article\Services\ValidationService;
+use Domains\Logging\Services\LogSaver;
+use Domains\Article\Models\Article;
+use Domains\Feed\Models\Feed;
use Tests\TestCase;
use Tests\Traits\CreatesArticleFetcher;
use Illuminate\Foundation\Testing\RefreshDatabase;