Skip to content

Feature/enso v7 #36

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions database/factories/EventFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace LaravelEnso\Calendar\Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;
use LaravelEnso\Calendar\Enums\Frequencies;
use LaravelEnso\Calendar\Enums\Frequency;
use LaravelEnso\Calendar\Models\Calendar;
use LaravelEnso\Calendar\Models\Event;

Expand All @@ -18,7 +18,7 @@ public function definition()
'body' => $this->faker->text,
'title' => $this->faker->title,
'calendar_id' => Calendar::factory(),
'frequency' => Frequencies::Once,
'frequency' => Frequency::Once->value,
'start_date' => $this->faker->date('Y-m-d'),
'end_date' => $this->faker->date('Y-m-d'),
'start_time' => '12:00',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public function up()
$table->string('color');
$table->boolean('private');

$table->integer('created_by')->unsigned()->index()->nullable();
$table->unsignedInteger('created_by')->index()->nullable();
$table->foreign('created_by')->references('id')->on('users');

$table->timestamps();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ public function up()
Schema::create('calendar_events', function (Blueprint $table) {
$table->increments('id');

$table->integer('parent_id')->nullable()->unsigned()->index();
$table->unsignedInteger('parent_id')->nullable()->index();

$table->integer('calendar_id')->unsigned()->index();
$table->unsignedInteger('calendar_id')->index();
$table->foreign('calendar_id')->index()
->references('id')->on('calendars')->onDelete('cascade');

Expand All @@ -34,7 +34,7 @@ public function up()
$table->decimal('lat', 10, 8)->nullable();
$table->decimal('lng', 11, 8)->nullable();

$table->integer('created_by')->unsigned()->index()->nullable();
$table->usignedInteger('created_by')->index()->nullable();
$table->foreign('created_by')->references('id')->on('users');

$table->timestamps();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ public function up()
Schema::create('calendar_reminders', function (Blueprint $table) {
$table->increments('id');

$table->integer('event_id')->unsigned()->index();
$table->unsignedInteger('event_id')->index();
$table->foreign('event_id')->references('id')->on('calendar_events')
->onDelete('cascade');

$table->integer('created_by')->unsigned()->index();
$table->unsignedInteger('created_by')->index();
$table->foreign('created_by')->references('id')->on('users');

$table->datetime('scheduled_at')->index();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
public function up()
{
Schema::create('calendar_event_user', function (Blueprint $table) {
$table->integer('event_id')->unsigned()->index();
$table->unsignedInteger('event_id')->index();
$table->foreign('event_id')->references('id')->on('calendar_events')
->onUpdate('cascade')->onDelete('cascade');

$table->integer('user_id')->unsigned()->index();
$table->unsignedInteger('user_id')->index();
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');

Expand Down
2 changes: 1 addition & 1 deletion src/Calendars/BirthdayCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function name(): string

public function color(): string
{
return Colors::Purple;
return Colors::Purple->value;
}

public function private(): bool
Expand Down
4 changes: 2 additions & 2 deletions src/Calendars/BirthdayEvent.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Carbon\Carbon;
use LaravelEnso\Calendar\Contracts\Calendar;
use LaravelEnso\Calendar\Contracts\ProvidesEvent;
use LaravelEnso\Calendar\Enums\Frequencies;
use LaravelEnso\Calendar\Enums\Frequency;
use LaravelEnso\People\Models\Person;

class BirthdayEvent implements ProvidesEvent
Expand Down Expand Up @@ -56,7 +56,7 @@ public function getCalendar(): Calendar

public function frequency(): int
{
return Frequencies::Yearly;
return Frequency::Yearly->value;
}

public function recurrenceEnds(): ?Carbon
Expand Down
4 changes: 0 additions & 4 deletions src/EnumServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@

namespace LaravelEnso\Calendar;

use LaravelEnso\Calendar\Enums\Frequencies;
use LaravelEnso\Calendar\Enums\UpdateType;
use LaravelEnso\Enums\EnumServiceProvider as ServiceProvider;

class EnumServiceProvider extends ServiceProvider
{
public $register = [
'eventUpdateType' => UpdateType::class,
'eventFrequencies' => Frequencies::class,
];
}
72 changes: 41 additions & 31 deletions src/Enums/Colors.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,47 @@

namespace LaravelEnso\Calendar\Enums;

use LaravelEnso\Enums\Services\Enum;
use Illuminate\Support\Collection;
use LaravelEnso\Enums\Contracts\Select;
use LaravelEnso\Enums\Traits\Select as Options;

class Colors extends Enum
enum Colors: string implements Select
{
public const Red = 'red';
public const Blue = 'blue';
public const Green = 'green';
public const Yellow = 'yellow';
public const Purple = 'purple';
public const Orange = 'orange';
public const Brown = 'brown';
public const Black = 'black';
public const White = 'white';
public const Pink = 'pink';
public const Aquamarine = 'aquamarine';
public const Teal = 'teal';
public const Gold = 'gold';
public const Indigo = 'indigo';
public const Cyan = 'cyan';
public const Lime = 'lime';
public const Violet = 'violet';
public const Magenta = 'magenta';
public const Beige = 'beige';
public const Salmon = 'salmon';
public const Coral = 'coral';
public const Navy = 'navy';
public const Olive = 'olive';
public const Turquoise = 'turquoise';
public const Maroon = 'maroon';
public const Lavender = 'lavender';
public const Khaki = 'khaki';
public const Crimson = 'crimson';
public const Orchid = 'orchid';
use Options;

case Red = 'red';
case Blue = 'blue';
case Green = 'green';
case Yellow = 'yellow';
case Purple = 'purple';
case Orange = 'orange';
case Brown = 'brown';
case Black = 'black';
case White = 'white';
case Pink = 'pink';
case Aquamarine = 'aquamarine';
case Teal = 'teal';
case Gold = 'gold';
case Indigo = 'indigo';
case Cyan = 'cyan';
case Lime = 'lime';
case Violet = 'violet';
case Magenta = 'magenta';
case Beige = 'beige';
case Salmon = 'salmon';
case Coral = 'coral';
case Navy = 'navy';
case Olive = 'olive';
case Turquoise = 'turquoise';
case Maroon = 'maroon';
case Lavender = 'lavender';
case Khaki = 'khaki';
case Crimson = 'crimson';
case Orchid = 'orchid';

public static function values(): Collection
{
return Collection::wrap(self::cases())
->map(fn ($case) => $case->value);
}
}
15 changes: 0 additions & 15 deletions src/Enums/Frequencies.php

This file was deleted.

23 changes: 23 additions & 0 deletions src/Enums/Frequency.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

namespace LaravelEnso\Calendar\Enums;

use LaravelEnso\Enums\Contracts\Frontend;
use LaravelEnso\Enums\Contracts\Select;
use LaravelEnso\Enums\Traits\Select as Options;

enum Frequency: int implements Select, Frontend
{
use Options;
case Once = 1;
case Daily = 2;
case Weekdays = 3;
case Weekly = 4;
case Monthly = 5;
case Yearly = 6;

public static function registerBy(): string
{
return 'eventFrequencies';
}
}
33 changes: 21 additions & 12 deletions src/Enums/UpdateType.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,32 @@

namespace LaravelEnso\Calendar\Enums;

use LaravelEnso\Enums\Services\Enum;
use LaravelEnso\Enums\Contracts\Frontend;
use LaravelEnso\Enums\Contracts\Mappable;

class UpdateType extends Enum
enum UpdateType: int implements Mappable, Frontend
{
public const OnlyThis = 1;
public const ThisAndFuture = 2;
public const All = 3;
case OnlyThis = 1;
case ThisAndFuture = 2;
case All = 3;

protected static array $data = [
self::OnlyThis => 'Only This',
self::ThisAndFuture => 'This And Future',
self::All => 'All',
];
public function map(): string
{
return match ($this) {
self::OnlyThis => 'Only This',
self::ThisAndFuture => 'This And Future',
self::All => 'All',
};
}

public static function registerBy(): string
{
return 'eventUpdateType';
}

public static function forParent()
{
return static::select()
->reject(fn ($updateType) => $updateType->id === static::All);
return collect([self::OnlyThis, self::ThisAndFuture])
->map(fn ($case) => (object) ['id' => $case->value, 'name' => $case->map()]);
}
}
4 changes: 2 additions & 2 deletions src/Forms/Builders/Event.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace LaravelEnso\Calendar\Forms\Builders;

use LaravelEnso\Calendar\Enums\Frequencies;
use LaravelEnso\Calendar\Enums\Frequency;
use LaravelEnso\Calendar\Http\Resources\Reminder;
use LaravelEnso\Calendar\Models\Event as Model;
use LaravelEnso\Forms\Services\Form;
Expand All @@ -26,7 +26,7 @@ public function create()
public function edit(Model $event)
{
return $this->form->value('attendees', $event->attendeeList())
->meta('recurrence_ends_at', 'hidden', $event->frequency === Frequencies::Once)
->meta('recurrence_ends_at', 'hidden', $event->frequency === Frequency::Once->value)
->value('reminders', Reminder::collection($event->reminders))
->actions([])
->edit($event);
Expand Down
2 changes: 1 addition & 1 deletion src/Forms/Templates/event.json
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@
"meta": {
"custom": true,
"type": "select",
"options": "LaravelEnso\\Calendar\\Enums\\Frequencies"
"options": "LaravelEnso\\Calendar\\Enums\\Frequency"
}
},
{
Expand Down
3 changes: 2 additions & 1 deletion src/Http/Requests/ValidateCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace LaravelEnso\Calendar\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use LaravelEnso\Calendar\Enums\Colors;

class ValidateCalendar extends FormRequest
Expand All @@ -16,7 +17,7 @@ public function rules()
{
return [
'name' => 'required',
'color' => 'required|in:'.Colors::keys()->implode(','),
'color' => Rule::Enum(Colors::class),
'private' => 'required|boolean',
];
}
Expand Down
Loading