dayuse-mail
Dayuse Mail — DTO Pattern
Overview
Modernization pattern for Dayuse transactional emails: replace unstructured arrays (reservationData, array<string, mixed>) with strictly typed PHP DTOs (final readonly class) with a static build() method, and .dto.html.twig templates with zero business logic.
When to Use This Skill
- Refactoring legacy transactional email templates (
.html.twig). - Migrating templates to the
.dto.html.twigextension. - Replacing the global unstructured array
reservationData(and otherarray<string, mixed>arrays) with specific DTOs with typed properties. - Updating Notifiers (
ConfirmationEmailNotifier, etc.) to use DTOs and theirbuild()method.
When NOT to Use
- Marketing emails or newsletters (handled by another system).
- Purely static templates (no Twig variables: no
{{ var }}, no{% if var %}, no parameters received viainclude). - Modifying an existing
.html.twigtemplate that is not being migrated (do not break existing emails).
More from dayuse-labs/skills-portfolio
dayuse-pptx
Creates Dayuse-branded presentations (PPTX) with consistent visual identity and storytelling structure. Use when the user asks to create a presentation, deck, slides, pitch deck, roadmap, reporting, plan d'action, or any PPTX for Dayuse. Also use when user mentions "prez Dayuse", "deck Dayuse", "slides internes", "pitch hotel", or "presentation partenaire". Handles both external pitch decks and internal strategy/reporting presentations. Do NOT use for non-Dayuse presentations.
16php-dayuse
Use when building PHP applications with Symfony, Doctrine, and modern PHP 8.4+. Invoke for strict typing, PHPStan level 10, DDD patterns, PSR standards, PHPUnit tests, Elasticsearch with Elastically, and Redis/MySQL optimization.
16dayuse-vibes
Use this skill when generating code, creating features, writing TypeScript, building components, implementing functionality, or helping with any coding task. Enforces professional standards for non-developers doing "vibe coding" - ensures DDD architecture, strict TypeScript (no any), systematic testing, linting, Zod validation, and Result pattern for errors.
12dayuse-commands
Run local development commands on the Dayuse.com project. Use when starting/stopping Docker, running PHP tests (PHPUnit), frontend tests, linting (PHPStan, CS-Fixer, ESLint), database migrations, Elasticsearch indexing, translations, or any inv task. All commands require pipenv and Docker.
10frontend-design-dayuse
Create production-grade frontend interfaces following the Dayuse brand identity and design system. This skill should be used when the user asks to "build a page", "create a component", "design a UI", "make a frontend", "build a landing page", "create a dashboard", or any frontend development task for Dayuse. Applies the official Dayuse color palette, typography (Manrope + MaisonNeue), border-radius conventions, shadow system, and animation patterns.
5dayuse app commands
Run local development commands on the Dayuse.com project. Use when starting/stopping Docker, running PHP tests (PHPUnit), frontend tests, linting (PHPStan, CS-Fixer, ESLint), database migrations, Elasticsearch indexing, translations, or any inv task. All commands require pipenv and Docker.
3