add family logic

This commit is contained in:
root
2026-03-10 17:52:47 -04:00
parent a82f7aedbc
commit 17d73e2f92
37 changed files with 2611 additions and 2 deletions
@@ -0,0 +1,26 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamiliesByStudentRequest extends ApiFormRequest
{
protected function prepareForValidation(): void
{
parent::prepareForValidation();
$this->merge(['student_id' => $this->route('studentId')]);
}
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'student_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyAdminCardRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'student_id' => ['nullable', 'integer', 'min:1'],
'guardian_id' => ['nullable', 'integer', 'min:1'],
'family_id' => ['nullable', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyAdminIndexRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'student_id' => ['nullable', 'integer', 'min:1'],
'guardian_id' => ['nullable', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyAdminSearchRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'q' => ['required', 'string', 'max:100'],
'limit' => ['nullable', 'integer', 'min:1', 'max:50'],
];
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyAttachSecondByEmailRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'student_id' => ['required', 'integer', 'min:1'],
'email' => ['required', 'email', 'max:255'],
'firstname' => ['nullable', 'string', 'max:255'],
'lastname' => ['nullable', 'string', 'max:255'],
'relation' => ['nullable', 'string', 'max:50'],
];
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyAttachSecondByUserRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'student_id' => ['required', 'integer', 'min:1'],
'user_id' => ['required', 'integer', 'min:1'],
'relation' => ['nullable', 'string', 'max:50'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyBootstrapRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [];
}
}
@@ -0,0 +1,34 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyComposeEmailRequest extends ApiFormRequest
{
protected function prepareForValidation(): void
{
parent::prepareForValidation();
if (!$this->has('html_message') && $this->has('html')) {
$this->merge(['html_message' => $this->input('html')]);
}
}
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'recipient' => ['required', 'email', 'max:255'],
'subject' => ['required', 'string', 'max:255'],
'html_message' => ['required', 'string'],
'profile' => ['nullable', 'string', 'max:50'],
'reply_to_email' => ['nullable', 'email', 'max:255'],
'reply_to_name' => ['nullable', 'string', 'max:255'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyImportLegacyRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [];
}
}
@@ -0,0 +1,25 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilySetGuardianFlagsRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'family_id' => ['required', 'integer', 'min:1'],
'user_id' => ['required', 'integer', 'min:1'],
'receive_emails' => ['nullable', 'boolean'],
'is_primary' => ['nullable', 'boolean'],
'receive_sms' => ['nullable', 'boolean'],
'relation' => ['nullable', 'string', 'max:50'],
];
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilySetPrimaryHomeRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'family_id' => ['required', 'integer', 'min:1'],
'student_id' => ['required', 'integer', 'min:1'],
'is_primary_home' => ['required', 'boolean'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyUnlinkGuardianRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'family_id' => ['required', 'integer', 'min:1'],
'user_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class FamilyUnlinkStudentRequest extends ApiFormRequest
{
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'family_id' => ['required', 'integer', 'min:1'],
'student_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,26 @@
<?php
namespace App\Http\Requests\Families;
use App\Http\Requests\ApiFormRequest;
class GuardiansByFamilyRequest extends ApiFormRequest
{
protected function prepareForValidation(): void
{
parent::prepareForValidation();
$this->merge(['family_id' => $this->route('familyId')]);
}
public function authorize(): bool
{
return auth()->check();
}
public function rules(): array
{
return [
'family_id' => ['required', 'integer', 'min:1'],
];
}
}