diff --git a/.ai/mcp/mcp.json b/.ai/mcp/mcp.json new file mode 100644 index 0000000..e69de29 diff --git a/app/Events/MessageSent.php b/app/Events/MessageSent.php index a6f743e..a1ac74d 100644 --- a/app/Events/MessageSent.php +++ b/app/Events/MessageSent.php @@ -5,7 +5,6 @@ namespace App\Events; use App\Models\Message; use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\InteractsWithSockets; -use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Foundation\Events\Dispatchable; diff --git a/app/Http/Requests/StoreLedgerRequest.php b/app/Http/Requests/StoreLedgerRequest.php index 81bd29a..e4c87b6 100644 --- a/app/Http/Requests/StoreLedgerRequest.php +++ b/app/Http/Requests/StoreLedgerRequest.php @@ -5,9 +5,6 @@ namespace App\Http\Requests; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; - -use App\Models\Dynamic; - class StoreLedgerRequest extends FormRequest { /** @@ -23,7 +20,7 @@ class StoreLedgerRequest extends FormRequest /** * Get the validation rules that apply to the request. * - * @return array + * @return array */ public function rules(): array { diff --git a/app/Http/Requests/StoreMessageRequest.php b/app/Http/Requests/StoreMessageRequest.php index 1f2767f..92108ea 100644 --- a/app/Http/Requests/StoreMessageRequest.php +++ b/app/Http/Requests/StoreMessageRequest.php @@ -5,9 +5,6 @@ namespace App\Http\Requests; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; - -use App\Models\Chat; - class StoreMessageRequest extends FormRequest { /** @@ -23,7 +20,7 @@ class StoreMessageRequest extends FormRequest /** * Get the validation rules that apply to the request. * - * @return array + * @return array */ public function rules(): array { diff --git a/app/Http/Requests/StoreMutationRequest.php b/app/Http/Requests/StoreMutationRequest.php index 0c781cc..b6273f0 100644 --- a/app/Http/Requests/StoreMutationRequest.php +++ b/app/Http/Requests/StoreMutationRequest.php @@ -5,9 +5,6 @@ namespace App\Http\Requests; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; - -use App\Models\Ledger; - class StoreMutationRequest extends FormRequest { /** @@ -23,7 +20,7 @@ class StoreMutationRequest extends FormRequest /** * Get the validation rules that apply to the request. * - * @return array + * @return array */ public function rules(): array { diff --git a/app/Models/Chat.php b/app/Models/Chat.php index 22584bd..a9adb51 100644 --- a/app/Models/Chat.php +++ b/app/Models/Chat.php @@ -2,6 +2,7 @@ namespace App\Models; +use Database\Factories\ChatFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -9,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\MorphTo; class Chat extends Model { - /** @use HasFactory<\Database\Factories\ChatFactory> */ + /** @use HasFactory */ use HasFactory; public function chatable(): MorphTo diff --git a/app/Models/Dynamic.php b/app/Models/Dynamic.php index 9531506..eae2b69 100644 --- a/app/Models/Dynamic.php +++ b/app/Models/Dynamic.php @@ -2,16 +2,16 @@ namespace App\Models; +use Database\Factories\DynamicFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; - use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphOne; class Dynamic extends Model { - /** @use HasFactory<\Database\Factories\DynamicFactory> */ + /** @use HasFactory */ use HasFactory; protected $fillable = [ diff --git a/app/Models/Ledger.php b/app/Models/Ledger.php index 10eea23..9b0c81d 100644 --- a/app/Models/Ledger.php +++ b/app/Models/Ledger.php @@ -2,15 +2,15 @@ namespace App\Models; +use Database\Factories\LedgerFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; - use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; class Ledger extends Model { - /** @use HasFactory<\Database\Factories\LedgerFactory> */ + /** @use HasFactory */ use HasFactory; protected $fillable = [ diff --git a/app/Models/Message.php b/app/Models/Message.php index ee804ac..fd1447a 100644 --- a/app/Models/Message.php +++ b/app/Models/Message.php @@ -2,13 +2,14 @@ namespace App\Models; +use Database\Factories\MessageFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; class Message extends Model { - /** @use HasFactory<\Database\Factories\MessageFactory> */ + /** @use HasFactory */ use HasFactory; protected $fillable = [ diff --git a/app/Models/Mutation.php b/app/Models/Mutation.php index 0ffe06a..668de70 100644 --- a/app/Models/Mutation.php +++ b/app/Models/Mutation.php @@ -2,15 +2,15 @@ namespace App\Models; +use Database\Factories\MutationFactory; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; - use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\MorphOne; class Mutation extends Model { - /** @use HasFactory<\Database\Factories\MutationFactory> */ + /** @use HasFactory */ use HasFactory; protected $fillable = [ diff --git a/app/Models/User.php b/app/Models/User.php index 2d6592d..8985431 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,14 +3,10 @@ namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; -use App\Models\Dynamic; -use App\Models\Mutation; use Database\Factories\UserFactory; use Illuminate\Database\Eloquent\Attributes\Fillable; use Illuminate\Database\Eloquent\Attributes\Hidden; use Illuminate\Database\Eloquent\Factories\HasFactory; -use Illuminate\Database\Eloquent\Relations\BelongsToMany; -use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Carbon; diff --git a/app/Policies/DynamicPolicy.php b/app/Policies/DynamicPolicy.php index ff461eb..8d9b39f 100644 --- a/app/Policies/DynamicPolicy.php +++ b/app/Policies/DynamicPolicy.php @@ -4,7 +4,6 @@ namespace App\Policies; use App\Models\Dynamic; use App\Models\User; -use Illuminate\Auth\Access\Response; class DynamicPolicy { diff --git a/bootstrap/providers.php b/bootstrap/providers.php index 2b2f95f..8fe691f 100644 --- a/bootstrap/providers.php +++ b/bootstrap/providers.php @@ -1,7 +1,11 @@ import { Link } from '@inertiajs/vue3'; -import { BookOpen, FolderGit2, LayoutGrid } from '@lucide/vue'; +import { BookOpen, FolderGit2, LayoutGrid, Users } from '@lucide/vue'; import AppLogo from '@/components/AppLogo.vue'; import NavFooter from '@/components/NavFooter.vue'; import NavMain from '@/components/NavMain.vue'; @@ -15,6 +15,7 @@ import { SidebarMenuItem, } from '@/components/ui/sidebar'; import { dashboard } from '@/routes'; +import { index as dynamics } from '@/routes/dynamics'; import type { NavItem } from '@/types'; const mainNavItems: NavItem[] = [ @@ -23,6 +24,11 @@ const mainNavItems: NavItem[] = [ href: dashboard(), icon: LayoutGrid, }, + { + title: 'Dynamics', + href: dynamics(), + icon: Users, + }, ]; const footerNavItems: NavItem[] = [ diff --git a/routes/web.php b/routes/web.php index e4dc097..110f33e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,9 +1,9 @@ name('home'); diff --git a/tests/Feature/Auth/AuthenticationTest.php b/tests/Feature/Auth/AuthenticationTest.php index c404ceb..d1b9ed2 100644 --- a/tests/Feature/Auth/AuthenticationTest.php +++ b/tests/Feature/Auth/AuthenticationTest.php @@ -74,4 +74,4 @@ test('users are rate limited', function () { ]); $response->assertTooManyRequests(); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Auth/EmailVerificationTest.php b/tests/Feature/Auth/EmailVerificationTest.php index 6428476..81eacd8 100644 --- a/tests/Feature/Auth/EmailVerificationTest.php +++ b/tests/Feature/Auth/EmailVerificationTest.php @@ -98,4 +98,4 @@ test('already verified user visiting verification link is redirected without fir Event::assertNotDispatched(Verified::class); expect($user->fresh()->hasVerifiedEmail())->toBeTrue(); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Auth/PasswordConfirmationTest.php b/tests/Feature/Auth/PasswordConfirmationTest.php index a1279d7..8dfc9a7 100644 --- a/tests/Feature/Auth/PasswordConfirmationTest.php +++ b/tests/Feature/Auth/PasswordConfirmationTest.php @@ -19,4 +19,4 @@ test('password confirmation requires authentication', function () { $response = $this->get(route('password.confirm')); $response->assertRedirect(route('login')); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Auth/PasswordResetTest.php b/tests/Feature/Auth/PasswordResetTest.php index 5ce8fd7..a2b8010 100644 --- a/tests/Feature/Auth/PasswordResetTest.php +++ b/tests/Feature/Auth/PasswordResetTest.php @@ -75,4 +75,4 @@ test('password cannot be reset with invalid token', function () { ]); $response->assertSessionHasErrors('email'); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Auth/RegistrationTest.php b/tests/Feature/Auth/RegistrationTest.php index abd8ab2..35ec7ca 100644 --- a/tests/Feature/Auth/RegistrationTest.php +++ b/tests/Feature/Auth/RegistrationTest.php @@ -22,4 +22,4 @@ test('new users can register', function () { $this->assertAuthenticated(); $response->assertRedirect(route('dashboard', absolute: false)); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Auth/TwoFactorChallengeTest.php b/tests/Feature/Auth/TwoFactorChallengeTest.php index 8d1f1da..560e715 100644 --- a/tests/Feature/Auth/TwoFactorChallengeTest.php +++ b/tests/Feature/Auth/TwoFactorChallengeTest.php @@ -32,4 +32,4 @@ test('two factor challenge can be rendered', function () { ->assertInertia(fn (Assert $page) => $page ->component('auth/TwoFactorChallenge'), ); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Auth/VerificationNotificationTest.php b/tests/Feature/Auth/VerificationNotificationTest.php index c6648ee..2e7c33f 100644 --- a/tests/Feature/Auth/VerificationNotificationTest.php +++ b/tests/Feature/Auth/VerificationNotificationTest.php @@ -31,4 +31,4 @@ test('does not send verification notification if email is verified', function () ->assertRedirect(route('dashboard', absolute: false)); Notification::assertNothingSent(); -}); \ No newline at end of file +}); diff --git a/tests/Feature/DashboardTest.php b/tests/Feature/DashboardTest.php index d59d2d7..95c6a8b 100644 --- a/tests/Feature/DashboardTest.php +++ b/tests/Feature/DashboardTest.php @@ -13,4 +13,4 @@ test('authenticated users can visit the dashboard', function () { $response = $this->get(route('dashboard')); $response->assertOk(); -}); \ No newline at end of file +}); diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php index a576279..ef7b533 100644 --- a/tests/Feature/ExampleTest.php +++ b/tests/Feature/ExampleTest.php @@ -4,4 +4,4 @@ test('returns a successful response', function () { $response = $this->get(route('home')); $response->assertOk(); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Settings/ProfileUpdateTest.php b/tests/Feature/Settings/ProfileUpdateTest.php index b4c4c37..9f49e25 100644 --- a/tests/Feature/Settings/ProfileUpdateTest.php +++ b/tests/Feature/Settings/ProfileUpdateTest.php @@ -82,4 +82,4 @@ test('correct password must be provided to delete account', function () { ->assertRedirect(route('profile.edit')); expect($user->fresh())->not->toBeNull(); -}); \ No newline at end of file +}); diff --git a/tests/Feature/Settings/SecurityTest.php b/tests/Feature/Settings/SecurityTest.php index 408e3a6..fef3096 100644 --- a/tests/Feature/Settings/SecurityTest.php +++ b/tests/Feature/Settings/SecurityTest.php @@ -101,4 +101,4 @@ test('correct password must be provided to update password', function () { $response ->assertSessionHasErrors('current_password') ->assertRedirect(route('security.edit')); -}); \ No newline at end of file +}); diff --git a/tests/Unit/ExampleTest.php b/tests/Unit/ExampleTest.php index 27f3f87..44a4f33 100644 --- a/tests/Unit/ExampleTest.php +++ b/tests/Unit/ExampleTest.php @@ -2,4 +2,4 @@ test('that true is true', function () { expect(true)->toBeTrue(); -}); \ No newline at end of file +});