Proje: Okul Platform · Hub: Okul Platform — Conventions
Resource Katmanı
Laravel API Resources — Model → JSON dönüşümü.
app/Http/Resources/
├── Admin/
│ ├── School/
│ │ ├── SchoolResource.php — Ana okul resource
│ │ ├── SchoolListResource.php — Liste için slim resource
│ │ ├── SchoolChurnRiskyResource.php
│ │ └── Relations/ — İlişkili veriler
│ │ ├── SchoolActivityResource
│ │ ├── SchoolContactResource
│ │ ├── SchoolFacilityResource
│ │ ├── SchoolFeatureResource
│ │ ├── SchoolFeeResource
│ │ ├── SchoolLearningLanguageResource
│ │ ├── SchoolLocationResource
│ │ ├── SchoolQuestionAnswerResource
│ │ ├── SchoolServiceResource
│ │ ├── SchoolShiftResource
│ │ └── SchoolTagResource
│ └── College/, HighSchoolResource, KindergartenResource, ...
├── Customer/
├── General/
│ └── Search/SearchResource.php
├── User/
│ ├── UserResource.php
│ ├── UserDetailResource.php
│ ├── UserTypeResource.php
│ ├── RoleResource.php
│ └── PermissionResource.php
├── GenericResource.php
├── MediaResource.php
└── SchoolCommentResource.php
UserResource Alanları
{
"id": 1,
"name": "Furkan Namlı",
"first_name": "Furkan",
"last_name": "Namlı",
"email": "...",
"username": "...",
"user_type_id": 2,
"user_detail": {...}, // whenLoaded
"user_type": {...}, // whenLoaded
"roles": [...], // whenLoaded (admin için)
"permissions": [...] // whenLoaded (admin için)
}whenLoaded Pattern
'roles' => RoleResource::collection($this->whenLoaded('roles'))Eager load edilmemişse dahil edilmez → ?include=roles ile alınabilir.
Related
- api-response-structure — JsonResponse::success kullanımı
- api-domain-model — Model listesi