ensi-models
Ensi Models Skill
This skill helps you work with Eloquent models in Ensi projects following the project's established patterns and conventions.
Project Structure Understanding
Ensi uses Domain-Driven Design (DDD) with the following structure:
- Models:
app/Domain/{DomainName}/Models/ - Factories:
app/Domain/{DomainName}/Models/Tests/Factories/ - All models extend
Illuminate\Database\Eloquent\Model - All factories extend
Ensi\LaravelTestFactories\BaseModelFactory
Key Patterns and Conventions
Model Patterns
- PHPDoc Annotations: Use PHPDoc for all properties with Russian descriptions
- Date Types: Use
CarbonInterfacefor date fields
More from ensi-platform/skills
ensi-code-style
Enforce PHP and Laravel code style according to Ensi guidelines. Use this skill whenever writing, modifying, or reviewing PHP/Laravel code in Ensi projects, creating new classes (Controllers, Models, Actions, Events, etc.), refactoring existing code, setting up validation, routes, migrations, or working with Domain/Http layers in Laravel applications. Also trigger when checking code style compliance or generating Laravel components to ensure they follow Ensi conventions.
9ensi-openapi
Работайте с OpenAPI спецификациями в сервисах Ensi. Используйте этот скилл всегда, когда пользователь упоминает OpenAPI, API спецификации, создание endpoints, схем, перечислений или работу с yaml файлами в `public/api-docs/`. Также используйте при упоминании Swagger, спецификаций API, создании новых API endpoints или обновлении существующей документации API.
9ensi-api-design
Apply Ensi API Design Guide principles when designing, implementing, or reviewing REST API endpoints in Ensi projects. Use this skill when creating API endpoints, defining request/response formats, implementing filters and pagination, working with OpenAPI specifications, or any API-related work in Ensi services.
8ensi-query-builder
Создание и модификация Query классов для spatie/laravel-query-builder в Ensi сервисах. Использовать при работе с Query классами, фильтрами API, search endpoints, allowedFilters, allowedSorts, allowedIncludes, а также при упоминании фильтрации в контроллерах API, создании search-эндпоинтов, добавлении фильтров к моделям.
8ensi-meta
Создание и модификация meta эндпоинтов в Ensi сервисах. Использовать при работе с мета-информацией полей, Field классами, ModelMetaResource, EnumInfo классами, а также при упоминании meta методов в контроллерах, создании мета-эндпоинтов, настройке фильтров/сортировки для фронтенда.
7ensi-kafka
Work with Kafka in Ensi Laravel services following project standards. Use this skill whenever the user mentions creating Kafka producers, consumers, observers, or any Kafka-related work in Ensi context. This includes requests like "create a Kafka producer for Product entity", "set up Kafka consumer", "add observer to send events", "create Kafka payload", "configure Kafka topics", or any work related to Kafka integration, message producers/consumers, observers, or event-driven architecture in Ensi Laravel projects.
6