Proje: Okul Platform · Hub: Okul Platform — Conventions
HasDelimiterSeparatedRelations
app/Models/Relations/Seperated/ — Virgülle ayrılmış değerleri ilişki gibi yüklemek için.
Kullanım: SchoolFeatureName modelinde.
$this->getDelimiterSeparatedModels(RelatedModel::class, 'column_name', ',')
$this->delimiterSeparatedRelation(...)SchoolFeatureName Sistemi
Okul özellik adları dinamik yapı:
SchoolFeatureName— Özellik tanımı (type: general/highlight, icon, input_type, value_type, validation_rule)SchoolFeature— Okul + özellik adı + değer kombinasyonuSchoolFeatureValue— Olası değerler
Pivot alanlar: school_feature_name_id, school_feature_value_id, value
Audit Modeli
app/Models/Audit.php — Custom audit log (Revisionable’dan farklı).
table_name, action, row_id— Neyin değiştiğiold_value, new_value— Değişiklik detaylarıapprove_status, approved_by, approved_at— Onay akışıis_customer— B2B kullanıcısı mı yaptıip— IP adresi
SchoolFranchise
app/Models/SchoolFranchise.php — Okul franchise yönetimi.
SchoolBadge
app/Models/SchoolBadge.php — Okul rozetleri.
SchoolReferral
app/Models/SchoolReferral.php + SchoolReferralObserver — Okul referans sistemi.
UserDetail / AdminUserData
UserDetail— Kullanıcı profil detaylarıAdminUserData— Admin kullanıcı ek verisi
UserFavorite
app/Models/UserFavorite.php — B2C kullanıcıların favori okulları.
UserLog
app/Models/UserLog.php — Kullanıcı eylem logları.
Award / AwardType
app/Models/Award.php + AwardType — Okul ödülleri.
CheckoutStatusType vs CheckoutStatus
İki farklı enum var:
App\Enums\CheckoutStatus— draft/completed/sent/cancelled (primary)App\Enums\CheckoutStatusType— Muhtemelen eski/farklı kullanım
NotProvided Type
App\DTO\CustomTypes\NotProvided — DTO’larda “bu alan gönderilmedi” ile “null gönderildi” farkını ifade etmek için special type.
Related
- api-code-conventions — Genel konvansiyonlar
- api-domain-model — Model listesi