refactor: replace custom CRM with Monica fork
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s

This commit is contained in:
Kroonk
2026-05-22 16:19:55 +02:00
parent 38cc4c09ca
commit a213a1dba0
2215 changed files with 242567 additions and 6015 deletions

View File

@@ -0,0 +1,108 @@
<?php
namespace App\Http\Controllers\Account\Activity;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Traits\JsonRespondController;
use App\Services\Account\Activity\ActivityTypeCategory\CreateActivityTypeCategory;
use App\Services\Account\Activity\ActivityTypeCategory\UpdateActivityTypeCategory;
use App\Services\Account\Activity\ActivityTypeCategory\DestroyActivityTypeCategory;
use App\Http\Resources\Activity\ActivityTypeCategory as ActivityTypeCategoryResource;
class ActivityTypeCategoriesController extends Controller
{
use JsonRespondController;
/**
* Get all the activity type categories.
*/
public function index()
{
$activityTypeCategoriesData = collect([]);
$activityTypeCategories = auth()->user()->account->activityTypeCategories;
foreach ($activityTypeCategories as $activityTypeCategory) {
$activityTypesData = collect([]);
$activityTypes = $activityTypeCategory->activityTypes;
foreach ($activityTypes as $activityType) {
$dataActivityType = [
'id' => $activityType->id,
'name' => $activityType->name,
];
$activityTypesData->push($dataActivityType);
}
$data = [
'id' => $activityTypeCategory->id,
'name' => $activityTypeCategory->name,
'activityTypes' => $activityTypesData,
];
$activityTypeCategoriesData->push($data);
}
return $activityTypeCategoriesData;
}
/**
* Store an activity type category.
*
* @param Request $request
* @return ActivityTypeCategoryResource
*/
public function store(Request $request)
{
$type = app(CreateActivityTypeCategory::class)->execute([
'account_id' => auth()->user()->account_id,
'name' => $request->input('name'),
'translation_key' => $request->input('translation_key'),
]);
return new ActivityTypeCategoryResource($type);
}
/**
* Update an activity type category.
*
* @param Request $request
* @param int $activityTypeCategoryId
* @return ActivityTypeCategoryResource
*/
public function update(Request $request, $activityTypeCategoryId)
{
$data = [
'account_id' => auth()->user()->account_id,
'activity_type_category_id' => $activityTypeCategoryId,
'name' => $request->input('name'),
'translation_key' => $request->input('translation_key'),
];
$type = app(UpdateActivityTypeCategory::class)->execute($data);
return new ActivityTypeCategoryResource($type);
}
/**
* Delete the activity type category.
*
* @param Request $request
* @param int $activityTypeCategoryId
* @return \Illuminate\Http\JsonResponse
*/
public function destroy(Request $request, $activityTypeCategoryId)
{
$data = [
'account_id' => auth()->user()->account_id,
'activity_type_category_id' => $activityTypeCategoryId,
];
try {
app(DestroyActivityTypeCategory::class)->execute($data);
} catch (\Exception $e) {
return $this->respondNotFound();
}
return $this->respondObjectDeleted($activityTypeCategoryId);
}
}

View File

@@ -0,0 +1,79 @@
<?php
namespace App\Http\Controllers\Account\Activity;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Traits\JsonRespondController;
use App\Services\Account\Activity\ActivityType\CreateActivityType;
use App\Services\Account\Activity\ActivityType\UpdateActivityType;
use App\Services\Account\Activity\ActivityType\DestroyActivityType;
use App\Http\Resources\Activity\ActivityType as ActivityTypeResource;
class ActivityTypesController extends Controller
{
use JsonRespondController;
/**
* Store an activity type category.
*
* @param Request $request
* @return ActivityTypeResource
*/
public function store(Request $request)
{
$type = app(CreateActivityType::class)->execute([
'account_id' => auth()->user()->account_id,
'activity_type_category_id' => $request->input('activity_type_category_id'),
'name' => $request->input('name'),
'translation_key' => $request->input('translation_key'),
]);
return new ActivityTypeResource($type);
}
/**
* Update an activity type.
*
* @param Request $request
* @param int $activityTypeId
* @return ActivityTypeResource
*/
public function update(Request $request, $activityTypeId)
{
$data = [
'account_id' => auth()->user()->account_id,
'activity_type_id' => $activityTypeId,
'activity_type_category_id' => $request->input('activity_type_category_id'),
'name' => $request->input('name'),
'translation_key' => $request->input('translation_key'),
];
$type = app(UpdateActivityType::class)->execute($data);
return new ActivityTypeResource($type);
}
/**
* Delete the activity type.
*
* @param Request $request
* @param int $activityTypeId
* @return \Illuminate\Http\JsonResponse
*/
public function destroy(Request $request, $activityTypeId)
{
$data = [
'account_id' => auth()->user()->account_id,
'activity_type_id' => $activityTypeId,
];
try {
app(DestroyActivityType::class)->execute($data);
} catch (\Exception $e) {
return $this->respondNotFound();
}
return $this->respondObjectDeleted($activityTypeId);
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Http\Controllers\Account\LifeEvent;
use App\Http\Controllers\Controller;
use App\Traits\JsonRespondController;
class LifeEventCategoriesController extends Controller
{
use JsonRespondController;
/**
* Get all the life event categories.
*/
public function index()
{
$lifeEventCategoriesData = collect([]);
$lifeEventCategories = auth()->user()->account->lifeEventCategories;
foreach ($lifeEventCategories as $lifeEventCategory) {
$lifeEventTypesData = collect([]);
$lifeEventTypes = $lifeEventCategory->lifeEventTypes;
foreach ($lifeEventTypes as $lifeEventType) {
$dataLifeEventType = [
'id' => $lifeEventType->id,
'name' => $lifeEventType->name,
'default_life_event_type_key' => $lifeEventType->default_life_event_type_key,
];
$lifeEventTypesData->push($dataLifeEventType);
}
$data = [
'id' => $lifeEventCategory->id,
'name' => $lifeEventCategory->name,
'default_life_event_category_key' => $lifeEventCategory->default_life_event_category_key,
'lifeEventTypes' => $lifeEventTypesData,
];
$lifeEventCategoriesData->push($data);
}
return $lifeEventCategoriesData;
}
}

View File

@@ -0,0 +1,77 @@
<?php
namespace App\Http\Controllers\Account\LifeEvent;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Traits\JsonRespondController;
use App\Services\Account\LifeEvent\LifeEventType\CreateLifeEventType;
use App\Services\Account\LifeEvent\LifeEventType\UpdateLifeEventType;
use App\Services\Account\LifeEvent\LifeEventType\DestroyLifeEventType;
use App\Http\Resources\LifeEvent\LifeEventType as LifeEventTypeResource;
class LifeEventTypesController extends Controller
{
use JsonRespondController;
/**
* Store a life event type.
*
* @param Request $request
* @return LifeEventTypeResource
*/
public function store(Request $request)
{
$type = app(CreateLifeEventType::class)->execute([
'account_id' => auth()->user()->account_id,
'life_event_category_id' => $request->input('life_event_category_id'),
'name' => $request->input('name'),
]);
return new LifeEventTypeResource($type);
}
/**
* Update a life event type.
*
* @param Request $request
* @param int $liveEventTypeId
* @return LifeEventTypeResource
*/
public function update(Request $request, $liveEventTypeId)
{
$data = [
'account_id' => auth()->user()->account_id,
'life_event_type_id' => $liveEventTypeId,
'life_event_category_id' => $request->input('life_event_category_id'),
'name' => $request->input('name'),
];
$type = app(UpdateLifeEventType::class)->execute($data);
return new LifeEventTypeResource($type);
}
/**
* Delete the life event type.
*
* @param Request $request
* @param int $lifeEventTypeId
* @return \Illuminate\Http\JsonResponse
*/
public function destroy(Request $request, $lifeEventTypeId)
{
$data = [
'account_id' => auth()->user()->account_id,
'life_event_type_id' => $lifeEventTypeId,
];
try {
app(DestroyLifeEventType::class)->execute($data);
} catch (\Exception $e) {
return $this->respondNotFound();
}
return $this->respondObjectDeleted($lifeEventTypeId);
}
}