trypost/app/Enums/User/Goal.php
Paulo Castellano afc4c7a80b feat(onboarding): add goal step after persona
After picking who they are, users now pick what they want to achieve with
TryPost. A multi-select goal step (12 options + an exclusive "just exploring"
and "something else") sits between the persona step and connect, mirroring the
persona screen's style.

The goals persist to a json column on users and are mirrored to PostHog on
identify (onboarding_goals array plus a boolean per goal), so campaigns can be
cross-tabbed against the intent they actually attracted. connect now requires
both a persona and at least one goal; persona store advances to the goal step.

Options are grounded in TryPost's real capabilities (publishing, AI content,
brand voice, automation via API/MCP, collaboration, analytics) and copy is
localized in en/es/pt-BR.
2026-06-25 20:49:04 -03:00

30 lines
803 B
PHP

<?php
declare(strict_types=1);
namespace App\Enums\User;
enum Goal: string
{
case SaveTime = 'save_time';
case AiContent = 'ai_content';
case PlanCalendar = 'plan_calendar';
case StayOnBrand = 'stay_on_brand';
case GrowAudience = 'grow_audience';
case DriveSales = 'drive_sales';
case ManageClients = 'manage_clients';
case TeamCollaboration = 'team_collaboration';
case AutomateApi = 'automate_api';
case TrackPerformance = 'track_performance';
case JustExploring = 'just_exploring';
case Other = 'other';
/**
* Selecting this goal means the user has no specific intent yet, so it is
* mutually exclusive with every other goal.
*/
public function isExclusive(): bool
{
return $this === self::JustExploring;
}
}