copied controllers, models, migrations

This commit is contained in:
Obenny
2021-10-17 21:43:25 +08:00
parent 8c23d178e8
commit ea6711f06b
9 changed files with 227 additions and 0 deletions
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Announcements;
use App\Classes\Modules\Announcements\ControllersLogic\AssignAnnouncementToSegmentLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class AssignAnnouncementToSegmentController
{
/**
* @param Request $request
* @param AssignCompanyToSegmentLogic $logic
* @return JsonResponse
*/
public function assign(Request $request, AssignAnnouncementToSegmentLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Announcements;
use App\Classes\Modules\Announcements\ControllersLogic\CreateAnnouncementLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CreateAnnouncementController
{
/**
* @param Request $request
* @param CreateAnnouncementLogic $logic
* @return JsonResponse
*/
public function create(Request $request, CreateAnnouncementLogic $logic): JsonResponse
{
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Announcements;
use App\Classes\Modules\Announcements\ControllersLogic\DeleteAnnouncementLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DeleteAnnouncementController
{
/**
* @param Request $request
* @param DeleteAnnouncementLogic $logic
* @return JsonResponse
*/
public function delete(Request $request, DeleteAnnouncementLogic $logic): JsonResponse
{
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Announcements;
use App\Classes\Modules\Announcements\ControllersLogic\ListAnnouncementsLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ListAnnouncementsController
{
/**
* @param Request $request
* @param ListAnnouncementsLogic $logic
* @return JsonResponse
*/
public function list(Request $request, ListAnnouncementsLogic $logic): JsonResponse
{
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Announcements;
use App\Classes\Modules\Announcements\ControllersLogic\RemoveSegmentFromAnnouncementLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class RemoveSegmentFromAnnouncementController
{
/**
* @param Request $request
* @param RemoveCompanyFromSegmentLogic $logic
* @return JsonResponse
*/
public function detach(Request $request, RemoveSegmentFromAnnouncementLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Controllers\Announcements;
use App\Classes\Modules\Announcements\ControllersLogic\UpdateAnnouncementLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UpdateAnnouncementController
{
/**
* @param Request $request
* @param UpdateAnnouncementLogic $logic
* @return JsonResponse
*/
public function update(Request $request, UpdateAnnouncementLogic $logic): JsonResponse
{
return $logic->execute($request);
}
}
+26
View File
@@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class Announcement
* @package App\Models
*
*/
class Announcement extends AbstractModel
{
use SoftDeletes;
protected $table = 'announcements';
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
**/
public function segments(): BelongsToMany
{
return $this->BelongsToMany(Segment::class);
}
}
@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAnnouncementsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('announcements', function (Blueprint $table) {
$table->id();
$table->string('title', 50);
$table->longText('description');
$table->timestamp('starting_on')->nullable();
$table->timestamp('ending_on')->nullable();
$table->boolean('is_all_day')->default(false);
$table->integer('duration')->default(0);
$table->boolean('is_recurring')->default(false);
$table->string('recurrence_pattern')->nullable();
$table->softDeletes();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('announcements');
}
}
@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAnnouncementSegmentTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('announcement_segment', function (Blueprint $table) {
$table->primary(['announcement_id', 'segment_id']);
$table->bigInteger('announcement_id')->unsigned();
$table->bigInteger('segment_id')->unsigned();
$table->timestamps();
$table->foreign('announcement_id')
->references('id')
->on('announcements')->onDelete('cascade');
$table->foreign('segment_id')
->references('id')
->on('segments')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('announcement_segment');
}
}