|
37049
|
1385
|
4
|
2026-05-13T15:35:13.150005+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686513150_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:35:12DOCKER881DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О 85ec2-user@ip-10-30-129-...886ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
-5870558211302185038
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:35:12DOCKER881DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О 85ec2-user@ip-10-30-129-...886ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37046
|
NULL
|
NULL
|
NULL
|
|
37050
|
1386
|
10
|
2026-05-13T15:35:13.157554+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686513157_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormFV faVsco.js?9 master kProiect=phpstan.neo PhostormFV faVsco.js?9 master kProiect=phpstan.neon.dist=ohostan-oaseline.neon<> phounit. xmli1e raw sal_querv.saM+ README.mdso sonar-oroiect oroperties= test.py<> Untitled Diaaram.ymlIs vetur.config.jsMLWEBHOOK FILTERING IMPLEMEI• fih External Librariedv 3 Scratches and Consolesv D Database ConsolesINavigarecode© MailboxController.php= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& ho_local Uiminny@localnostC) TextRelayService.ong© Sso.phpossocontroller.ongA console (EU]tiò teams [EU]fii crm_configurations [EU] XA console [STAGING]Tx: Auto ~©smsmessage.ong© SmsLength.php1rowyзOU+-Y- WHERE id = 468=• URDER BYWuuid (UUID with time-low and time-high swapped) =1choct4a-fd02-4902-8375-c3afd4dedadhlC) UpdateElasticSearch.pho(C) UpdateActivityElasticSearchDocumentCommand.php x C)UpdateSinqleEntity.pho© ActivityStatusin.phpHristova 11class UodateActivitvElasticSearchDocumentCommand extends Commandd team_idI notifiable user idpublic function handle(): voidA console [EU]A DEAL RISKS [EU]AU UIAtu tuv &jiminny@localhostA console [iiminny@localhost* Di liminny@localhostA HS local ['iminny@localhos4 Sr liminnv@localhostl< zoho dev liminnvalocalhoV APROD« console (PROD« console PRODIADPROD>4ФA9.11.23 Hristova18.06.25 VasilevAAAIPRODV A STAGING& console "STAGiNGI# console 1 [STAGINGIduranus (STAGINGI> M Sytencioncv M Scratches=Unhnstorm chortcutc tytl5 ccratch tytccratch 1icon( scratch 2.jsonfceratch 2 iconE scratch 4.txtptp scratch_ 5.phppiip scratch_6.php4º scratch Z.isonscratch_ 8.ison{° stage2 isonE° test<9test.htmllpt.ftmp.php18.06.25 Vasilev55011.22 Hrictova 57011.22 Hrictovau provldenSactivityld = $this-›argument( key: 'activityid'):editionSthis->infod strina: "Searching for activity with: Sactivitvid "):+ Gis numericSactivitvidnCactivitv = Activitv. Sinddaint) Cactivitvtd)•W instance! is_sandbox(• version( installed app version}else {1u svnc metadataCactivitv = Activity.- whenp & colulu sunc obnectsif (! Sactivity) {Sthis->error( string: "Activity with ID/UUID {SactivityId} not found"):• auto_sync_activitycrm_provider_id( crm base url! last synced at! leads svnced atSthis->info( string: "Found activity ID: {Sactivity->getIdO}. UUID: {Sactivity->qetUuid@sth1s->1ntol susending activity tor ts update...'Ш accounts_synced_atcontacts_synced_at• opportunities_synced_atI contact roles synced atSthis->eventDispatcher->dispatchdover quota atnew UodateSinaleEntitvoentitvid: Sactivity->oetidoans disabledatW settingsopportunity_assignment_ruleopportunity max valueopportunity max ageM opportunity value field idSthis->infod strina: "Done.")catch Excention Se)4$this->error( string:'Failed to update ES:. $e->getMessageO):cthic-sonnon/Co-saotTnaco/cCtninaon! trigger_assignment_rules! store_transcriptsoftphone override prospectdefault currencyI created ati uodated at548nuDsDot<nUlL><nul><nULL>147035175business.bt.com2026-05-15 01:01:55<null><null><null><null><null>"onnortunity svnc neriod"."3m" "onnlopen-recently-updated20000.00USD2025-10-14 11:01:292026-05-13 01:01•53& console [PROD)]CSVv100% L2Wed 13 May 18:35:13U AskJiminnyReportActivityServiceTest vCascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..Tnougntror 4ssearched conterenceralledeventin appThouaht for 2s >Read MeetingBotService.php #L540-589Read CreateBot.oho #L115-144|Read BotStatusChangeHandler.lob.ohv >Read BotStatusChangeHandlerJob.php #L410-459Searched status *=*STATUS FAILED in aoo/Services/RecallAIlThought for 1s >Read ImoortBotRecording.lob.nhn #I 50-99Inought tor 1sBased on my search, the code location where a conference activity can have status='failed' but recording state='recorded' is/Lapp//Services/RecallAI/Jobs/ImportBotRecordingJob.php (line 59)• pho'recording reason_code' = Activity::FLAG_RECORDING REASON_MEETING BOT_UNKNOWN,The Slow:1. Recordina is captured and marked as recorded•In MeetinaBotServilce.oho line 739, onRecordinoStoopedo sets recording state to Activity::RECORDING REGORDED• This happens when the meeting ends and recordina stoos successfullv2 Later recordina imnort fails.• In ImportBotRecordingJob.php, when fetching the bot recording fails after max retries (line 59)•Status is set to STATUS FAILED• RUT recordina state is NOT undated - it remains as 'recorded!Result: Activity has status='failed' (because import failed) but recording state='recorded' (because recording wascantured before the import failure)This is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status ancrecordina state are set togetherr.al .Ask anvthina (84L)« CodeSWE-16SUM• 147025175 11-1 W Windsurf Toam...
|
NULL
|
5717789479406594945
|
NULL
|
click
|
ocr
|
NULL
|
PhostormFV faVsco.js?9 master kProiect=phpstan.neo PhostormFV faVsco.js?9 master kProiect=phpstan.neon.dist=ohostan-oaseline.neon<> phounit. xmli1e raw sal_querv.saM+ README.mdso sonar-oroiect oroperties= test.py<> Untitled Diaaram.ymlIs vetur.config.jsMLWEBHOOK FILTERING IMPLEMEI• fih External Librariedv 3 Scratches and Consolesv D Database ConsolesINavigarecode© MailboxController.php= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& ho_local Uiminny@localnostC) TextRelayService.ong© Sso.phpossocontroller.ongA console (EU]tiò teams [EU]fii crm_configurations [EU] XA console [STAGING]Tx: Auto ~©smsmessage.ong© SmsLength.php1rowyзOU+-Y- WHERE id = 468=• URDER BYWuuid (UUID with time-low and time-high swapped) =1choct4a-fd02-4902-8375-c3afd4dedadhlC) UpdateElasticSearch.pho(C) UpdateActivityElasticSearchDocumentCommand.php x C)UpdateSinqleEntity.pho© ActivityStatusin.phpHristova 11class UodateActivitvElasticSearchDocumentCommand extends Commandd team_idI notifiable user idpublic function handle(): voidA console [EU]A DEAL RISKS [EU]AU UIAtu tuv &jiminny@localhostA console [iiminny@localhost* Di liminny@localhostA HS local ['iminny@localhos4 Sr liminnv@localhostl< zoho dev liminnvalocalhoV APROD« console (PROD« console PRODIADPROD>4ФA9.11.23 Hristova18.06.25 VasilevAAAIPRODV A STAGING& console "STAGiNGI# console 1 [STAGINGIduranus (STAGINGI> M Sytencioncv M Scratches=Unhnstorm chortcutc tytl5 ccratch tytccratch 1icon( scratch 2.jsonfceratch 2 iconE scratch 4.txtptp scratch_ 5.phppiip scratch_6.php4º scratch Z.isonscratch_ 8.ison{° stage2 isonE° test<9test.htmllpt.ftmp.php18.06.25 Vasilev55011.22 Hrictova 57011.22 Hrictovau provldenSactivityld = $this-›argument( key: 'activityid'):editionSthis->infod strina: "Searching for activity with: Sactivitvid "):+ Gis numericSactivitvidnCactivitv = Activitv. Sinddaint) Cactivitvtd)•W instance! is_sandbox(• version( installed app version}else {1u svnc metadataCactivitv = Activity.- whenp & colulu sunc obnectsif (! Sactivity) {Sthis->error( string: "Activity with ID/UUID {SactivityId} not found"):• auto_sync_activitycrm_provider_id( crm base url! last synced at! leads svnced atSthis->info( string: "Found activity ID: {Sactivity->getIdO}. UUID: {Sactivity->qetUuid@sth1s->1ntol susending activity tor ts update...'Ш accounts_synced_atcontacts_synced_at• opportunities_synced_atI contact roles synced atSthis->eventDispatcher->dispatchdover quota atnew UodateSinaleEntitvoentitvid: Sactivity->oetidoans disabledatW settingsopportunity_assignment_ruleopportunity max valueopportunity max ageM opportunity value field idSthis->infod strina: "Done.")catch Excention Se)4$this->error( string:'Failed to update ES:. $e->getMessageO):cthic-sonnon/Co-saotTnaco/cCtninaon! trigger_assignment_rules! store_transcriptsoftphone override prospectdefault currencyI created ati uodated at548nuDsDot<nUlL><nul><nULL>147035175business.bt.com2026-05-15 01:01:55<null><null><null><null><null>"onnortunity svnc neriod"."3m" "onnlopen-recently-updated20000.00USD2025-10-14 11:01:292026-05-13 01:01•53& console [PROD)]CSVv100% L2Wed 13 May 18:35:13U AskJiminnyReportActivityServiceTest vCascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..Tnougntror 4ssearched conterenceralledeventin appThouaht for 2s >Read MeetingBotService.php #L540-589Read CreateBot.oho #L115-144|Read BotStatusChangeHandler.lob.ohv >Read BotStatusChangeHandlerJob.php #L410-459Searched status *=*STATUS FAILED in aoo/Services/RecallAIlThought for 1s >Read ImoortBotRecording.lob.nhn #I 50-99Inought tor 1sBased on my search, the code location where a conference activity can have status='failed' but recording state='recorded' is/Lapp//Services/RecallAI/Jobs/ImportBotRecordingJob.php (line 59)• pho'recording reason_code' = Activity::FLAG_RECORDING REASON_MEETING BOT_UNKNOWN,The Slow:1. Recordina is captured and marked as recorded•In MeetinaBotServilce.oho line 739, onRecordinoStoopedo sets recording state to Activity::RECORDING REGORDED• This happens when the meeting ends and recordina stoos successfullv2 Later recordina imnort fails.• In ImportBotRecordingJob.php, when fetching the bot recording fails after max retries (line 59)•Status is set to STATUS FAILED• RUT recordina state is NOT undated - it remains as 'recorded!Result: Activity has status='failed' (because import failed) but recording state='recorded' (because recording wascantured before the import failure)This is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status ancrecordina state are set togetherr.al .Ask anvthina (84L)« CodeSWE-16SUM• 147025175 11-1 W Windsurf Toam...
|
37048
|
NULL
|
NULL
|
NULL
|
|
37642
|
1400
|
1
|
2026-05-13T16:10:25.634563+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778688625634_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
A
1
Select All
436
436
1
773281f4-0b30-457c-8d88-00a6b8610216
773281f4-0b30-457c-8d88-00a6b8610216
2026-05-13 16:06:57
519
519
1
<null>
<null>
1
hubspot
hubspot
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
0
0
1
2
2
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
1
1
1
1
1
1
1
1
1
[CREDIT_CARD]
2026-05-13 16:06:57
moxso.com
moxso.com
2026-05-13 16:06:57
2026-05-13 16:06:57
2026-05-13 16:06:57
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["webhookBatch"]}
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["webhookBatch"]}
{"opportunity_sync_period":"3m","opp
open-recently-updated
open-recently-updated
2026-05-13 16:06:57
9335000.00
9335000.00...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.40824467,"top":0.16839585,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"436","depth":6,"bounds":{"left":0.5505319,"top":0.16360734,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"436","depth":7,"bounds":{"left":0.5505319,"top":0.16360734,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"773281f4-0b30-457c-8d88-00a6b8610216","depth":6,"bounds":{"left":0.5505319,"top":0.18515563,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"773281f4-0b30-457c-8d88-00a6b8610216","depth":7,"bounds":{"left":0.5505319,"top":0.18515563,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"519","depth":6,"bounds":{"left":0.5505319,"top":0.20670392,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"519","depth":7,"bounds":{"left":0.5505319,"top":0.20670392,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.22825219,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.22825219,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"hubspot","depth":6,"bounds":{"left":0.5505319,"top":0.24980047,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"hubspot","depth":7,"bounds":{"left":0.5505319,"top":0.24980047,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.27134877,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.27134877,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.29289705,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.29289705,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5505319,"top":0.31444532,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5505319,"top":0.31444532,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2","depth":6,"bounds":{"left":0.5505319,"top":0.33599362,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2","depth":7,"bounds":{"left":0.5505319,"top":0.33599362,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.3575419,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.3575419,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5505319,"top":0.3790902,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5505319,"top":0.3790902,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5505319,"top":0.40063846,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5505319,"top":0.40063846,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5505319,"top":0.42218676,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5505319,"top":0.42218676,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"25531989","depth":6,"bounds":{"left":0.5505319,"top":0.44373503,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"25531989","depth":7,"bounds":{"left":0.5505319,"top":0.44373503,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"moxso.com","depth":6,"bounds":{"left":0.5505319,"top":0.46528333,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"moxso.com","depth":7,"bounds":{"left":0.5505319,"top":0.46528333,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-13 16:06:57","depth":6,"bounds":{"left":0.5505319,"top":0.4868316,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-13 16:06:57","depth":7,"bounds":{"left":0.5505319,"top":0.4868316,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.5083799,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.5083799,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.52992815,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.52992815,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.5514765,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.5514765,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.57302475,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.57302475,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.594573,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.594573,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.6161213,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.6161213,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5505319,"top":0.63766956,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5505319,"top":0.63766956,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"{\"opportunity_sync_period\":\"3m\",\"opportunity_sync_strategies\":[\"webhookBatch\"]}","depth":6,"bounds":{"left":0.5505319,"top":0.6592179,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"{\"opportunity_sync_period\":\"3m\",\"opportunity_sync_strategies\":[\"webhookBatch\"]}","depth":7,"bounds":{"left":0.5505319,"top":0.6592179,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"{\"opportunity_sync_period\":\"3m\",\"opp","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"{\"opportunity_sync_period\":\"3m\",\"opp","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"open-recently-updated","depth":6,"bounds":{"left":0.5505319,"top":0.68076617,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"open-recently-updated","depth":7,"bounds":{"left":0.5505319,"top":0.68076617,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"9335000.00","depth":6,"bounds":{"left":0.5505319,"top":0.70231444,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"9335000.00","depth":7,"bounds":{"left":0.5505319,"top":0.70231444,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"}]...
|
1822637709810956995
|
-1020863352352829636
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
A
1
Select All
436
436
1
773281f4-0b30-457c-8d88-00a6b8610216
773281f4-0b30-457c-8d88-00a6b8610216
2026-05-13 16:06:57
519
519
1
<null>
<null>
1
hubspot
hubspot
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
0
0
1
2
2
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
1
1
1
1
1
1
1
1
1
[CREDIT_CARD]
2026-05-13 16:06:57
moxso.com
moxso.com
2026-05-13 16:06:57
2026-05-13 16:06:57
2026-05-13 16:06:57
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["webhookBatch"]}
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["webhookBatch"]}
{"opportunity_sync_period":"3m","opp
open-recently-updated
open-recently-updated
2026-05-13 16:06:57
9335000.00
9335000.00...
|
37641
|
NULL
|
NULL
|
NULL
|
|
37643
|
1399
|
1
|
2026-05-13T16:10:27.646316+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778688627646_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
A
1
Select All
436
436
1
773281f4-0b30-457c-8d88-00a6b8610216
773281f4-0b30-457c-8d88-00a6b8610216
2026-05-13 16:06:57
519
519
1
<null>
<null>
1
hubspot
hubspot
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"436","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"436","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"773281f4-0b30-457c-8d88-00a6b8610216","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"773281f4-0b30-457c-8d88-00a6b8610216","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"519","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"519","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"hubspot","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"hubspot","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-13 16:06:57","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"2026-05-13 16:06:57","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8420302022232411522
|
-3961995075031758042
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
A
1
Select All
436
436
1
773281f4-0b30-457c-8d88-00a6b8610216
773281f4-0b30-457c-8d88-00a6b8610216
2026-05-13 16:06:57
519
519
1
<null>
<null>
1
hubspot
hubspot
2026-05-13 16:06:57
<null>
<null>
2026-05-13 16:06:57...
|
37640
|
NULL
|
NULL
|
NULL
|
|
37644
|
1400
|
2
|
2026-05-13T16:10:27.687898+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778688627687_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
A...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false}]...
|
-3630847890481647202
|
-3950736144693290202
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
A...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
52776
|
1853
|
11
|
2026-05-18T11:13:36.154048+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102816154_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"bounds":{"left":0.8753325,"top":0.91300875,"width":0.100398935,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.11037234,"height":0.013567438},"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.072140954,"height":0.013567438},"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"bounds":{"left":0.8753325,"top":0.9481245,"width":0.048204787,"height":0.013567438},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.12533244,"height":0.025538707},"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.83610374,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"bounds":{"left":0.85139626,"top":0.019952115,"width":0.06416223,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7170393980835071838
|
-8703134240834612286
|
visual_change
|
hybrid
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
PhostormVIeWNavicarecodeLaravelKeractorWindowmelpFV faVsco.js( #12092 on JY-20613-allow-owner-role-on-team-setupProiectphp api.phpM MakerilleMatcnActviycmmbata.ong© Client.phppackage- ock.isonE phpstan.neon.dist= phostan-oaseline.neonV FditTeamModal.vue<> phounit.xmlideclare(strict types=1):le raw_sqL_query.sqMIREADME.mdsonar-project.propertiesE test.py<> Untitled Diagram.xmlIs vetur.config.jsMLWERHOOK SILTERING IMPLEMENTATION.monamespace Jiminny DTO Invitation:class UserinvitationdTO> ib External Librariesv E Scratches and Consolesv C Database ConsolesV A EUuse UserEmatl.& console cUlA DEAL RISKS [EU]&DI EulALu Lu& liminny@localhost& console [iiminnv@localhosti4 D/liminny@localhostpublic string Semail;public ?string $secondaryEmail;public ?int $groupld;public int SteamId;public bool ScrmRequired;public array $roleIds;public bool $isOwner;public ?User $currentUser = null;4 HS_local liiminnv@localhostl4 S= liminnv@localhostlA zoho dev liminnv@localhostiV A PROD* Qparam arrayfemail: string,secondaryEmail: string/null.console (PrODconsole 1PRODIA DIIPRODIgroupld: int/null,teamid: 1ntstring.ServicesTx|0v M DatahaccV AEU#console z s 112 mstii crm_configurationsv A jiminny@localhostA HS local4, ShV APROD« console 4 sfii users 2 s 554 msv ASTAGING« console 1s 934 mgg, Docker© User.php© UserInvitationDTO.php xUserinvitationDTOTest.php© ClientTest.php© EditTeamRequest.php= custom.log= laravel.log4 SF jiminny@localhost]& console [STAGING]« HS_local [jiminny@localhost]A console [PROD]Ui users [PROD)© Kernel.phpA console [EU]tii crm_configurations [EU] XOrows v of0+ U t=D9TTAUtoVDDLA2V4A V Y-WHERE id = 209=•URDER BYCSVv|~L→8CascadeImplement Trial OwneFixing Redis Rate Lim• supoont Dally • In 47m100% Lz• Mon 18 May 14:13:35UserinvitationDTOTest vCascade+0 ..Caccado Codo & 4 .Kick off a new proiect. Make changesdcross vour entire codedaseC Fixing Redis Rate Limit ErroImplement Trial Owner Role Selection© Migrating to Pipedrive SDK v2<> Code€ : -# 1 file committedJY-20613 code review suggestionsEdit Commit Messaae.WN Windeurf Toam...
|
52774
|
NULL
|
NULL
|
NULL
|
|
52777
|
1852
|
15
|
2026-05-18T11:13:38.026420+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102818026_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"}]...
|
-3199637977844243089
|
-9032297670475070015
|
visual_change
|
accessibility
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
52778
|
1853
|
12
|
2026-05-18T11:13:38.072600+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102818072_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"bounds":{"left":0.8753325,"top":0.91300875,"width":0.100398935,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.11037234,"height":0.013567438},"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.072140954,"height":0.013567438},"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"bounds":{"left":0.8753325,"top":0.9481245,"width":0.048204787,"height":0.013567438},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.12533244,"height":0.025538707},"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.83610374,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"bounds":{"left":0.85139626,"top":0.019952115,"width":0.06416223,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.39261967,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"bounds":{"left":0.40259308,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.41223404,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.4195479,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","depth":4,"bounds":{"left":0.15990691,"top":0.12210695,"width":0.2662899,"height":0.87789303},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
4915807650839465460
|
-9032297670475332159
|
click
|
accessibility
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
52779
|
1853
|
13
|
2026-05-18T11:13:39.179291+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102819179_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A
1
Select All
209
209
1
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
2026-05-18 10:45:49
187
187
1
<null>
<null>
1
salesforce
salesforce
2026-05-18 10:45:49
enterprise
enterprise
2026-05-18 10:45:49
DEU60
DEU60
2026-05-18 10:45:49
0
0
1
50.0
50.0
2026-05-18 10:45:49
<null>
<null>
2026-05-18 10:45:49
1
1
1
1
1
1
1
1
1
00D0O000000Z4L3UAK
00D0O000000Z4L3UAK
2026-05-18 10:45:49
https://sensation.my.salesforce.com
https://sensation.my.salesforce.com
2026-05-18 10:45:49
2026-03-19 08:17:23
2026-03-19 08:17:23
2026-05-18 10:45:49
2026-05-18 10:44:19
2026-05-18 10:44:19
2026-05-18 10:45:49
2026-05-18 10:44:26
2026-05-18 10:44:26
2026-05-18 10:45:49
2026-05-18 10:44:43
2026-05-18 10:44:43
2026-05-18 10:45:49
2026-05-18 10:44:31
2026-05-18 10:44:31
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
<null>
<null>
2026-05-18 10:45:49
<null>
<null>
2026-05-18 10:45:49
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
Editor
open-recently-updated
open-recently-updated
2026-05-18 10:45:49
538000.00
538000.00
1
2483
2483
1
98856
98856
1
1
1
1
0
0
1
0
0
1
EUR
EUR
2026-05-18 10:45:49
2023-12-05 15:00:25
2023-12-05 15:00:25
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
id = 209
Editor
1 row
Reload Page...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"bounds":{"left":0.8753325,"top":0.91300875,"width":0.100398935,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.11037234,"height":0.013567438},"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.072140954,"height":0.013567438},"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"bounds":{"left":0.8753325,"top":0.9481245,"width":0.048204787,"height":0.013567438},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.12533244,"height":0.025538707},"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.83610374,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"bounds":{"left":0.85139626,"top":0.019952115,"width":0.06416223,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.39261967,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"bounds":{"left":0.40259308,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.41223404,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.4195479,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","depth":4,"bounds":{"left":0.15990691,"top":0.12210695,"width":0.2662899,"height":0.87789303},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.42652926,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"209","depth":6,"bounds":{"left":0.5688165,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"209","depth":7,"bounds":{"left":0.5688165,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8","depth":6,"bounds":{"left":0.5688165,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8","depth":7,"bounds":{"left":0.5688165,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"187","depth":6,"bounds":{"left":0.5688165,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"187","depth":7,"bounds":{"left":0.5688165,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5688165,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5688165,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"salesforce","depth":6,"bounds":{"left":0.5688165,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"salesforce","depth":7,"bounds":{"left":0.5688165,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"enterprise","depth":6,"bounds":{"left":0.5688165,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"enterprise","depth":7,"bounds":{"left":0.5688165,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"DEU60","depth":6,"bounds":{"left":0.5688165,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"DEU60","depth":7,"bounds":{"left":0.5688165,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5688165,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5688165,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"50.0","depth":6,"bounds":{"left":0.5688165,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"50.0","depth":7,"bounds":{"left":0.5688165,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5688165,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5688165,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5688165,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5688165,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5688165,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5688165,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5688165,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5688165,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"00D0O000000Z4L3UAK","depth":6,"bounds":{"left":0.5688165,"top":0.44533122,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"00D0O000000Z4L3UAK","depth":7,"bounds":{"left":0.5688165,"top":0.44533122,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"https://sensation.my.salesforce.com","depth":6,"bounds":{"left":0.5688165,"top":0.4668795,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"https://sensation.my.salesforce.com","depth":7,"bounds":{"left":0.5688165,"top":0.4668795,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-03-19 08:17:23","depth":6,"bounds":{"left":0.5688165,"top":0.4884278,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-03-19 08:17:23","depth":7,"bounds":{"left":0.5688165,"top":0.4884278,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:19","depth":6,"bounds":{"left":0.5688165,"top":0.509976,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:19","depth":7,"bounds":{"left":0.5688165,"top":0.509976,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:26","depth":6,"bounds":{"left":0.5688165,"top":0.53152436,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:26","depth":7,"bounds":{"left":0.5688165,"top":0.53152436,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:43","depth":6,"bounds":{"left":0.5688165,"top":0.55307263,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:43","depth":7,"bounds":{"left":0.5688165,"top":0.55307263,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:31","depth":6,"bounds":{"left":0.5688165,"top":0.5746209,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:31","depth":7,"bounds":{"left":0.5688165,"top":0.5746209,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:45:49","depth":6,"bounds":{"left":0.5688165,"top":0.5961692,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:45:49","depth":7,"bounds":{"left":0.5688165,"top":0.5961692,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5688165,"top":0.6177175,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5688165,"top":0.6177175,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5688165,"top":0.6392658,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5688165,"top":0.6392658,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"{\"opportunity_sync_period\":\"3m\",\"opportunity_sync_strategies\":[\"lastModified\"]}","depth":6,"bounds":{"left":0.5688165,"top":0.66081405,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"{\"opportunity_sync_period\":\"3m\",\"opportunity_sync_strategies\":[\"lastModified\"]}","depth":7,"bounds":{"left":0.5688165,"top":0.66081405,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.0076462766,"height":0.0},"on_screen":false,"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"open-recently-updated","depth":6,"bounds":{"left":0.5688165,"top":0.6823623,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"open-recently-updated","depth":7,"bounds":{"left":0.5688165,"top":0.6823623,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"538000.00","depth":6,"bounds":{"left":0.5688165,"top":0.7039106,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"538000.00","depth":7,"bounds":{"left":0.5688165,"top":0.7039106,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2483","depth":6,"bounds":{"left":0.5688165,"top":0.7254589,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2483","depth":7,"bounds":{"left":0.5688165,"top":0.7254589,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"98856","depth":6,"bounds":{"left":0.5688165,"top":0.7470072,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"98856","depth":7,"bounds":{"left":0.5688165,"top":0.7470072,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5688165,"top":0.76855546,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5688165,"top":0.76855546,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5688165,"top":0.79010373,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5688165,"top":0.79010373,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5688165,"top":0.81165206,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5688165,"top":0.81165206,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EUR","depth":6,"bounds":{"left":0.5688165,"top":0.83320034,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EUR","depth":7,"bounds":{"left":0.5688165,"top":0.83320034,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2023-12-05 15:00:25","depth":6,"bounds":{"left":0.5688165,"top":0.8547486,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2023-12-05 15:00:25","depth":7,"bounds":{"left":0.5688165,"top":0.8547486,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:45:49","depth":6,"bounds":{"left":0.5688165,"top":0.8762969,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:45:49","depth":7,"bounds":{"left":0.5688165,"top":0.8762969,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-18 10:45:49","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-18 10:45:49","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"id = 209","depth":4,"bounds":{"left":0.43617022,"top":0.1245012,"width":0.08045213,"height":0.014365523},"on_screen":true,"value":"id = 209","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"Editor","depth":4,"bounds":{"left":0.5362367,"top":0.1245012,"width":0.19514628,"height":0.014365523},"on_screen":true,"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"1 row","depth":4,"bounds":{"left":0.42785904,"top":0.09976058,"width":0.017952127,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Reload Page","depth":4,"bounds":{"left":0.4481383,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
4845543847038761331
|
-5321956118013186868
|
visual_change
|
accessibility
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A
1
Select All
209
209
1
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
2026-05-18 10:45:49
187
187
1
<null>
<null>
1
salesforce
salesforce
2026-05-18 10:45:49
enterprise
enterprise
2026-05-18 10:45:49
DEU60
DEU60
2026-05-18 10:45:49
0
0
1
50.0
50.0
2026-05-18 10:45:49
<null>
<null>
2026-05-18 10:45:49
1
1
1
1
1
1
1
1
1
00D0O000000Z4L3UAK
00D0O000000Z4L3UAK
2026-05-18 10:45:49
https://sensation.my.salesforce.com
https://sensation.my.salesforce.com
2026-05-18 10:45:49
2026-03-19 08:17:23
2026-03-19 08:17:23
2026-05-18 10:45:49
2026-05-18 10:44:19
2026-05-18 10:44:19
2026-05-18 10:45:49
2026-05-18 10:44:26
2026-05-18 10:44:26
2026-05-18 10:45:49
2026-05-18 10:44:43
2026-05-18 10:44:43
2026-05-18 10:45:49
2026-05-18 10:44:31
2026-05-18 10:44:31
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
<null>
<null>
2026-05-18 10:45:49
<null>
<null>
2026-05-18 10:45:49
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
Editor
open-recently-updated
open-recently-updated
2026-05-18 10:45:49
538000.00
538000.00
1
2483
2483
1
98856
98856
1
1
1
1
0
0
1
0
0
1
EUR
EUR
2026-05-18 10:45:49
2023-12-05 15:00:25
2023-12-05 15:00:25
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
2026-05-18 10:45:49
id = 209
Editor
1 row
Reload Page...
|
52778
|
NULL
|
NULL
|
NULL
|
|
52780
|
1853
|
14
|
2026-05-18T11:13:41.392173+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102821392_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A
1
Select All
209
209
1
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
enterprise
187
187
1
<null>
<null>
1
salesforce
salesforce
enterprise
enterprise
enterprise
enterprise
DEU60
DEU60
enterprise
0
0
1
50.0
50.0
enterprise
<null>
<null>
enterprise
1
1
1
1
1
1
1
1
1
00D0O000000Z4L3UAK
00D0O000000Z4L3UAK
enterprise
https://sensation.my.salesforce.com
https://sensation.my.salesforce.com
enterprise
2026-03-19 08:17:23
2026-03-19 08:17:23
enterprise
2026-05-18 10:44:19
2026-05-18 10:44:19
enterprise...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"bounds":{"left":0.8753325,"top":0.91300875,"width":0.100398935,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.11037234,"height":0.013567438},"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.072140954,"height":0.013567438},"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"bounds":{"left":0.8753325,"top":0.9481245,"width":0.048204787,"height":0.013567438},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.12533244,"height":0.025538707},"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.83610374,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"bounds":{"left":0.85139626,"top":0.019952115,"width":0.06416223,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.39261967,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"bounds":{"left":0.40259308,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.41223404,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.4195479,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","depth":4,"bounds":{"left":0.15990691,"top":0.12210695,"width":0.2662899,"height":0.87789303},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.42652926,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"209","depth":6,"bounds":{"left":0.5688165,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"209","depth":7,"bounds":{"left":0.5688165,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8","depth":6,"bounds":{"left":0.5688165,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8","depth":7,"bounds":{"left":0.5688165,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"187","depth":6,"bounds":{"left":0.5688165,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"187","depth":7,"bounds":{"left":0.5688165,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5688165,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5688165,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"salesforce","depth":6,"bounds":{"left":0.5688165,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"salesforce","depth":7,"bounds":{"left":0.5688165,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"enterprise","depth":6,"bounds":{"left":0.5688165,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"enterprise","depth":7,"bounds":{"left":0.5688165,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"DEU60","depth":6,"bounds":{"left":0.5688165,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"DEU60","depth":7,"bounds":{"left":0.5688165,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5688165,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5688165,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"50.0","depth":6,"bounds":{"left":0.5688165,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"50.0","depth":7,"bounds":{"left":0.5688165,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5688165,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5688165,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5688165,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5688165,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5688165,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5688165,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5688165,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5688165,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"00D0O000000Z4L3UAK","depth":6,"bounds":{"left":0.5688165,"top":0.44533122,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"00D0O000000Z4L3UAK","depth":7,"bounds":{"left":0.5688165,"top":0.44533122,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"https://sensation.my.salesforce.com","depth":6,"bounds":{"left":0.5688165,"top":0.4668795,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"https://sensation.my.salesforce.com","depth":7,"bounds":{"left":0.5688165,"top":0.4668795,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-03-19 08:17:23","depth":6,"bounds":{"left":0.5688165,"top":0.4884278,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-03-19 08:17:23","depth":7,"bounds":{"left":0.5688165,"top":0.4884278,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:19","depth":6,"bounds":{"left":0.5688165,"top":0.509976,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:19","depth":7,"bounds":{"left":0.5688165,"top":0.509976,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8673985595604105810
|
-9032289990201356863
|
click
|
accessibility
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A
1
Select All
209
209
1
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
enterprise
187
187
1
<null>
<null>
1
salesforce
salesforce
enterprise
enterprise
enterprise
enterprise
DEU60
DEU60
enterprise
0
0
1
50.0
50.0
enterprise
<null>
<null>
enterprise
1
1
1
1
1
1
1
1
1
00D0O000000Z4L3UAK
00D0O000000Z4L3UAK
enterprise
https://sensation.my.salesforce.com
https://sensation.my.salesforce.com
enterprise
2026-03-19 08:17:23
2026-03-19 08:17:23
enterprise
2026-05-18 10:44:19
2026-05-18 10:44:19
enterprise...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
52781
|
1852
|
16
|
2026-05-18T11:13:41.376929+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102821376_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-5078630526324878496
|
-8957306144804336702
|
click
|
hybrid
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpSupport Daily - in 47 m100% <78• Mon 18 May 14:13:40EU (ssh)181DOCKER81DEV (docker)$82DOCKER (docker-compose){"type": "log""@timestamp": "2026-05-18T11:13:36Z"asticsearch","tags" : ["warning"h:9200/"}"data"], "pid" :7,"message"• "Unablerevive connection: [URL_WITH_CREDENTIALS] : "2026-05-18T11:13:36Z", "tags" : ["warning".asticsearch", "data"],"pid":7,"message": "No livingconnections "}kibana{"type" : "log"."@timestamp": "2026-05-18T11:13:36Z""tags": ["error"'plugins""taskManager""taskManager"], "pid" :7, "message" : "Failed to poll'for work: Error: NoLivingconnections"}{"type" : "log""@timestamp": "2026-05-18T11:13:37Z","tags" : ["error"ticsearch""pid" :7, "message" : "[ConnectionError]: getaddrinfo ENOTFOUND elasticseelasticsearch: 9200"}2026-05-18 11:13:29 Running ['artisan'calendar: sync --dateMode=daily11:13:38 Jiminny\Jobs\Calendar\SyncCalendarEvents2026-05-18 11:13:39 Jiminny\Jobs\Calendar\SyncCalendarEvents . 916.56msDONEklbana1 {"type" : "log", "@timestamp" : "2026-05-18T11:13:39Z" , "tags" : ["warning", "elasticsearch","data"], "pid" :7,"message" : "Unableto revive connection: [URL_WITH_CREDENTIALS] : "2026-05-18T11:13:39Z" , "tags" : ["warning", "elasticsearch", "data"], "pid":7, "message": "No livingconnections"}kibanains"1 {"type" : "log""@timestamp": "2026-05-18T11:13:39Z""tags" : ["error","plug, "taskManager", "taskManager"], "pid" :7, "message" : "Failed to pollLivingconnections"?for work: Error: Nokibana1 {"type" : "log","@timestamp": "2026-05-18T11:13:39Z","tags" : ["warning", "elasticsearch", "data"], "pid" :7, "message": "Unable to revive connection: [URL_WITH_CREDENTIALS] "2026-05-18T11:13:39Z", "tags" : ["warning", "elasticsearch", "data"],"pid" :7,'"message" : "No living connections"}1 {"type": "log", "@timestamp": "2026-05-18T11:13:39Z", "tags" : ["error", "plug,"reporting","queue-worker","error"], "pid":7, "message" : "mpau4y7h00070bdf8646mdeo - job querying failed: Error: No Living connections\nat sendReqWithConnection(/usr/share/kibana/node_modules/elasticsearch/src/lib/transport.js:266:15)\n(/usr/share/kibana/node_modules/elasticsearch/src/lib/connection_pool.js:243:7)\nprocess._tickCallback (internal/process/next_tick.js:61:11)"}ticsearch"1 {"type": "log","@timestamp" : "2026-05-18T11:13:39Z""tags" : ["error","data"], "pid" :7, "message" :"[ConnectionError]: getaddrinfo ENOTFOUND elasticseelasticsearch:9200"}docker_lamp_1docker-1amp-1 | 125 DU5F1 '/usr/local/bin/php' 'artisan' calendar:sync --dateMode=daily > '/proc/1/fd/1' 2>&1docker_lamp_1View in Docker Desktop• View ConfigEnable WatchAPP (-zsh)*3screenpipe"O &4Y2PROD (ssh)Run'do-release-upgrade' to upgrade to it.PROD*** System restart required ***Last login: Thu May 14 07:41:362026 from 212.5.153.87lukas@jiminny-prod-bastion:~$ 0X T3 EU (ssh)Enable ESM Apps to receive additional future security updates.See [URL_WITH_CREDENTIALS] 0X T4 STAGE (ssh)See [URL_WITH_CREDENTIALS] ~ $ IX 17 EXT(-zsh)Poetry could not find a pyproject.toml file in /Users/lukas or its parentsEXTENSIONPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ I|...
|
52777
|
NULL
|
NULL
|
NULL
|
|
52782
|
1852
|
17
|
2026-05-18T11:13:44.067721+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102824067_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A
1
Select All
209
209
1
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
enterprise
187
187
1
<null>
<null>
1
salesforce
salesforce
enterprise
enterprise
enterprise
enterprise
DEU60
DEU60
enterprise
0
0
1
50.0
50.0
enterprise
<null>
<null>
enterprise
1
1
1
1
1
1
1
1
1
00D0O000000Z4L3UAK
00D0O000000Z4L3UAK
enterprise
https://sensation.my.salesforce.com
https://sensation.my.salesforce.com
enterprise
2026-03-19 08:17:23
2026-03-19 08:17:23
enterprise
2026-05-18 10:44:19
2026-05-18 10:44:19
enterprise
2026-05-18 10:44:26
2026-05-18 10:44:26
enterprise
2026-05-18 10:44:43
2026-05-18 10:44:43
enterprise
2026-05-18 10:44:31
2026-05-18 10:44:31
enterprise
2026-05-18 10:45:49
2026-05-18 10:45:49
enterprise
<null>
<null>
enterprise
<null>
<null>
enterprise
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
Editor
open-recently-updated
open-recently-updated
enterprise
538000.00
538000.00
1
2483
2483
1
98856
98856
1...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"4","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\DTO\\Invitation;\n\nuse Jiminny\\DTO\\UserEmail;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateInvitationRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\CreateTeamRequest;\nuse Jiminny\\Http\\Requests\\Settings\\Teams\\EditTeamRequest;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\Invitation;\nuse Jiminny\\Models\\Role;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\n\nclass UserInvitationDTO\n{\n use UserEmail;\n\n public string $email;\n public ?string $secondaryEmail;\n public ?int $groupId;\n public int $teamId;\n public bool $crmRequired;\n public array $roleIds;\n public bool $isOwner;\n public ?User $currentUser = null;\n\n /**\n * @param array{\n * email: string,\n * secondaryEmail: string|null,\n * groupId: int|null,\n * teamId: int|string,\n * crmRequired: bool,\n * roleIds: int[],\n * isOwner: bool,\n * user?: User\n * } $attributes\n */\n private function __construct(array $attributes)\n {\n $this->email = mb_strtolower($attributes['email']);\n $this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);\n $this->groupId = $attributes['groupId'];\n $this->teamId = (int) $attributes['teamId'];\n $this->crmRequired = (bool) $attributes['crmRequired'];\n $this->roleIds = $attributes['roleIds'];\n $this->isOwner = $attributes['isOwner'];\n $this->currentUser = $attributes['user'] ?? null;\n }\n\n public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self\n {\n $selectedRole = $request instanceof CreateTeamRequest\n ? $request->getOwnerRole()\n : User::ROLE_RECORDER;\n\n $roleIds = Role::whereIn('name', [\n User::ROLE_ADMIN,\n $selectedRole,\n ])->pluck('id')->toArray();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => $request->getOwnerEmail(),\n 'secondaryEmail' => null,\n 'groupId' => null,\n 'teamId' => $team->getId(),\n 'crmRequired' => true,\n 'roleIds' => $roleIds,\n 'user' => $currentUser,\n 'isOwner' => true,\n ]);\n }\n\n public static function fromRequest(CreateInvitationRequest $request): self\n {\n $data = $request->validated();\n\n $groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;\n $teamId = Team::uuid($data['team_id'])->getId();\n\n /** @var User $currentUser */\n $currentUser = $request->user();\n\n return new self([\n 'email' => mb_strtolower($data['email']),\n 'secondaryEmail' => $data['secondary_email'] ?? null,\n 'groupId' => $groupId,\n 'teamId' => $teamId,\n 'crmRequired' => $data['crm_required'],\n 'roleIds' => $data['roles'],\n 'user' => $currentUser,\n 'isOwner' => false,\n ]);\n }\n\n public static function fromInvitation(Invitation $invitation, User $currentUser): self\n {\n $roles = $invitation->roles()->get();\n $isOwner = $invitation->isOwner();\n\n return new self([\n 'email' => $invitation->email,\n 'secondaryEmail' => $invitation->getSecondaryEmail(),\n 'groupId' => $invitation->group_id,\n 'teamId' => $invitation->team_id,\n 'crmRequired' => $invitation->crm_required,\n 'roleIds' => $roles->pluck('id')->toArray(),\n 'user' => $currentUser,\n 'isOwner' => $isOwner,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"209","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"209","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"187","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"187","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"salesforce","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"salesforce","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"enterprise","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"enterprise","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"DEU60","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"DEU60","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"50.0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"50.0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"00D0O000000Z4L3UAK","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"00D0O000000Z4L3UAK","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"https://sensation.my.salesforce.com","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"https://sensation.my.salesforce.com","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-03-19 08:17:23","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-03-19 08:17:23","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:19","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:19","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:26","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:26","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:43","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:43","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:44:31","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:44:31","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2026-05-18 10:45:49","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2026-05-18 10:45:49","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"{\"opportunity_sync_period\":\"3m\",\"opportunity_sync_strategies\":[\"lastModified\"]}","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"{\"opportunity_sync_period\":\"3m\",\"opportunity_sync_strategies\":[\"lastModified\"]}","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"Editor","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.015972223,"height":0.14666666},"on_screen":false,"role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"open-recently-updated","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"open-recently-updated","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"enterprise","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"enterprise","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"538000.00","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"538000.00","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2483","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2483","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"98856","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"98856","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6555927210405120411
|
-9068880637664213567
|
visual_change
|
accessibility
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\DTO\Invitation;
use Jiminny\DTO\UserEmail;
use Jiminny\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Jiminny\Http\Requests\Settings\Teams\CreateTeamRequest;
use Jiminny\Http\Requests\Settings\Teams\EditTeamRequest;
use Jiminny\Models\Group;
use Jiminny\Models\Invitation;
use Jiminny\Models\Role;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserInvitationDTO
{
use UserEmail;
public string $email;
public ?string $secondaryEmail;
public ?int $groupId;
public int $teamId;
public bool $crmRequired;
public array $roleIds;
public bool $isOwner;
public ?User $currentUser = null;
/**
* @param array{
* email: string,
* secondaryEmail: string|null,
* groupId: int|null,
* teamId: int|string,
* crmRequired: bool,
* roleIds: int[],
* isOwner: bool,
* user?: User
* } $attributes
*/
private function __construct(array $attributes)
{
$this->email = mb_strtolower($attributes['email']);
$this->secondaryEmail = $this->normalizeNullable($attributes['secondaryEmail']);
$this->groupId = $attributes['groupId'];
$this->teamId = (int) $attributes['teamId'];
$this->crmRequired = (bool) $attributes['crmRequired'];
$this->roleIds = $attributes['roleIds'];
$this->isOwner = $attributes['isOwner'];
$this->currentUser = $attributes['user'] ?? null;
}
public static function forOwner(CreateTeamRequest|EditTeamRequest $request, Team $team): self
{
$selectedRole = $request instanceof CreateTeamRequest
? $request->getOwnerRole()
: User::ROLE_RECORDER;
$roleIds = Role::whereIn('name', [
User::ROLE_ADMIN,
$selectedRole,
])->pluck('id')->toArray();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => $request->getOwnerEmail(),
'secondaryEmail' => null,
'groupId' => null,
'teamId' => $team->getId(),
'crmRequired' => true,
'roleIds' => $roleIds,
'user' => $currentUser,
'isOwner' => true,
]);
}
public static function fromRequest(CreateInvitationRequest $request): self
{
$data = $request->validated();
$groupId = isset($data['group_id']) ? Group::uuid($request->input('group_id'))->getId() : null;
$teamId = Team::uuid($data['team_id'])->getId();
/** @var User $currentUser */
$currentUser = $request->user();
return new self([
'email' => mb_strtolower($data['email']),
'secondaryEmail' => $data['secondary_email'] ?? null,
'groupId' => $groupId,
'teamId' => $teamId,
'crmRequired' => $data['crm_required'],
'roleIds' => $data['roles'],
'user' => $currentUser,
'isOwner' => false,
]);
}
public static function fromInvitation(Invitation $invitation, User $currentUser): self
{
$roles = $invitation->roles()->get();
$isOwner = $invitation->isOwner();
return new self([
'email' => $invitation->email,
'secondaryEmail' => $invitation->getSecondaryEmail(),
'groupId' => $invitation->group_id,
'teamId' => $invitation->team_id,
'crmRequired' => $invitation->crm_required,
'roleIds' => $roles->pluck('id')->toArray(),
'user' => $currentUser,
'isOwner' => $isOwner,
]);
}
}
A
1
Select All
209
209
1
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
7e026f3e-0df0-4b6f-98cf-9fef5f70bdd8
enterprise
187
187
1
<null>
<null>
1
salesforce
salesforce
enterprise
enterprise
enterprise
enterprise
DEU60
DEU60
enterprise
0
0
1
50.0
50.0
enterprise
<null>
<null>
enterprise
1
1
1
1
1
1
1
1
1
00D0O000000Z4L3UAK
00D0O000000Z4L3UAK
enterprise
https://sensation.my.salesforce.com
https://sensation.my.salesforce.com
enterprise
2026-03-19 08:17:23
2026-03-19 08:17:23
enterprise
2026-05-18 10:44:19
2026-05-18 10:44:19
enterprise
2026-05-18 10:44:26
2026-05-18 10:44:26
enterprise
2026-05-18 10:44:43
2026-05-18 10:44:43
enterprise
2026-05-18 10:44:31
2026-05-18 10:44:31
enterprise
2026-05-18 10:45:49
2026-05-18 10:45:49
enterprise
<null>
<null>
enterprise
<null>
<null>
enterprise
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
{"opportunity_sync_period":"3m","opportunity_sync_strategies":["lastModified"]}
Editor
open-recently-updated
open-recently-updated
enterprise
538000.00
538000.00
1
2483
2483
1
98856
98856
1...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
52783
|
1852
|
18
|
2026-05-18T11:13:52.759229+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102832759_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6367157432547921988
|
-6270221016123435710
|
click
|
hybrid
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKER81DEV (docker)$82X t1DOCKER (docker-compose)kibana{"type":"log""@timestamp": "2026-05-18T11:13:47Z","tags" : ["error""elasticsearch", "data"],"pid" :7,"message":"[ConnectionError]: getaddrinfo ENOTFOUND elasticseelasticsearch:9200"}1 {"type" : "log""@timestamp": "2026-05-18T11:13:48Z""tags" : ["warning".asticsearch", "data"], "pid" :7, "message": "Unable to revive connection:[URL_WITH_CREDENTIALS] : "2026-05-18T11:13:48Z", "tags" : ["warning"asticsearch", "data"],"pid" :7,"message": "Noconnections"}kibana1 {"type" : "log","@timestamp":"2026-05-18T11:13:48Z""tags" : ["error"ins",, "taskManager"Living connections" }"taskManager"], "pid":7, "message":"Failed to pollfor work: Error: No1 {"type" : "log","@timestamp": "2026-05-18T11:13:48Z", "tags" : ["warning", "elasticsearch", "data"], "pid" :7,"message" : "Unable to revive connection: [URL_WITH_CREDENTIALS] : "2026-05-18T11:13:48Z", "tags" : ["warning", "elasticsearch", "data"], "pid":7, "message":"No livingconnections"}kibana1 {"type":"log","@timestamp":"2026-05-18T11:13:48Z"ugins""licensing"],,"tags" : ["warning""pid":7, "message":"License information could not be obtained from Elasticsearch due to Error: No Living connections error"}kibana1 {"type": "log","@timestamp": "2026-05-18T11:13:49Z", "tags" : ["warning"asticsearch", "monitoring"],"pid":7, "message": "Unable to revive connection: [URL_WITH_CREDENTIALS] "2026-05-18T11:13:49Z","tags" : ["warning"asticsearch","monitoring"],"pid":7,"message" : "No living connections"}kibanaugins"1 {"type": "log", "@timestamp": "2026-05-18T11:13:49Z""tags" : ["warning", "pl,"licensing"], "pid" :7, "message" : "License information could not beasticsearch due to Error: No Living connectionskibana1 {"type": "log"."@timestamp": "2026-05-18T11:13:49Z","tags" : ["error"ticsearch", "data"], "pid":7, "message" :"[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch: 9200"}kibanaI {"type" : "log", "@timestamp" : "2026-05-18T11:13:51Z""tags" : ["warning", "elasticsearch", "data"], "pid" :7, "message": "Unable to revive connection: [URL_WITH_CREDENTIALS] "2026-05-18T11:13:51Z", "tags" : ["warning", "elasticsearch", "data"], "pid":7, "message": "No livingconnections"}kibanains"I {"type" : "log", "@timestamp" : "2026-05-18T11:13:51Z""tags" : ["error", "taskManager""taskManager"], "pid" :7, "message" : "Failed to pollfor work: Error: NoLiving connections"}kibana1 {"type": "log", "@timestamp": "2026-05-18T11:13:52Z","tags" : ["error", "elasticsearch", "data"],"pid" :7, "message": "[ConnectionError]: getaddrinfo ENOTFOUND elasticsearch elasticsearch:9200"}Support Daily - in 47 mEU (ssh)APP (-zsh)*3PROD (ssh)Run'do-release-upgrade' to upgrade to it.100% <78• Mon 18 May 14:13:52screenpipe"T₴1O ₴4PROD*** System restart required ***Last login: Thu May 14 07:41:362026 from 212.5.153.87lukas@jiminny-prod-bastion:~$X T3 EU (ssh)Enable ESM Apps to receive additional future security updates.See [URL_WITH_CREDENTIALS] 0X T4 STAGE (ssh)See [URL_WITH_CREDENTIALS] ~ $ IEXT (-zsh)Poetry could not find a pyproject.toml file in /Users/lukas or its parentsPoetry could not find a pyproject.tomlfile in /Users/lukas or its parentslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ [|FRONTENDEXTENSIONView in Docker Desktop• View ConfigEnable Watch...
|
52782
|
NULL
|
NULL
|
NULL
|
|
52784
|
1853
|
15
|
2026-05-18T11:13:52.759647+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-18/1779 /Users/lukas/.screenpipe/data/data/2026-05-18/1779102832759_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide...
|
[{"role":"AXStaticText","text& [{"role":"AXStaticText","text":"1 file committed","depth":2,"bounds":{"left":0.8753325,"top":0.91300875,"width":0.100398935,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXTextField","text":"JY-20613 code review suggestions","depth":3,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.11037234,"height":0.013567438},"on_screen":true,"value":"JY-20613 code review suggestions","help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"bounds":{"left":0.8753325,"top":0.92897046,"width":0.072140954,"height":0.013567438},"on_screen":true,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"text/html","depth":4,"on_screen":false,"help_text":"text/html","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Edit Commit Message…","depth":2,"bounds":{"left":0.8753325,"top":0.9481245,"width":0.048204787,"height":0.013567438},"on_screen":true,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12092 on JY-20613-allow-owner-role-on-team-setup, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.12533244,"height":0.025538707},"on_screen":true,"help_text":"Pull request #12092 exists for current branch JY-20613-allow-owner-role-on-team-setup","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.83610374,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UserInvitationDTOTest","depth":6,"bounds":{"left":0.85139626,"top":0.019952115,"width":0.06416223,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'UserInvitationDTOTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-257534577539475199
|
-8703134240829367358
|
click
|
hybrid
|
NULL
|
1 file committed
JY-20613 code review suggestions
1 file committed
JY-20613 code review suggestions
text/html
text/html
text/html
Edit Commit Message…
Project: faVsco.js, menu
#12092 on JY-20613-allow-owner-role-on-team-setup, menu
Start Listening for PHP Debug Connections
UserInvitationDTOTest
Run 'UserInvitationDTOTest'
Debug 'UserInvitationDTOTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
PhpStormVIewINavigarecodeKeractorFV faVsco.js( #12092 on JY-20613-allow-owner-role-on-team-setupProiectpip apl.onpM MakerilleMatcnActviycmmbata.ongpackage- ock.isonE phpstan.neon.dist= phostan-oaseline.neon<» phpunit.xmlleraw_sqL_query.sqMIREADME.mdsonar-project.propertiesE test.py<> Untitled Diagram.xmlIs vetur.config.jsMLWERHOOK SILTERING IMPLEMENTATION.mo> ib External Librariesv E Scratches and Consolesv C Database ConsolesV A EU& console cUlA DEAL RISKS [EU]&DI LUIALu Lu& iminny@localhost& console [iiminnv@localhosti4 D/liminny@localhost4 HS_local liiminnv@localhostl4 S= liminnv@localhostlA zoho dev liminnv@localhostiV APRODconsole (PrODconsole 1PRODIA DIIPRODIServicacv M DatahaccV AEU#console z s 112 mstii crm_configurations 1 s 776 msv A jiminny@localhostA HS localA, 5V APROD« console 4 siui users 2 s 554 ms& STAGING« console 1s 934 mgg, DockerWindowC) User.pnpUserinvitationDTOTest.php= custom.log= laravel.log4 SF jiminny@localhost]& console [STAGING]« HS_local [jiminny@localhost](c) Client.ong© ClientTest.php© EditTeamRequest.phpA console [PROD]ii users [PROD]© Kernel.phpA console [EU] x iii crm_configurations [EU] xUserinvitationDlo.pnp x1rwvGOUlt-sgTTx: AutovDDLA2V4A• Y- WHERE id = 209=•URDER BYDidMuuid (UUID with time-low and time-high swapped) ÷No team_ 1dIo notifiable user 1oprovider1 edition(• instanceis sandboxll versionШ installed_app_version! sync_metadatasync obiectsT auto sync activityI crm provider iderm base urlO last_synced_at#leads_synced_at— I accounts synced_at2097e026f3e-0df0-4b6f-98cf-9fef5f70bdd8187salesforceenterpriseDEU60501.0<nul>00000000000Z4L3UAKhttps:/sensation.mv.salesforce.com2026-03-19 08-17-232026-05-18 10:44:192026-05-18 10:44:26I contacts sunced at2026-05-18 10:44:43onportunities suncedat2026-05-18 10:44134namespace Jiminny DTO Invitation:class UserinvitationdTOuse UserEmatl.public string Semail;public ?string $secondaryEmail;public ?int $groupld;public int SteamId;public bool ScrmRequiredpuouic array srolelaspuoLic bool sisuwner,public ?User $currentUser = null;* Qparam arrayfemail: string,secondaryEmail: string/null.groupld: int/null,teamid: 1ntstring.2026-05-18 14:15:35 Connectedi2026-05-18 14:13:35 Timinnv> use Timinnv2026-05-18 14:13:36 comoleted in 69 mg2026-05-18 14-13:36 Giminnv> SELECT T*FROM iminny.com confaurations tWHERE id = 209LTMTT 501[2026-05-18 14:13:37] 1 row retrieved starting from 1 in 676 ms (execution: 113 ms, fetching: 563 ms)Cascade• supoont Dally • In 47m• Mon 18 May 14:13:52Implement Trial Owne100% LzUserinvitationDTOTest vFixing Redis Rate LimCascade+0 ..Caccado Codo & 4 .Kick off a new proiect. Make changesdcross vour entire codebaseC Fixing Redis Rate Limit ErroImplement Trial Owner Role Selection© Migrating to Pipedrive SDK v2<> CodeSWE-1.6# 1 file committedJY-20613 code review suggestionsEdit Commit Messaae.WN Windeur Toam...
|
52780
|
NULL
|
NULL
|
NULL
|
|
70513
|
2532
|
11
|
2026-05-22T10:14:23.980759+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-22/1779 /Users/lukas/.screenpipe/data/data/2026-05-22/1779444863980_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScripts|ProfilesWindowHe iTerm2ShellEditViewSessionScripts|ProfilesWindowHelp• 0APP (-zsh)DOCKERDEV (-zsh)О ₴2APP (-zsh)screenpipe"84front-end/src/components/shared/AskAnything/.tests__/__snapshots../AskAnythingSettingsDrawer.spec.js.snapfront-end/src/components/shared/AskAnything/prompts.jsfront-end/src/components/shared/AskAnything/useAskAnything.jsfront-end/src/components/shared/SavedSearchModal/__mocks_/saved-searches.jsfront-end/src/components/shared/SavedSearchModal/__tests_._/SavedSearchModal.spec.jsfront-end/src/components/shared/SavedSearchModal/useSavedSearch.jsfront-end/src/store/modules/playback/mutations.jstests/Feature/DTO/UserInvitationDTOTest.phptests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.phptests/Unit/Component/ES/AsyncUpdateElasticSearchTest.phptests/Unit/Component/ES/Processor/BatchStatusManagerTest.phptests/Unit/Component/ES/Processor/DT0s/SelectionListTest.phptests/Unit/Component/ES/Processor/RedisEntityExtractorTest.phptests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.phptests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.phptests/Unit/Component/ES/Processor/Traits/WorkerIdTraitTest.phptests/Unit/Component/ES/QueuePriorityEnumTest.phptests/Unit/Component/ES/UpdateProcessManagerTest.phptests/Unit/Component/Transcription/Service/TranscriptionServiceTest.phptests/Unit/Notifications/Activities/SmsReceivedTest.phptests/Unit/Services/Activity/RingCentral/ServiceTest.phptests/Unit/Services/Activity/TwilioVideo/ServiceTest.phptests/Unit/Services/Activity/TwilioVideo/TwilioVideoMetadataHandlerTest.phptests/Unit/Services/Kiosk/AutomatedReports/AutomatedReportsServiceTest.phptests/Unit/Services/Mail/Office/EmailApiClientTest.phptests/Unit/Services/Mail/TextRelayServiceTest.phptests/Unit/Services/RecallAI/RecallAIServiceTest.php1382111+6055165++-37+*2416144106438432364+++10231+++--+-50+++339++++++*67+++-24738625444 +++=++++=++++++++++++++++++++++-++++++++++++79 files changed, 4254 insertions(+), 2020 deletions(-)create mode 100644 .github/claude-reviewer/no-ticket-warning.txtcreate mode 100644.github/claude-reviewer/scripts/fetch-jira-context.mjsdelete mode 100644 app/Component/ES/Processor/BatchStatusInterface.phpcreatemode 100644 app/Component/ES/Processor/RedisEntityExtractor.phpdelete mode100644 app/Component/ES/Processor/Traits/WorkerIdTrait.phpcreate mode100644 app/Component/ES/QueuePriorityEnum.phpcreate mode 100644 front-end/src/components/DealInsights/Modals/__tests__/AskAnythingModal.spec.jscreate mode100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.htmldelete mode 100644 front-end/src/components/shared/AskAnything/__tests_/__snapshots__/AskAnythingSettingsDrawer.spec.js.snapcreate mode 100644 tests/Unit/Component/ES/Processor/RedisEntityExtractorTest.phpdelete mode 100644 tests/Unit/Component/ES/Processor/Traits/WorkerIdTraitTest.phpcreate mode 100644 tests/Unit/Component/ES/QueuePriorityEnumTest.phpcreate mode 100644 tests/Unit/Notifications/Activities/SmsReceivedTest.phpcreate mode 100644 tests/Unit/Services/Mail/TextRelayServiceTest.phplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20963-fix-import-on-deleted-entitySwitched to a new branch 'JY-20963-fix-import-on-deleted-entity'ukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/jiminny/app (JY-20963-fix-import-on-deleted-entity) $ |lohl-zsh₴5100% C47 8• Fri 22 May 13:14:23181ssh₴6APP...
|
NULL
|
5187681439595410053
|
NULL
|
typing_pause
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScripts|ProfilesWindowHe iTerm2ShellEditViewSessionScripts|ProfilesWindowHelp• 0APP (-zsh)DOCKERDEV (-zsh)О ₴2APP (-zsh)screenpipe"84front-end/src/components/shared/AskAnything/.tests__/__snapshots../AskAnythingSettingsDrawer.spec.js.snapfront-end/src/components/shared/AskAnything/prompts.jsfront-end/src/components/shared/AskAnything/useAskAnything.jsfront-end/src/components/shared/SavedSearchModal/__mocks_/saved-searches.jsfront-end/src/components/shared/SavedSearchModal/__tests_._/SavedSearchModal.spec.jsfront-end/src/components/shared/SavedSearchModal/useSavedSearch.jsfront-end/src/store/modules/playback/mutations.jstests/Feature/DTO/UserInvitationDTOTest.phptests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.phptests/Unit/Component/ES/AsyncUpdateElasticSearchTest.phptests/Unit/Component/ES/Processor/BatchStatusManagerTest.phptests/Unit/Component/ES/Processor/DT0s/SelectionListTest.phptests/Unit/Component/ES/Processor/RedisEntityExtractorTest.phptests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.phptests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.phptests/Unit/Component/ES/Processor/Traits/WorkerIdTraitTest.phptests/Unit/Component/ES/QueuePriorityEnumTest.phptests/Unit/Component/ES/UpdateProcessManagerTest.phptests/Unit/Component/Transcription/Service/TranscriptionServiceTest.phptests/Unit/Notifications/Activities/SmsReceivedTest.phptests/Unit/Services/Activity/RingCentral/ServiceTest.phptests/Unit/Services/Activity/TwilioVideo/ServiceTest.phptests/Unit/Services/Activity/TwilioVideo/TwilioVideoMetadataHandlerTest.phptests/Unit/Services/Kiosk/AutomatedReports/AutomatedReportsServiceTest.phptests/Unit/Services/Mail/Office/EmailApiClientTest.phptests/Unit/Services/Mail/TextRelayServiceTest.phptests/Unit/Services/RecallAI/RecallAIServiceTest.php1382111+6055165++-37+*2416144106438432364+++10231+++--+-50+++339++++++*67+++-24738625444 +++=++++=++++++++++++++++++++++-++++++++++++79 files changed, 4254 insertions(+), 2020 deletions(-)create mode 100644 .github/claude-reviewer/no-ticket-warning.txtcreate mode 100644.github/claude-reviewer/scripts/fetch-jira-context.mjsdelete mode 100644 app/Component/ES/Processor/BatchStatusInterface.phpcreatemode 100644 app/Component/ES/Processor/RedisEntityExtractor.phpdelete mode100644 app/Component/ES/Processor/Traits/WorkerIdTrait.phpcreate mode100644 app/Component/ES/QueuePriorityEnum.phpcreate mode 100644 front-end/src/components/DealInsights/Modals/__tests__/AskAnythingModal.spec.jscreate mode100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.htmldelete mode 100644 front-end/src/components/shared/AskAnything/__tests_/__snapshots__/AskAnythingSettingsDrawer.spec.js.snapcreate mode 100644 tests/Unit/Component/ES/Processor/RedisEntityExtractorTest.phpdelete mode 100644 tests/Unit/Component/ES/Processor/Traits/WorkerIdTraitTest.phpcreate mode 100644 tests/Unit/Component/ES/QueuePriorityEnumTest.phpcreate mode 100644 tests/Unit/Notifications/Activities/SmsReceivedTest.phpcreate mode 100644 tests/Unit/Services/Mail/TextRelayServiceTest.phplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20963-fix-import-on-deleted-entitySwitched to a new branch 'JY-20963-fix-import-on-deleted-entity'ukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/jiminny/app (JY-20963-fix-import-on-deleted-entity) $ |lohl-zsh₴5100% C47 8• Fri 22 May 13:14:23181ssh₴6APP...
|
70506
|
NULL
|
NULL
|
NULL
|
|
70514
|
2533
|
10
|
2026-05-22T10:14:24.084981+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-22/1779 /Users/lukas/.screenpipe/data/data/2026-05-22/1779444864084_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhpStormFV faVsco.jsProject=.prettierianoreE.winds PhpStormFV faVsco.jsProject=.prettierianoreE.windsurfrulesphpide helper.phpphpdenelver_models.onoVIewINavicarecodeLaravelKeractorTOOIS°9 JY-20963-fix-import-on-deleted-entity© Service.php XTDeleteObiects/rait.ong© DeleteOpportunityJob.php© SoftDeletes.phpMatcnActviycmmbata.png© CrmActivityService.php© RecordSelector.php© Activity.php15.05.23 Staclass Service extends BaseService implements m411 1130 v.3 v.21 A V= laravel.log4 SF jiminny@localhost]4 HS_local [jiminny@localhost]& console [PROD]# console leuxA console [STAGING]Tx: Auto va.created_at > DATE_SUB(NOWO, INTERVAL 30 DAY)UP BY u.id, u.email, u.name, u.softphone_numberER BY sms_count DESCSo jiminny v031 A9 A28 V 3 X 108 ^M^ CLAUDE.mdcomooser.isoncomooser.locku dependency-checker.jsondevison=ids.tyt=infection.ison.distMLINSTALLmdMLINTERNA WERHOOk SFTUP mdEjiminny_storageML.licenses.mdlM MakefileJ package-lock.jsonE phpstan.neon.distE phostan-baseline.neon<>phpunit.xmlTa raw sal_query.saM+README.md{ sonar-project.propertiesE test.py<› Untitied Diacram.xmiivetur.config.jsm. WEBHOOK FILTERNG_MPLEMENTATION.md> ih External Librariesv E° Scratches and Consolesv M Database ConsolesVAEUIconsole I=UlDEAL RISKS (EUIA DI (EU]AFIIIFIN28.02.19 iva10.04.24 Vasilev14.03.25 Ivanov16.04.25 Ivanov16.04.25 Ivanov16.04.25 Ivanov28.02.19 Iva28.02.19 iva19.04.24 Granam28.02.19 iva16.05.25 ilian16.05.25 ilian16.05.2o llan16.05.25 ilian16.05.2o llan16.05.2s llan4.00.7915.03.17 Graham4.06.19Graham27.09.24 Vasilev27.09.24 Vasilev7-10257.10.259.10.25157815791580158115821583) .159615971[PHONE]0116011602= Saccount→›id ?? null,= Sprofile?->user_id,—1691"owner id'=> $crmData['OwnerId'] ?? null₴ 1698=> (ScrmData['Name'] ?? null) !== nulz 1699ititle'email'=> (ScrmData['Title'] ?? null) !== nu= 170€=> (ScrmData('Email'] ?? null) !== null1701=> $countryCode"phone=> $parsedNumber['phone'] ?? null,•1703=> $ext,"mobile_pnone"=> $mobileNumber,'photo_path' => $this->prospectPhotoPathService->get0rGenenat 170€crmcontiquration: sch1s->cont19crmProviderId: ScrmData['Id']modellype: concact::classfileName: $crmData['Id'],avatarText: ScrmData['Name']=17071708=1709171617111712ECT DISTINCT u.id, u.email, u.name, u.team id, t.name as team_namet.twilio_sms_sid. t.twilio_messaging_sidER JOIN teams t 1..n<->1: ON u.team id = t.idRE (t.twilio sms sid IS NOT NULL OR t.twilio messaging sid IS NOT NULL)ER BY t.name, U.emanlsECT * FROM teams WHERE name LIKE "%Tourlane%"; # 187, 209, 8150, [EMAIL](u.id, CASE WHEN V.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id'remotely creared ar' = screareduareu.emailsa.*,t.owner_id FROM social_accounts saNusene t on tiid= cacociahle 1dN teams t 1.n<->1: on t.id = u.team_idRE u.team_id = 187 and sa.provider = 'salesforce':sthis->restoreAnytrashedentity(Sthis->config->contacts), $crmQat 1716/** @var Contact $contact */-1/14-17191717 /1718Sthis->handle0bnectDeletionScontact. Scrmlatad:ect * from activities where id = 31264367:ect * from contacts where id = 6331639:ect * from accounts where id = 4156632;ect * from opportunities where id = 4843610;pdate 'activitiesset'account id' = 4156632.'contact id' = 6331639, 'opportunity id' = 4843610.stage id' = 13273."'updated at' = 2026-05-22 07:16:17 where 'id' = 31264367)"16041if (Scontact->trashedOnreturn null710.2517.10.25160616071408|return $contact:Services7 OutoutfFR liminnv.opportunitiesMh liminnv activities 2•' # [PHONE]2FFR #12015FFR # and sa provider = 'salesloft'.AER # 125552 - Event Sta…tus - Event StatuscfR liminnv.crm_field_ valuesfFR liminny activitiesv [ DatabaseV dEU« console 1s 207 msv /iiminny@localhost& HS locallA PRODA, console 1 s 542 msv d STAGINGdconsoleg, DockerfW 1rowvgonl+=Tx: Autoi account idI contact id. opportunity id18 stago idTiE valmoI crm confiquration idI crm provider idM lanquaae<nul1>6331639<null<nul1>enulls320<null>100% 28• Fri 22 May 13:14:24AskJiminnyReportActivityServiceTest vCascadeInvestigate Foreign Ke+O •Give me the lira ticket and the descriptionJira Ticket:JY-XXXXX: Fix foreign key violation when matching activities to deleted Salesforce opportunitieshen an opportunity is deleted in Salesforce and the local deletion job runs, activities that belonged to that opportunity arematched via the RematchActivity0nCrmObjectDetach listener. During this rematch, the system attempts to re-link thendleObjectDeletion (because IsDeleted = truel)The deleted opportunity's ID is then used in Activity: :updateActivityCrmData to set activity.opportunity_id,causina a foreian key violation because the opportunity no longer exists in the datab:The FixAdded checks in importLead. importAccount. importOpportunity. and importContact methods to return null if theentty was deleted oy hand leudiectbeletionSthis->handle0biectDeletion(Sopportunity, ScrmData):if (Sopportunity->trashed)) {return null:return Sopportunity:Ask anything (J+L)€ :esvvSUM: 320 20:1 W Windsurf Teams 1717:17 UTF-8Aensod...
|
NULL
|
8285907628182951708
|
NULL
|
typing_pause
|
ocr
|
NULL
|
PhpStormFV faVsco.jsProject=.prettierianoreE.winds PhpStormFV faVsco.jsProject=.prettierianoreE.windsurfrulesphpide helper.phpphpdenelver_models.onoVIewINavicarecodeLaravelKeractorTOOIS°9 JY-20963-fix-import-on-deleted-entity© Service.php XTDeleteObiects/rait.ong© DeleteOpportunityJob.php© SoftDeletes.phpMatcnActviycmmbata.png© CrmActivityService.php© RecordSelector.php© Activity.php15.05.23 Staclass Service extends BaseService implements m411 1130 v.3 v.21 A V= laravel.log4 SF jiminny@localhost]4 HS_local [jiminny@localhost]& console [PROD]# console leuxA console [STAGING]Tx: Auto va.created_at > DATE_SUB(NOWO, INTERVAL 30 DAY)UP BY u.id, u.email, u.name, u.softphone_numberER BY sms_count DESCSo jiminny v031 A9 A28 V 3 X 108 ^M^ CLAUDE.mdcomooser.isoncomooser.locku dependency-checker.jsondevison=ids.tyt=infection.ison.distMLINSTALLmdMLINTERNA WERHOOk SFTUP mdEjiminny_storageML.licenses.mdlM MakefileJ package-lock.jsonE phpstan.neon.distE phostan-baseline.neon<>phpunit.xmlTa raw sal_query.saM+README.md{ sonar-project.propertiesE test.py<› Untitied Diacram.xmiivetur.config.jsm. WEBHOOK FILTERNG_MPLEMENTATION.md> ih External Librariesv E° Scratches and Consolesv M Database ConsolesVAEUIconsole I=UlDEAL RISKS (EUIA DI (EU]AFIIIFIN28.02.19 iva10.04.24 Vasilev14.03.25 Ivanov16.04.25 Ivanov16.04.25 Ivanov16.04.25 Ivanov28.02.19 Iva28.02.19 iva19.04.24 Granam28.02.19 iva16.05.25 ilian16.05.25 ilian16.05.2o llan16.05.25 ilian16.05.2o llan16.05.2s llan4.00.7915.03.17 Graham4.06.19Graham27.09.24 Vasilev27.09.24 Vasilev7-10257.10.259.10.25157815791580158115821583) .159615971[PHONE]0116011602= Saccount→›id ?? null,= Sprofile?->user_id,—1691"owner id'=> $crmData['OwnerId'] ?? null₴ 1698=> (ScrmData['Name'] ?? null) !== nulz 1699ititle'email'=> (ScrmData['Title'] ?? null) !== nu= 170€=> (ScrmData('Email'] ?? null) !== null1701=> $countryCode"phone=> $parsedNumber['phone'] ?? null,•1703=> $ext,"mobile_pnone"=> $mobileNumber,'photo_path' => $this->prospectPhotoPathService->get0rGenenat 170€crmcontiquration: sch1s->cont19crmProviderId: ScrmData['Id']modellype: concact::classfileName: $crmData['Id'],avatarText: ScrmData['Name']=17071708=1709171617111712ECT DISTINCT u.id, u.email, u.name, u.team id, t.name as team_namet.twilio_sms_sid. t.twilio_messaging_sidER JOIN teams t 1..n<->1: ON u.team id = t.idRE (t.twilio sms sid IS NOT NULL OR t.twilio messaging sid IS NOT NULL)ER BY t.name, U.emanlsECT * FROM teams WHERE name LIKE "%Tourlane%"; # 187, 209, 8150, [EMAIL](u.id, CASE WHEN V.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id'remotely creared ar' = screareduareu.emailsa.*,t.owner_id FROM social_accounts saNusene t on tiid= cacociahle 1dN teams t 1.n<->1: on t.id = u.team_idRE u.team_id = 187 and sa.provider = 'salesforce':sthis->restoreAnytrashedentity(Sthis->config->contacts), $crmQat 1716/** @var Contact $contact */-1/14-17191717 /1718Sthis->handle0bnectDeletionScontact. Scrmlatad:ect * from activities where id = 31264367:ect * from contacts where id = 6331639:ect * from accounts where id = 4156632;ect * from opportunities where id = 4843610;pdate 'activitiesset'account id' = 4156632.'contact id' = 6331639, 'opportunity id' = 4843610.stage id' = 13273."'updated at' = 2026-05-22 07:16:17 where 'id' = 31264367)"16041if (Scontact->trashedOnreturn null710.2517.10.25160616071408|return $contact:Services7 OutoutfFR liminnv.opportunitiesMh liminnv activities 2•' # [PHONE]2FFR #12015FFR # and sa provider = 'salesloft'.AER # 125552 - Event Sta…tus - Event StatuscfR liminnv.crm_field_ valuesfFR liminny activitiesv [ DatabaseV dEU« console 1s 207 msv /iiminny@localhost& HS locallA PRODA, console 1 s 542 msv d STAGINGdconsoleg, DockerfW 1rowvgonl+=Tx: Autoi account idI contact id. opportunity id18 stago idTiE valmoI crm confiquration idI crm provider idM lanquaae<nul1>6331639<null<nul1>enulls320<null>100% 28• Fri 22 May 13:14:24AskJiminnyReportActivityServiceTest vCascadeInvestigate Foreign Ke+O •Give me the lira ticket and the descriptionJira Ticket:JY-XXXXX: Fix foreign key violation when matching activities to deleted Salesforce opportunitieshen an opportunity is deleted in Salesforce and the local deletion job runs, activities that belonged to that opportunity arematched via the RematchActivity0nCrmObjectDetach listener. During this rematch, the system attempts to re-link thendleObjectDeletion (because IsDeleted = truel)The deleted opportunity's ID is then used in Activity: :updateActivityCrmData to set activity.opportunity_id,causina a foreian key violation because the opportunity no longer exists in the datab:The FixAdded checks in importLead. importAccount. importOpportunity. and importContact methods to return null if theentty was deleted oy hand leudiectbeletionSthis->handle0biectDeletion(Sopportunity, ScrmData):if (Sopportunity->trashed)) {return null:return Sopportunity:Ask anything (J+L)€ :esvvSUM: 320 20:1 W Windsurf Teams 1717:17 UTF-8Aensod...
|
70512
|
NULL
|
NULL
|
NULL
|
|
70515
|
2533
|
11
|
2026-05-22T10:14:27.966276+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-22/1779 /Users/lukas/.screenpipe/data/data/2026-05-22/1779444867966_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhpStormFV faVsco.jsProject=.prettierianoreE.winds PhpStormFV faVsco.jsProject=.prettierianoreE.windsurfrulesVIewINavicarecodeKeractorTOOIS?9 JY-20963-fix-import-on-deleted-entity© Service.php X© DeleteOpportunityJob.phpT SoftDeletes.phpMatcnActviycmmbata.png© CrmActivityService.php© RecordSelector.php© Activity.php15.05.23 Staclass service excenas baseservice inplements w411 4130 v.3 v.21 ^phpide helper.phpphpdenelver_models.ono28.02.19 iva10.04.74 VasilevM^ CLAUDE.mdcomooser.ison14.03.25 Ivanov16.04.25 Ivanovcomooser.lock16.04.25 Ivanovu dependency-checker.json16.04.25 Ivanovdevison=ids.tyt=infection.ison.dist28.02.19 Iva28.02.19 ivaMLINSTALLmdMLINTERNA WERHOOk SFTUP md19.04.44 Oranam28.02.19 ivaEjiminny_storageM..licenses.mdM MakefileJ package-lock.jsonE phpstan.neon.distE phostan-baseline.neon<>phpunit.xmlTa raw sal_query.salM+ README.md{ sonar-project.propertiesE test.py<› Untitied Diacram.xmiiis vetur.confia.is16.05.25 ilian16.05 25 Alian16.05.2o llan15771157815791580158115821[PHONE]515861587158815891598= Saccount→›id ?? null,= Sprofile?->user_id"owner id'=> $crmData['OwnerId'] ?? null=> (ScrmData['Name'] ?? null) !== nulbititle=> (ScrmData['Title'] ?? null) !== nuz=> (ScrmData['Email'] ?? null) !== nul=> $countryCode,"phone=> $parsedNumber['phone'] ?? null,=> $ext,"mobile_phone"→ Smobzlenunber'photo_path' = $this->prospectPhotoPathService->get0rGenenatcrmcontiquration: schls->cont10crmProviderId: ScrmData['Id']16.05.2o llanmodellype: concact::classfileName: $crmData['Id'],avatarText: ScrmData['Name']16.05.2s llan4.00.7915.03.17 Graham4.06.19Graham27.09.24 Vasilev27.09.24 Vasilev7-10257.10.259.10.2515921593159411595.159615971[PHONE]0116011602'remotely creared ar' = screareduaresthis->restoreAnytrashedentity(Sthis->config->contacts, $crmlat** ovar Contact scontact *Scontact = sthis->confio->contactso->uodatedrcreatedcrmorom. WEBHOOK FILTERNG_MPLEMENTATION.md> ih External Librariesv E° Scratches and Consolesv M Database ConsolesVAEUIconsole I=UlSthis->handle0bnectDeletionScontact. Scrmlatad:DEAL RISKS (EUIA DI (EU]AFIIIFIN7 10. 2511604116051160616071408|if (Scontact->trashedO) 1return nullreturn $contact;Services+, cv @ DatabaseV dEU2026-05-22 13-14-251 Connectedl12026-05-22 13-14-251 jiminnvs use iminnvA console 1 s 207 msfii crm configurations 2 s 347 msv 4 iminny@localhostAHS local[2026-05-22 13:14:25] completed in 81 ms12024-05.22 12:14:25 diminnys CELSCT + +FROM jiminny.crm_configurations tWHEPE id = 720LIMIT 501A PRODA console 1 s 542 msV A STAGINGAconsoleDocker[2026-05-22 13:14:26] 1 row retrieved starting from 1 in 1 s 51 ms (execution: 123 ms, fetching: 928 ms)1 raw rotriovod ctortina from 1 in 1 c 61 me lavodutian: 122 me fotchina: 029 mcllhal100% 528• Fri 22 May 13:14:27AskJiminnyReportActivityServiceTest v+O •= custom.log= laravel.log4 SF jiminny@localhost]4 HS_local [jiminny@localhost]& console [PROD]& console [EU]tii crm_configurations [EU] X A console [STAGING]GOU+Y- WHERE id = 320AD idMuuid (UUID)No team_ 1dIo notifiable user 1d! provider1 edition(• instanceis sandboxlu versionШ installed_app_version! sync_metadatasync obiectsT auto sync activityI crm provider iderm base urlO last_synced_at! leads_synced_atI accounts synced_ atlu contacts sunced atonportunities suncedatIu contact roles svncedatil over_quota_at1 api disabled_ at1• settingsDDLCSVL8=•URDER BY32046ea38f7-c940-395d-9c79-0329d30e9ab7salesforceenterpriseSWE3850.00180100D20000008Mdb0EAChttos:binsolutions.mv.salesforce.2026-03-19 08:19:242026-05-22 09:48:212026-05-22 09:48:312026-05-22 09:48:432026-05-22 09:48:292026-05-22 09:48:40<null>{"opportunity_ sync_period":"3m" "oppMopportunity assianment rule :open-recentlv-uodatedCascadeInvestigate Foreign KeGive me the lira ticket and the descriptionJira Ticket:JY-XXXXX: Fix foreign key violation when matching activities to deleted Salesforce opportunitiesWhen an opportunity is deleted in Salesforce and the local deletion job runs, activities that belonged to that opportunity areematched via the RematchActivity0nCrmObjectDetach listener. During this rematch, the system attempts to re-link theThe bug occurs in Salestorce:: importopportunity (and similar methods tor Lead, Account, CcndleObjectDeletion (because IsDeleted = truel)The deleted opportunity's ID is then used in Activity: :updateActivityCrmData to set activity.opportunity_id,causing a foreign key violation because the opportunity no longer exists in the databaseThe FixAdded checks in importLead. importAccount. importOpportunity. and importContact methods to return null if theentty was deleted oy hand leudiectbelecion .uphoSthis->handle0biectDeletion(Sopportunity, $crmData):if (Sopportunity->trashed)) {return null:return Sopportunity:Ask anything (&+L)€ :SIIM. Not onduah valuoc MN Windeurf Toam....
|
NULL
|
-8642617494863680678
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhpStormFV faVsco.jsProject=.prettierianoreE.winds PhpStormFV faVsco.jsProject=.prettierianoreE.windsurfrulesVIewINavicarecodeKeractorTOOIS?9 JY-20963-fix-import-on-deleted-entity© Service.php X© DeleteOpportunityJob.phpT SoftDeletes.phpMatcnActviycmmbata.png© CrmActivityService.php© RecordSelector.php© Activity.php15.05.23 Staclass service excenas baseservice inplements w411 4130 v.3 v.21 ^phpide helper.phpphpdenelver_models.ono28.02.19 iva10.04.74 VasilevM^ CLAUDE.mdcomooser.ison14.03.25 Ivanov16.04.25 Ivanovcomooser.lock16.04.25 Ivanovu dependency-checker.json16.04.25 Ivanovdevison=ids.tyt=infection.ison.dist28.02.19 Iva28.02.19 ivaMLINSTALLmdMLINTERNA WERHOOk SFTUP md19.04.44 Oranam28.02.19 ivaEjiminny_storageM..licenses.mdM MakefileJ package-lock.jsonE phpstan.neon.distE phostan-baseline.neon<>phpunit.xmlTa raw sal_query.salM+ README.md{ sonar-project.propertiesE test.py<› Untitied Diacram.xmiiis vetur.confia.is16.05.25 ilian16.05 25 Alian16.05.2o llan15771157815791580158115821[PHONE]515861587158815891598= Saccount→›id ?? null,= Sprofile?->user_id"owner id'=> $crmData['OwnerId'] ?? null=> (ScrmData['Name'] ?? null) !== nulbititle=> (ScrmData['Title'] ?? null) !== nuz=> (ScrmData['Email'] ?? null) !== nul=> $countryCode,"phone=> $parsedNumber['phone'] ?? null,=> $ext,"mobile_phone"→ Smobzlenunber'photo_path' = $this->prospectPhotoPathService->get0rGenenatcrmcontiquration: schls->cont10crmProviderId: ScrmData['Id']16.05.2o llanmodellype: concact::classfileName: $crmData['Id'],avatarText: ScrmData['Name']16.05.2s llan4.00.7915.03.17 Graham4.06.19Graham27.09.24 Vasilev27.09.24 Vasilev7-10257.10.259.10.2515921593159411595.159615971[PHONE]0116011602'remotely creared ar' = screareduaresthis->restoreAnytrashedentity(Sthis->config->contacts, $crmlat** ovar Contact scontact *Scontact = sthis->confio->contactso->uodatedrcreatedcrmorom. WEBHOOK FILTERNG_MPLEMENTATION.md> ih External Librariesv E° Scratches and Consolesv M Database ConsolesVAEUIconsole I=UlSthis->handle0bnectDeletionScontact. Scrmlatad:DEAL RISKS (EUIA DI (EU]AFIIIFIN7 10. 2511604116051160616071408|if (Scontact->trashedO) 1return nullreturn $contact;Services+, cv @ DatabaseV dEU2026-05-22 13-14-251 Connectedl12026-05-22 13-14-251 jiminnvs use iminnvA console 1 s 207 msfii crm configurations 2 s 347 msv 4 iminny@localhostAHS local[2026-05-22 13:14:25] completed in 81 ms12024-05.22 12:14:25 diminnys CELSCT + +FROM jiminny.crm_configurations tWHEPE id = 720LIMIT 501A PRODA console 1 s 542 msV A STAGINGAconsoleDocker[2026-05-22 13:14:26] 1 row retrieved starting from 1 in 1 s 51 ms (execution: 123 ms, fetching: 928 ms)1 raw rotriovod ctortina from 1 in 1 c 61 me lavodutian: 122 me fotchina: 029 mcllhal100% 528• Fri 22 May 13:14:27AskJiminnyReportActivityServiceTest v+O •= custom.log= laravel.log4 SF jiminny@localhost]4 HS_local [jiminny@localhost]& console [PROD]& console [EU]tii crm_configurations [EU] X A console [STAGING]GOU+Y- WHERE id = 320AD idMuuid (UUID)No team_ 1dIo notifiable user 1d! provider1 edition(• instanceis sandboxlu versionШ installed_app_version! sync_metadatasync obiectsT auto sync activityI crm provider iderm base urlO last_synced_at! leads_synced_atI accounts synced_ atlu contacts sunced atonportunities suncedatIu contact roles svncedatil over_quota_at1 api disabled_ at1• settingsDDLCSVL8=•URDER BY32046ea38f7-c940-395d-9c79-0329d30e9ab7salesforceenterpriseSWE3850.00180100D20000008Mdb0EAChttos:binsolutions.mv.salesforce.2026-03-19 08:19:242026-05-22 09:48:212026-05-22 09:48:312026-05-22 09:48:432026-05-22 09:48:292026-05-22 09:48:40<null>{"opportunity_ sync_period":"3m" "oppMopportunity assianment rule :open-recentlv-uodatedCascadeInvestigate Foreign KeGive me the lira ticket and the descriptionJira Ticket:JY-XXXXX: Fix foreign key violation when matching activities to deleted Salesforce opportunitiesWhen an opportunity is deleted in Salesforce and the local deletion job runs, activities that belonged to that opportunity areematched via the RematchActivity0nCrmObjectDetach listener. During this rematch, the system attempts to re-link theThe bug occurs in Salestorce:: importopportunity (and similar methods tor Lead, Account, CcndleObjectDeletion (because IsDeleted = truel)The deleted opportunity's ID is then used in Activity: :updateActivityCrmData to set activity.opportunity_id,causing a foreign key violation because the opportunity no longer exists in the databaseThe FixAdded checks in importLead. importAccount. importOpportunity. and importContact methods to return null if theentty was deleted oy hand leudiectbelecion .uphoSthis->handle0biectDeletion(Sopportunity, $crmData):if (Sopportunity->trashed)) {return null:return Sopportunity:Ask anything (&+L)€ :SIIM. Not onduah valuoc MN Windeurf Toam....
|
NULL
|
NULL
|
NULL
|
NULL
|
|
86600
|
2973
|
15
|
2026-05-28T15:02:33.029859+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779980553029_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
#12121 on JY-20963-fix-im Project: faVsco.js, menu
#12121 on JY-20963-fix-import-on-deleted-entity, menu
Start Listening for PHP Debug Connections
ServiceTest
Run 'ServiceTest'
Debug 'ServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
36
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm;
use ChaseConey\LaravelDatadogHelper\Datadog;
use Illuminate\Contracts\Cache\Repository;
use Illuminate\Support\Facades\App;
use Jiminny\Contracts\Services\Crm\SyncCrmEntitiesInterface;
use Jiminny\Events\Crm\ProspectUpdated;
use Jiminny\Models\Account;
use Jiminny\Models\Contact;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Crm\Profile;
use Jiminny\Models\Lead;
use Jiminny\Models\Opportunity;
use Jiminny\Models\Stage;
use Jiminny\Repositories\Crm\ContactRoleRepository;
use Jiminny\Repositories\Crm\OpportunityRepository;
use Jiminny\Services\Crm\CrmObjects\Validators\StaleRecordValidator;
use Jiminny\Services\Crm\Salesforce\OpportunityMatcher\MatchBusinessAccount;
use Psr\Log\LoggerInterface;
class ProspectCache
{
public const string PROSPECT_TYPE_EMAIL = 'email';
public const string PROSPECT_TYPE_PHONE = 'phone';
public const string PROSPECT_TYPE_DOMAIN = 'domain';
private const int TTL_SECONDS = 900;
private const int TTL_SECONDS_DEV = 30;
private const string DATADOG_STAT_NAME = 'jiminny.crm.prospect_cache_lookup';
private const string LOOKUP_RESULT_INTERNAL = 'internal';
private const string LOOKUP_RESULT_CACHE = 'cache';
private const string LOOKUP_RESULT_DB = 'db';
private const string LOOKUP_RESULT_MISS = 'miss';
public function __construct(
private readonly FindsProspectInterface $dbCache,
private readonly Repository $cache,
private readonly OpportunityRepository $opportunityRepository,
private readonly EmailHelper $emailHelper,
private readonly LoggerInterface $logger,
private readonly StaleRecordValidator $staleRecordValidator,
) {
}
/**
* @return null|array{
* ?Lead,
* ?Account,
* ?Opportunity,
* ?Contact,
* ?Stage,
* string|null
* }
*/
public function findByProspectIdentifier(
Configuration $configuration,
?Profile $profile,
string $identifierType,
string $identifierValue,
?int $userId = null,
?SyncCrmEntitiesInterface $crmService = null
): ?array {
$cachedValue = $this->get($configuration, $identifierValue, $userId);
if ($cachedValue !== null) {
$this->sendDatadogStats(self::LOOKUP_RESULT_CACHE, $configuration->getProviderName());
return $cachedValue;
}
if ($identifierType == self::PROSPECT_TYPE_EMAIL
&& $this->emailHelper->isCompanyEmail($configuration->getTeam(), $identifierValue)
) {
// Set the cache to avoid querying the database for internal participants
$prospectData = [null, null, null, null, null, null];
$this->set($configuration, $identifierValue, $prospectData, $userId);
$this->sendDatadogStats(self::LOOKUP_RESULT_INTERNAL, $configuration->getProviderName());
return $prospectData;
}
$dbCache = $this->dbCache->findPro spect($configuration, [$identifierType => $identifierValue]);
if (empty(array_filter($dbCache))) {
$this->sendDatadogStats(self::LOOKUP_RESULT_MISS, $configuration->getProviderName());
return null;
}
$dbCache['contact'] = $this->staleRecordValidator->filterStale($dbCache['contact'], $crmService);
$dbCache['lead'] = $this->staleRecordValidator->filterStale($dbCache['lead'], $crmService);
if ($dbCache['contact'] instanceof Contact) {
$account = $dbCache['contact']->getAccount();
$dbCache['account'] = $account;
$opportunity = $this->findOpportunityInContactRoles(
$configuration,
$profile,
$dbCache['contact']->getId()
);
$opportunity = $this->staleRecordValidator->filterStale($opportunity, $crmService);
if ($opportunity instanceof Opportunity) {
$this->logger->info('ProspectCache - Found opportunities by contact roles', [
'opportunity_id' => $opportunity->getId(),
]);
$dbCache['account'] = $opportunity->getAccount();
} elseif ($account instanceof Account) {
$opportunity = $this->getOpportunityFromDatabase(
configuration: $configuration,
account: $account,
contactId: $dbCache['contact']->getId(),
userId: $userId
);
}
$dbCache['opportunity'] = $opportunity;
$dbCache['account'] = $this->staleRecordValidator->filterStale($dbCache['account'], $crmService);
$dbCache['stage'] = $dbCache['opportunity']?->getStage();
}
/**
* @IMPORTANT The keys must always be in this exact order
*
* @var array{
* ?Lead,
* ?Account,
* ?Opportunity,
* ?Contact,
* ?Stage,
* string|null
* } $result
*/
$result = [
$dbCache['lead'] ?? null,
$dbCache['account'] ?? null,
$dbCache['opportunity'] ?? null,
$dbCache['contact'] ?? null,
$dbCache['stage'] ?? null,
null,
];
$this->set($configuration, $identifierValue, $result, $userId);
$this->sendDatadogStats(self::LOOKUP_RESULT_DB, $configuration->getProviderName());
return $result;
}
public function findDomainMatch(Configuration $configuration, string $identifier, ?int $userId = null): ?array
{
$cachedValue = $this->get(
configuration: $configuration,
identifier: $identifier,
userId: $userId
);
if ($cachedValue !== null) {
$this->sendDatadogStats(
self::LOOKUP_RESULT_CACHE,
$configuration->getProviderName()
);
return $cachedValue;
}
// Log cache miss
$this->logger->info('[Prospect match] Cache miss', [
'identifier_type' => self::PROSPECT_TYPE_DOMAIN,
'identifier' => $identifier,
'crm' => $configuration->getProviderName(),
]);
// not in the cache
return null;
}
public function set(Configuration $configuration, string $identifier, array $prospectData, ?int $userId = null): void
{
$this->cache->tags($this->getTags($configuration, $identifier))->put(
$this->generateKey($configuration, $identifier, $userId),
$prospectData,
$this->getCacheTtl()
);
}
public function handleProspectUpdated(ProspectUpdated $event): void
{
$prospect = $event->getProspect();
$configuration = $prospect->getCrmConfiguration();
if ($configuration === null) {
return;
}
if ($prospect->getEmail() !== null) {
$this->cache->tags([$this->generateProspectTag($configuration, $prospect->getEmail())])->flush();
}
if ($prospect->getPhone() !== null) {
$normalizedPhone = $this->normalizePhoneNumber($prospect->getPhone());
$this->cache->tags([$this->generateProspectTag($configuration, $normalizedPhone)])->flush();
}
if ($prospect->getName() !== null) {
$this->cache->tags([$this->generateProspectTag($configuration, $prospect->getName())])->flush();
}
}
public function normalizePhoneNumber(string $phone): string
{
// Remove all non-digit characters first
$digitsOnly = preg_replace('/[^\d]/', '', $phone);
// Remove a single leading zero if present
$digitsOnly = ltrim($digitsOnly, '0');
// Add E.164 prefix
return '+' . $digitsOnly;
}
private function get(Configuration $configuration, string $identifier, ?int $userId = null): ?array
{
return $this->cache->tags($this->getTags($configuration, $identifier))
->get($this->generateKey($configuration, $identifier, $userId));
}
private function generateKey(Configuration $configuration, string $identifier, ?int $userId = null): string
{
$keySuffix = $userId === null ? '' : ':user:' . $userId;
return hash('sha256', 'crm:' . $configuration->getId() . ':prospect:' . $identifier . $keySuffix);
}
private function sendDatadogStats(string $result, string $crm): void
{
Datadog::increment(self::DATADOG_STAT_NAME, 1, [
'result' => $result,
'crm' => $crm,
]);
}
private function getCacheTtl(): int
{
if (! App::environment('production', 'production-eu')) {
return self::TTL_SECONDS_DEV;
}
return self::TTL_SECONDS;
}
private function findOpportunityInContactRoles(
Configuration $configuration,
?Profile $profile,
int $contactId
): ?Opportunity {
$contactRoleRepository = app(ContactRoleRepository::class);
$contactRoles = $contactRoleRepository->getByCrmContactId(
$configuration,
$contactId,
);
if (! $contactRoles->isEmpty()) {
$opportunityId = app(MatchBusinessAccount::class)->resolve(
$contactRoles,
$profile?->getCrmProviderId(),
);
$opportunity = $this->opportunityRepository->find($opportunityId);
}
return $opportunity ?? null;
}
private function getOpportunityFromDatabase(
Configuration $configuration,
Account $account,
int $contactId,
?int $userId = null
): ?Opportunity {
$opportunity = null;
if ($userId) {
$this->logger->info('ProspectCache - Searching DB for opportunity by owner', [
'account_id' => $account->getId(),
'contact_id' => $contactId,
'owner_id' => $userId,
]);
$opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityOwner(
$configuration,
$account,
$userId,
$contactId
);
}
if (! $opportunity instanceof Opportunity) {
$this->logger->info('ProspectCache - Fallback DB opportunity search', [
'account_id' => $account->getId(),
'contact_id' => $contactId,
]);
$opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityAssignmentRule(
$configuration,
$account,
$contactId
);
}
$this->logger->info('ProspectCache - Opportunity DB search results', [
'account_id' => $account->getId(),
'contact_id' => $contactId,
'opportunity_id' => $opportunity?->getId(),
]);
return $opportunity;
}
private function generateProspectTag(Configuration $configuration, string $identifier): string
{
return 'prospect:' . $configuration->getId() . ':' . $identifier;
}
private function getTags(Configuration $configuration, string $identifier): array
{
return ['prospect_cache', $this->generateProspectTag($configuration, $identifier)];
}
}
A
1
Select All
475
475
1
31e90967-e616-4852-b7de-889bc3ed24ba
31e90967-e616-4852-b7de-889bc3ed24ba
2026-05-28 15:02:20
555
555
1
<null>
<null>
1
hubspot
hubspot
2026-05-28 15:02:20
<null>
<null>
2026-05-28 15:02:20
<null>
<null>
2026-05-28 15:02:20
0
0
1
2
2
2026-05-28 15:02:20
<null>
<null>
2026-05-28 15:02:20
1
1...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"#12121 on JY-20963-fix-import-on-deleted-entity, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.11569149,"height":0.025538707},"on_screen":true,"help_text":"Pull request #12121 exists for current branch JY-20963-fix-import-on-deleted-entity, but pull request details loading failed","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.85638297,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"ServiceTest","depth":6,"bounds":{"left":0.87167555,"top":0.019952115,"width":0.043882977,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'ServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'ServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.3307846,"top":0.12529927,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.34009308,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"36","depth":4,"bounds":{"left":0.35006648,"top":0.12529927,"width":0.010305851,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.3620346,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.3693484,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm;\n\nuse ChaseConey\\LaravelDatadogHelper\\Datadog;\nuse Illuminate\\Contracts\\Cache\\Repository;\nuse Illuminate\\Support\\Facades\\App;\nuse Jiminny\\Contracts\\Services\\Crm\\SyncCrmEntitiesInterface;\nuse Jiminny\\Events\\Crm\\ProspectUpdated;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Crm\\Profile;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Repositories\\Crm\\ContactRoleRepository;\nuse Jiminny\\Repositories\\Crm\\OpportunityRepository;\nuse Jiminny\\Services\\Crm\\CrmObjects\\Validators\\StaleRecordValidator;\nuse Jiminny\\Services\\Crm\\Salesforce\\OpportunityMatcher\\MatchBusinessAccount;\nuse Psr\\Log\\LoggerInterface;\n\nclass ProspectCache\n{\n public const string PROSPECT_TYPE_EMAIL = 'email';\n public const string PROSPECT_TYPE_PHONE = 'phone';\n\n public const string PROSPECT_TYPE_DOMAIN = 'domain';\n private const int TTL_SECONDS = 900;\n private const int TTL_SECONDS_DEV = 30;\n private const string DATADOG_STAT_NAME = 'jiminny.crm.prospect_cache_lookup';\n private const string LOOKUP_RESULT_INTERNAL = 'internal';\n private const string LOOKUP_RESULT_CACHE = 'cache';\n private const string LOOKUP_RESULT_DB = 'db';\n private const string LOOKUP_RESULT_MISS = 'miss';\n\n public function __construct(\n private readonly FindsProspectInterface $dbCache,\n private readonly Repository $cache,\n private readonly OpportunityRepository $opportunityRepository,\n private readonly EmailHelper $emailHelper,\n private readonly LoggerInterface $logger,\n private readonly StaleRecordValidator $staleRecordValidator,\n ) {\n }\n\n /**\n * @return null|array{\n * ?Lead,\n * ?Account,\n * ?Opportunity,\n * ?Contact,\n * ?Stage,\n * string|null\n * }\n */\n public function findByProspectIdentifier(\n Configuration $configuration,\n ?Profile $profile,\n string $identifierType,\n string $identifierValue,\n ?int $userId = null,\n ?SyncCrmEntitiesInterface $crmService = null\n ): ?array {\n $cachedValue = $this->get($configuration, $identifierValue, $userId);\n\n if ($cachedValue !== null) {\n $this->sendDatadogStats(self::LOOKUP_RESULT_CACHE, $configuration->getProviderName());\n\n return $cachedValue;\n }\n\n if ($identifierType == self::PROSPECT_TYPE_EMAIL\n && $this->emailHelper->isCompanyEmail($configuration->getTeam(), $identifierValue)\n ) {\n // Set the cache to avoid querying the database for internal participants\n $prospectData = [null, null, null, null, null, null];\n $this->set($configuration, $identifierValue, $prospectData, $userId);\n $this->sendDatadogStats(self::LOOKUP_RESULT_INTERNAL, $configuration->getProviderName());\n\n return $prospectData;\n }\n\n $dbCache = $this->dbCache->findPro spect($configuration, [$identifierType => $identifierValue]);\n\n if (empty(array_filter($dbCache))) {\n $this->sendDatadogStats(self::LOOKUP_RESULT_MISS, $configuration->getProviderName());\n\n return null;\n }\n\n $dbCache['contact'] = $this->staleRecordValidator->filterStale($dbCache['contact'], $crmService);\n $dbCache['lead'] = $this->staleRecordValidator->filterStale($dbCache['lead'], $crmService);\n\n if ($dbCache['contact'] instanceof Contact) {\n $account = $dbCache['contact']->getAccount();\n $dbCache['account'] = $account;\n\n $opportunity = $this->findOpportunityInContactRoles(\n $configuration,\n $profile,\n $dbCache['contact']->getId()\n );\n\n $opportunity = $this->staleRecordValidator->filterStale($opportunity, $crmService);\n\n if ($opportunity instanceof Opportunity) {\n $this->logger->info('ProspectCache - Found opportunities by contact roles', [\n 'opportunity_id' => $opportunity->getId(),\n ]);\n $dbCache['account'] = $opportunity->getAccount();\n } elseif ($account instanceof Account) {\n $opportunity = $this->getOpportunityFromDatabase(\n configuration: $configuration,\n account: $account,\n contactId: $dbCache['contact']->getId(),\n userId: $userId\n );\n }\n\n $dbCache['opportunity'] = $opportunity;\n $dbCache['account'] = $this->staleRecordValidator->filterStale($dbCache['account'], $crmService);\n\n $dbCache['stage'] = $dbCache['opportunity']?->getStage();\n }\n\n /**\n * @IMPORTANT The keys must always be in this exact order\n *\n * @var array{\n * ?Lead,\n * ?Account,\n * ?Opportunity,\n * ?Contact,\n * ?Stage,\n * string|null\n * } $result\n */\n $result = [\n $dbCache['lead'] ?? null,\n $dbCache['account'] ?? null,\n $dbCache['opportunity'] ?? null,\n $dbCache['contact'] ?? null,\n $dbCache['stage'] ?? null,\n null,\n ];\n\n $this->set($configuration, $identifierValue, $result, $userId);\n $this->sendDatadogStats(self::LOOKUP_RESULT_DB, $configuration->getProviderName());\n\n return $result;\n }\n\n public function findDomainMatch(Configuration $configuration, string $identifier, ?int $userId = null): ?array\n {\n $cachedValue = $this->get(\n configuration: $configuration,\n identifier: $identifier,\n userId: $userId\n );\n\n if ($cachedValue !== null) {\n $this->sendDatadogStats(\n self::LOOKUP_RESULT_CACHE,\n $configuration->getProviderName()\n );\n\n return $cachedValue;\n }\n\n // Log cache miss\n $this->logger->info('[Prospect match] Cache miss', [\n 'identifier_type' => self::PROSPECT_TYPE_DOMAIN,\n 'identifier' => $identifier,\n 'crm' => $configuration->getProviderName(),\n ]);\n\n // not in the cache\n return null;\n }\n\n public function set(Configuration $configuration, string $identifier, array $prospectData, ?int $userId = null): void\n {\n $this->cache->tags($this->getTags($configuration, $identifier))->put(\n $this->generateKey($configuration, $identifier, $userId),\n $prospectData,\n $this->getCacheTtl()\n );\n }\n\n public function handleProspectUpdated(ProspectUpdated $event): void\n {\n $prospect = $event->getProspect();\n $configuration = $prospect->getCrmConfiguration();\n\n if ($configuration === null) {\n return;\n }\n\n if ($prospect->getEmail() !== null) {\n $this->cache->tags([$this->generateProspectTag($configuration, $prospect->getEmail())])->flush();\n }\n\n if ($prospect->getPhone() !== null) {\n $normalizedPhone = $this->normalizePhoneNumber($prospect->getPhone());\n $this->cache->tags([$this->generateProspectTag($configuration, $normalizedPhone)])->flush();\n }\n\n if ($prospect->getName() !== null) {\n $this->cache->tags([$this->generateProspectTag($configuration, $prospect->getName())])->flush();\n }\n }\n\n public function normalizePhoneNumber(string $phone): string\n {\n // Remove all non-digit characters first\n $digitsOnly = preg_replace('/[^\\d]/', '', $phone);\n\n // Remove a single leading zero if present\n $digitsOnly = ltrim($digitsOnly, '0');\n\n // Add E.164 prefix\n return '+' . $digitsOnly;\n }\n\n private function get(Configuration $configuration, string $identifier, ?int $userId = null): ?array\n {\n return $this->cache->tags($this->getTags($configuration, $identifier))\n ->get($this->generateKey($configuration, $identifier, $userId));\n }\n\n private function generateKey(Configuration $configuration, string $identifier, ?int $userId = null): string\n {\n $keySuffix = $userId === null ? '' : ':user:' . $userId;\n\n return hash('sha256', 'crm:' . $configuration->getId() . ':prospect:' . $identifier . $keySuffix);\n }\n\n private function sendDatadogStats(string $result, string $crm): void\n {\n Datadog::increment(self::DATADOG_STAT_NAME, 1, [\n 'result' => $result,\n 'crm' => $crm,\n ]);\n }\n\n private function getCacheTtl(): int\n {\n if (! App::environment('production', 'production-eu')) {\n return self::TTL_SECONDS_DEV;\n }\n\n return self::TTL_SECONDS;\n }\n\n private function findOpportunityInContactRoles(\n Configuration $configuration,\n ?Profile $profile,\n int $contactId\n ): ?Opportunity {\n $contactRoleRepository = app(ContactRoleRepository::class);\n\n $contactRoles = $contactRoleRepository->getByCrmContactId(\n $configuration,\n $contactId,\n );\n\n if (! $contactRoles->isEmpty()) {\n $opportunityId = app(MatchBusinessAccount::class)->resolve(\n $contactRoles,\n $profile?->getCrmProviderId(),\n );\n\n $opportunity = $this->opportunityRepository->find($opportunityId);\n }\n\n return $opportunity ?? null;\n }\n\n private function getOpportunityFromDatabase(\n Configuration $configuration,\n Account $account,\n int $contactId,\n ?int $userId = null\n ): ?Opportunity {\n $opportunity = null;\n\n if ($userId) {\n $this->logger->info('ProspectCache - Searching DB for opportunity by owner', [\n 'account_id' => $account->getId(),\n 'contact_id' => $contactId,\n 'owner_id' => $userId,\n ]);\n $opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityOwner(\n $configuration,\n $account,\n $userId,\n $contactId\n );\n }\n\n if (! $opportunity instanceof Opportunity) {\n $this->logger->info('ProspectCache - Fallback DB opportunity search', [\n 'account_id' => $account->getId(),\n 'contact_id' => $contactId,\n ]);\n $opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityAssignmentRule(\n $configuration,\n $account,\n $contactId\n );\n }\n\n $this->logger->info('ProspectCache - Opportunity DB search results', [\n 'account_id' => $account->getId(),\n 'contact_id' => $contactId,\n 'opportunity_id' => $opportunity?->getId(),\n ]);\n\n return $opportunity;\n }\n\n private function generateProspectTag(Configuration $configuration, string $identifier): string\n {\n return 'prospect:' . $configuration->getId() . ':' . $identifier;\n }\n\n private function getTags(Configuration $configuration, string $identifier): array\n {\n return ['prospect_cache', $this->generateProspectTag($configuration, $identifier)];\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm;\n\nuse ChaseConey\\LaravelDatadogHelper\\Datadog;\nuse Illuminate\\Contracts\\Cache\\Repository;\nuse Illuminate\\Support\\Facades\\App;\nuse Jiminny\\Contracts\\Services\\Crm\\SyncCrmEntitiesInterface;\nuse Jiminny\\Events\\Crm\\ProspectUpdated;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Crm\\Profile;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Repositories\\Crm\\ContactRoleRepository;\nuse Jiminny\\Repositories\\Crm\\OpportunityRepository;\nuse Jiminny\\Services\\Crm\\CrmObjects\\Validators\\StaleRecordValidator;\nuse Jiminny\\Services\\Crm\\Salesforce\\OpportunityMatcher\\MatchBusinessAccount;\nuse Psr\\Log\\LoggerInterface;\n\nclass ProspectCache\n{\n public const string PROSPECT_TYPE_EMAIL = 'email';\n public const string PROSPECT_TYPE_PHONE = 'phone';\n\n public const string PROSPECT_TYPE_DOMAIN = 'domain';\n private const int TTL_SECONDS = 900;\n private const int TTL_SECONDS_DEV = 30;\n private const string DATADOG_STAT_NAME = 'jiminny.crm.prospect_cache_lookup';\n private const string LOOKUP_RESULT_INTERNAL = 'internal';\n private const string LOOKUP_RESULT_CACHE = 'cache';\n private const string LOOKUP_RESULT_DB = 'db';\n private const string LOOKUP_RESULT_MISS = 'miss';\n\n public function __construct(\n private readonly FindsProspectInterface $dbCache,\n private readonly Repository $cache,\n private readonly OpportunityRepository $opportunityRepository,\n private readonly EmailHelper $emailHelper,\n private readonly LoggerInterface $logger,\n private readonly StaleRecordValidator $staleRecordValidator,\n ) {\n }\n\n /**\n * @return null|array{\n * ?Lead,\n * ?Account,\n * ?Opportunity,\n * ?Contact,\n * ?Stage,\n * string|null\n * }\n */\n public function findByProspectIdentifier(\n Configuration $configuration,\n ?Profile $profile,\n string $identifierType,\n string $identifierValue,\n ?int $userId = null,\n ?SyncCrmEntitiesInterface $crmService = null\n ): ?array {\n $cachedValue = $this->get($configuration, $identifierValue, $userId);\n\n if ($cachedValue !== null) {\n $this->sendDatadogStats(self::LOOKUP_RESULT_CACHE, $configuration->getProviderName());\n\n return $cachedValue;\n }\n\n if ($identifierType == self::PROSPECT_TYPE_EMAIL\n && $this->emailHelper->isCompanyEmail($configuration->getTeam(), $identifierValue)\n ) {\n // Set the cache to avoid querying the database for internal participants\n $prospectData = [null, null, null, null, null, null];\n $this->set($configuration, $identifierValue, $prospectData, $userId);\n $this->sendDatadogStats(self::LOOKUP_RESULT_INTERNAL, $configuration->getProviderName());\n\n return $prospectData;\n }\n\n $dbCache = $this->dbCache->findPro spect($configuration, [$identifierType => $identifierValue]);\n\n if (empty(array_filter($dbCache))) {\n $this->sendDatadogStats(self::LOOKUP_RESULT_MISS, $configuration->getProviderName());\n\n return null;\n }\n\n $dbCache['contact'] = $this->staleRecordValidator->filterStale($dbCache['contact'], $crmService);\n $dbCache['lead'] = $this->staleRecordValidator->filterStale($dbCache['lead'], $crmService);\n\n if ($dbCache['contact'] instanceof Contact) {\n $account = $dbCache['contact']->getAccount();\n $dbCache['account'] = $account;\n\n $opportunity = $this->findOpportunityInContactRoles(\n $configuration,\n $profile,\n $dbCache['contact']->getId()\n );\n\n $opportunity = $this->staleRecordValidator->filterStale($opportunity, $crmService);\n\n if ($opportunity instanceof Opportunity) {\n $this->logger->info('ProspectCache - Found opportunities by contact roles', [\n 'opportunity_id' => $opportunity->getId(),\n ]);\n $dbCache['account'] = $opportunity->getAccount();\n } elseif ($account instanceof Account) {\n $opportunity = $this->getOpportunityFromDatabase(\n configuration: $configuration,\n account: $account,\n contactId: $dbCache['contact']->getId(),\n userId: $userId\n );\n }\n\n $dbCache['opportunity'] = $opportunity;\n $dbCache['account'] = $this->staleRecordValidator->filterStale($dbCache['account'], $crmService);\n\n $dbCache['stage'] = $dbCache['opportunity']?->getStage();\n }\n\n /**\n * @IMPORTANT The keys must always be in this exact order\n *\n * @var array{\n * ?Lead,\n * ?Account,\n * ?Opportunity,\n * ?Contact,\n * ?Stage,\n * string|null\n * } $result\n */\n $result = [\n $dbCache['lead'] ?? null,\n $dbCache['account'] ?? null,\n $dbCache['opportunity'] ?? null,\n $dbCache['contact'] ?? null,\n $dbCache['stage'] ?? null,\n null,\n ];\n\n $this->set($configuration, $identifierValue, $result, $userId);\n $this->sendDatadogStats(self::LOOKUP_RESULT_DB, $configuration->getProviderName());\n\n return $result;\n }\n\n public function findDomainMatch(Configuration $configuration, string $identifier, ?int $userId = null): ?array\n {\n $cachedValue = $this->get(\n configuration: $configuration,\n identifier: $identifier,\n userId: $userId\n );\n\n if ($cachedValue !== null) {\n $this->sendDatadogStats(\n self::LOOKUP_RESULT_CACHE,\n $configuration->getProviderName()\n );\n\n return $cachedValue;\n }\n\n // Log cache miss\n $this->logger->info('[Prospect match] Cache miss', [\n 'identifier_type' => self::PROSPECT_TYPE_DOMAIN,\n 'identifier' => $identifier,\n 'crm' => $configuration->getProviderName(),\n ]);\n\n // not in the cache\n return null;\n }\n\n public function set(Configuration $configuration, string $identifier, array $prospectData, ?int $userId = null): void\n {\n $this->cache->tags($this->getTags($configuration, $identifier))->put(\n $this->generateKey($configuration, $identifier, $userId),\n $prospectData,\n $this->getCacheTtl()\n );\n }\n\n public function handleProspectUpdated(ProspectUpdated $event): void\n {\n $prospect = $event->getProspect();\n $configuration = $prospect->getCrmConfiguration();\n\n if ($configuration === null) {\n return;\n }\n\n if ($prospect->getEmail() !== null) {\n $this->cache->tags([$this->generateProspectTag($configuration, $prospect->getEmail())])->flush();\n }\n\n if ($prospect->getPhone() !== null) {\n $normalizedPhone = $this->normalizePhoneNumber($prospect->getPhone());\n $this->cache->tags([$this->generateProspectTag($configuration, $normalizedPhone)])->flush();\n }\n\n if ($prospect->getName() !== null) {\n $this->cache->tags([$this->generateProspectTag($configuration, $prospect->getName())])->flush();\n }\n }\n\n public function normalizePhoneNumber(string $phone): string\n {\n // Remove all non-digit characters first\n $digitsOnly = preg_replace('/[^\\d]/', '', $phone);\n\n // Remove a single leading zero if present\n $digitsOnly = ltrim($digitsOnly, '0');\n\n // Add E.164 prefix\n return '+' . $digitsOnly;\n }\n\n private function get(Configuration $configuration, string $identifier, ?int $userId = null): ?array\n {\n return $this->cache->tags($this->getTags($configuration, $identifier))\n ->get($this->generateKey($configuration, $identifier, $userId));\n }\n\n private function generateKey(Configuration $configuration, string $identifier, ?int $userId = null): string\n {\n $keySuffix = $userId === null ? '' : ':user:' . $userId;\n\n return hash('sha256', 'crm:' . $configuration->getId() . ':prospect:' . $identifier . $keySuffix);\n }\n\n private function sendDatadogStats(string $result, string $crm): void\n {\n Datadog::increment(self::DATADOG_STAT_NAME, 1, [\n 'result' => $result,\n 'crm' => $crm,\n ]);\n }\n\n private function getCacheTtl(): int\n {\n if (! App::environment('production', 'production-eu')) {\n return self::TTL_SECONDS_DEV;\n }\n\n return self::TTL_SECONDS;\n }\n\n private function findOpportunityInContactRoles(\n Configuration $configuration,\n ?Profile $profile,\n int $contactId\n ): ?Opportunity {\n $contactRoleRepository = app(ContactRoleRepository::class);\n\n $contactRoles = $contactRoleRepository->getByCrmContactId(\n $configuration,\n $contactId,\n );\n\n if (! $contactRoles->isEmpty()) {\n $opportunityId = app(MatchBusinessAccount::class)->resolve(\n $contactRoles,\n $profile?->getCrmProviderId(),\n );\n\n $opportunity = $this->opportunityRepository->find($opportunityId);\n }\n\n return $opportunity ?? null;\n }\n\n private function getOpportunityFromDatabase(\n Configuration $configuration,\n Account $account,\n int $contactId,\n ?int $userId = null\n ): ?Opportunity {\n $opportunity = null;\n\n if ($userId) {\n $this->logger->info('ProspectCache - Searching DB for opportunity by owner', [\n 'account_id' => $account->getId(),\n 'contact_id' => $contactId,\n 'owner_id' => $userId,\n ]);\n $opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityOwner(\n $configuration,\n $account,\n $userId,\n $contactId\n );\n }\n\n if (! $opportunity instanceof Opportunity) {\n $this->logger->info('ProspectCache - Fallback DB opportunity search', [\n 'account_id' => $account->getId(),\n 'contact_id' => $contactId,\n ]);\n $opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityAssignmentRule(\n $configuration,\n $account,\n $contactId\n );\n }\n\n $this->logger->info('ProspectCache - Opportunity DB search results', [\n 'account_id' => $account->getId(),\n 'contact_id' => $contactId,\n 'opportunity_id' => $opportunity?->getId(),\n ]);\n\n return $opportunity;\n }\n\n private function generateProspectTag(Configuration $configuration, string $identifier): string\n {\n return 'prospect:' . $configuration->getId() . ':' . $identifier;\n }\n\n private function getTags(Configuration $configuration, string $identifier): array\n {\n return ['prospect_cache', $this->generateProspectTag($configuration, $identifier)];\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.37666222,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"475","depth":6,"bounds":{"left":0.51894945,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"475","depth":7,"bounds":{"left":0.51894945,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"31e90967-e616-4852-b7de-889bc3ed24ba","depth":6,"bounds":{"left":0.51894945,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"31e90967-e616-4852-b7de-889bc3ed24ba","depth":7,"bounds":{"left":0.51894945,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-28 15:02:20","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-28 15:02:20","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"555","depth":6,"bounds":{"left":0.51894945,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"555","depth":7,"bounds":{"left":0.51894945,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.51894945,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.51894945,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"hubspot","depth":6,"bounds":{"left":0.51894945,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"hubspot","depth":7,"bounds":{"left":0.51894945,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-28 15:02:20","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-28 15:02:20","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.51894945,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.51894945,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-28 15:02:20","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-28 15:02:20","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.51894945,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.51894945,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-28 15:02:20","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-28 15:02:20","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.51894945,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.51894945,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"1","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"1","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2","depth":6,"bounds":{"left":0.51894945,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2","depth":7,"bounds":{"left":0.51894945,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-28 15:02:20","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-28 15:02:20","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.51894945,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.51894945,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"2026-05-28 15:02:20","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"2026-05-28 15:02:20","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.51894945,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.51894945,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"}]...
|
1716292670373789226
|
334494331094926055
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
#12121 on JY-20963-fix-im Project: faVsco.js, menu
#12121 on JY-20963-fix-import-on-deleted-entity, menu
Start Listening for PHP Debug Connections
ServiceTest
Run 'ServiceTest'
Debug 'ServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
36
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm;
use ChaseConey\LaravelDatadogHelper\Datadog;
use Illuminate\Contracts\Cache\Repository;
use Illuminate\Support\Facades\App;
use Jiminny\Contracts\Services\Crm\SyncCrmEntitiesInterface;
use Jiminny\Events\Crm\ProspectUpdated;
use Jiminny\Models\Account;
use Jiminny\Models\Contact;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Crm\Profile;
use Jiminny\Models\Lead;
use Jiminny\Models\Opportunity;
use Jiminny\Models\Stage;
use Jiminny\Repositories\Crm\ContactRoleRepository;
use Jiminny\Repositories\Crm\OpportunityRepository;
use Jiminny\Services\Crm\CrmObjects\Validators\StaleRecordValidator;
use Jiminny\Services\Crm\Salesforce\OpportunityMatcher\MatchBusinessAccount;
use Psr\Log\LoggerInterface;
class ProspectCache
{
public const string PROSPECT_TYPE_EMAIL = 'email';
public const string PROSPECT_TYPE_PHONE = 'phone';
public const string PROSPECT_TYPE_DOMAIN = 'domain';
private const int TTL_SECONDS = 900;
private const int TTL_SECONDS_DEV = 30;
private const string DATADOG_STAT_NAME = 'jiminny.crm.prospect_cache_lookup';
private const string LOOKUP_RESULT_INTERNAL = 'internal';
private const string LOOKUP_RESULT_CACHE = 'cache';
private const string LOOKUP_RESULT_DB = 'db';
private const string LOOKUP_RESULT_MISS = 'miss';
public function __construct(
private readonly FindsProspectInterface $dbCache,
private readonly Repository $cache,
private readonly OpportunityRepository $opportunityRepository,
private readonly EmailHelper $emailHelper,
private readonly LoggerInterface $logger,
private readonly StaleRecordValidator $staleRecordValidator,
) {
}
/**
* @return null|array{
* ?Lead,
* ?Account,
* ?Opportunity,
* ?Contact,
* ?Stage,
* string|null
* }
*/
public function findByProspectIdentifier(
Configuration $configuration,
?Profile $profile,
string $identifierType,
string $identifierValue,
?int $userId = null,
?SyncCrmEntitiesInterface $crmService = null
): ?array {
$cachedValue = $this->get($configuration, $identifierValue, $userId);
if ($cachedValue !== null) {
$this->sendDatadogStats(self::LOOKUP_RESULT_CACHE, $configuration->getProviderName());
return $cachedValue;
}
if ($identifierType == self::PROSPECT_TYPE_EMAIL
&& $this->emailHelper->isCompanyEmail($configuration->getTeam(), $identifierValue)
) {
// Set the cache to avoid querying the database for internal participants
$prospectData = [null, null, null, null, null, null];
$this->set($configuration, $identifierValue, $prospectData, $userId);
$this->sendDatadogStats(self::LOOKUP_RESULT_INTERNAL, $configuration->getProviderName());
return $prospectData;
}
$dbCache = $this->dbCache->findPro spect($configuration, [$identifierType => $identifierValue]);
if (empty(array_filter($dbCache))) {
$this->sendDatadogStats(self::LOOKUP_RESULT_MISS, $configuration->getProviderName());
return null;
}
$dbCache['contact'] = $this->staleRecordValidator->filterStale($dbCache['contact'], $crmService);
$dbCache['lead'] = $this->staleRecordValidator->filterStale($dbCache['lead'], $crmService);
if ($dbCache['contact'] instanceof Contact) {
$account = $dbCache['contact']->getAccount();
$dbCache['account'] = $account;
$opportunity = $this->findOpportunityInContactRoles(
$configuration,
$profile,
$dbCache['contact']->getId()
);
$opportunity = $this->staleRecordValidator->filterStale($opportunity, $crmService);
if ($opportunity instanceof Opportunity) {
$this->logger->info('ProspectCache - Found opportunities by contact roles', [
'opportunity_id' => $opportunity->getId(),
]);
$dbCache['account'] = $opportunity->getAccount();
} elseif ($account instanceof Account) {
$opportunity = $this->getOpportunityFromDatabase(
configuration: $configuration,
account: $account,
contactId: $dbCache['contact']->getId(),
userId: $userId
);
}
$dbCache['opportunity'] = $opportunity;
$dbCache['account'] = $this->staleRecordValidator->filterStale($dbCache['account'], $crmService);
$dbCache['stage'] = $dbCache['opportunity']?->getStage();
}
/**
* @IMPORTANT The keys must always be in this exact order
*
* @var array{
* ?Lead,
* ?Account,
* ?Opportunity,
* ?Contact,
* ?Stage,
* string|null
* } $result
*/
$result = [
$dbCache['lead'] ?? null,
$dbCache['account'] ?? null,
$dbCache['opportunity'] ?? null,
$dbCache['contact'] ?? null,
$dbCache['stage'] ?? null,
null,
];
$this->set($configuration, $identifierValue, $result, $userId);
$this->sendDatadogStats(self::LOOKUP_RESULT_DB, $configuration->getProviderName());
return $result;
}
public function findDomainMatch(Configuration $configuration, string $identifier, ?int $userId = null): ?array
{
$cachedValue = $this->get(
configuration: $configuration,
identifier: $identifier,
userId: $userId
);
if ($cachedValue !== null) {
$this->sendDatadogStats(
self::LOOKUP_RESULT_CACHE,
$configuration->getProviderName()
);
return $cachedValue;
}
// Log cache miss
$this->logger->info('[Prospect match] Cache miss', [
'identifier_type' => self::PROSPECT_TYPE_DOMAIN,
'identifier' => $identifier,
'crm' => $configuration->getProviderName(),
]);
// not in the cache
return null;
}
public function set(Configuration $configuration, string $identifier, array $prospectData, ?int $userId = null): void
{
$this->cache->tags($this->getTags($configuration, $identifier))->put(
$this->generateKey($configuration, $identifier, $userId),
$prospectData,
$this->getCacheTtl()
);
}
public function handleProspectUpdated(ProspectUpdated $event): void
{
$prospect = $event->getProspect();
$configuration = $prospect->getCrmConfiguration();
if ($configuration === null) {
return;
}
if ($prospect->getEmail() !== null) {
$this->cache->tags([$this->generateProspectTag($configuration, $prospect->getEmail())])->flush();
}
if ($prospect->getPhone() !== null) {
$normalizedPhone = $this->normalizePhoneNumber($prospect->getPhone());
$this->cache->tags([$this->generateProspectTag($configuration, $normalizedPhone)])->flush();
}
if ($prospect->getName() !== null) {
$this->cache->tags([$this->generateProspectTag($configuration, $prospect->getName())])->flush();
}
}
public function normalizePhoneNumber(string $phone): string
{
// Remove all non-digit characters first
$digitsOnly = preg_replace('/[^\d]/', '', $phone);
// Remove a single leading zero if present
$digitsOnly = ltrim($digitsOnly, '0');
// Add E.164 prefix
return '+' . $digitsOnly;
}
private function get(Configuration $configuration, string $identifier, ?int $userId = null): ?array
{
return $this->cache->tags($this->getTags($configuration, $identifier))
->get($this->generateKey($configuration, $identifier, $userId));
}
private function generateKey(Configuration $configuration, string $identifier, ?int $userId = null): string
{
$keySuffix = $userId === null ? '' : ':user:' . $userId;
return hash('sha256', 'crm:' . $configuration->getId() . ':prospect:' . $identifier . $keySuffix);
}
private function sendDatadogStats(string $result, string $crm): void
{
Datadog::increment(self::DATADOG_STAT_NAME, 1, [
'result' => $result,
'crm' => $crm,
]);
}
private function getCacheTtl(): int
{
if (! App::environment('production', 'production-eu')) {
return self::TTL_SECONDS_DEV;
}
return self::TTL_SECONDS;
}
private function findOpportunityInContactRoles(
Configuration $configuration,
?Profile $profile,
int $contactId
): ?Opportunity {
$contactRoleRepository = app(ContactRoleRepository::class);
$contactRoles = $contactRoleRepository->getByCrmContactId(
$configuration,
$contactId,
);
if (! $contactRoles->isEmpty()) {
$opportunityId = app(MatchBusinessAccount::class)->resolve(
$contactRoles,
$profile?->getCrmProviderId(),
);
$opportunity = $this->opportunityRepository->find($opportunityId);
}
return $opportunity ?? null;
}
private function getOpportunityFromDatabase(
Configuration $configuration,
Account $account,
int $contactId,
?int $userId = null
): ?Opportunity {
$opportunity = null;
if ($userId) {
$this->logger->info('ProspectCache - Searching DB for opportunity by owner', [
'account_id' => $account->getId(),
'contact_id' => $contactId,
'owner_id' => $userId,
]);
$opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityOwner(
$configuration,
$account,
$userId,
$contactId
);
}
if (! $opportunity instanceof Opportunity) {
$this->logger->info('ProspectCache - Fallback DB opportunity search', [
'account_id' => $account->getId(),
'contact_id' => $contactId,
]);
$opportunity = $this->opportunityRepository->findOneByAccountAndOpportunityAssignmentRule(
$configuration,
$account,
$contactId
);
}
$this->logger->info('ProspectCache - Opportunity DB search results', [
'account_id' => $account->getId(),
'contact_id' => $contactId,
'opportunity_id' => $opportunity?->getId(),
]);
return $opportunity;
}
private function generateProspectTag(Configuration $configuration, string $identifier): string
{
return 'prospect:' . $configuration->getId() . ':' . $identifier;
}
private function getTags(Configuration $configuration, string $identifier): array
{
return ['prospect_cache', $this->generateProspectTag($configuration, $identifier)];
}
}
A
1
Select All
475
475
1
31e90967-e616-4852-b7de-889bc3ed24ba
31e90967-e616-4852-b7de-889bc3ed24ba
2026-05-28 15:02:20
555
555
1
<null>
<null>
1
hubspot
hubspot
2026-05-28 15:02:20
<null>
<null>
2026-05-28 15:02:20
<null>
<null>
2026-05-28 15:02:20
0
0
1
2
2
2026-05-28 15:02:20
<null>
<null>
2026-05-28 15:02:20
1
1...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
86601
|
2973
|
16
|
2026-05-28T15:02:36.831164+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779980556831_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_configurations [EU]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rapstomViewCoocWindowFV faVsco.|s ~#12121 on JY-20 rapstomViewCoocWindowFV faVsco.|s ~#12121 on JY-20963-fx-lMEINSTALLMOM.INTERNALWEBHOOK SETU? maliminny storaceMalicenses.maMakere0 package-lock.jsonphpstan.neon.distF phpstan-baseline.neon4>phpunit.xmlraw.sol query.saMAesNeiMs mai sonar-project propertiesEtest.py<> Untitied Diagram.xmlus vetur.config.isMAWISAHOOK SinEoiNGMOSUnt. Sytemallloranesv =0 Cemtches and Consolosv @ Database ConsolesV AEU# console cUA DEAL RISKS (EUmeutsun6655888Sarvicaei+oc|exvontameA& console 1 $ 470 mguii crm_configurations 1 $ 326 mgylminnusoes naetA HSJJocalA SPV A PROD# ConcalaV A STAGINGH Concal"noakorInu co moy to:uLioServiceTest+0.custonlosteraveuosSF [minny@localhost)HS Jocal (jiminny@localhost)# console pronwwucrco Cimocwiccuccorolor.oh(C) ProspectCache.php x(C) Service-prp# console (EU"iii crm configurations (EU](X) A console [STAGING)HrowvyOU+=9g4DoLQшEOgclass rrospecccacheARAZWAK3BAVY• AHERE 0 = 47=• URUERBpublic function findByProspectIdentifier(SabCache = Sthis->dbCache-›findPro spect(Sconfiguration, [SidentifierType »> Sidentit 2id(Duuid (UUID with time-low and tine-high swapped) :47531e98967-e616-4852-b7de-889bc3ed24baSif Cenpty(array filter(SdbGache)))Sthie-ssendDatadooStote( resulE CeLEC-LOOKUP PESULT MISS, Sconficuration-3oetProvtllanoiehoreuser3 providenneucn nulB editiontm instanceSabeachel"contacte SthisosstalebecordvalbidntonetenStaleScbeachelt contactSdbCachef "lcad"1 = Sthis->staleRecondVaLidatones6iltenStale(Sdbbachef "lead"I. SaceSer!D is sandboxI versionSdheachel" contact"sinstanceor Contactalinstalled_app_versionSaccount = Sahlachel'contact' o>ae-Accounto! sync_netadataSaheachelt'accounte SaccountAn sync obfect=euto sune ectivieoSopportunity = Sthis->findüpportunityinContactRoles(SconfsouracionSorOTaLe= crm_provider_id=crn_base_urtMiaet eunrah at(2826-85-28 18:02:301 Connected(2826-85-28 18:02:301 Jiminny> use Mininnv(2826-85-28 18:02-301 completed sin 61 ngFron jaminny.crn_conf-guracionsHERE OE47SLoa Sen[2826-85-28 18:02:31] 1 row retrieved starting fron 1 in 568 ms (execution: 82 ms, fetching: 486 ms)CnuLehubspotnultsnuLt45685385www.coonavecredtt.comSYLLDOeCecsdales OrceancworceoeionhToreach seartcnants as coarticioant// Line 144-150: If no enail natch, try DOMAIN matchleorylrontSrecords = Sthis=sfindCrmDomainRecords(crmService: ScrmService, ...): This say call Salesforce::matchByDomainfSteo 7: Domain Search Triaaers Doportunity Syncnownthnrthnde.nctoud? @lxaedcalwhithraatadlononretun// CachedCreServiceDecorator or SalesforcelServicoScraservice-syncopoortunttyScrProvideridcauls inportopportunity+ (Code S AdaotivGIU NAt nminh Maliod Windcud Tosn...
|
NULL
|
8098087482663890599
|
NULL
|
click
|
ocr
|
NULL
|
rapstomViewCoocWindowFV faVsco.|s ~#12121 on JY-20 rapstomViewCoocWindowFV faVsco.|s ~#12121 on JY-20963-fx-lMEINSTALLMOM.INTERNALWEBHOOK SETU? maliminny storaceMalicenses.maMakere0 package-lock.jsonphpstan.neon.distF phpstan-baseline.neon4>phpunit.xmlraw.sol query.saMAesNeiMs mai sonar-project propertiesEtest.py<> Untitied Diagram.xmlus vetur.config.isMAWISAHOOK SinEoiNGMOSUnt. Sytemallloranesv =0 Cemtches and Consolosv @ Database ConsolesV AEU# console cUA DEAL RISKS (EUmeutsun6655888Sarvicaei+oc|exvontameA& console 1 $ 470 mguii crm_configurations 1 $ 326 mgylminnusoes naetA HSJJocalA SPV A PROD# ConcalaV A STAGINGH Concal"noakorInu co moy to:uLioServiceTest+0.custonlosteraveuosSF [minny@localhost)HS Jocal (jiminny@localhost)# console pronwwucrco Cimocwiccuccorolor.oh(C) ProspectCache.php x(C) Service-prp# console (EU"iii crm configurations (EU](X) A console [STAGING)HrowvyOU+=9g4DoLQшEOgclass rrospecccacheARAZWAK3BAVY• AHERE 0 = 47=• URUERBpublic function findByProspectIdentifier(SabCache = Sthis->dbCache-›findPro spect(Sconfiguration, [SidentifierType »> Sidentit 2id(Duuid (UUID with time-low and tine-high swapped) :47531e98967-e616-4852-b7de-889bc3ed24baSif Cenpty(array filter(SdbGache)))Sthie-ssendDatadooStote( resulE CeLEC-LOOKUP PESULT MISS, Sconficuration-3oetProvtllanoiehoreuser3 providenneucn nulB editiontm instanceSabeachel"contacte SthisosstalebecordvalbidntonetenStaleScbeachelt contactSdbCachef "lcad"1 = Sthis->staleRecondVaLidatones6iltenStale(Sdbbachef "lead"I. SaceSer!D is sandboxI versionSdheachel" contact"sinstanceor Contactalinstalled_app_versionSaccount = Sahlachel'contact' o>ae-Accounto! sync_netadataSaheachelt'accounte SaccountAn sync obfect=euto sune ectivieoSopportunity = Sthis->findüpportunityinContactRoles(SconfsouracionSorOTaLe= crm_provider_id=crn_base_urtMiaet eunrah at(2826-85-28 18:02:301 Connected(2826-85-28 18:02:301 Jiminny> use Mininnv(2826-85-28 18:02-301 completed sin 61 ngFron jaminny.crn_conf-guracionsHERE OE47SLoa Sen[2826-85-28 18:02:31] 1 row retrieved starting fron 1 in 568 ms (execution: 82 ms, fetching: 486 ms)CnuLehubspotnultsnuLt45685385www.coonavecredtt.comSYLLDOeCecsdales OrceancworceoeionhToreach seartcnants as coarticioant// Line 144-150: If no enail natch, try DOMAIN matchleorylrontSrecords = Sthis=sfindCrmDomainRecords(crmService: ScrmService, ...): This say call Salesforce::matchByDomainfSteo 7: Domain Search Triaaers Doportunity Syncnownthnrthnde.nctoud? @lxaedcalwhithraatadlononretun// CachedCreServiceDecorator or SalesforcelServicoScraservice-syncopoortunttyScrProvideridcauls inportopportunity+ (Code S AdaotivGIU NAt nminh Maliod Windcud Tosn...
|
86600
|
NULL
|
NULL
|
NULL
|
|
79362
|
2784
|
43
|
2026-05-28T06:26:19.821521+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779949579821_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• 0DOCKER₴81T1DOCKER (docker-compose)DEV (docker)₴2-zsh883&1docker_lamp_1-2026-05-28 06:25:25 Running ['artisan'mailbox:text-relay:sync] [IP_ADDRESS]/May/2026:06:25:22+0000 "GET /index.php"500 /home/jiminny/public/index.php 3096.31614336 wwwdocker_lamp_1docker_lamp_1docker_lamp_11 Relayed 0 message(s).5s DONE'/usr/local/bin/php' 'artisan'mailbox:text-relay:sync › '/proc/1/fd/1'2>&1docker_1amp_12026-05-28 06:25:31 Running['artisan'conference:pre-meeting-notificationj127.0.0.1 -28/May/2026:06:25:30 +0000 "GET /index.php" 500 /home/jiminny/public/index.php3[PHONE]6 wwwdocker_lamp_1 |docker_lamp_1l '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification › '/proc/1/fd/1' 2>&1docker_lamp_12026-05-28 06:25:38 Running ['artisan'conference:monitor:start] ... 4s DONEdocker_1amp_1• '/usr/local/bin/php' 'artisan'conference:monitor:start > */proc/1/fd/1• 2>&1docker_lamp_12026-05-28 06:25:43 Running ['artisan'conference:monitor:end] [IP_ADDRESS]/May/2026:06:25:40 +0000 "GET /index.php" 500 /home/jiminny/public/index.php 6651.294 1docker_lamp_15S DONEdocker_lamp_1....*'/usr/local/bin/php' 'artisan' conference:monitor:end> "/proc/1/fd/1'2>&1docker_lamp_12026-05-28 06:25:48 Running ['artisan' jiminny:fix-hubspot-tokens] . 3s DONEdocker_lamp_11 l '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens › */proc/1/fd/1' 2>&1docker_lamp_1 |2026-05-28 06:25:52 Running ['artisan'conference:pre-meeting-reminder] in background11.16ms DONEdocker_lamp_1 |l ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder › '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan'schedule: finish "framework/schedule-805efb16Oee8d9da0Ze60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &docker_1amp_12026-05-28 06:25:52 Running ['artisan' hubspot:journal-poll --start] in b1.52ms DONEdocker_lamp_1l ('/usr/local/bin/php' 'artisan' hubspot: journal-poll --start › '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &docker_1amp_12026-05-28 06:25:52 Running ['artisan'crm: bullhorn:ping--heartbeat] 12728/May/2026:06:25:51 +0000 "GET /index.php" 500 /home/jiminny/public/index.php 8[PHONE]6 wwwView in Docker Desktop• View ConfigL View Logsw Enable Watchd DetachDOCKER (docker-compose)screenpipe"X4T2-zsh85...ip-10-30-129-190:~ (nc)PROD (ssh)S[URL_WITH_CREDENTIALS] T3 EU (-zsh)*** System restart required ***Last login: Tue May 26 06:32:33 2026 from 212.5.153.87lukas@jiminny-eu-bastion:~$ client_loop: send disconnect: Broken pipe@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ I|T4STAGE (ssh)Run'do-release-upgrade' to upgrade to it.System restart required ***Last login: Mon May 18 06:46:53 2026 from 212.5.153.87stion:~$ |T5QA (-zsh)~ $ 0STAGEX 16FE (-zsh)lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ lFRONTENDX Y7 EXT (-zsh)lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 0EXTENSION...
|
NULL
|
-1455075367370276456
|
NULL
|
typing_pause
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• 0DOCKER₴81T1DOCKER (docker-compose)DEV (docker)₴2-zsh883&1docker_lamp_1-2026-05-28 06:25:25 Running ['artisan'mailbox:text-relay:sync] [IP_ADDRESS]/May/2026:06:25:22+0000 "GET /index.php"500 /home/jiminny/public/index.php 3096.31614336 wwwdocker_lamp_1docker_lamp_1docker_lamp_11 Relayed 0 message(s).5s DONE'/usr/local/bin/php' 'artisan'mailbox:text-relay:sync › '/proc/1/fd/1'2>&1docker_1amp_12026-05-28 06:25:31 Running['artisan'conference:pre-meeting-notificationj127.0.0.1 -28/May/2026:06:25:30 +0000 "GET /index.php" 500 /home/jiminny/public/index.php3[PHONE]6 wwwdocker_lamp_1 |docker_lamp_1l '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification › '/proc/1/fd/1' 2>&1docker_lamp_12026-05-28 06:25:38 Running ['artisan'conference:monitor:start] ... 4s DONEdocker_1amp_1• '/usr/local/bin/php' 'artisan'conference:monitor:start > */proc/1/fd/1• 2>&1docker_lamp_12026-05-28 06:25:43 Running ['artisan'conference:monitor:end] [IP_ADDRESS]/May/2026:06:25:40 +0000 "GET /index.php" 500 /home/jiminny/public/index.php 6651.294 1docker_lamp_15S DONEdocker_lamp_1....*'/usr/local/bin/php' 'artisan' conference:monitor:end> "/proc/1/fd/1'2>&1docker_lamp_12026-05-28 06:25:48 Running ['artisan' jiminny:fix-hubspot-tokens] . 3s DONEdocker_lamp_11 l '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens › */proc/1/fd/1' 2>&1docker_lamp_1 |2026-05-28 06:25:52 Running ['artisan'conference:pre-meeting-reminder] in background11.16ms DONEdocker_lamp_1 |l ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder › '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan'schedule: finish "framework/schedule-805efb16Oee8d9da0Ze60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &docker_1amp_12026-05-28 06:25:52 Running ['artisan' hubspot:journal-poll --start] in b1.52ms DONEdocker_lamp_1l ('/usr/local/bin/php' 'artisan' hubspot: journal-poll --start › '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &docker_1amp_12026-05-28 06:25:52 Running ['artisan'crm: bullhorn:ping--heartbeat] 12728/May/2026:06:25:51 +0000 "GET /index.php" 500 /home/jiminny/public/index.php 8[PHONE]6 wwwView in Docker Desktop• View ConfigL View Logsw Enable Watchd DetachDOCKER (docker-compose)screenpipe"X4T2-zsh85...ip-10-30-129-190:~ (nc)PROD (ssh)S[URL_WITH_CREDENTIALS] T3 EU (-zsh)*** System restart required ***Last login: Tue May 26 06:32:33 2026 from 212.5.153.87lukas@jiminny-eu-bastion:~$ client_loop: send disconnect: Broken pipe@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ I|T4STAGE (ssh)Run'do-release-upgrade' to upgrade to it.System restart required ***Last login: Mon May 18 06:46:53 2026 from 212.5.153.87stion:~$ |T5QA (-zsh)~ $ 0STAGEX 16FE (-zsh)lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ lFRONTENDX Y7 EXT (-zsh)lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ 0EXTENSION...
|
79360
|
NULL
|
NULL
|
NULL
|
|
79363
|
2785
|
31
|
2026-05-28T06:26:19.965344+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779949579965_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rapstomViewNeweNNCCoocKetucioTOOI-WindowFV faVsco. rapstomViewNeweNNCCoocKetucioTOOI-WindowFV faVsco.|s ~$ JY-20915-fix-missing-header-text-relaproidetKeroaioh.© SyncMaibox.phpEinfection ison disTextRelayServiceTest.phpMENSTAmMANISRNAWERHOsanemajiminny_storagewulicancas maM Makefile# package-lock.jsonE phpstan.neon.distEphpstan-baseline.neon<>phounit.xmlT% raw.sal.query.soM+README.mdô sonar-proiect propertiesE testpySUn tieo aciam-xmiis vetur.confialisM. WEBHOOK FILTERNG-MPLEMENTAT> h Extemal Librariesv E Scratches and ConsolesServicht+.@cv E DatabaseV AEconsolevlttinnwoloetosASF 1s749APRODconsoleASTAGINGconsoleDockerPyyminny.on3.env.productionclass Field extends Modelpublic const int NAME_MAX_LENGTH = 128:public const int LABEL_MAX_LENGTH = 255;8 090:08public const int DESCRIPTION MAX LENGTH = 191:public const string TYPE_MULTIPICKLIST = "nulti-picklist':Norye SUODONeooublic const string TYPE_PERCENToublic const string TYPE_PICKLISTockustoubiac const stoind TYpE NunsERoublaic const stoind TYPE CURRENYoublic const stoing TYPE BOOLEANoub1e const stoino TYPE TEXTAREAQutoti liminoy.crm lavout entitiesMRW 9rowsd =6id pDuvid (UUID with time-low and time-high swapped) V032 Az04chel-2hha-1044.0083-256653c0[PHONE]5f8f-9f84-435d-9b6a-2faße178ce6:934 002c9d01-4deS-4bb9-9a97-15221485a95935 da3f8bdS-639a-4263-a8e3-c90a815f48eh36 [CREDIT_CARD]-8478-91178erat4:oxy horwnns-den:c norerhsewroetht938 75SbSf1d-dfbf-4783-a4Se-8cf7359312c1790 c205S646-fSS2-46b1-8689-9200f156cc3g1789 3357965f-6b86-4a8a-a8ec-5363ebe861b2Tho Huncnoll nhhin hac Hoon H.MockeriitEWEAV=custom.loglaravel.logSF (iminny@localhost) xHS.Jocal jiminny@blocalhost)# console pron# consolefFulA console (STAGINGTeAuto v"provider_user_token": "vlu:AQIBAHj-L2/NK2yuuuaLgifzhab9crUNK1pk4F1Q9njnXqp_6AEQhDhDQVa1nv#CHEvnpvstAAAAtJ888gkgnK15УaUB8#"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc""expires": 1779891997,sellect * &rom ernSield vallues271274V• 2select * fron crn fields where type = 'multi-picklist':SELECT * FROM crn layouts WHERE uuid to bin *7c327871-fc25-4c56-9a8f-44c5a849d65c') • uuid:SELECT * FROM crn layout entities WHERE crn layout 1d = 282:SELECT * FROM crn fields WHERE 1d = 3014:SELECT * FROM crn field values WHERE crm field 1d = 3814crn layoutamIZ parent entity id ?oeonsedsohTOOУLYThu 28 May 9:26:19TextRelayServiceTesteeendhrner hensewiet+0.can I test it locally first. if I place env from stagingYes, The service relies on a tew thinas vou'd need in olace1. Credentials file The constructor expects storage/text-relay.ison (a Google service account JSON key file)Gmbtrom sthaind and oince it there2. .env values to copy from stagingGOOGLE TEXTUSERECAOGLE TEXT HASTGOOGLE TEXT RELAY TOPIC:DEPLOY REGION:the cnail mailbox address# e.g. txt.jiminny.com or txt.staging.jiminny.com# the Pub/Sub topic namaeu or us3. Run the svnc manuallv vin tinker tinside docker 1aeo 10%M bashACk aminingt<CodeAdhotive1s_vis1ble 1meadoniv282282282282282282282cnull<null>932932932932932coulls act vtyesunnary<null> follow-up1879 <nulle1880 cnulle1882 <null:u:: nult1885 <null1943 Location1984 OutconeldesemeietoniActivity SunnaryNext Steps….cnulaconllsCall Outcon.@ default_value Vwus mandarorycoulls<null><null>cnull<null»comiissnull»snull>chulh2U→.0seauence@created_at W8 2822-12-15 14:53:091 2822-12-15 14:53:098 2822-12-15 14:53:0912822-12-15 14:53:091782010115-14:5348542029.12.15 14-67-906 2823-82-15 17:02:565 2823-82-15 17:02:34Tiundatertai2022-12-15 12022-12-15 142022-12-15 142022-12-1514[PHONE]22-12-15 1AnX-An.1G2023-02-15 1GIM:1906 76M Maur Tosme 27Aen liTe9 ensno....
|
NULL
|
4814339132299611197
|
NULL
|
typing_pause
|
ocr
|
NULL
|
rapstomViewNeweNNCCoocKetucioTOOI-WindowFV faVsco. rapstomViewNeweNNCCoocKetucioTOOI-WindowFV faVsco.|s ~$ JY-20915-fix-missing-header-text-relaproidetKeroaioh.© SyncMaibox.phpEinfection ison disTextRelayServiceTest.phpMENSTAmMANISRNAWERHOsanemajiminny_storagewulicancas maM Makefile# package-lock.jsonE phpstan.neon.distEphpstan-baseline.neon<>phounit.xmlT% raw.sal.query.soM+README.mdô sonar-proiect propertiesE testpySUn tieo aciam-xmiis vetur.confialisM. WEBHOOK FILTERNG-MPLEMENTAT> h Extemal Librariesv E Scratches and ConsolesServicht+.@cv E DatabaseV AEconsolevlttinnwoloetosASF 1s749APRODconsoleASTAGINGconsoleDockerPyyminny.on3.env.productionclass Field extends Modelpublic const int NAME_MAX_LENGTH = 128:public const int LABEL_MAX_LENGTH = 255;8 090:08public const int DESCRIPTION MAX LENGTH = 191:public const string TYPE_MULTIPICKLIST = "nulti-picklist':Norye SUODONeooublic const string TYPE_PERCENToublic const string TYPE_PICKLISTockustoubiac const stoind TYpE NunsERoublaic const stoind TYPE CURRENYoublic const stoing TYPE BOOLEANoub1e const stoino TYPE TEXTAREAQutoti liminoy.crm lavout entitiesMRW 9rowsd =6id pDuvid (UUID with time-low and time-high swapped) V032 Az04chel-2hha-1044.0083-256653c0[PHONE]5f8f-9f84-435d-9b6a-2faße178ce6:934 002c9d01-4deS-4bb9-9a97-15221485a95935 da3f8bdS-639a-4263-a8e3-c90a815f48eh36 [CREDIT_CARD]-8478-91178erat4:oxy horwnns-den:c norerhsewroetht938 75SbSf1d-dfbf-4783-a4Se-8cf7359312c1790 c205S646-fSS2-46b1-8689-9200f156cc3g1789 3357965f-6b86-4a8a-a8ec-5363ebe861b2Tho Huncnoll nhhin hac Hoon H.MockeriitEWEAV=custom.loglaravel.logSF (iminny@localhost) xHS.Jocal jiminny@blocalhost)# console pron# consolefFulA console (STAGINGTeAuto v"provider_user_token": "vlu:AQIBAHj-L2/NK2yuuuaLgifzhab9crUNK1pk4F1Q9njnXqp_6AEQhDhDQVa1nv#CHEvnpvstAAAAtJ888gkgnK15УaUB8#"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc""expires": 1779891997,sellect * &rom ernSield vallues271274V• 2select * fron crn fields where type = 'multi-picklist':SELECT * FROM crn layouts WHERE uuid to bin *7c327871-fc25-4c56-9a8f-44c5a849d65c') • uuid:SELECT * FROM crn layout entities WHERE crn layout 1d = 282:SELECT * FROM crn fields WHERE 1d = 3014:SELECT * FROM crn field values WHERE crm field 1d = 3814crn layoutamIZ parent entity id ?oeonsedsohTOOУLYThu 28 May 9:26:19TextRelayServiceTesteeendhrner hensewiet+0.can I test it locally first. if I place env from stagingYes, The service relies on a tew thinas vou'd need in olace1. Credentials file The constructor expects storage/text-relay.ison (a Google service account JSON key file)Gmbtrom sthaind and oince it there2. .env values to copy from stagingGOOGLE TEXTUSERECAOGLE TEXT HASTGOOGLE TEXT RELAY TOPIC:DEPLOY REGION:the cnail mailbox address# e.g. txt.jiminny.com or txt.staging.jiminny.com# the Pub/Sub topic namaeu or us3. Run the svnc manuallv vin tinker tinside docker 1aeo 10%M bashACk aminingt<CodeAdhotive1s_vis1ble 1meadoniv282282282282282282282cnull<null>932932932932932coulls act vtyesunnary<null> follow-up1879 <nulle1880 cnulle1882 <null:u:: nult1885 <null1943 Location1984 OutconeldesemeietoniActivity SunnaryNext Steps….cnulaconllsCall Outcon.@ default_value Vwus mandarorycoulls<null><null>cnull<null»comiissnull»snull>chulh2U→.0seauence@created_at W8 2822-12-15 14:53:091 2822-12-15 14:53:098 2822-12-15 14:53:0912822-12-15 14:53:091782010115-14:5348542029.12.15 14-67-906 2823-82-15 17:02:565 2823-82-15 17:02:34Tiundatertai2022-12-15 12022-12-15 142022-12-15 142022-12-1514[PHONE]22-12-15 1AnX-An.1G2023-02-15 1GIM:1906 76M Maur Tosme 27Aen liTe9 ensno....
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79364
|
2785
|
32
|
2026-05-28T06:26:22.491779+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779949582491_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-147301692555525249
|
-8776298399911410750
|
visual_change
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
PhpStormViewNeweNNCCoocKetucioTOOI-WindowFV faVsco.|s ~$ JY-20915-fix-missing-header-text-relaProinet vcKerosoh© SyncMailbox.phpEinfection ison distTextRelayServiceTest.phpfyyminny.oho3.env.productionMAINSTAIMclass Field extends ModelMANiSPNAwERtosanemajiminny_storagewulicancas maM Makefile# package-lock.jsonE phpstan.neon.distEphpstan-baseline.neon<>phounit.xml1% raw.salquery.salM: README.mdô sonar-proiect propertiesEtest.ov<> Untitied Diagram.xmlis vetur.confialisM.WEBHOOK_FILTERING.IMPLEMENTAT•h Extemal Uibrariedv E Scratches and ConsolesServicht+@C0*v E DatabaseV AEconsoleAliminnyelocalhost4SF 1 $ 749 mschmeneostosyaVPRODconsoleSTAGING2 consoleDockerpublic const int NAME_MAX_LENGTH = 128;public const int LABEL_MAX_LENGTH = 255;8 090:08public const int DESCRIPTION MAX LENGTH = 191:public const string TYPE_MULTIPICKLIST = "nulti-picklist";Norye SUODONeooublic const string TYPE_PERCENToublic const string TYPE_PICKLISToubiac const stoind TYpE NunsER• "oicklist':mber*oublaic const stoing TYPE CURRENCYoubidic const string TYPE BOOLEA"boolean';"textoub dic const strind thpe textoub1e const stoino TYPE TEXTAREAS0TextRelayServiceTestThu 28 May 9:26:21MockeriitEWEAV=custom.logsravelloSF (iminny@localhost)A console (EU]A console [STAGING"оut-sgtTE ARO MNAHERE 10 = 7885=•OROER 8un crm.fields (jiminnytalocalhost) x# HS Jocal jiminny@tocalhostconsole (PROD)DOLLEOgeCSVVLLDOeaner hensewietcan I test it locally first. if I place env from stagingYes, The service relies on a tew thinas vou'd need in olace1. Credentials file The constructor expects storage/text-relay.ison (a Google service account JSON key file)Gmbtrom sthaind and oince it there2. .env values to copy from stagingGOOGLE TEXTUSERCOOGLE TEXTI HASTGOOGLE TEXT RELAY TOPICDEPLOY _REGION=the cnail nailbox address# e.g. txt.jiminny.com or txt.staging.jiminny.com# the Pub/Sub topic nameeu or us3. Run the svnc manualiv vin tinker tinside docker 1aeo 10lM bashAck amwinino t+ < Codh EAdnotivTho Huncnoll ninin hac hoonWindcud Tosm....
|
79363
|
NULL
|
NULL
|
NULL
|
|
79613
|
2789
|
32
|
2026-05-28T06:35:55.435042+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950155435_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7923424182753190895
|
-8780372176425246254
|
typing_pause
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
rnpstomCoocWindowFV faVsco.|s ~$ JY-20915-fix-missing-header-textproidetetescoyLayoutltonsrormer.onUnaded Uragkam.xmiu, veturcontiosM+WEBHOOK_FILTERING._IMPLEMENTATclass rzelolranstormer excends iranstornernoscract→10 extemal Lioraniesv EScratches and Consolesv Database ConsolesconsolezuADEAL RISKS (EU"AEU fEUTvminnwoehoconsolelliminnyocoDi jiminny@localhost)4 HSJJocal jiminny@localhost)4 SF jiminny@localhost)A zoho_dev (iminny@localhost)V & PRODconcnle lpeonServicht+@C0*v E Databaseconsolevlttinnwooetos4, SFAHSllocalAPRODconsoleASTAGINGconsoleDockerpublic tunccion transtor(hleld srhetd). arrayCype scyoe'enabled' a> Sfield-›is selectablelenouh ts srreldes lenech'defaultValue' => SdefaultValue.public function includeOptions(Field Sfield): ?Collectioni...QutouMii liminow.crm lavout entitiosMRW9rows6On4=6did pDuvid (UUID with time-low and time-high swapped) V032 Az04chel-2hha-1044.0083-256653c0[PHONE]5f8f-9f84-435d-9b6a-2faße178ce6:934 002c9d01-4deS-4bb9-9a97-15221485a9Sn935 da3f8bdS-639a-4263-a8e3-c90a815f48eh36 [CREDIT_CARD]-8478-91178erat4:oxy onywnns-den:enorerheyroethth1704 ADACCHIL-ESSO-LAN1-RARO.02AA/1CACA7,1789 33579b5f-6b86-4a8a-aBec-5363ebe861b2938 7556561d-dfbf-4783-a45e-8cf7359312c)php api.phpecrmeontrober.orC FieldTransformer.php x composer.ison• DockerfileTO0УLYThu 28 May 9:35:55araveliosSF (iminny@localhost) xHSJocal jiminny@blocalhost)# consolis pron# console FuleeesdaA console (STAGING=267268278=272=273274rner hensewietwtlerekevoute+0.TeAuto vprovider_user_token": "vlu:AQJBAHj-L2.NK2yuuuaLqifzhab9crUNK1pk4F1Q9rjnXqp_6AEQhDh0QVa1nviCHEvnpvstAAAAt08889kqnk1bYwU88w89"provider_refresh_token": "5834113:[TELEGRAM_TOKEN]b2bfc*,"exorires": 1779891992Additional Context•the Field model detinos TYPF MILTPxST" "eult coickiist" but marks it as "Not vet supported" uinc87-88*The layouts endpoint at /ap Vera/ayouts uses Layouttranstorer → LayoutEntitytranstomer → Field.flect * fron crm_field_values:rancfornar chainthe transtormer includes ent.ties.children.tield.cotton Une 652in ermeontroller.phpilect * fron crm fields where type = "nulti-picklist':ELECT * FROM crm layouts WHERE uuid to bin(*7c327871-fc25-4c56-9a0f-44c5a849d65c') = uuid:Motid wotr th ma tomnlamont thie to anshld multieriet thontnoein huoitecculs thon ciutoyoue crocaes wncke chicoyourdu s zocELECT * FROM crm fields WHERE 1d = 3014; # 1885ELECT * FROM crm field values WHERE crn field 1d = 3814Ack amwiningt«Codo SWE.16crn layoutamIZ parent entity id282282282282282282cnullcnull>932932937932932ldesereietonicoulls act vtyesunnaryActivity Sunnary<null> follow-up1879 <nulle1880 cnulleFB: coulteRRcomn1943 Location1984 OutcomeNext Steps….cnulacnulyCall Outcome@ default_value V3 is nandatony1s_vis1ble 1coulls<null><null><null>comiisconllssnull>cnuttread_onlysequence@created_at W8 2822-12-15 14:53:091 2822-12-15 14:53:098 2822-12-15 14:53:0912822-12-15 14:53:09148201015-14153485A. 2927-00.15 17-02-CgS 2823-82-15 17:02:344 2822-12-15 14:53:052U→.0iuodateduar2022-12-15 12022-12-15 142022-12-15 142022-12-1514822-122-152A0X-A0-151AnX-An.1G2022-12-15 1SUM: 1883 6:5 WWindsurf Teams 274:21 UTF-8 4 space-...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79614
|
2789
|
33
|
2026-05-28T06:35:57.794010+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950157794_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
1197515681933027295
|
1597915191895470513
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event...
|
79613
|
NULL
|
NULL
|
NULL
|
|
79615
|
2789
|
34
|
2026-05-28T06:36:00.349943+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950160349_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rnpstomViewNeWENNCCoocTOOI-WindowFV faVsco.|s ~$ J rnpstomViewNeWENNCCoocTOOI-WindowFV faVsco.|s ~$ JY-20915-fix-missing-header-text-proidetphp api.phpe)Crmcontro er.mhipetescoyLayoutltonstormer.oinC FieldTransformer.php x composer.ison• DockerfileUnuded Uractam.xmniu, veturcontiosM+WEBHOOK_FILTERING._IMPLEMENTATclass relolranstorer excends transtornernoscracu→10 extemal Lioraniesv EScratches and Consolesv Database ConsolesconsolezulOZALHNKEvminntodnoconsole liminnyoe nooftiiminny @locainos4 HSJJocal jiminny@localhost)4 SF jiminny@localhost)A zoho_dev (iminny@localhost)V & PRODconenle lpronServicht+@C0*v E DatabaseconsoleAliminnyelocalhost4 SFAHSllocalfii crm_fields 1 $ 483 mgVPRODconsoleSTAGING& consoleDockerpublic tunccion transtor(hleld srhetd). array"type' => Stype'enabled' a> Sfield-›is selectable"Length' => $field->length.'defaultValue' => SdefaultValue.public function include0ptions(Field Sfield): ?Collection(....2826-85-28 89-35:557 Connected2826-85-28 89-35:557 6imnnvs use arimiinny2826-85-28 89:35:55 completed in 11 mg2826-85-28 89:35:55 Jiminny> SELECT t.*FROM Jiminny.crn fields tWHERE 1d = 1883TTMTT CaTl(2826-85-28 89:35:56 1 row retrieved starting fron 1 in 964 ms (execution: 47 ms, fetching: 917 ms)TextRelayServiceTestDATAV=custom.logaraveilo"SF (iminny@localhost)un crm.fields (jminnytalocalhost) x# HS Jocal jiminny@tocalhostA console (EU]A console [STAGING)HrowyoltTYARoyDLRmEOgeAHERE 10 = 7884=•OROER 8Ar- 1d1883(#uvid (UUID with time-low and tine-high swapped) :4еf18864-5b6f-4362-84c1-cd76425e80f6ARcon confiquratzion iadcra_provzder_1denoiewnd= =labe!and ldatesim# descriptioncouttum typedatetim1 Length1 default valudobject,typeevenis_selectableunke sanlstonyconsole (PROD)CSVYLL+Oe00%LXThu 28 May 9:36:00+0.CeenaFix. TextRelavService"wtlerekevouteAdditional Context•the Field model detinos TYPF MILTPxST" "eult coickiist" but marks it as "Not vet supported" uinc87-88*The layouts endpoint at /ap Vera/ayouts uses Layouttranstorer → LayoutEntitytranstomer → Field.ransforner chairthe transtormer includes ent.ties.children.tield.cotton Une 652in ermeontroller.phpMotid wotr th ma tomnlamont thie to anshld multieriet thontnoein huoiteAck anhine+ <> Codo SWE.16raw rotriouad ctartina from n 066m.GIM: NA: onMinh Malioe Windeur Tosm...
|
NULL
|
-3867694241427021289
|
NULL
|
click
|
ocr
|
NULL
|
rnpstomViewNeWENNCCoocTOOI-WindowFV faVsco.|s ~$ J rnpstomViewNeWENNCCoocTOOI-WindowFV faVsco.|s ~$ JY-20915-fix-missing-header-text-proidetphp api.phpe)Crmcontro er.mhipetescoyLayoutltonstormer.oinC FieldTransformer.php x composer.ison• DockerfileUnuded Uractam.xmniu, veturcontiosM+WEBHOOK_FILTERING._IMPLEMENTATclass relolranstorer excends transtornernoscracu→10 extemal Lioraniesv EScratches and Consolesv Database ConsolesconsolezulOZALHNKEvminntodnoconsole liminnyoe nooftiiminny @locainos4 HSJJocal jiminny@localhost)4 SF jiminny@localhost)A zoho_dev (iminny@localhost)V & PRODconenle lpronServicht+@C0*v E DatabaseconsoleAliminnyelocalhost4 SFAHSllocalfii crm_fields 1 $ 483 mgVPRODconsoleSTAGING& consoleDockerpublic tunccion transtor(hleld srhetd). array"type' => Stype'enabled' a> Sfield-›is selectable"Length' => $field->length.'defaultValue' => SdefaultValue.public function include0ptions(Field Sfield): ?Collection(....2826-85-28 89-35:557 Connected2826-85-28 89-35:557 6imnnvs use arimiinny2826-85-28 89:35:55 completed in 11 mg2826-85-28 89:35:55 Jiminny> SELECT t.*FROM Jiminny.crn fields tWHERE 1d = 1883TTMTT CaTl(2826-85-28 89:35:56 1 row retrieved starting fron 1 in 964 ms (execution: 47 ms, fetching: 917 ms)TextRelayServiceTestDATAV=custom.logaraveilo"SF (iminny@localhost)un crm.fields (jminnytalocalhost) x# HS Jocal jiminny@tocalhostA console (EU]A console [STAGING)HrowyoltTYARoyDLRmEOgeAHERE 10 = 7884=•OROER 8Ar- 1d1883(#uvid (UUID with time-low and tine-high swapped) :4еf18864-5b6f-4362-84c1-cd76425e80f6ARcon confiquratzion iadcra_provzder_1denoiewnd= =labe!and ldatesim# descriptioncouttum typedatetim1 Length1 default valudobject,typeevenis_selectableunke sanlstonyconsole (PROD)CSVYLL+Oe00%LXThu 28 May 9:36:00+0.CeenaFix. TextRelavService"wtlerekevouteAdditional Context•the Field model detinos TYPF MILTPxST" "eult coickiist" but marks it as "Not vet supported" uinc87-88*The layouts endpoint at /ap Vera/ayouts uses Layouttranstorer → LayoutEntitytranstomer → Field.ransforner chairthe transtormer includes ent.ties.children.tield.cotton Une 652in ermeontroller.phpMotid wotr th ma tomnlamont thie to anshld multieriet thontnoein huoiteAck anhine+ <> Codo SWE.16raw rotriouad ctartina from n 066m.GIM: NA: onMinh Malioe Windeur Tosm...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79616
|
2788
|
22
|
2026-05-28T06:36:00.450353+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950160450_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4528724110787610736
|
2604719229101344208
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
SlackFileEditViewGoHistoryWindowHelpDOCKER₴81DEV (docker)₴2-zshscreenpipe"Fixed 0 of 5697 files in 55.554 seconds, 799.06 MBmemory usedDetected deprecations in use (they will stop working in next major release):Rule set"@PHP74Migration"is deprecated.Use"@PHP7x4Migration"instead.- Rule set "@PHP80Migration"is deprecated.Use "@PHP8x0Migration"instead.Rule set "@PHP81Migration" is deprecated. Use "@PHP8x1Migration"instead.Rule set "@PHP82Migration" is deprecated. Use "@PHP8x2Migration"instead.Rule set "@PHP83Migration" is deprecated.Use"@PHP8x3Migration" instead.Rule set "@PHP84Migration" is deprecated.Use "@PHP8x4Migration"instead.What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image →Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20915-fix-strict-casting-text-iM.env.localMapp/Console/Commands/JiminnyDebugCommand.phpconfig/logging.phpSwitched to branch'master'Your branch is up to date with 'origin/master'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pullremote: Enumerating objects: 97,remote: Countingobjects: 100% (97/97),remote: Compressing objects: 100% (27/27), done.remote: Total 97 (delta 69), reused 95 (delta 69), pack-reused 0 (from 0)Unpacking objects: 100% (97/97), 14.08 KiB | 150.00 KiB/s, done.From github.com:jiminny/appf1ccf9be50..890e429206masterce9abde868..3800efb7ea JY-20905-tool-search-members-> origin/iorigin/.ad6ace97b9..b3659b1290JY-20910-schedule-parallel-update-target-processing -> origin/.Updating f1ccf9be50..890e429206Fast-forwardapp/Services/Mail/TextRelayService.phptests/Unit/Services/Mail/TextRelayServiceTest.php2 files changed, 14 insertions(+),lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20915-fix-miss*Switched to a new branch 'JY-20915-fix-missing-header-text-relay'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-HomeDMsActivityFilesLaterMore+ED→Jiminny ...# engineering# general# happy_birthday# jbu-team-info# jiminny-bg# platform-tickets# product_launches# random# releases# support# thank-yous# the_people_of_jimi...° Direct messages&. Petko Kashinski&. Stefka Stoyanova:Todor StamatovSteliyan GeorgievVes% MiraP. Nikolay Yankov. Stoyan TomovP. Galya Dimitrovado James GrahamLukas Kovalik y... O::: Appsã Jira CloudToast100% <Thu 28 May 9:36:00Describe what you are looking forPetko Kashinski6 0Messagest Add canvas@ FilesLukas Kova'**Tuesday, May 12th ~добро утро+Петко имаш ли минутка да те питам за РНPetko Kashinski 10:52 AMХей ЛукашСлед минутка окей ли е ?Lukas Kovalik 10:52 AMразбира сеPetko Kashinski 10:54 AMRdyHuddle ?A huddle happened 10:55 AMYou and Petko Kashinski were in the huddle for3m.Today ~Petko Kashinski 9:00 AMДобро утро, Лукаш. Бърз въпрос - можем ли даexpose 'Call outcome' field в Sidekick, но 'MultiPicklist' type, a нe single. 3а Single знам, че може.Lukas Kovalik 9:31 AMздрастихм, не сьм сигуренще проверяMessage Petko Kashinski+...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79617
|
2789
|
35
|
2026-05-28T06:36:02.606849+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950162606_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
1178784854643471397
|
1595663392081785267
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All...
|
79615
|
NULL
|
NULL
|
NULL
|
|
79618
|
2788
|
23
|
2026-05-28T06:36:03.076785+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950163076_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6829406823825672534
|
-7625492029313568333
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event...
|
79616
|
NULL
|
NULL
|
NULL
|
|
79619
|
2789
|
36
|
2026-05-28T06:36:03.698738+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950163698_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"event","depth":6,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"event","depth":7,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"}]...
|
-6990368542115983802
|
1597914161128485041
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79620
|
2789
|
37
|
2026-05-28T06:36:04.330098+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950164330_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"}]...
|
-8555882098349530556
|
1597880007541207475
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>...
|
79619
|
NULL
|
NULL
|
NULL
|
|
79621
|
2788
|
24
|
2026-05-28T06:36:04.743409+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950164743_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0
0
0
0
2022-12-15 14:53:05
2022-12-15 14:53:05
event
2025-09-29 11:00:32
2025-09-29 11:00:32...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"event","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"event","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2022-12-15 14:53:05","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2022-12-15 14:53:05","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2025-09-29 11:00:32","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2025-09-29 11:00:32","depth":7,"on_screen":true,"role_description":"text"}]...
|
-7205330373939725406
|
-7627287463091687231
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0
0
0
0
2022-12-15 14:53:05
2022-12-15 14:53:05
event
2025-09-29 11:00:32
2025-09-29 11:00:32...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79622
|
2789
|
38
|
2026-05-28T06:36:05.789049+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950165789_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"}]...
|
-3512218780051537273
|
1597880007524430003
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79623
|
2788
|
25
|
2026-05-28T06:36:05.959996+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950165959_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"}]...
|
-4425199412214918453
|
-7625492029330345549
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>...
|
79621
|
NULL
|
NULL
|
NULL
|
|
79624
|
2789
|
39
|
2026-05-28T06:36:06.891082+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950166891_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
4439657123896166965
|
-8776298485915614782
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
rnpstomViewNeWENNCCoocTOOI-WindowFV faVsco.|s ~$ JY-20915-fix-missing-header-text-Proinet vphp api.phpe)Crmcontro er.mhipetescoyLayoulltonsormer.onC FieldTransformer.php x composer.ison• DockerfileUnuded Uractam.xmniu, veturcontiosM+WEBHOOK_FILTERING._IMPLEMENTATclass relolranstorer excends transtornernoscracu→10 extemal Lioraniesv EScratches and Consolesv Database ConsolesconsolezOZALHNKEvminntodnoconsolelliminnyocooftiiminny @locainos4 HSJJocal jiminny@localhost)4 SF jiminny@localhost)A zoho_dev (iminny@localhost)V & PRODconenle lpronServicht+@C0*v E DatabaseconsoleAliminnyelocalhost4 SF#HS locallfii crm_fields 1 $ 483 mgVPRODconsoleSTAGING& consoleDockerpublic tunccion transtor(hleld srhetd). array"type' => Stype'enabled' a> Sfield-›is selectable"Length' => $field->length.'defaultValue' =› SdefaultValue.public function include0ptions(Field Sfield): ?Collection(....2826-85-28 89-35:557 Connected2826-85-28 89-35:557 6imnnvs use arimiinny2826-85-28 89:35:55 completed in 11 ms2826-85-28 89:35:55 Jiminny> SELECT t.*FROM Jiminny.crn fields tWHERE 1d = 1883TTMTT CaTl(2826-85-28 89:35:56 1 row retrieved starting fron 1 in 964 ms (execution: 47 ms, fetching: 917 ms)TextRelayServiceTest=custom.logaraveilo"SF fiminny@localhost)un crm.fields (jminnytalocalhost) x# HS Jocal jiminny@tocalhostA console (EU]A console [STAGING)HrowyyOltTy:AlowDLRmEOgeXAMAV7- WHERE 1d = 1883), 3014=•OROER 8Ar- 1d1883(#uvid (UUID with time-low and tine-high swapped) :4еf18864-5b6f-4362-84c1-cd76425e88f6ARcon confiquratzion iadcra_provzder_1denoiewnd= =labe!and ldatesim# descriptioncouttum typedatetim1 Length1 default valudobject,typeevenis_selectableunke sanlstonyconsole (PROD)CSVYLL+OeTO0%L7Thu 28 May 9:36:06+0.eeendhanler herseietwtlerekevouteAdditional Context•The Field model detinos TYPF MILTPxST" "eult coickiist" but marks it as "Not vet supported" uine87-88*The layouts endpoint at /ap Vera/ayouts uses Layouttranstorer → LayoutEntitytranstomer → Field.rancforcar chaithe transtormer includes ent.ties.children.tield.cotton Une 652in ermeontroller.phpMotid wotr th ma tomnlamont thie to anshld multieriet thontnoein huoiteAck anhine+ <> Codo SWE.16raw rotriouod ctortina tram in 066m.Windcud Tosm....
|
79622
|
NULL
|
NULL
|
NULL
|
|
79625
|
2789
|
40
|
2026-05-28T06:36:07.980174+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950167980_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"event","depth":6,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"event","depth":7,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8700243498432901146
|
-7627146725603331919
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79626
|
2789
|
41
|
2026-05-28T06:36:08.345126+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950168345_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8761153703254528075
|
1597915191895470513
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event...
|
79625
|
NULL
|
NULL
|
NULL
|
|
79627
|
2788
|
26
|
2026-05-28T06:36:09.085603+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950169085_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"}]...
|
8926455746704134885
|
1597915191895470513
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79628
|
2789
|
42
|
2026-05-28T06:36:10.218387+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950170218_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
1178784854643471397
|
1595663392081785267
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79629
|
2788
|
27
|
2026-05-28T06:36:10.098115+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950170098_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6107491181398235475
|
-8780371094093495853
|
typing_pause
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
SlackFileEditViewGoHistoryWindowHelpDOCKER₴81DEV (docker)₴2-zshscreenpipe"Fixed 0 of 5697 files in 55.554 seconds, 799.06 MBmemory usedDetected deprecations in use (they will stop working in next major release):Rule set"@PHP74Migration"is deprecated.Use"@PHP7x4Migration"instead.- Rule set "@PHP80Migration"is deprecated.Use "@PHP8x0Migration"instead.Rule set "@PHP81Migration" is deprecated. Use "@PHP8x1Migration"instead.Rule set "@PHP82Migration" is deprecated. Use "@PHP8x2Migration"instead.Rule set "@PHP83Migration" is deprecated.Use"@PHP8x3Migration" instead.Rule set "@PHP84Migration" is deprecated.Use "@PHP8x4Migration"instead.What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image →Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20915-fix-strict-casting-text-iM.env.localMapp/Console/Commands/JiminnyDebugCommand.phpconfig/logging.phpSwitched to branch'master'Your branch is up to date with 'origin/master'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pullremote: Enumerating objects: 97,remote: Countingobjects: 100% (97/97),remote: Compressing objects: 100% (27/27), done.remote: Total 97 (delta 69), reused 95 (delta 69), pack-reused 0 (from 0)Unpacking objects: 100% (97/97), 14.08 KiB | 150.00 KiB/s, done.From github.com:jiminny/appf1ccf9be50..890e429206masterce9abde868..3800efb7ea JY-20905-tool-search-members-> origin/iorigin/.ad6ace97b9..b3659b1290JY-20910-schedule-parallel-update-target-processing -> origin/.Updating f1ccf9be50..890e429206Fast-forwardapp/Services/Mail/TextRelayService.phptests/Unit/Services/Mail/TextRelayServiceTest.php2 files changed, 14 insertions(+),lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20915-fix-miss*Switched to a new branch 'JY-20915-fix-missing-header-text-relay'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-HomeDMsActivityFilesLaterMore+ED→Jiminny ...# engineering# general# happy_birthday# jbu-team-info# jiminny-bg# platform-tickets# product_launches# random# releases# support# thank-yous# the_people_of_jimi...° Direct messages&. Petko Kashinski&. Stefka Stoyanova:Todor StamatovSteliyan GeorgievVes% MiraP. Nikolay Yankov. Stoyan TomovP. Galya Dimitrovado James GrahamLukas Kovalik y... O::: Appsã Jira CloudToast100% <Thu 28 May 9:36:09Describe what you are looking forPetko Kashinski6 0Messagest Add canvas@ FilesLukas Kova'**Tuesday, May 12th ~добро утро+Петко имаш ли минутка да те питам за РНPetko Kashinski 10:52 AMХей ЛукашСлед минутка окей ли е ?Lukas Kovalik 10:52 AMразбира сеPetko Kashinski 10:54 AMRdyHuddle ?A huddle happened 10:55 AMYou and Petko Kashinski were in the huddle for3m.Today ~Petko Kashinski 9:00 AMДобро утро, Лукаш. Бърз въпрос - можем ли даexpose 'Call outcome' field в Sidekick, но 'MultiPicklist' type, a нe single. 3а Single знам, че може.Lukas Kovalik 9:31 AMздрастихм, не сьм сигуренще проверяMessage Petko Kashinski+...
|
79627
|
NULL
|
NULL
|
NULL
|
|
79630
|
2789
|
43
|
2026-05-28T06:36:11.646896+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950171646_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"event","depth":6,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"event","depth":7,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8700243498432901146
|
-7627146725603331919
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0...
|
79628
|
NULL
|
NULL
|
NULL
|
|
79631
|
2788
|
28
|
2026-05-28T06:36:11.543268+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950171543_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-147301692555525249
|
-8776298399911410750
|
typing_pause
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
SlackFileEditViewGoHistoryWindowHelpDOCKER₴81DEV (docker)₴2-zshscreenpipe"Fixed 0 of 5697 files in 55.554 seconds, 799.06 MBmemory usedDetected deprecations in use (they will stop working in next major release):Rule set"@PHP74Migration"is deprecated.Use"@PHP7x4Migration"instead.- Rule set "@PHP80Migration"is deprecated.Use "@PHP8x0Migration"instead.Rule set "@PHP81Migration" is deprecated. Use "@PHP8x1Migration"instead.Rule set "@PHP82Migration" is deprecated. Use "@PHP8x2Migration"instead.Rule set "@PHP83Migration" is deprecated.Use"@PHP8x3Migration" instead.Rule set "@PHP84Migration" is deprecated.Use "@PHP8x4Migration"instead.What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image →Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20915-fix-strict-casting-text-iM.env.localMapp/Console/Commands/JiminnyDebugCommand.phpconfig/logging.phpSwitched to branch'master'Your branch is up to date with 'origin/master'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pullremote: Enumerating objects: 97,remote: Countingobjects: 100% (97/97),remote: Compressing objects: 100% (27/27), done.remote: Total 97 (delta 69), reused 95 (delta 69), pack-reused 0 (from 0)Unpacking objects: 100% (97/97), 14.08 KiB | 150.00 KiB/s, done.From github.com:jiminny/appf1ccf9be50..890e429206masterce9abde868..3800efb7ea JY-20905-tool-search-members-> origin/iorigin/.ad6ace97b9..b3659b1290JY-20910-schedule-parallel-update-target-processing -> origin/.Updating f1ccf9be50..890e429206Fast-forwardapp/Services/Mail/TextRelayService.phptests/Unit/Services/Mail/TextRelayServiceTest.php2 files changed, 14 insertions(+),lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20915-fix-miss*Switched to a new branch 'JY-20915-fix-missing-header-text-relay'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-HomeDMsActivityFilesLaterMore+ED→Jiminny ...# engineering# general# happy_birthday# jbu-team-info# jiminny-bg# platform-tickets# product_launches# random# releases# support# thank-yous# the_people_of_jimi...° Direct messages&. Petko Kashinski&. Stefka Stoyanova:Todor StamatovSteliyan GeorgievVes% MiraP. Nikolay Yankov. Stoyan TomovP. Galya Dimitrovado James GrahamLukas Kovalik y... O::: Appsã Jira CloudToast100% <Thu 28 May 9:36:11Describe what you are looking forPetko Kashinski6 0Messagest Add canvas@ FilesLukas Kova'**Tuesday, May 12th ~добро утро+Петко имаш ли минутка да те питам за РНPetko Kashinski 10:52 AMХей ЛукашСлед минутка окей ли е ?Lukas Kovalik 10:52 AMразбира сеPetko Kashinski 10:54 AMRdyHuddle ?A huddle happened 10:55 AMYou and Petko Kashinski were in the huddle for3m.Today ~Petko Kashinski 9:00 AMДобро утро, Лукаш. Бърз въпрос - можем ли даexpose 'Call outcome' field в Sidekick, но 'MultiPicklist' type, a нe single. 3а Single знам, че може.Lukas Kovalik 9:31 AMздрастихм, не сьм сигуренще проверяMessage Petko Kashinski+...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79632
|
2789
|
44
|
2026-05-28T06:36:14.018433+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950174018_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"event","depth":6,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"event","depth":7,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
3670346126151274546
|
1597880007541207219
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79633
|
2788
|
29
|
2026-05-28T06:36:14.122898+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950174122_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0
0
0
0
2022-12-15 14:53:05
2022-12-15 14:53:05
event...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"event","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"event","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2022-12-15 14:53:05","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2022-12-15 14:53:05","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6635463949502189644
|
-9212554531909324607
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0
0
0
0
2022-12-15 14:53:05
2022-12-15 14:53:05
event...
|
79631
|
NULL
|
NULL
|
NULL
|
|
79634
|
2788
|
30
|
2026-05-28T06:36:15.247475+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950175247_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
Querying…
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Querying…","depth":3,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.008333334,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.0,"top":0.0,"width":0.2048611,"height":0.024444444},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"on_screen":true,"role_description":"text"}]...
|
-3340810283671046277
|
1597880007524430003
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
Querying…
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79635
|
2789
|
45
|
2026-05-28T06:36:15.351878+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950175351_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
Querying…
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0
0
0
0
2022-12-15 14:53:05
2022-12-15 14:53:05
event
2025-09-29 11:00:32
2025-09-29 11:00:32
event...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Querying…","depth":3,"bounds":{"left":0.57147604,"top":0.264166,"width":0.021941489,"height":0.013567438},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.0039893617,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"bounds":{"left":0.41156915,"top":0.14365523,"width":0.1419548,"height":0.0207502},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1883","depth":6,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1883","depth":7,"bounds":{"left":0.5538564,"top":0.16520351,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":6,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"4ef10864-5b6f-4362-84c1-cd76425e80f6","depth":7,"bounds":{"left":0.5538564,"top":0.1867518,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"39","depth":6,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"39","depth":7,"bounds":{"left":0.5538564,"top":0.20830008,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"EndDateTime","depth":6,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"EndDateTime","depth":7,"bounds":{"left":0.5538564,"top":0.22984837,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"End Date Time","depth":6,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"End Date Time","depth":7,"bounds":{"left":0.5538564,"top":0.25139666,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.27294493,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"datetime","depth":6,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"datetime","depth":7,"bounds":{"left":0.5538564,"top":0.29449323,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.3160415,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"<null>","depth":6,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"<null>","depth":7,"bounds":{"left":0.5538564,"top":0.33758977,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"event","depth":6,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"event","depth":7,"bounds":{"left":0.5538564,"top":0.35913807,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"1","depth":6,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"1","depth":7,"bounds":{"left":0.5538564,"top":0.38068634,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.40223464,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.4237829,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"0","depth":6,"bounds":{"left":0.5538564,"top":0.44533122,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"0","depth":7,"bounds":{"left":0.5538564,"top":0.44533122,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"0","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"0","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2022-12-15 14:53:05","depth":6,"bounds":{"left":0.5538564,"top":0.4668795,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2022-12-15 14:53:05","depth":7,"bounds":{"left":0.5538564,"top":0.4668795,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCell","text":"2025-09-29 11:00:32","depth":6,"bounds":{"left":0.5538564,"top":0.4884278,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"cell"},{"role":"AXStaticText","text":"2025-09-29 11:00:32","depth":7,"bounds":{"left":0.5538564,"top":0.4884278,"width":0.10006649,"height":0.0207502},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"event","depth":8,"bounds":{"left":0.27027926,"top":1.0,"width":0.098071806,"height":0.0},"on_screen":false,"value":"event","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
4346422615413433172
|
-7771411447260565375
|
typing_pause
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
Querying…
A
1
Select All
1883
1883
0
4ef10864-5b6f-4362-84c1-cd76425e80f6
4ef10864-5b6f-4362-84c1-cd76425e80f6
event
39
39
0
EndDateTime
EndDateTime
event
End Date Time
End Date Time
event
<null>
<null>
event
datetime
datetime
event
<null>
<null>
0
<null>
<null>
event
event
event
event
1
1
0
0
0
0
0
0
0
0
0
0
2022-12-15 14:53:05
2022-12-15 14:53:05
event
2025-09-29 11:00:32
2025-09-29 11:00:32
event...
|
79632
|
NULL
|
NULL
|
NULL
|
|
79667
|
2789
|
63
|
2026-05-28T06:37:24.638603+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950244638_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
id
B
uuid (UUID with time-low and time-high swapped)
C
crm_configuration_id
D
crm_provider_id
E
label
F
description...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"id","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.020944148,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"B","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uuid (UUID with time-low and time-high swapped)","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.020944148,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"C","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"crm_configuration_id","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.020944148,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"D","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"crm_provider_id","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.020944148,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"E","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"label","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.020944148,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"F","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"description","depth":5,"bounds":{"left":0.27027926,"top":1.0,"width":0.020944148,"height":0.0},"on_screen":false,"role_description":"text"}]...
|
-7188057561971092191
|
1453800003819614643
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
id
B
uuid (UUID with time-low and time-high swapped)
C
crm_configuration_id
D
crm_provider_id
E
label
F
description...
|
79666
|
NULL
|
NULL
|
NULL
|
|
79668
|
2788
|
45
|
2026-05-28T06:37:25.561128+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950245561_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
id
B
uuid (UUID with time-low and time-high swapped)
C
crm_configuration_id
D
crm_provider_id
E
label
F
description
G
type
H
length
I
default_value
J
object_type
K
is_selectable
L
is_mandatory
M
is_filterable
N
is_indexable
O
created_at
P
updated_at
Q
is_readonly
Select All...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"A","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"id","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"B","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uuid (UUID with time-low and time-high swapped)","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"C","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"crm_configuration_id","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"D","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"crm_provider_id","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"E","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"label","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"F","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"description","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"G","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"type","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"H","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"length","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"default_value","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"J","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"object_type","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"K","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is_selectable","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"L","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is_mandatory","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"M","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is_filterable","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"N","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is_indexable","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"O","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"created_at","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"P","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"updated_at","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Q","depth":4,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is_readonly","depth":5,"bounds":{"left":0.0,"top":0.0,"width":0.04375,"height":0.03},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Select All","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-5880938079611425892
|
1598460549662847411
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}
A
id
B
uuid (UUID with time-low and time-high swapped)
C
crm_configuration_id
D
crm_provider_id
E
label
F
description
G
type
H
length
I
default_value
J
object_type
K
is_selectable
L
is_mandatory
M
is_filterable
N
is_indexable
O
created_at
P
updated_at
Q
is_readonly
Select All...
|
79665
|
NULL
|
NULL
|
NULL
|
|
79669
|
2789
|
64
|
2026-05-28T06:37:25.666634+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950245666_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-7635200922161528077
|
-4598385934329243181
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
rnpstomViewNeWENNCCoocTOOI-WindowFV faVsco.|s ~$2 JY-20915-fix-missiProinet vphp api.phpetescoycomposer.isonnockarhUnaded Uragkam.xmiu, veturcontiosM+WEBHOOK_FILTERING._IMPLEMENTATclass relolranstorer excends transtornernoscracu→10 extemal Lioraniesv EScratches and Consolesv Database ConsolesconsolezADEAL RISKS (EU"vminnwoehoconsolelliminnyocoDi jiminny@localhost)4 HSJJocal jiminny@localhost)4 SF jiminny@localhost)A zoho_dev (iminny@localhost)V & PRODconenle lpronServicht+@C0*v E DatabaseconsoleAliminnyelocalhostASF#HS locallfii, crm_fields 775 mlVPRODconsoleSTAGING2 consoleDockerpublic tunccion transtor(hleld srheto). array"type" => Stype'enabled' a> Sfield-›is selectablelenouh ts srreldes lenech'defaultValue' => SdefaultValue.public function include0ptions(Field Sfield): ?Collection(...}2826-85-28 89-35:557 Connected2826-85-28 89-35:557 6imnnvs use arimiinny2826-85-28 89:35:55 completed in 11 ms2826-85-28 89:35:55 Jiminny> SELECT t.*FROM Jiminny.crn fields tWHERE 1d = 1883ITMTT C91(2826-85-28 89:35:56 1 row retrieved starting fron 1 in 964 ms (execution: 47 ms, fetching: 917 ms)(2826-85-28 89:36:15 Aminny> SELECT t.*FROMIminny.crn fields tWHERE id IN (1885, 3014)Liar San(2826-85-28 89:36:15] 2 rows retrieved starting from 1 in 537 ms (execution: 31 ms, fetching: 586 ms)XpAVcustom.logsravelloSF (iminny@localhost)tttermwetewoesthoe?# HS Jocal jiminny@tocalhostconsole (PROD)A console (EU]A console [STAGINGDLRbEogMCSVYLL+Oe7- WHERE id IN (1885, 3014)E- ORDER BY1 uuid (UULD with tine-low a1885 S8aS1d4d-ca7-49f0-9b2c-e16027877ccS:ae con_configuration_id v* B crn_provider_id U39 ReminderDateTime#8 labelReminder Date/Tine3814 a3d3dfSa-eaa1-43d0-b95e-1ff4bec8c42839 picktestmulti cpicktestnultHihs tho nativs toai windohS000%LXThu 28 May 9:37:25TextRelayServiceTest+0.eeendhler henwserwiCtwtlerekevouteAdditional Context•The Field model detinos TYPF MILTPxST" "eult coickiist" but marks it as "Not vet supported" uine87-88*The layouts endpoint at /ap Vera/ayouts uses Layouttranstorer → LayoutEntitytranstomer → Field.rancforcar chaithe transtormer includes ent.ties.children.tield.cotton Une 652in ermeontroller.phpMotid wotr th ma tomnlamont thie to anshld multieriet thontnoein huoiteAck amwningt+ < Codo SWE.16Windcud Tosm....
|
NULL
|
NULL
|
NULL
|
NULL
|
|
79670
|
2789
|
65
|
2026-05-28T06:37:27.716261+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950247716_m2.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20915-fix-missing-header-text-relay, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09740692,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20915-fix-missing-header-text-relay","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8374335,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"TextRelayServiceTest","depth":6,"bounds":{"left":0.85272604,"top":0.019952115,"width":0.062832445,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'TextRelayServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.3856383,"top":0.12529927,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39694148,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40425533,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","depth":4,"bounds":{"left":0.13364361,"top":0.049481247,"width":0.27759308,"height":0.93056667},"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Http\\Transformers;\n\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Models\\Crm\\Profile;\nuse League\\Fractal\\Resource\\Collection;\nuse League\\Fractal\\TransformerAbstract;\n\nclass FieldTransformer extends TransformerAbstract\n{\n protected array $availableIncludes = [\n 'options',\n ];\n private ?Profile $profile;\n\n private bool $noDefault = false;\n\n public function __construct(?Profile $profile = null)\n {\n $this->profile = $profile;\n }\n\n public function setNoDefault(bool $noDefault)\n {\n $this->noDefault = $noDefault;\n }\n\n public function transform(Field $field): array\n {\n $defaultValue = $field->default_value;\n $type = $field->type;\n\n if (\\is_bool($defaultValue)) {\n $defaultValue = (bool) $defaultValue;\n }\n\n return [\n 'id' => $field->id_string,\n 'objectType' => $field->object_type,\n 'label' => $field->label,\n 'fieldName' => $field->crm_provider_id,\n 'type' => $type,\n 'enabled' => $field->is_selectable,\n 'length' => $field->length,\n 'defaultValue' => $defaultValue,\n ];\n }\n\n public function includeOptions(Field $field): ?Collection\n {\n if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {\n // This gets a little complex. We need to check if this field has any record type constraints for the profile.\n if (\n $this->profile\n && ($recordType = $this->profile->{$field->object_type . 'RecordType'})\n && $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()\n ) {\n // Fetch the values specific for this record type.\n $values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();\n }\n\n if ($this->noDefault) {\n foreach ($values as $value) {\n $value->is_default = false;\n }\n }\n\n return $this->collection($values, new FieldValueTransformer());\n }\n\n return null;\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6691811610898988852
|
1595663392081785267
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20915-fix-missing-head Project: faVsco.js, menu
JY-20915-fix-missing-header-text-relay, menu
Start Listening for PHP Debug Connections
TextRelayServiceTest
Run 'TextRelayServiceTest'
Debug 'TextRelayServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Http\Transformers;
use Jiminny\Models\Crm\Field;
use Jiminny\Models\Crm\Profile;
use League\Fractal\Resource\Collection;
use League\Fractal\TransformerAbstract;
class FieldTransformer extends TransformerAbstract
{
protected array $availableIncludes = [
'options',
];
private ?Profile $profile;
private bool $noDefault = false;
public function __construct(?Profile $profile = null)
{
$this->profile = $profile;
}
public function setNoDefault(bool $noDefault)
{
$this->noDefault = $noDefault;
}
public function transform(Field $field): array
{
$defaultValue = $field->default_value;
$type = $field->type;
if (\is_bool($defaultValue)) {
$defaultValue = (bool) $defaultValue;
}
return [
'id' => $field->id_string,
'objectType' => $field->object_type,
'label' => $field->label,
'fieldName' => $field->crm_provider_id,
'type' => $type,
'enabled' => $field->is_selectable,
'length' => $field->length,
'defaultValue' => $defaultValue,
];
}
public function includeOptions(Field $field): ?Collection
{
if ($field->type === Field::TYPE_PICKLIST && $values = $field->values) {
// This gets a little complex. We need to check if this field has any record type constraints for the profile.
if (
$this->profile
&& ($recordType = $this->profile->{$field->object_type . 'RecordType'})
&& $recordType->fieldValues()->where('crm_field_id', $field->id)->exists()
) {
// Fetch the values specific for this record type.
$values = $recordType->fieldValues()->where('crm_field_id', $field->id)->get();
}
if ($this->noDefault) {
foreach ($values as $value) {
$value->is_default = false;
}
}
return $this->collection($values, new FieldValueTransformer());
}
return null;
}
}...
|
79669
|
NULL
|
NULL
|
NULL
|
|
79671
|
2788
|
46
|
2026-05-28T06:37:33.502413+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-28/1779 /Users/lukas/.screenpipe/data/data/2026-05-28/1779950253502_m1.jpg...
|
PhpStorm
|
faVsco.js – crm_fields [jiminny@localhost]
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
SlackFileEditViewGoHistoryWindowHelpDOCKER₴81DEV ( SlackFileEditViewGoHistoryWindowHelpDOCKER₴81DEV (docker)₴2-zshscreenpipe"Fixed 0 of 5697 files in 55.554 seconds, 799.06 MBmemory usedDetected deprecations in use (they will stop working in next major release):Rule set"@PHP74Migration"is deprecated.Use"@PHP7x4Migration"instead.- Rule set "@PHP80Migration"is deprecated.Use "@PHP8x0Migration"instead.Rule set "@PHP81Migration" is deprecated. Use "@PHP8x1Migration"instead.Rule set "@PHP82Migration" is deprecated. Use "@PHP8x2Migration"instead.Rule set "@PHP83Migration" is deprecated.Use"@PHP8x3Migration" instead.Rule set "@PHP84Migration" is deprecated.Use "@PHP8x4Migration"instead.What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image →Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20915-fix-strict-casting-text-iM.env.localMapp/Console/Commands/JiminnyDebugCommand.phpconfig/logging.phpSwitched to branch'master'Your branch is up to date with 'origin/master'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pullremote: Enumerating objects: 97,remote: Countingobjects: 100% (97/97),remote: Compressing objects: 100% (27/27), done.remote: Total 97 (delta 69), reused 95 (delta 69), pack-reused 0 (from 0)Unpacking objects: 100% (97/97), 14.08 KiB | 150.00 KiB/s, done.From github.com:jiminny/appf1ccf9be50..890e429206masterce9abde868..3800efb7ea JY-20905-tool-search-members-> origin/iorigin/.ad6ace97b9..b3659b1290JY-20910-schedule-parallel-update-target-processing -> origin/.Updating f1ccf9be50..890e429206Fast-forwardapp/Services/Mail/TextRelayService.phptests/Unit/Services/Mail/TextRelayServiceTest.php2 files changed, 14 insertions(+),lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20915-fix-miss*Switched to a new branch 'JY-20915-fix-missing-header-text-relay'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-HomeDMsActivityFilesLaterMore+ED→Jiminny ...# engineering# general# happy_birthday# jbu-team-info# jiminny-bg# platform-tickets# product_launches# random# releases# support# thank-yous# the_people_of_jimi...° Direct messages&. Petko Kashinski&. Stefka Stoyanova:Todor StamatovSteliyan GeorgievVes% MiraP. Nikolay Yankov. Stoyan TomovP. Galya Dimitrovado James GrahamLukas Kovalik y... O::: Appsã Jira CloudToast100% <Thu 28 May 9:37:33Describe what you are looking forPetko Kashinski6 0Messagest Add canvas@ FilesLukas Kova'**Tuesday, May 12th ~добро утро+Петко имаш ли минутка да те питам за РНPetko Kashinski 10:52 AMХей ЛукашСлед минутка окей ли е ?Lukas Kovalik 10:52 AMразбира сеPetko Kashinski 10:54 AMRdyHuddle ?A huddle happened 10:55 AMYou and Petko Kashinski were in the huddle for3m.Today ~Petko Kashinski 9:00 AMДобро утро, Лукаш. Бърз въпрос - можем ли даexpose 'Call outcome' field в Sidekick, но 'MultiPicklist' type, a нe single. 3а Single знам, че може.Lukas Kovalik 9:31 AMздрастихм, не сьм сигуренще проверяMessage Petko Kashinski+...
|
NULL
|
-8114431860173542482
|
NULL
|
click
|
ocr
|
NULL
|
SlackFileEditViewGoHistoryWindowHelpDOCKER₴81DEV ( SlackFileEditViewGoHistoryWindowHelpDOCKER₴81DEV (docker)₴2-zshscreenpipe"Fixed 0 of 5697 files in 55.554 seconds, 799.06 MBmemory usedDetected deprecations in use (they will stop working in next major release):Rule set"@PHP74Migration"is deprecated.Use"@PHP7x4Migration"instead.- Rule set "@PHP80Migration"is deprecated.Use "@PHP8x0Migration"instead.Rule set "@PHP81Migration" is deprecated. Use "@PHP8x1Migration"instead.Rule set "@PHP82Migration" is deprecated. Use "@PHP8x2Migration"instead.Rule set "@PHP83Migration" is deprecated.Use"@PHP8x3Migration" instead.Rule set "@PHP84Migration" is deprecated.Use "@PHP8x4Migration"instead.What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image →Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20915-fix-strict-casting-text-iM.env.localMapp/Console/Commands/JiminnyDebugCommand.phpconfig/logging.phpSwitched to branch'master'Your branch is up to date with 'origin/master'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pullremote: Enumerating objects: 97,remote: Countingobjects: 100% (97/97),remote: Compressing objects: 100% (27/27), done.remote: Total 97 (delta 69), reused 95 (delta 69), pack-reused 0 (from 0)Unpacking objects: 100% (97/97), 14.08 KiB | 150.00 KiB/s, done.From github.com:jiminny/appf1ccf9be50..890e429206masterce9abde868..3800efb7ea JY-20905-tool-search-members-> origin/iorigin/.ad6ace97b9..b3659b1290JY-20910-schedule-parallel-update-target-processing -> origin/.Updating f1ccf9be50..890e429206Fast-forwardapp/Services/Mail/TextRelayService.phptests/Unit/Services/Mail/TextRelayServiceTest.php2 files changed, 14 insertions(+),lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20915-fix-miss*Switched to a new branch 'JY-20915-fix-missing-header-text-relay'lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20915-fix-missing-header-text-HomeDMsActivityFilesLaterMore+ED→Jiminny ...# engineering# general# happy_birthday# jbu-team-info# jiminny-bg# platform-tickets# product_launches# random# releases# support# thank-yous# the_people_of_jimi...° Direct messages&. Petko Kashinski&. Stefka Stoyanova:Todor StamatovSteliyan GeorgievVes% MiraP. Nikolay Yankov. Stoyan TomovP. Galya Dimitrovado James GrahamLukas Kovalik y... O::: Appsã Jira CloudToast100% <Thu 28 May 9:37:33Describe what you are looking forPetko Kashinski6 0Messagest Add canvas@ FilesLukas Kova'**Tuesday, May 12th ~добро утро+Петко имаш ли минутка да те питам за РНPetko Kashinski 10:52 AMХей ЛукашСлед минутка окей ли е ?Lukas Kovalik 10:52 AMразбира сеPetko Kashinski 10:54 AMRdyHuddle ?A huddle happened 10:55 AMYou and Petko Kashinski were in the huddle for3m.Today ~Petko Kashinski 9:00 AMДобро утро, Лукаш. Бърз въпрос - можем ли даexpose 'Call outcome' field в Sidekick, но 'MultiPicklist' type, a нe single. 3а Single знам, че може.Lukas Kovalik 9:31 AMздрастихм, не сьм сигуренще проверяMessage Petko Kashinski+...
|
NULL
|
NULL
|
NULL
|
NULL
|