|
10942
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelpSaved searchesapp.stagingjiminny.com/ondemand?topic_id[=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)O activitiesSort by: Most recent-@(©AdRecordingPlatform Sprint 1 Q2 - Platform TealeamJY-20543 add AJ reports User pilo(Product x)Z Configure SSH access to multipleHost@ Console Home | Console Home | usSecurityGroup | EC2 |us-east-210Search team membersAlso search as participantJY-20543 add AJ reports User piloSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity•Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleFal CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParticipantSearch team membersCustomer (?Customer or subiectiTranscript ©Q Search transcriptSaid byAnyonePeriodiAll timeIopIcs( Competitors *)Activity typeSearch activity typesDuration ®Min (minutes) Max (minutes)Al call scoreSelect Al call scoreAutomated call scoreSelect automated callscoreCoaching scoreSelect coaching scoreCoach ©Search coachesStage at callSearch stagesCurrent stageSearch stagesleam: ProductxTopics: Competitors X) Duration: 1m and above X)Show internal and external activities: Show internal only X )Recorded: Only Recorded Xb) Save Search(—) Clear alliSorry, we didn't find any matches for your filters.JY-18909-automated-reports-ask-iiminny = 869720)halSupport Daily - in 2h 56 mA100% CS•Tue 14 Apr 12:04:57: Get NotifiedCR O Inspector| T Filter URLSAll HTML CSS• ConsoleD DebuggerTt Network{) Style Editor( Performance: MemoryE StoragemagesMediaother• Perform a request orReload the page to see detalled information about network activity.• Click on the obutton to start perormance analysis. 2_ Disable Cache No Throttling + 50:Ô No requests...
|
NULL
|
NULL
|
NULL
|
10942
|
|
10943
|
FirefoxFileEoitViewHistoryBookmarksProfllesToolsWi FirefoxFileEoitViewHistoryBookmarksProfllesToolsWindowHelpapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)j Support Daily • in 2h 55 mA100% C•Tue 14 Apr 12:05:00• DebuggerN Network(} Style Editor( PerformanceO: MemoryE StorageNo tilters annlied0 99+_ Disable Cache No Throttling + 50:Platform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multipleConsole Home | Console Home | usSecurityGroup | EC2 |us-east-2JY-20543 add AJ reports User pilo5 SRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201- Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New Tab10InspectorConsole| T Filter URLSAll HTML CSSCtatucMethod Domain200POST8 8 036719.ing...200POSTA 8 036779.ing...200POST• g 036719.ing..POSTA B 036719.ing...GETA app.staging.i..A app.staging.ji...A app.staging.ji.A app.stagingji...app.staging.jimin...ttind, userollot.loA app.staging.i...MediaInitiatorap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-searchA xhrintegrationsA xhron-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticatexhrTypeIsonsonTransferredb008500 Bb00 B500 B6.28 kB 24.21 kB5.65 kB15.26 kB3.62 kB1.42 kB3.83 kB5.53 KBcacheo3.12 kB96 B43 ms| 43 ms1537 ms211 ms1508 m;1253 ms620 msJY-18909-automated-reports-ask-iiminny = 869720)© 11 requests|46.68 KB 24.49 KB transterredFinish: 2.13sDOMContentLoaded: 42 ms load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10943
|
|
10944
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelpSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsDuration DateZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210niso searen as particioantJY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc& Configure SSH access to multiple eCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParuicipantsearcn leam memdersCustomer ©Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesLanguageapp.staging.jiminny.com/plavback/eb99550a-72b3-4a5a-afd3-6764fd731cb5ContactActivityTypeJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract…Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterprise MJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...Unlikely toRenew$42,12647mlĐ0 D444mĐ0 D3Đ0D234m$0%0Đ0 D2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m53122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMj Support Daily • in 2h 55 mA100% C•Tue 14 Apr 12:05:03Q InspectorFilter URLsConsoleD DebuggerN Network{} Style Editor( PerformanceO: Memory0 99+AlIHMLeSSMethod296200POs IPOSTPOsIPOSTMedia200200200200200GETGETGETGET200200POSTPOsIDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.stagingji...A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...r.logr-in.comInitiatorap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhrE Storage_ Disable Cache No Throttling + 50:TransferredIsonsonb00843 ms500 Bb00 B500 B| 43 ms6.28 kB24.21 kB1537 ms5.65 KB15.26 kB| 211 ms3.62 kB1.42 KB3.83 kB5.53 kB55.53 kB 196.86.1253 ms2288 mscacheo3.12 kB126.39 KB96 BI 620 ms359 ms12 requests| 243.44 kB / 206.41 kB transferredFinish: 4.39s DOMContentLoaded: 42 ms load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10944
|
|
10945
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to first unread message (⌘J)
Mark as read (esc)
Jump to date
Lukas Kovalik
Today at 10:34:10 AM
10:34 AM
не само daily но трябва да се пусне команда
Today at 10:35:08 AM
10:35
+SlackEDHomeDMsActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp> 0→Search Jiminny IncJiminny ...Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev# Starred8platform-inner-team• MessagesAdd canvas+minoiwnunneможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..даNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMГОТОВОсьщотоCompetitive pitches беше втория нали такаDirect messagesAneliya Angelo...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea DimitravoNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този път?Message Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aaladl• Support Daily • in 2h 55 m100% <47Tue 14 Apr 12:05:068J 5 new messagesXNew...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - 1 new item - Slack...
|
NULL
|
10945
|
|
10946
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to first unread message (⌘J)
Mark as read (esc)
Jump to date
Lukas Kovalik
Today at 10:34:10 AM
10:34 AM
не само daily но трябва да се пусне команда
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelpSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210niso searen as DarticloanuJY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc& Configure SSH access to multiple eCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParuicipantsearcn leam memdersCustomer ©Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterpriseMJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720Unlikely toRenew$42,12647mĐ0 D444m90 о 3Đ0 D234mĐ0 D2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m53122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMj Support Daily • in 2h 55 mA100% C•Tue 14 Apr 12:05:07Q InspectorFilter URLsConsole• DebuggerN Network{} Style Editor( PerformanceO: Memory0 99+AlIHMLeSSMethod200200206POs IPOSTPOsIPOST200200200200200200200MediaGETGETGETGETPOSTPOSTPOSTDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.staging.ji.A app.stagingji...A app.stagingji...wtind.userpilot.ioA app.stagingji...A r.logr-in.comAr.logr-in.comInitiatorap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-searchA xhrintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrE StorageDisable CacheNo Throttling + 50;TransferredIsonsonb00843 ms500 B| 43 msb00 B44 ms500 B| 43 ms6.28 kB24.21 kB1537 ms5.65 kB15.26 KB211 ms3.62 kB1.42 Kb 1508 ms3.83 kB5.53 kB1253 ms55.53 kB 196.86..2299 mscacheo3.12 kB96 B| 620 ms126.39 KB7.89 kBOB1158 ms13 requests| 243.44 kB / 214.31 kB transferredFinish: 7.58sDOMContentLoaded: 42 ms load: 195 ms...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - 1 new item - Slack...
|
NULL
|
10946
|
|
10947
|
+SlackEDHomeDMSActivity..•More+FileEditViewGoHisto +SlackEDHomeDMSActivity..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Cala Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan Georgiev• MessagesAdd canvas+minoiwynunneможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMГОТОВОсьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този път?Message Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAa>0 lhl§ Support Daily • in 2h 55 m100% <*Tue 14 Apr 12:05:0884Today ~New...
|
NULL
|
NULL
|
NULL
|
10947
|
|
10948
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHeldSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210niso searen as DarticloanuJY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byAnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterpriseMJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720Unlikely toRenew$42,12647m90 D444m90 о 3Đ0 D234m$0%0Đ0 D2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m53122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily • in 2h 55 mTue 14 Apr 12:05:08Q InspectorConsoleD DebuggerN Network{) Style Editor( PerformanceELE MemoryE Storage© 99+Filter URLsAlIHMLeSS200200206200200200200200200200MediaMethodPOs IPOSTPOsIPOSTGETGETGETGETGETPOSTPOSTPOSTDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.stagingji...A app.stagingji...A app.stagingji...wtind.userpilot.ioA app.stagingji...A r.logr-in.comAr.logr-in.comInitiatorap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-searchA xhrintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrDisable CacheNo Throttling + 50;TransferredIsonb00843 ms500 B| 43 msb00 B44 ms500 B| 43 ms6.28 kB24.21 kB1537 ms5.65 kB15.26 kB211 ms3.62 kB1.42 Kb 1508 ms3.83 kB5.53 kB1253 ms55.53 kB 196.86..2299 mscacheo3.12 kB96 B| 620 ms126.39 KB7.89 kBOB1158 ms13 requests| 243.44 kB / 214.31 kB transferredFinish: 7.58sDOMContentLoaded: 42 ms load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10948
|
|
10949
|
+SlackEDHomeDMsActivityLater..•More+FileEditViewGo +SlackEDHomeDMsActivityLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Cala Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan Georgiev• MessagesAdd canvas+minoiwynunneможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMГОТОВОсьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този път?Message Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAa>0 lhl§ Support Daily • in 2h 55 m100% <*Tue 14 Apr 12:05:1184Today ~New...
|
NULL
|
NULL
|
NULL
|
10949
|
|
10950
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHeldPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multiple@ Console Home | Console Home | usSecurityGroup | EC2 |us-east-2JY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsHostSearch team membersiniso searen as DarticloanuParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreselect Ai call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 &Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterprise MJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played 1All-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720unlikelv toRenew$42,12600 D 44/m44mĐ0 D334mĐ0 D2.$0000D 2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m5122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily • in 2h 55 mTue 14 Aor 12:05:12Q InspectorFilter URLsConsoleD DebuggerN Network{} Style Editor( PerformanceELE MemoryE Storage© 99+AlIHMLeSSMethod200200206POs IPOSTPOsIPOST200200200200200GETGETGETGETGETGET200200200200POSTPOsIPOSTPOSTImagesMediaotheDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.stagingji...A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...A r.logr-in.comAr.logr-in.comr.locl-in.comInitiatorap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhr_ Disable Cache No Throttling + 50:TypeTransferred20.48Isonb00843 mr500 B2 B |43 msb00 B2 B | 44 ms500 B2 B |43ms6.28 kB24.21 kB I 1537 ms5.65 kB15.26 kB || 211ms3.62 kB1.42 Kb 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...2299 mscacheo3.12 kB96 B | 620 ms126.39 KB7.89 kB6.41 kB1158 ms153 msÔ 14 requests| 243.44 kB / 220.71 kB transferredFinish: 11.03sDOMContentLoaded: 42 ms load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10950
|
|
10951
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Lukas Kovalik
Today at 10:34:10 AM
10:34 AM
не само daily но трябва да се пусне команда
Today at 10:35:08 AM
10:35
php artisan automated-reports
Nikolay Yankov
Today at 10:35:39 AM
10:35 AM
значи не създава веднага по принцип, в някакъв час на деня ли стъздава?
Lukas Kovalik
Today at 10:36:11 AM
10:36 AM
това ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)
Today at 10:36:27 AM
10:36
крон го пуска през нощ
Today at 10:37:19 AM
10:37
така че мануално пусни при тестване
Today at 10:38:26 AM
10:38
ако трябва да тестваме други репорти може да променя команда за тестване да приема параметър за report template и д си пускаме определен когато тестваме
Nikolay Yankov
Today at 10:41:03 AM
10:41 AM
можеш ли да я ръннеш ти командата
Lukas Kovalik
Today at 10:43:05 AM
10:43 AM
да
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 10:45:52 AM
10:45 AM
пиши кат оя ръннеш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 10:52:52 AM
10:52 AM
забавих се че ми се разбазикаха settings за среди
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:07 AM
10:53
пуснах и мина и fail-на
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:20 AM
10:53
има result но е failed
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:08 AM
10:58
значи
REASON_NOT_ENOUGH_ACTIVITIES
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:57 AM
10:58
виж дали има нещо в OD със този филтър
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:01:28 AM
11:01 AM
Добре
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:39:27 AM
11:39 AM
я рънни пак
Lukas
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 11:43:00 AM
11:43 AM
готово
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:44:24 AM
11:44
същото
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:47:25 AM
11:47
Competitive pitches беше втория нали така
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
New
Nikolay Yankov
Today at 12:04:33 PM
12:04 PM
Да, там има 14 активитита, защо не сработи този път?
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
FirefoxFileEditViewHistoryBookmarks)ProfilesToolsWindowHeldSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210niso searen as DarticloanuJY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract…Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterpriseMJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720Unlikely toRenew$42,12647mĐ0 D444m90 о 3Đ0D234m$0%000D 2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m53122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily • in 2h 55 mTue 14 Aor 12:05:13Q InspectorConsoleD DebuggerN Network{) Style Editor( PerformanceELE MemoryE Storage© 99+Filter URLsAlIHMLeSSImages200200206200200200200200200206200200MediaotheMethodPOs IPOSTInitiatorPOsIPOSTGETGETGETGETGETGETPOSTPOsIPOSTPUSIPOSTDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.staging.ji.A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...ap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrAr.logr-in.comr.locl-in.comAr.logr-in.comYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhr_ Disable Cache No Throttling + 50:TransferredIsonb0088 | 43 ms500 B2 B | 43 msb00 B23 44 ms500 B2 B | 43 ms6.28 kB24.21 kB1537 ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 Kb 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86..2299 mscacheo3.12 kB126.39 KB7.89 kB6.41 kB348kR96 B | 620 ms359 ms|158 ms153 ms|150 ms15 requests| 243.44 kB / 224.19 kB transferredFinish: 14.72 sDOMContentLoaded: 42 ms load: 195 ms...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - 1 new item - Slack...
|
NULL
|
10951
|
|
10952
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Lukas Kovalik
Today at 10:34:10 AM
10:34 AM
не само daily но трябва да се пусне команда
Today at 10:35:08 AM
10:35
php artisan automated-reports
Nikolay Yankov
Today at 10:35:39 AM
10:35 AM
значи не създава веднага по принцип, в някакъв час на деня ли стъздава?
Lukas Kovalik
Today at 10:36:11 AM
10:36 AM
това ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)
Today at 10:36:27 AM
10:36
крон го пуска през нощ
Today at 10:37:19 AM
10:37
така че мануално пусни при тестване
Today at 10:38:26 AM
10:38
ако трябва да тестваме други репорти може да променя команда за тестване да приема параметър за report template и д си пускаме определен когато тестваме
Nikolay Yankov
Today at 10:41:03 AM
10:41 AM
можеш ли да я ръннеш ти командата
Lukas Kovalik
Today at 10:43:05 AM
10:43 AM
да
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 10:45:52 AM
10:45 AM
пиши кат оя ръннеш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 10:52:52 AM
10:52 AM
забавих се че ми се разбазикаха settings за среди
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:07 AM
10:53
пуснах и мина и fail-на
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:20 AM
10:53
има result но е failed
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:08 AM
10:58
значи
REASON_NOT_ENOUGH_ACTIVITIES
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:57 AM
10:58
виж дали има нещо в OD със този филтър
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:01:28 AM
11:01 AM
Добре
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:39:27 AM
11:39 AM
я рънни пак
Lukas
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 11:43:00 AM
11:43 AM
готово
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:44:24 AM
11:44
същото
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:47:25 AM
11:47
Competitive pitches беше втория нали така
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
New
Nikolay Yankov
Today at 12:04:33 PM
12:04 PM
FirefoxFileEditViewHistoryBookmarks)ProfilesToolsWindowHeldPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multiple@ Console Home | Console Home | usSecurityGroup | EC2 |us-east-2JY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformJY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsHostSearch team membersinise searen as particioanuParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byAnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreselect Ai call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 &Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterprise MJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played 1All-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720)Unlikely toRenew$42,12647m90D444m90 о 3Đ0D234m00D 2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m5122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily • in 2h 55 mTue 14 Aor 17:05:19Q InspectorFilter URLsConsoleD DebuggerN Network{) Style Editor( PerformanceELE MemoryE Storage© 99+_ Disable Cache No Throttling 50.AlIHMLeSSCtatucMethod200POs I200POST206POsIPOST200200200200200GETGETGETGETGETGET200POSTPOSTPOSTPosl200200POSTPOSTImagesMediaotheDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.staging.ji..A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...Ar.logr-in.comr.locl-in.comAr.logr-in.comr.locl-in.comInitiatorap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhra=oonxar/platrorm-stacinear=b-01500020-3e1-/c XhiTypeTransferredIsonb008843 ms500 B2 B | 43 msb00 B23 44m500 B2 B | 43 ms6.28 kB24.21 kB1537 ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 Kb 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...| 2299 mscacheo3.12 kB126.39 KB7.89 kB6.41 kB3.48 KB2.96 kB96 B | 620 ms1359 ms|158 ms153 ms|150 ms166 msÔ 16 requests| 243.44 kB / 227.15 kB transferredFinish: 17.93s DOMContentLoaded: 42 ms load: 195 ms...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - 1 new item - Slack...
|
NULL
|
10952
|
|
10953
|
FirefoxFileEditViewHistoryBookmarks)ProfilesToolsW FirefoxFileEditViewHistoryBookmarks)ProfilesToolsWindowHeldSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210nise searen as particioanuJY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterpriseMJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720Unlikelv ToRenew$42,1264/mĐ0 D444m90 о 3Đ0D234m00D 2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m53122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily • in 2h 55 mTue 14 Apr 12:05:22Q InspectorConsoleD DebuggerN Network{) Style Editor( PerformanceELE MemoryE Storage© 99+Filter URLs_ Disable Cache No Throttling 50.AlIHMLeSSImagesMediaotheCtatucMethod200200206PosPOSTInitiatorTypeTransferred40.80 $200200200200200200200200200POsIPOSTGETGETGETGETGETGETPOSTPOSTPOSTPOSTPOSTPoslPOSTDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.stagingji...A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...ap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrIsonAr.logr-in.comr.locl-in.comAr.logr-in.comrlocl-in.comYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhra=oonxar/platrorm-stacinear=b-01500020-3e1-/c Xhiatrloar-in.comMa=ponxaf/o atform-staging&r=6-019d8628-3ef-7c xhnb008843 mg500 B2 B | 43 msb00 B2 B 44 mg500 B2 B | 43 ms6.28 kB24.21 kB 1537ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 kB | 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...2298 mscacheo3.12 kB96 B | 620 ms126.39 KB7.89 kB158 ms6.41 kB348kR153 ms| 150 ms2.96 kB3.45 kB166 ms| 151 ms17 requests| 243.44 kB / 230.60 kB transferredFinish: 24.15s DOMContentLoaded: 42 ms load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10953
|
|
10954
|
FirefoxFileEditViewHistoryBookmarks)ProfilesToolsW FirefoxFileEditViewHistoryBookmarks)ProfilesToolsWindowHeldPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multiple@ Console Home | Console Home | usSecurityGroup | EC2 |us-east-2JY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformJY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only *)Save Search @ Clear allHostIActivityCurrent StagestatsHostSearch team membersinise searen as particioanuParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreselect Ai call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 &Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterpriseMJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played 1All-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720unlikelv toRenew$42,1264/mĐ0 D444mĐ0 D3Đ0D234m00D 2$0 228.DODO17m31m43m28mD0 E1 sim25m39m33m5122ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily • in 2h 55 mTue 14 Apr 12:05:25Q InspectorConsoleD DebuggerN Network{) Style Editor( PerformanceELE MemoryE Storage© 99+Filter URLs_ Disable Cache No Throttling 50.AlIHMLeSSImagesMediaotheCtatucMethod200200206PosPOSTInitiatorTypeTransferred40.80 $200200200200200200200200200POsIPOSTGETGETGETGETGETGETPOSTPOSTPOSTPOSTPOSTPoslPOSTDomainA D 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.stagingji...A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...ap1b0 310 envelodelsentry versionssentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrjsonAr.logr-in.comrlocl-in.comAr.logr-in.comrlocl-in.comYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhra=oonxar/platrorm-stacinear=b-01500020-3e1-/c Xhiatrloar-in.comMa=ponxaf/o atform-staging&r=6-019d8628-3ef-7c xhnb008843 mg500 B2 B | 43 msb00 B2 B 44 mg500 B2 B | 43 ms6.28 kB24.21 kB 1537ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 kB | 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...2293 mscacheo3.12 kB96 B | 620 ms126.39 KB7.89 kB158 ms6.41 kB348kR153 ms| 150 ms2.96 kB3.45 kB166 ms| 151 ms17 requests| 243.44 kB / 230.60 kB transferredFinish: 24.15s DOMContentLoaded: 42 ms load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10954
|
|
10955
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Today at 10:35:08 AM
10:35
php artisan automated-reports
Nikolay Yankov
Today at 10:35:39 AM
10:35 AM
значи не създава веднага по принцип, в някакъв час на деня ли стъздава?
Lukas Kovalik
Today at 10:36:11 AM
10:36 AM
това ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)
Today at 10:36:27 AM
10:36
крон го пуска през нощ
Today at 10:37:19 AM
10:37
така че мануално пусни при тестване
Today at 10:38:26 AM
10:38
ако трябва да тестваме други репорти може да променя команда за тестване да приема параметър за report template и д си пускаме определен когато тестваме
Nikolay Yankov
Today at 10:41:03 AM
10:41 AM
можеш ли да я ръннеш ти командата
Lukas Kovalik
Today at 10:43:05 AM
10:43 AM
да
Nikolay Yankov
Today at 10:45:52 AM
10:45 AM
пиши кат оя ръннеш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 10:52:52 AM
10:52 AM
забавих се че ми се разбазикаха settings за среди
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:07 AM
10:53
пуснах и мина и fail-на
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:20 AM
10:53
има result но е failed
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:08 AM
10:58
значи
REASON_NOT_ENOUGH_ACTIVITIES
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:57 AM
10:58
виж дали има нещо в OD със този филтър
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:01:28 AM
11:01 AM
Добре
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:39:27 AM
11:39 AM
я рънни пак
Lukas
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 11:43:00 AM
11:43 AM
готово
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:44:24 AM
11:44
същото
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:47:25 AM
11:47
Competitive pitches беше втория нали така
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
+SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActivityFilesLater..•More+Jiminny ...sos# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Cala Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосЪщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAa>0 lhl§ Support Daily • in 2h 55 m100% <*Tue 14 Apr 12:05:4284Today ~New...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - 1 new item - Slack...
|
NULL
|
10955
|
|
10956
|
FirefoxFileEditViewHistoryBookmarksProfilesToolsWi FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHeldSaved searches14 activitiesYou are currently impersonating Nikolay Yankov <)Sort by: Most recentPlatform Sprint 1 Q2 - Platform TealeamTopics: Competitors XShow internal and external activities: Show internal only xJY-20543 add AJ reports User piloSearch teamsiHostIActivityZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210Mise searen as DarticloanuJY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomaled call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityTypeJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterprise MJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720* Add RecordingA Get NotifiedSave Search @ Clear allCurrent Stagestats00 D 40.Đ0 D2.00D 2Duration4/m44m34mUnlikelv ToRenew$42,126$0 228.DODO17mD0D431m43m$0 92ĐOD428m51m25m39m33m53122ĐO D 1141mDate11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily - in 2h 55 mTue 14 Aor 17:05:43Q InspectorFilter URLsConsoleD Debugger{) Style Editor( PerformanceELE Memory© 99+AlIHMLeSSStatus200200206200200200200200200MethodPosPOSTPOsIPOSTGETGETGETGETGETGET2002002002002001200200200200200200POSTPOSTPOSTPUSIPOSTPOSTPOSTPOSTPOSTPOSTPOSTrontsDomainA g 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.staging.ji.A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...Ar.logr-in.comr.locl-in.comAr.logr-in.comr.locl-in.comAr.logr-in.comrlogt-in.comAr.logr-in.comAr.logr-in.com@ r.logr-in.comN NetworkE Storage_ Disable Cache No Throttling 50.ImagesMediaotheInitiatorap1b0 310 envelode/"sentry versions sentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhra=oonxar/platrorm-stacinear=b-01500020-3e1-/c Xhii?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrTasponxat/olattorm-staginaxr=b-01908028-3eft-/c xhni?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrTasponxat/olattorm-staginaxr=b-01908028-3eft-/c xhnTypeTransferredisonsonjsonjsonb008843 ms500 B2 B | 43 msb00 B23 44 ms500 B2 B | 43 ms6.28 kB24.21 kB 1537 ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 kB | 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...| 2299 mscacheo0 ms3.12 kB96 B | 620 ms126.39 KB7.89 kB6.41 kB3.48 kB2.96 kB3.45 kB3.45 kBOB29o KB2.98 kB3,40 KB|158 ms153 ms1150 ms166 ms|151 ms157 ms1155 ms159 ms176 msÓ 21 requests |243.44 KB 243.45 KB transterredFinish: 44.49 s DOMContentLoaded: 42 ms•load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10956
|
|
10957
|
JY-20543 add AJ reports User pilot tracking by Lak JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny...
|
Firefox
|
Jiminny — Work
|
app.staging.jiminny.com/ondemand?topic_id[]=e02f09 app.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4...
|
10957
|
|
10958
|
JY-20543 add AJ reports User pilot tracking by Lak JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHeldSaved searchesapp.staging.jiminny.com/ondemand/toplc_lab=e02l09s2-00/0-4100-d641-000001592140@inCidde_Ihternal_Conversatlons=ldsequence_numDer=hYou are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent* Add RecordingA Get NotifiedPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only * )Save Search @ Clear allHostIActivityZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-210nise searen as particioanuJY-20543 add AJ reports User pilcSRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformJY-20543 add AJ reports User pilc(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabParuicipantSearch team membersCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesContactActivityCurrent StagestatsTypeDurationDateJiminny MSalestorce App IrainingJiminny MBekkie/ Jules - renewals and Contract..Jiminny MHandover training part 1Unknown Customer M2 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterprise MJiminny & - All-hands meeting i%TomLaveryUnknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 86972000 D 44/m0.44m34mĐ0 D2.00D 2Unlikelv ToRenew$42,126$0 228.DODO17m0 82@0 D431m43m$0 92ĐOD428m51m25m39m33m$1 82ĐO D 1141m11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMSupport Daily - in 2h 55 mTue 14 Aor 17:05:46Q InspectorP Filter URLsConsoleD Debugger{) Style Editor( PerformanceELE Memory© 99+AlIHMLeSSrontsCtatucMethod200Pos200POST20620020020020020020020020020012002001200200]200200200200POsIPOSTGETGETGETGETGETGETPOSTPOSTPOSTPUSIPOSTPOSTPOSTPOSTPOSTPOSTPOSTDomainA g 036719.ing...A Y 036719.ing...036/19.ing..A B 036719.ing...apo.stagino.l..A app.staging.ji...A app.staging.ji.A app.stagingji...A app.stagingji...ttind, userollot.loA app.stagingji...Ar.logr-in.comr.locl-in.comAr.logr-in.comr.locl-in.comAr.logr-in.comrlogt-in.comAr.logr-in.comAr.logr-in.com@ r.logr-in.comN NetworkE Storage_ Disable Cache No Throttling + 50:ImagesMediaotheInitiatorTypeTransferredap1b0 /310 envelode/"sentry versions sentrv xe tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchap1/562/310/envelope/?sentryversion=/&sentry_ke tetch/api/5627310/envelope/?sentry_version=7&sentry_ke fetchsearch?statusl|=completed&sort_by=dateHeld& * xhrrecentsaved-search" Xhiintegrationson-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrNX-0940e17authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhra=oonxar/platrorm-stacinear=b-01500020-3e1-/c Xhii?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrTasponxat/olattorm-staginaxr=b-01908028-3eft-/c xhni?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrTasponxat/olattorm-staginaxr=b-01908028-3eft-/c xhnisonsonjsonjsonb008843 ms500 B2 B | 43 msb00 B23 44 ms500 B2 B | 43 ms6.28 kB24.21 kB 1537 ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 kB | 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...| 2299 mscacheo0 ms3.12 kB96 B | 620 ms126.39 KB7.89 kB6.41 kB3.48 kB2.96 kB3.45 kB3.45 kBOB|158 ms153 ms1150 ms166 ms|151 ms157 ms29o KB1155 ms2.98 kB159 ms3,40 KB176 ms21 requests| 243.44 kB / 243.45 kB transferredFinish: 44.49s DOMContentLoaded: 42 ms•load: 195 ms...
|
Firefox
|
Jiminny — Work
|
app.staging.jiminny.com/ondemand?topic_id[]=e02f09 app.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4...
|
10958
|
|
10959
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelpapp.staging.jiminny.com/ondemand?topic_idfl=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4 JPlatform Sprint 1 Q2 - Platform Team - Scrum Board - Jira — jiminny.atlassian.net/jira/software/c/projects/JY/boards/37JY-20543 add AJ reports User pilot tracking by LakyLak • Pull Request #11932 • jiminny/app (CJ Switch to TabPlatform Sprint 1 Q2 - Platform TeaJiminny - app.staging.jiminny.com/ai-reportsJY-20543 add AJ reports User piloInbox (1,540) - [EMAIL] - Jiminny Mail - mail.google.com/mail/u/0/#inboxZ Configure SSH access to multipleCloudWatch | us-east-2 Switch to Tab@ Console Home | Console Home | usMeet - Daily - Platform - meet.google.com/mie-gawc-dsiSecurityGroup | EC2 |us-east-210AISOwikipeala - wikipedia.orgJY-20543 add AJ reports User pilcParSRD-6779 | JY-20632 | Unable to$Recent SearchesgmailTrending on GoogleJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201Service-Desk - Queues - PlatformJY-20543 add AJ reports User pilc& Configure SSH access to multiple eCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabCusTrarман юнаитед соешу лииде• Search transcript |Said byAnyonePeriodAll timeTopicsCompetitors *)Activity typeSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreSelect Al call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesJY-18909-automated-reports-ask-iiminny = 8697202 8 Deal Insights playbook 2 €Exclaimer MExclaimer handoverUnknown Customer MHow to run an Intro CallTom Lavery at Plamen enterprise MJiminny & - All-hands meeting %Unknown Customer MAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @04:01Unknown Customer played) 1Training P - Jiminny App for Salesfor..Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer played MAll-hands - Nov /thUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...TomLaveryUnlikely toRenew$42,12650 02$0 828DODO17m801n.31m43m$0 82ĐO D428m51m25m39m33m$1 82ĐO D 1141m18/05/9014. 19.56 PM13/03/2024, 11:28 AM26/02/2024, 2:30 PM16/01/2024, 11:43 AM09/01/2024, 11:45 AM28/11/2023, 11:30 AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM07/11/2023, 11:42 AM31/10/2023, 11:35 AM25/10/2023, 11:46 AMj Support Daily • in 2h 55 m200200[PHONE]00200POSTPOSTPOSTPOSTPOSTPOSTPOSTAr.logr-in.com@ r.logr-in.comAr.logr-in.comrlogt-in.comAr.logr-in.comAr.logr-in.comAr.logr-in.comi?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhra=oonxar/platrorm-stacinear=b-01500020-3e1-/c Xhii?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrTasponxat/olattorm-staginaxr=b-01908028-3eft-/c xhni?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrTasponxat/olattorm-staginaxr=b-01908028-3eft-/c xhnjsonsonjsonjson100% C•Tue 14 Apr 12:05:47E Storage0 99+_ Disable Cache No Throttling + 50:Transferredb008843 ms500 B2 B | 43 msb00 B2 B 44 ms500 B2 B | 43 ms6.28 kB24.21 kB 1537 ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 Kb 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86... | 2299 mscacheo0 ms3.12 kB96 B|620 ms126.39 KB7.89 kB6.41 kB3.48 kB|158 ms153 ms1150 ms2.96 kB3.45 kB3.45 kBOB29o KB2.98 kB3,40 KB| 151 msI 157 ms1155 ms159 ms176 ms21 requests| 243.44 kB / 243.45 kB transferredFinish: 44.49 s DOMContentLoaded: 42 msload: 195 ms...
|
NULL
|
NULL
|
NULL
|
10959
|
|
10960
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAa> 0ladolSupport Daily - in 2h 55 m100% C7Tue 14 Apr 12:05:4886 0Today ~...
|
NULL
|
NULL
|
NULL
|
10960
|
|
10961
|
JY-20543 add AJ reports User pilot tracking by Lak JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny
Jiminny
Close tab
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
New Tab
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
JY-18909-automated-reports-ask-jiminny ■ 869720
28
28
14
activities
Get Notified
Sort by Sort by: Most recent
Sort by
Sort by:
Most recent
Add Recording
common.ai-icon-alt
Topics:
Competitors
Show internal and external activities:
Show internal only
Save Search
Clear all
Saved searches Saved searches
Saved searches
Saved searches
Team
Search teams Search teams
Search teams
Search teams
Host
Search team members Search team members
Search team members
Search team members
Also search as participant
Participant
Search team members Search team members
Search team members
Search team members
Customer
Customer
Transcript
Search transcript
Select option Said by
Select option
Said by
Select option Anyone
Select option
Anyone
Period
All time
Topics
Competitors × Search topics
Competitors
×
Search topics
Activity type
Search activity types Search activity types
Search activity types
Search activity types
Duration
Min (minutes)
Max (minutes)
AI call score
Select AI call score Select AI call score
Select AI call score
Select AI call score
Automated call score
Select automated call score Select automated call score
Select automated call score
Select automated call score
Coaching score
Select coaching score Select coaching score
Select coaching score
Select coaching score
Coach
Search coaches Search coaches
Search coaches
Search coaches
Stage at call
Search stages Search stages
Search stages
Search stages
Current stage
Search stages Search stages
Search stages
Search stages
Language
Search language Search language
Search language
Search language
Playlist
Search playlists Search playlists
Search playlists
Search playlists
Pending CRM notes
Not logged to CRM
Recorded
Search recorded Search recorded
Search recorded
Search recorded
Show internal and external activities
Select option Show internal only
Select option
Show internal only
Platform
Search platforms Search platforms
Search platforms
Search platforms
Call type
Search channels Search channels
Search channels
Search channels
Outcome
Search CRM Outcome Search CRM Outcome
Search CRM Outcome
Search CRM Outcome
Deal value
Min (amount)
Max (amount)
Deal close date
All time
Deal age
0
1359d
2717d+
Talking speed
0
177 wpm
252 wpm+
Talk ratio
0%
40%
60%
100%
Patience
0s
1s
2s
3s+
Longest monologue
0
5m
10m+
Longest customer story
0
5m
10m+
Rep questions
0
25
50+
Engaging questions
0
25...
|
Firefox
|
Jiminny — Work
|
app.staging.jiminny.com/ondemand?topic_id[]=e02f09 app.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4...
|
10961
|
|
10962
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Today at 10:35:08 AM
10:35
php artisan automated-reports
Nikolay Yankov
Today at 10:35:39 AM
10:35 AM
значи не създава веднага по принцип, в някакъв час на деня ли стъздава?
Lukas Kovalik
Today at 10:36:11 AM
10:36 AM
това ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)
Today at 10:36:27 AM
10:36
крон го пуска през нощ
Today at 10:37:19 AM
10:37
така че мануално пусни при тестване
Today at 10:38:26 AM
10:38
ако трябва да тестваме други репорти може да променя команда за тестване да приема параметър за report template и д си пускаме определен когато тестваме
Nikolay Yankov
Today at 10:41:03 AM
10:41 AM
можеш ли да я ръннеш ти командата
Lukas Kovalik
Today at 10:43:05 AM
10:43 AM
да
Nikolay Yankov
Today at 10:45:52 AM
10:45 AM
пиши кат оя ръннеш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 10:52:52 AM
10:52 AM
забавих се че ми се разбазикаха settings за среди
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:07 AM
10:53
пуснах и мина и fail-на
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:20 AM
10:53
има result но е failed
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:08 AM
10:58
значи
REASON_NOT_ENOUGH_ACTIVITIES
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:57 AM
10:58
виж дали има нещо в OD със този филтър
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:01:28 AM
11:01 AM
Добре
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:39:27 AM
11:39 AM
я рънни пак
Lukas
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 11:43:00 AM
11:43 AM
готово
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:44:24 AM
11:44
същото
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:47:25 AM
11:47
Competitive pitches беше втория нали така
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
FirefoxFileEditViewHistoryBookmarks)ProfilesToolsWindowHelpSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recentPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiZ Configure SSH access to multipleHost@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-2niso searen as particioantJY-20543 add AJ reports User pilcParuicipantSRD-6779 | JY-20632 | Unable to$searcn leam memdersJy 19798 evaluation for ai activity& JiminnyAsk Jiminny test report - 8 Aor 20Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc& Configure SSH access to multiple eCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byAnyonePeriodAll timeTopicsCompetiActivity typlSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreselect Ai call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stages+ Add RecordingTopics: Competitors XShow internal and external activities: Show internal only X)Save SearchClear allHostIActivityContactActivityCurrent StagestatsTypeJWJiminny MSalestorce App IrainingFirefoxJY-18909-automated-reports-ask-iiminny = 869720Jiminny MBekkie/ Jules - renewals and Contract…Jiminny MHandover training part 1Unknown Customer Md 6 Deal Insights playbook d $Exclaimer MExclaimer handoverPSAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @ 04:01Unknown Customer played MTraining ? - Jiminny App for Salesfor….8)Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer (played MAll-hands - Nov /thiUnknown Customer 1All Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...unlikelv toRenew$42,126$I00 D 4I 19 0D300D 2$0 228.DO DO0D6$0 92•0 D 42 1ĐOD7{0 83Đ0 D350920 D4$092Đ0 D1S1 c 2D11Duration4/m44m34m17m43m28m51m25m39m41mA Get NotifiedDate11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AMSupport Daily • in 2h 55 m(БГ)Tue 14 Apr 12:05:59Q InspectorP Filter URLsConsoleD DebuggerN Network{} Style Editor( PerformanceO: Memory© 99+ImagesMediaotheStatus200200206200200200200200200200200200200200200200200200200HlMLOSSMethodPosPOSTPOSTPOSTGETGETGETGETGETGETPOSTPOSTPOSTPoslPOSTPOSTPOSTPOSTPOSTDomainInitiatorA D 036719.ing...ao1b02S0envelode/"sentry versionssentry xe tetchA Y 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetch036/19.ing..ap1/562/310/envelope/?sentryversion=/&sentry_ke tetchA B 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetchapo.stagino.l..search?statusl|=completed&sort_by=dateHeld& * xhrA app.staging.ji...recentA app. staging.j...saved-searchA xhrA app.stagingji...integrationsA app.stagingji...on-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrttind, userollot.loNX-0940e17A app.stagingji...authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhrAr.logr-in.comr.locl-in.comAr.logr-in.comrlocl-in.comAr.logr-in.comrlogt-in.comAr.logr-in.comi?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/olatform-stagina&r=6-019d8b28-3eff-7c xhnE Storage_ Disable Cache No Throttling + 50:TypeTransferredjsonIsonb008843 ms500 B2 B | 43 msb00 B2 B 44 ms500 B2 B | 43 ms6.28 kB24.21 kB | 1537 ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 kB | 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...| 2299 mscacheo3.12 kB96 B | 620 ms126.39 KB7.89 kB6.41 kB3.48 kB|158 ms153 ms| 150 ms2.96 kB3.45 kB3.45 kB2.95 kBOBOBOB2.98 kB3.46 kBо в3.47 kB| 151 ms157 ms1155 ms| 159 ms| 176 ms| 155 ms3.47 kB2.96 kB| 148 ms09/01/2024, 11:45 AM9911099 11•0AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM0/119O/3.11:42 AMI31/10/2023, 11:35 AM25/10/2023, 11:46 AM24 requests243.44 KB 253.36 KB transterredFinish: 1.01 min DOMContentLoaded: 42 ms load: 195 ms...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - 1 new item - Slack...
|
NULL
|
10962
|
|
10963
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Today at 10:35:08 AM
10:35
php artisan automated-reports
Nikolay Yankov
Today at 10:35:39 AM
10:35 AM
значи не създава веднага по принцип, в някакъв час на деня ли стъздава?
Lukas Kovalik
Today at 10:36:11 AM
10:36 AM
това ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)
Today at 10:36:27 AM
10:36
крон го пуска през нощ
Today at 10:37:19 AM
10:37
така че мануално пусни при тестване
Today at 10:38:26 AM
10:38
ако трябва да тестваме други репорти може да променя команда за тестване да приема параметър за report template и д си пускаме определен когато тестваме
Nikolay Yankov
Today at 10:41:03 AM
10:41 AM
можеш ли да я ръннеш ти командата
Lukas Kovalik
Today at 10:43:05 AM
10:43 AM
да
Nikolay Yankov
Today at 10:45:52 AM
10:45 AM
пиши кат оя ръннеш
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 10:52:52 AM
10:52 AM
забавих се че ми се разбазикаха settings за среди
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:07 AM
10:53
пуснах и мина и fail-на
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:53:20 AM
10:53
има result но е failed
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:08 AM
10:58
значи
REASON_NOT_ENOUGH_ACTIVITIES
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 10:58:57 AM
10:58
виж дали има нещо в OD със този филтър
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:01:28 AM
11:01 AM
Добре
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Nikolay Yankov
Today at 11:39:27 AM
11:39 AM
я рънни пак
Lukas
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 11:43:00 AM
11:43 AM
готово
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:44:24 AM
11:44
същото
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Today at 11:47:25 AM
11:47
Competitive pitches беше втория нали така
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
New
Nikolay Yankov
Today at 12:04:33 PM
12:04 PM
Да, там има 14 активитита, защо не сработи този път?
React with white_check_mark
React with eyes
React with raised_hands
Add reaction…
Reply in thread
Forward message…
Save for later
More actions
Lukas Kovalik
Today at 12:05:31 PM
+SlackEDHomeDMsActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp‹ >0 llJiminny ...# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Cala Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAa§ Support Daily • in 2h 54 m100% <7*Tue 14 Apr 12:06:0184Today ~New...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - 1 new item - Slack...
|
NULL
|
10963
|
|
10964
|
FirefoxFileEditViewHistoryBookmarks)ProfilesToolsW FirefoxFileEditViewHistoryBookmarks)ProfilesToolsWindowHelpSaved searchesapp.staging.jiminny.com/ondemand?topic_id[]=e02f0932-cb76-41b6-ac4f-6b8db1392146&include_internal_conversations=1&sequence_number=4You are currently impersonating Nikolay Yankov <)14 activitiesSort by: Most recent+ Add RecordingPlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloleamSearch teamsiTopics: Competitors XShow internal and external activities: Show internal only X)Save SearchClear allZ Configure SSH access to multipleHostIActivityHostContactActivityCurrent StagestatsType@ Console Home | Console Home | usSearch team membersiSecurityGroup | EC2 |us-east-2niso searen as DarticloanuJWJiminny MSalestorce App IrainingJY-20543 add AJ reports User pilcParuicipant5 SRD-6779 | JY-20632 | Unable to$searcn leam memdersJy 19798 evaluation for ai activity& JiminnyAsk Jiminny test report - 8 Aor 20Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilc& Configure SSH access to multiple eCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New TabCustomer ®Customer or SubjectTranscript ©• Search transcript |Said byMnyonePeriodAll timeTopicsCompetiActivity typlSearch activity typesDuration ©Min (minutes)Max (minutes)Al call scoreselect Ai call scoreMulomalea call scoreSelect automated calliCoaching scoreSelect coaching scoreCoach ®Search coaches.Stage at callSearch stagesCurrent stageSearch stagesJiminny WBekkie/ Jules - renewals and Contract…Jiminny MHandover training part 1Unknown Customer Md 6 Deal Insights playbook d $Exclaimer MExclaimer handoverPSrneolornAll -hands Jan 9thUnknown Customer MNotetaker added on 11-28-23 @ 04:01Unknown Customer played MTraining ? - Jiminny App for Salesfor….Unknown Customer MAll-hands - Thank Yous, What Went, L...Unknown Customer (played MAll-hands - Nov /thiUnknown Customer MpAll Hands - October 31st ©Unknown Customer MDeal Insights Referesher/Training w/T...JY-18909-automated-reports-ask-iiminny = 869720unlikelv toRenew$42,126$I00 D 4I 19 0D300D 2$0 228.DO DO0D6$0 92•0 D 42 1ĐOD7{0 83Đ0 D35092Đ0 D4$092Đ0 D1S1 c 2D11Duration4/m44m34m17m43m28m51m25m39m41mA Get NotifiedDate11/0/2024.2:28 PMI25/06/2024, 3:09 PM10/06/2024, 12:02 PM18/05/9014. 19.96 PMI13/03/2024, 11:28 AM09/01/2024, 11:45 AM9911099 11•0AM22/11/2023, 11:56 AM14/11/2023, 11:27 AM0/119O/3.11:42 AMI31/10/2023, 11:35 AM25/10/2023, 11:46 AMloblSupport Daily - in 2 h 54 m(БГ)Tue 14 Apr 12:06:01Q InspectorP Filter URLsConsoleD DebuggerN Network{} Style Editor( PerformanceO: Memory© 99+MediaotheStatus200200206200200200200200200200200200200200200200200200200HlMLOSSMethodPosPOSTPOSTPOSTGETGETGETGETGETGETPOSTPOSTPOSTPoslPOSTPOSTPOSTPOSTPOSTDomainInitiatorA D 036719.ing...ao1b02S0envelode/"sentry versionssentry xe tetchA Y 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetch036/19.ing..ap1/562/310/envelope/?sentryversion=/&sentry_ke tetchA B 036719.ing.../api/5627310/envelope/?sentry_version=7&sentry_ke fetchapo.stagino.l..search?statusl|=completed&sort_by=dateHeld& * xhrA app.staging.ji...recentA app. staging.j...saved-searchA xhrA app.stagingji...integrationsA app.stagingji...on-demand?topic_idll=e02f0932-cb76-41b6-ac +a xhrttind, userollot.loNX-0940e17A app.stagingji...authenticateA xhrYa=ponxat plattorm-staging&r=b-019d8b28-3eft-/c xhrAr.logr-in.comr.locl-in.comAr.logr-in.comrlocl-in.comAr.logr-in.comrlogt-in.comAr.logr-in.comi?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhri?a=ponxaf/platform-staging&r=6-019d8b28-3eff-7c xhrNE Storage_ Disable Cache No Throttling + 50:TypeTransferredjsonIsonb008843 ms500 B2 B | 43 msb00 B2 B 44 ms500 B2 B | 43 ms6.28 kB24.21 kB | 1537 ms5.65 kB15.26 kB | 211 ms3.62 kB1.42 kB | 1508 ms3.83 kB5.53 kB | 1253 ms55.53 kB 196.86...| 2299 mscacheo3.12 kB96 B | 620 ms126.39 KB7.89 kB6.41 kB3.48 kB|158 ms153 ms| 150 ms2.96 kB3.45 kB3.45 kB2.95 kBOBOBOB2.98 kB3.46 kBо в3.47 kB| 151 ms157 ms1155 ms| 159 ms| 176 ms| 155 ms3.47 kB2.96 kB| 148 ms24 requests243.44 KB 253.36 KB transterredFinish: 1.01 min DOMContentLoaded: 42 ms load: 195 ms...
|
NULL
|
NULL
|
NULL
|
10964
|
|
10965
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\FilterDefinitionCollection;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\Activity\SearchFilter;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityServiceTest extends TestCase
{
private ActivitySearch&MockObject $activitySearch;
private ElasticActivityRepository&MockObject $elasticRepository;
private LoggerInterface&MockObject $logger;
private AskJiminnyReportActivityService $service;
protected function setUp(): void
{
$this->activitySearch = $this->createMock(ActivitySearch::class);
$this->elasticRepository = $this->createMock(ElasticActivityRepository::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->service = new AskJiminnyReportActivityService(
$this->activitySearch,
$this->elasticRepository,
$this->logger,
);
}
private function makeFilter(string $key, ?string $value): SearchFilter&MockObject
{
$filter = $this->createMock(SearchFilter::class);
$filter->method('getFilterProperty')->willReturn($key);
$filter->method('getFilterValue')->willReturn($value);
return $filter;
}
private function makeUser(): User&MockObject
{
$tz = new \DateTimeZone('UTC');
$user = $this->createMock(User::class);
$user->method('getTimezone')->willReturn($tz);
$user->method('getId')->willReturn(1);
$user->method('getUuid')->willReturn('user-uuid');
return $user;
}
private function makeSavedSearch(array $filters): Search&MockObject
{
$savedSearch = $this->createMock(Search::class);
$savedSearch->method('getId')->willReturn(42);
$savedSearch->method('getFilters')->willReturn(new \Illuminate\Support\LazyCollection($filters));
return $savedSearch;
}
public function testGetActivityIdsForSavedSearchReturnsIds(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->expects($this->once())
->method('getArrayFilterKeys')
->with($user)
->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->expects($this->once())
->method('onDemandSearchIdsOnly')
->willReturn(['id-1', 'id-2', 'id-3']);
$this->logger->expects($this->once())
->method('info')
->with('[AskJiminnyReport] Fetched activity IDs for saved search');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1', 'id-2', 'id-3'], $result);
}
public function testGetActivityIdsForSavedSearchReturnsEmptyWhenNoResults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->expects($this->once())->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEmpty($result);
}
public function testGetActivityIdsFiltersOutDateFilters(): void
{
$user = $this->makeUser();
$nonDateFilter = $this->makeFilter('owner_id', '123');
$startDateFilter = $this->makeFilter(ActivityActualDate::PARAM_START_DATE, '2025-01-01 00:00:00');
$endDateFilter = $this->makeFilter(ActivityActualDate::PARAM_END_DATE, '2025-01-31 23:59:59');
$updatedFromFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_FROM, '2025-01-01 00:00:00');
$updatedToFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_TO, '2025-01-31 23:59:59');
$savedSearch = $this->makeSavedSearch([
$nonDateFilter,
$startDateFilter,
$endDateFilter,
$updatedFromFilter,
$updatedToFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
}
public function testGetActivityIdsFiltersOutClosingPeriodDateFilters(): void
{
$user = $this->makeUser();
$closingStartFilter = $this->makeFilter(ClosingPeriodFilter::KEY_START_DATE, '2025-01-01');
$closingEndFilter = $this->makeFilter(ClosingPeriodFilter::KEY_END_DATE, '2025-03-31');
$regularFilter = $this->makeFilter('rep_id', '99');
$savedSearch = $this->makeSavedSearch([
$closingStartFilter,
$closingEndFilter,
$regularFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesArrayFilters(): void
{
$user = $this->makeUser();
$filter1 = $this->makeFilter('outcome', 'positive');
$filter2 = $this->makeFilter('outcome', 'negative');
$savedSearch = $this->makeSavedSearch([$filter1, $filter2]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn(['outcome']);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesScalarFilters(): void
{
$user = $this->makeUser();
$filter = $this->makeFilter('direction', 'inbound');
$savedSearch = $this->makeSavedSearch([$filter]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-5']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-5'], $result);
}
public function testGetActivityIdsPassesNonZeroSequenceNumberToDisableFirstRequestDefaults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
$this->assertFalse($capturedCriteria->isFirstRequest());
}
public function testGetActivityIdsLogsWithCorrectContext(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['a', 'b']);
$this->logger->expects($this->once())
->method('info')
->with(
'[AskJiminnyReport] Fetched activity IDs for saved search',
$this->callback(fn ($context) => $context['saved_search_id'] === 42
&& $context['user_id'] === 1
&& $context['activity_count'] === 2)
);
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
15
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where('automated_reports.team_id', $user->getTeamId())
->whereJsonContains('automated_reports.recipients->users', $user->getId())
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityServiceTest.ph faVsco.js – AskJiminnyReportActivityServiceTest.php...
|
NULL
|
10965
|
|
10966
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\FilterDefinitionCollection;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\Activity\SearchFilter;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityServiceTest extends TestCase
{
private ActivitySearch&MockObject $activitySearch;
private ElasticActivityRepository&MockObject $elasticRepository;
private LoggerInterface&MockObject $logger;
private AskJiminnyReportActivityService $service;
protected function setUp(): void
{
$this->activitySearch = $this->createMock(ActivitySearch::class);
$this->elasticRepository = $this->createMock(ElasticActivityRepository::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->service = new AskJiminnyReportActivityService(
$this->activitySearch,
$this->elasticRepository,
$this->logger,
);
}
private function makeFilter(string $key, ?string $value): SearchFilter&MockObject
{
$filter = $this->createMock(SearchFilter::class);
$filter->method('getFilterProperty')->willReturn($key);
$filter->method('getFilterValue')->willReturn($value);
return $filter;
}
private function makeUser(): User&MockObject
{
$tz = new \DateTimeZone('UTC');
$user = $this->createMock(User::class);
$user->method('getTimezone')->willReturn($tz);
$user->method('getId')->willReturn(1);
$user->method('getUuid')->willReturn('user-uuid');
return $user;
}
private function makeSavedSearch(array $filters): Search&MockObject
{
$savedSearch = $this->createMock(Search::class);
$savedSearch->method('getId')->willReturn(42);
$savedSearch->method('getFilters')->willReturn(new \Illuminate\Support\LazyCollection($filters));
return $savedSearch;
}
public function testGetActivityIdsForSavedSearchReturnsIds(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->expects($this->once())
->method('getArrayFilterKeys')
->with($user)
->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->expects($this->once())
->method('onDemandSearchIdsOnly')
->willReturn(['id-1', 'id-2', 'id-3']);
$this->logger->expects($this->once())
->method('info')
->with('[AskJiminnyReport] Fetched activity IDs for saved search');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1', 'id-2', 'id-3'], $result);
}
public function testGetActivityIdsForSavedSearchReturnsEmptyWhenNoResults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->expects($this->once())->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEmpty($result);
}
public function testGetActivityIdsFiltersOutDateFilters(): void
{
$user = $this->makeUser();
$nonDateFilter = $this->makeFilter('owner_id', '123');
$startDateFilter = $this->makeFilter(ActivityActualDate::PARAM_START_DATE, '2025-01-01 00:00:00');
$endDateFilter = $this->makeFilter(ActivityActualDate::PARAM_END_DATE, '2025-01-31 23:59:59');
$updatedFromFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_FROM, '2025-01-01 00:00:00');
$updatedToFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_TO, '2025-01-31 23:59:59');
$savedSearch = $this->makeSavedSearch([
$nonDateFilter,
$startDateFilter,
$endDateFilter,
$updatedFromFilter,
$updatedToFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
}
public function testGetActivityIdsFiltersOutClosingPeriodDateFilters(): void
{
$user = $this->makeUser();
$closingStartFilter = $this->makeFilter(ClosingPeriodFilter::KEY_START_DATE, '2025-01-01');
$closingEndFilter = $this->makeFilter(ClosingPeriodFilter::KEY_END_DATE, '2025-03-31');
$regularFilter = $this->makeFilter('rep_id', '99');
$savedSearch = $this->makeSavedSearch([
$closingStartFilter,
$closingEndFilter,
$regularFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesArrayFilters(): void
{
$user = $this->makeUser();
$filter1 = $this->makeFilter('outcome', 'positive');
$filter2 = $this->makeFilter('outcome', 'negative');
$savedSearch = $this->makeSavedSearch([$filter1, $filter2]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn(['outcome']);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesScalarFilters(): void
{
$user = $this->makeUser();
$filter = $this->makeFilter('direction', 'inbound');
$savedSearch = $this->makeSavedSearch([$filter]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-5']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-5'], $result);
}
public function testGetActivityIdsPassesNonZeroSequenceNumberToDisableFirstRequestDefaults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
$this->assertFalse($capturedCriteria->isFirstRequest());
}
public function testGetActivityIdsLogsWithCorrectContext(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['a', 'b']);
$this->logger->expects($this->once())
->method('info')
->with(
'[AskJiminnyReport] Fetched activity IDs for saved search',
$this->callback(fn ($context) => $context['saved_search_id'] === 42
&& $context['user_id'] === 1
&& $context['activity_count'] === 2)
);
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
15
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where('automated_reports.team_id', $user->getTeamId())
->whereJsonContains('automated_reports.recipients->users', $user->getId())
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityServiceTest.ph faVsco.js – AskJiminnyReportActivityServiceTest.php...
|
NULL
|
10966
|
|
10967
|
PhpStormFileFditViewNavigateCodelaraveRetactonTool PhpStormFileFditViewNavigateCodelaraveRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.php= custom.lo9= laravel.logL SF (iminny@localhostD UnitActionsComponentConfigurationM ConsoleM ContractsM7 DomainD DTO• Enums_ Events_ Exceptions→ fixtures_ HelpersD Http>_Integrations> Minteractions• D Jobs> M Activitv> M AiAutomation>_ Audiov _ AutomatedReports©) CreateResultsTest.pl(C) RequestGenerateAs'© RequestGenerateRerC SendReportJobTest.(ch SendRenortMailJobTcallendar!1CrmDeaksksM Mailbox_ Streaming→ Team_ TelephonyD User(c) ImportRecallAlRecordins(c) SqsVisibilityControlTest→I Listeners→]Mal> MModelsM Notifications› M ObserversPoliciesProvidersRepositories> D Rules• _ Services_ Activity_ ActivityProvidersI IAvatarcallendarConference! CinmiM InternallKioskv _ AutomatedReports©) ActivityTypeServi(c) AskJiminnyRepor(c) AskJiminnyRepor(c) AutomatedRenonAulomaleakeporissendcommand.ongC AddLayoutEntities.phpC Team.phpC) AutomatedReportsRepository.php XHs local liminnyalocalnostconsole PRODL console (EUl© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) TrackProviderinstallled-vent.ono¿ consoe STAGING© AskJiminnyReportActivityService.phpC ActivityLogged.php© AskJiminnyReportActivityServiceTest.php XC) RequestGenerateAskJiminnyReportJobTest.phpC RequestGenerateAskJiminnyReportJob.phpC RequestGenerateReportJob.phpsrong© AutomatedReportResult.php© AutomatedReport.phpdeclare(strict_types=1);class AutomatedReportsrepos1toryA15 V4namesnace liests Unit Services Klosk AutomatedRenorts:* dreturn AutomatedReportuse...public function create(array $data): AutomatedReport...class AskaminnyReportActivityServicelest extends TestCase* Find an automated report by UUID* dparam string suuld25* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReportreturn AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:2729 GT>Tusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReportif (is numeric(sidorluid)) "return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.100 M ›* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by', 'created_at'. 118 %% >* @param string $sortDirection The sort direction. Allowed values:"asc, "desc". veraults to "des-oe157 % >* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created at',string SsortDirection = 'desc': Collection 1...185 VA N206 D >-224225*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dparam usersuserIne user wnose reporus to retrieve.*oparan scring esortho lunnThe column to sort by. Allowed values: 'created_by', 'created_at'. 232* Oparam string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'dez 233* dreturn Collection<AutomatedReport>22923023123425525614 usages244Winasun ch00 2.12.21: A new version is avallable." View Chancelod loday 10:33.ls usadeslo usaces1o usages9 usagesprivate ActivitySearch&Mock0bject $activitySearch;private ElasticActivityRepository&Mock0bject SelasticRepository:private LoggerinterfacexMock0bject sloggerprivate AskJ1minnykeporcAculVityservice sservice;protected function setUp: voidt...hIl usagesprivate function makeFilter(string $key. ?string $value): SearchFilto usaeesprivate function makeUserO: User&Mock0bjecti...h8 usagesprivate function makesavedsearch(array sf1lters): SearchxMockobjectpubLic tunction tescbecAculvityLasrorsavedsearchkecurnstas: vo1dpublic function testGetActivityIdsForSavedSearchReturnsEmptvWhenNoRdpublic function testGetActivityldsFilters0utDateFiltersO: void..public function testGetActivityldsFilters0utClosingPeriodDateFilter.public function testGetActiv1tyldsHandLesArrayF1lters(: vo1di..puDLic tunction tescbecAculvltylashandlesscalarrilters: voldt..pubtao runctaontestGetActivitvIdsPassesNonZeroSequenceNumberToDisalpuser - ochis->makeusert,SsavedSearch = sthis->makeSavedSearch(u.D:sfilterset = Sthis->createMock originalClassName: FilterDefinitioncsthis->activitysearch->method constraint: 'getArrayr1lterKeys')->wScapturedcriteria = null;ninn S->acu v Vsearch-sexoersth S=>oncelu.ui→>iecno constragetOnDemandPageFilterSet')1 eall-›il ~ Accept File *+ k (X Reject file (Griterta 2orätilesia) use ($fil, 0lablSupport Daily • in 2 h 54m100%Tue 14 Apr 12:06:03RequestGenerateAsk.liminnvRenort.lob TestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny F+0 .met opeulibally.Searched sequence_number SequenceNumber and performed 2 other queriesNow nave tne key insionu Let me check what sequence nundel coes in tne context or isrirstkequest .This is the root cause. Ler me check ActivitvActualbate In cerailINowi see tne tuil olcture. Let me also check Accivityburacionkance ano Aculvitykecorded derauls tor 1SFirStKequest():keaа Acuivityburaulonkance.ono ane Acuivilykecoraea.ongNow l have the complete root cause picture. This is critical:Root Cause FoundIne bu1 lakequestraramstromsearch method in AskJ1minnykeportactivicyservice passes sequence number=0implicitly (not in params), which means isFirstRequest() returns truewnen sequencmber is notin requestParams, the Criteria::createFromRequest defaultsitto 0, and isFirstRequest() returns true when empty sequenceNumber == 0The frontend URL has sequence_number=4 - meaning it's not a first request. The service doesn't set it, so thecriterla tninks Iu's a TilstrecuestWnen 1sFirstRequest() = true, these Implicht tilters are applied that aren t in the saved search:1. ActivityDurationRange — applies min duration = 1 (INITIAL MIN) - filters out O-second calls2. ActivityRecorded - applies only_recorded = 1 (DEFAULT_VALUE = OPTION_RECORDED) - filters torecorded-only3, Orcannsergroupin — aoolles user's ceaur crouo TilerBut the frontend with sequence number=4 skips all of these defaults, so it returns more results.nerx snoule oe m our lorequestraranstromsearch- uneeos lo oass sequence number intne ouluoalams losignal "not a first request", so the implicit detaults don't apply. Or alternatively, always pass a non-zero sequence_nunber in tne meree in ceraccivitylasrorsaveasearch.Now let me verity my understanding of isFirstRequest :keac uriterla.onecontirmea. Ine Tix is clear ane minimal. Ine cetaculvicylasrorsaveasearch metnoe neeas lo pass sequence nutber with a non-zero value so that isFirstRequest() returns false and no implicit detaults are applied.U As!Now let me check if there's an existing test for AskJiminnyReportActivityService to update:Eynlored Ack.liminnvPenortActivitvServiceTect nhn and coarched Ack. liminnvPenortActivityksIneed lo add a lest thau verities sequence number=l is passedlo uricerla so 1srirstkequesco rerurns talse ).et me add it to the existind test flle:• AskJi;Tyoelvicelesbone+27Now let's run the test to verify:Command dockero dests/unxe/ srvkees/Kosk/ Auf /ar/w/rts/sKtamannyReportActivityServicetest.php --no-coverageRunae2 files +28 -1 >Reject allAccept allAsk anything (&+L)+ <> CodeClaude Sonnet 4.6winasun leamsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10967
|
|
10968
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aalal]Support Daily - in 2h 54 m100% <47Tue 14 Apr 12:06:068Today ~...
|
NULL
|
NULL
|
NULL
|
10968
|
|
10969
|
PhpStormFileFditViewNavigateCodelaraveRetactonTool PhpStormFileFditViewNavigateCodelaraveRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.php= custom.lo9= laravel.logL SF (iminny@localhostD UnitActionsComponentConfigurationM ConsoleM ContractsM7 DomainD DTO• Enums_ Events_ Exceptions→ fixtures_ HelpersD Http>_Integrations> Minteractions• D Jobs> M Activitv> M AiAutomation>_ Audiov _ AutomatedReports©) CreateResultsTest.pl(C) RequestGenerateAs'© RequestGenerateRerC SendReportJobTest.(ch SendRenortMailJobTcallendar!1CrmDeaksksM Mailbox_ Streaming→ Team_ TelephonyD User(c) ImportRecallAlRecordins(c) SqsVisibilityControlTest→I Listeners→]Mal> MModelsM Notifications› M ObserversPoliciesProvidersRepositories> D Rules• _ Services_ Activity_ ActivityProvidersI IAvatarcallendarConference! CinmiM InternallKioskv _ AutomatedReports©) ActivityTypeServi(c) AskJiminnyRepor(c) AskJiminnyRepor(c) AutomatedRenonAulomaleakeporissendcommand.ongC AddLayoutEntities.phpC Team.phpC) AutomatedReportsRepository.php XHs local liminnyalocalnostconsole PRODL console [EUl© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) TrackProviderinstallled-vent.ono¿ consoe STAGING© AskJiminnyReportActivityService.phpC ActivityLogged.php© AskJiminnyReportActivityServiceTest.php XC) RequestGenerateAskJiminnyReportJobTest.phpC RequestGenerateAskJiminnyReportJob.phpC RequestGenerateReportJob.phpsrong© AutomatedReportResult.php© AutomatedReport.phpdeclare(strict_types=1);class AutomatedReportsrepos1toryA15 V4namesnace liests Unit Services Klosk AutomatedRenorts:* dreturn AutomatedReportuse...public function create(array $data): AutomatedReport...class AskaminnyReportActivityServicelest extends TestCase* Find an automated report by UUID*dparam string suuld25* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReportreturn AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:2729 GT>Tusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReportif (is numeric(sidorluid)) "return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.100 M ›* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by', 'created_at'. 118 %% >* @param string $sortDirection The sort direction. Allowed values:"asc, "desc". veraults to "des-oe157 % >* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created at',string SsortDirection = 'desc': Collection 1...185 VA N206 D >-2242251*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dparam usersuserIne user wnose reporus to retrieve.*oparan scring esortho lunnThe column to sort by. Allowed values: 'created_by', 'created_at'. 232* Oparam string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'dez 233* dreturn Collection<AutomatedReport>22923023123425525614 usagesWinasun ch00 2.12.21: A new version is avallable. View chancelod loday 10:33.ls usadeslo usaces1o usages9 usagesprivate ActivitySearch&Mock0bject $activitySearch;private ElasticActivityRepository&Mock0bject SelasticRepository:private LoggerinterfacexMock0bject sloggerprivate AskJ1minnykeporcAculVityservice sservice;protected function setUp: voidt...hIl usagesprivate function makeFilter(string $key. ?string $value): SearchFilto usaeesprivate function makeUserO: User&Mock0bjecti...h8 usagesprivate function makesavedsearch(array sf1lters): SearchxMockobjectpubLic tunction tescbecAculvityLasrorsavedsearchkecurnstas: voldtpublic function testGetActivityIdsForSavedSearchReturnsEmptvWhenNoRdpublic function testGetActivityldsFilters0utDateFiltersO: void...public function testGetActivityldsFilters0utClosingPeriodDateFilter:public function testGetActiv1tyldsHandLesArrayF1lters: vo1di..pubLic tunction tescbecAculvltylashandlesscalarrilters: voldt..pubtao runctaontestGetActivitvIdsPassesNonZeroSequenceNumberToDisarpuser - ochis->makeusert,SsavedSearch = sthis->makeSavedSearch(u.D:sfilterset = Sthis->createMock originalClassName: FilterDefinitioncsthis->activitysearch->method constraint: 'getArrayr1lterKeys')->wScapturedcriteria = null;ninnS->acu vVsearch-sexdecsim s-sonce ui→>iecno constragetOnDemandPageFilterSet')1 eall-›il ~ Accept File *+ k (X Reject file (Griterta 2orätilesia) use ($fil, 0labl: Support Daily • in 2 h 54 m100% |45]Tue 14 Apr 12:06:06RequestGenerateAskJiminnyReportJobTestCascadeFixing ReportControlleAutomated Report Ma XFixing Ask Jiminny F+D ..ha RNow l have the key insight. Let me check what sequence_number does in the context of isFirstRequest() :searched ishlch wonp/Inis is tne root cause. Let me check AcCIVItyActualDace In delallNow I see the full picture. Let me also check ActivityDurationRange and ActivityRecorded defaults for isFirstRequestNow lhave the comnlete root cause nicture. iTihis is criticaikoor cause rounolThe bui ldRequestParamsFromSearch method in AskJiminnyReportActivityservice passes sequence_number=0implcitiy not in params, which means 1srir stkequest rerums true .When sequence_number Is notin requestparams, the criteria:: createrromkequest deraultsitto o, and isFirstRequesel letums true when elply seguencenunber ==0Ine trontend UkL has sequence number=4 — meaning il's not a tirst request. Ine service doesh't set it, so thecriteria thinks it's a first redlest.wnen isrirstkequestl) = true, these Impllcht tllters are apolled that aren tin tne savee seareh:1. ActivityDurationRange— applies min duration = 1 (INITIAL_MIN) - filters out 0-second calls2. ActivityRecorded - applies only recorded = 1 (DEFAULT VALUE = OPTION RECORDED) - filters torecorded-only3. OrganiserGroupIn - applies user's default group filterBut the trontend with sequence number=4 skios alll of these deraults, so It returns more resultsThe fix should be in buildRequestParamsFromSearch - it needs to pass sequence number in the built params tosignal "not a tirst recuest", so tne implicit derauls con t apoly. or alternatively, always pass a non-zero sequence number in the merge in getActivityldsForSavedSearch.Road Ack.liminnvRenortActivitService nhn " 44.02Now let me verty my understanalne or isrirstkequest.Read Criteria.nhoContirmed. The fix is clear and minimal. The getActivityldsForSavedSearch method needs to pass sequence_number with a non-zero value so that isFirstRequest() returns false and no implicit defaults are applied.• AskJiminnvReportActivitvService.phpNow let me check t there's an existine lesttor AskJ1minnykeportaccivicyservice lo updaleI need to add a test that verifies sequence number=1 is passed to Criteria (so isFirstRequest() returns false).Letme ade Iulo tne existine lesttlle.• AskJiminnyReportActivityServiceTest.phpNowers run the esto vertv.• aоскer еxесcovel dgedocker lamp 1onp varwwwncnl arulsan cesttests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php ==no-Could not open input file: /var/www/html/artisan2 files +28-1%Reject allAccent alllAsk anything (&+L)+ ‹› CodeClaude Sonnet 4.6winasun leamsuir-oia 4 spacesw...
|
NULL
|
NULL
|
NULL
|
10969
|
|
10970
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\FilterDefinitionCollection;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\Activity\SearchFilter;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityServiceTest extends TestCase
{
private ActivitySearch&MockObject $activitySearch;
private ElasticActivityRepository&MockObject $elasticRepository;
private LoggerInterface&MockObject $logger;
private AskJiminnyReportActivityService $service;
protected function setUp(): void
{
$this->activitySearch = $this->createMock(ActivitySearch::class);
$this->elasticRepository = $this->createMock(ElasticActivityRepository::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->service = new AskJiminnyReportActivityService(
$this->activitySearch,
$this->elasticRepository,
$this->logger,
);
}
private function makeFilter(string $key, ?string $value): SearchFilter&MockObject
{
$filter = $this->createMock(SearchFilter::class);
$filter->method('getFilterProperty')->willReturn($key);
$filter->method('getFilterValue')->willReturn($value);
return $filter;
}
private function makeUser(): User&MockObject
{
$tz = new \DateTimeZone('UTC');
$user = $this->createMock(User::class);
$user->method('getTimezone')->willReturn($tz);
$user->method('getId')->willReturn(1);
$user->method('getUuid')->willReturn('user-uuid');
return $user;
}
private function makeSavedSearch(array $filters): Search&MockObject
{
$savedSearch = $this->createMock(Search::class);
$savedSearch->method('getId')->willReturn(42);
$savedSearch->method('getFilters')->willReturn(new \Illuminate\Support\LazyCollection($filters));
return $savedSearch;
}
public function testGetActivityIdsForSavedSearchReturnsIds(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->expects($this->once())
->method('getArrayFilterKeys')
->with($user)
->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->expects($this->once())
->method('onDemandSearchIdsOnly')
->willReturn(['id-1', 'id-2', 'id-3']);
$this->logger->expects($this->once())
->method('info')
->with('[AskJiminnyReport] Fetched activity IDs for saved search');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1', 'id-2', 'id-3'], $result);
}
public function testGetActivityIdsForSavedSearchReturnsEmptyWhenNoResults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->expects($this->once())->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEmpty($result);
}
public function testGetActivityIdsFiltersOutDateFilters(): void
{
$user = $this->makeUser();
$nonDateFilter = $this->makeFilter('owner_id', '123');
$startDateFilter = $this->makeFilter(ActivityActualDate::PARAM_START_DATE, '2025-01-01 00:00:00');
$endDateFilter = $this->makeFilter(ActivityActualDate::PARAM_END_DATE, '2025-01-31 23:59:59');
$updatedFromFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_FROM, '2025-01-01 00:00:00');
$updatedToFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_TO, '2025-01-31 23:59:59');
$savedSearch = $this->makeSavedSearch([
$nonDateFilter,
$startDateFilter,
$endDateFilter,
$updatedFromFilter,
$updatedToFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
}
public function testGetActivityIdsFiltersOutClosingPeriodDateFilters(): void
{
$user = $this->makeUser();
$closingStartFilter = $this->makeFilter(ClosingPeriodFilter::KEY_START_DATE, '2025-01-01');
$closingEndFilter = $this->makeFilter(ClosingPeriodFilter::KEY_END_DATE, '2025-03-31');
$regularFilter = $this->makeFilter('rep_id', '99');
$savedSearch = $this->makeSavedSearch([
$closingStartFilter,
$closingEndFilter,
$regularFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesArrayFilters(): void
{
$user = $this->makeUser();
$filter1 = $this->makeFilter('outcome', 'positive');
$filter2 = $this->makeFilter('outcome', 'negative');
$savedSearch = $this->makeSavedSearch([$filter1, $filter2]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn(['outcome']);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesScalarFilters(): void
{
$user = $this->makeUser();
$filter = $this->makeFilter('direction', 'inbound');
$savedSearch = $this->makeSavedSearch([$filter]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-5']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-5'], $result);
}
public function testGetActivityIdsPassesNonZeroSequenceNumberToDisableFirstRequestDefaults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
$this->assertFalse($capturedCriteria->isFirstRequest());
}
public function testGetActivityIdsLogsWithCorrectContext(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['a', 'b']);
$this->logger->expects($this->once())
->method('info')
->with(
'[AskJiminnyReport] Fetched activity IDs for saved search',
$this->callback(fn ($context) => $context['saved_search_id'] === 42
&& $context['user_id'] === 1
&& $context['activity_count'] === 2)
);
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
15
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where('automated_reports.team_id', $user->getTeamId())
->whereJsonContains('automated_reports.recipients->users', $user->getId())
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityServiceTest.ph faVsco.js – AskJiminnyReportActivityServiceTest.php...
|
NULL
|
10970
|
|
10971
|
PhpStormFileFditViewNavigateCodelaraveRetactonTool PhpStormFileFditViewNavigateCodelaraveRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.phpD Unit_ ActionsComponentConfigurationM ConsoleM ContractsM7 DomainD DTO• Enums_ Events_ Exceptions→ fixtures_ HelpersD Http>_Integrations> Minteractions• D Jobs> M Activitv> M AiAutomation>_ Audiov _ AutomatedReportsAulomaleakeporissendcommand.ongC AddLayoutEntities.phpC Team.phpC) AutomatedReportsRepository.php X© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?rovidernstalled-vent.onoC ActivityLogged.phpC RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsrepos1tory©) CreateResultsTest.pl(C) RequestGenerateAs'© RequestGenerateRerC SendReportJobTest.(ch SendRenortMailJobTcallendar!1CrmDeaksksM Mailbox_ Streaming→ Team_ TelephonyD User(c) ImportRecallAlRecordins(c) SqsVisibilityControlTest→I Listeners→]Mal> MModelsM Notifications› M ObserversPoliciesProvidersRepositories> D Rules• _ Services_ Activity_ ActivityProvidersI IAvatarcallendarConference! CinmiM InternallKioskv _ AutomatedReports©) ActivityTypeServi(c) AskJiminnyRepor(c) AskJiminnyRepor(c AutomatedRenorA15 V4 ^* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...* Find an automated report by UUID*dparam string suuld* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReport118 M >return AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:157 Y185 M >Tusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReport206 >if (is numeric(sidorluid)) "225 D226227return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.250LOJ232- 233* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by", 'created_at'. 239* @param string $sortDirection The sort direction. Allowed values:"asc, "desc". veraults to "0ex236* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created at',string SsortDirection = 'desc': Collection 1...*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dparam usersuserIne user wnose reporus to retrieve.242124512441245246247248249250_251252 0 >274*oparan scring esortho lunnIne cocumn co sorc oy. Accowed values. creaced_oy, creaced_ar". 275)* Oparam string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'dez* dreturn Collection<AutomatedReport>14 usagesWinasur ch00 2.12.21: A new version is avallable. View chancelod loday 10:33.= custom.lo9= laravel.logL SF (iminny@localhostHs local liminnyalocalnostconsole PRODL console (EUl¿ consoe STAGINGI© AskJiminnyReportActivityService.php© AskJiminnyReportActivityServiceTest.php XC) RequestGenerateAskJiminnyReportJobTest.phpclass AskuLminnyкeporcActIviLyservicelest extenas lescuase290>procecced tunccion secupl: voldt...s11 usagesprivate function makeFilter(string $key, ?string $value): SearchFil1o usagesprivate function makeUserO: User&MockObject...8 usagesprivate function makesavedsearch(array sfilters): SearchxMock0bjectpublic function testGetActivityldsForsavedsearchReturnsuds(): vo1dtpubLic tunction tescbecAculvityLasrorsavedsearchkecurnsemptywnennokououc Tuncmion testcerAcewrosruersuurvatertuerstur voglonrapublic function testGetActivityldsFilters0utClosingPeriodDateFiltenpublic function testGetActivityldsHandlesArrayFiltersO: void.public function testGetActiv1tyldsHandlesscalarr1lters: vo1di...fo ae runecion, testoelactava y easressesnonderoseavencen men louasaesuser = schis->makeuseru;SsavedSearch = Sthis->nakeSavedSearchdiD:$filterSet = Sthis->createMock( originalClassName: FilterDefinitionCsthis->activitySearch->method( constraint:getArrayFilterKeys )->nscapturedcriteria = nului$this->activitySearch->expects ($this->onceO)getonDemandPagerilterset")->willReturnCallback(function (Criteria $criteria) use ($fiSthis-›elasticRepository->methodd constraint: "onDemandSearchIdsOnlSthis->loggen->methodc constraint: "info'):sthis-›service->getActivityldsForSavedSearch($savedSearch. suse.sthis->assertNotNull(ScapturedCriteria):sthis->assertralse(scapturedCriter1a->1sF1rstRequestOJhpubLic tunction tescbecAculvitylasLogswichcorrectconcextl: voldt..1 eailAcceot rlle do+X Reject File 4 %@+ 2 of 2 files →, 0labl: Support Daily • in 2 h 54 m100% |45]Tue 14 Apr 12:06:15RequestGenerateAskJiminnyReportJobTestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny F+D ..nd.php#L211 and add validation with logs inside@AutomatedReportsCommand. php#L209-213Let me read the current state of the command file first.kead Automareakeporscommand.ongIcan see the user's approach - processsing LeReport already exists trom my earlier work but getReportByld iswhat's being used in processReports.Ineed to implement getReportById properly with validation + logs, and addthe reposilory method. Let me also check the Illuminate Support collection impon situation:Searched use Illuminate (Support Collection in app/Console/Commands/Reports/AutomatedReportsCommand.ph.Now implement both changes - the repository method and the getReportByld method with proper validation:trror while editing automacedkeportscommand. pnpPoad AutomatedReoorscommana.ong /The file is now only 140 lines - the user removed the processSingleReport/warnIfNotApplicableForSchedulemetnoas. Now "l implement oot changes:AutomatedReportsCommand.php+57 -1Now add findByldorUuid to the repository:• AutomatedReportsRepository.phpAlso fix the import order Collection should be before the models alphabetically):• AutomatedReportsCommand.php+1 -1• AutomatedReportsCommand.php+1-1Done. summary or changes:AutomatedReportsRepository::findByld0rUuid() (AutomatedReportsRepository-php:47-54):• Numeric string → find() by int ID• Non-numeric → UUID lookup via toOptimized()• Both use withTrashed() so soft-deleted reports are findable manuallygetReportById() (AutomatedReportsCommand.php:135-194) - checks all conditions that getActiveReportsByFrequency entorces, loceine a warnine to the loe channel ane orintne a warn lo the terminal tor eaeh violation,out stlll returns the revort so orocessina continuesCheckBehaviour on failNot toundwarnino loo + terminal warn. returns emory collection skios processino))nactive statuswarning log + terminal warn, continuesTeam not activewarnind llod + terminal warn. continuesExoiredwarning log + terminal warn, continuesrrecuency woulentrun toodyinfo log + terminal warn, continueswGAl mAsk anything (&+L)+ < CodeClaude Sennet 4.6winasun leamsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10971
|
|
10972
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\FilterDefinitionCollection;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\Activity\SearchFilter;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityServiceTest extends TestCase
{
private ActivitySearch&MockObject $activitySearch;
private ElasticActivityRepository&MockObject $elasticRepository;
private LoggerInterface&MockObject $logger;
private AskJiminnyReportActivityService $service;
protected function setUp(): void
{
$this->activitySearch = $this->createMock(ActivitySearch::class);
$this->elasticRepository = $this->createMock(ElasticActivityRepository::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->service = new AskJiminnyReportActivityService(
$this->activitySearch,
$this->elasticRepository,
$this->logger,
);
}
private function makeFilter(string $key, ?string $value): SearchFilter&MockObject
{
$filter = $this->createMock(SearchFilter::class);
$filter->method('getFilterProperty')->willReturn($key);
$filter->method('getFilterValue')->willReturn($value);
return $filter;
}
private function makeUser(): User&MockObject
{
$tz = new \DateTimeZone('UTC');
$user = $this->createMock(User::class);
$user->method('getTimezone')->willReturn($tz);
$user->method('getId')->willReturn(1);
$user->method('getUuid')->willReturn('user-uuid');
return $user;
}
private function makeSavedSearch(array $filters): Search&MockObject
{
$savedSearch = $this->createMock(Search::class);
$savedSearch->method('getId')->willReturn(42);
$savedSearch->method('getFilters')->willReturn(new \Illuminate\Support\LazyCollection($filters));
return $savedSearch;
}
public function testGetActivityIdsForSavedSearchReturnsIds(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->expects($this->once())
->method('getArrayFilterKeys')
->with($user)
->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->expects($this->once())
->method('onDemandSearchIdsOnly')
->willReturn(['id-1', 'id-2', 'id-3']);
$this->logger->expects($this->once())
->method('info')
->with('[AskJiminnyReport] Fetched activity IDs for saved search');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1', 'id-2', 'id-3'], $result);
}
public function testGetActivityIdsForSavedSearchReturnsEmptyWhenNoResults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->expects($this->once())->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEmpty($result);
}
public function testGetActivityIdsFiltersOutDateFilters(): void
{
$user = $this->makeUser();
$nonDateFilter = $this->makeFilter('owner_id', '123');
$startDateFilter = $this->makeFilter(ActivityActualDate::PARAM_START_DATE, '2025-01-01 00:00:00');
$endDateFilter = $this->makeFilter(ActivityActualDate::PARAM_END_DATE, '2025-01-31 23:59:59');
$updatedFromFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_FROM, '2025-01-01 00:00:00');
$updatedToFilter = $this->makeFilter(ActivityUpdatedDate::PARAM_UPDATED_TO, '2025-01-31 23:59:59');
$savedSearch = $this->makeSavedSearch([
$nonDateFilter,
$startDateFilter,
$endDateFilter,
$updatedFromFilter,
$updatedToFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
}
public function testGetActivityIdsFiltersOutClosingPeriodDateFilters(): void
{
$user = $this->makeUser();
$closingStartFilter = $this->makeFilter(ClosingPeriodFilter::KEY_START_DATE, '2025-01-01');
$closingEndFilter = $this->makeFilter(ClosingPeriodFilter::KEY_END_DATE, '2025-03-31');
$regularFilter = $this->makeFilter('rep_id', '99');
$savedSearch = $this->makeSavedSearch([
$closingStartFilter,
$closingEndFilter,
$regularFilter,
]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesArrayFilters(): void
{
$user = $this->makeUser();
$filter1 = $this->makeFilter('outcome', 'positive');
$filter2 = $this->makeFilter('outcome', 'negative');
$savedSearch = $this->makeSavedSearch([$filter1, $filter2]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn(['outcome']);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-1']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-1'], $result);
}
public function testGetActivityIdsHandlesScalarFilters(): void
{
$user = $this->makeUser();
$filter = $this->makeFilter('direction', 'inbound');
$savedSearch = $this->makeSavedSearch([$filter]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['id-5']);
$this->logger->method('info');
$result = $this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertEquals(['id-5'], $result);
}
public function testGetActivityIdsPassesNonZeroSequenceNumberToDisableFirstRequestDefaults(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$capturedCriteria = null;
$this->activitySearch->expects($this->once())
->method('getOnDemandPageFilterSet')
->willReturnCallback(function (Criteria $criteria) use ($filterSet, &$capturedCriteria) {
$capturedCriteria = $criteria;
return $filterSet;
});
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn([]);
$this->logger->method('info');
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
$this->assertNotNull($capturedCriteria);
$this->assertFalse($capturedCriteria->isFirstRequest());
}
public function testGetActivityIdsLogsWithCorrectContext(): void
{
$user = $this->makeUser();
$savedSearch = $this->makeSavedSearch([]);
$filterSet = $this->createMock(FilterDefinitionCollection::class);
$this->activitySearch->method('getArrayFilterKeys')->willReturn([]);
$this->activitySearch->method('getOnDemandPageFilterSet')->willReturn($filterSet);
$this->elasticRepository->method('onDemandSearchIdsOnly')->willReturn(['a', 'b']);
$this->logger->expects($this->once())
->method('info')
->with(
'[AskJiminnyReport] Fetched activity IDs for saved search',
$this->callback(fn ($context) => $context['saved_search_id'] === 42
&& $context['user_id'] === 1
&& $context['activity_count'] === 2)
);
$this->service->getActivityIdsForSavedSearch($savedSearch, $user);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
15
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where('automated_reports.team_id', $user->getTeamId())
->whereJsonContains('automated_reports.recipients->users', $user->getId())
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityServiceTest.ph faVsco.js – AskJiminnyReportActivityServiceTest.php...
|
NULL
|
10972
|
|
10973
|
PhpStormFileFditViewNavigateCodelaraveRetactonTool PhpStormFileFditViewNavigateCodelaraveRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.phpD Unit_ ActionsComponentConfigurationM ConsoleM ContractsM7 DomainD DTO• Enums_ Events_ Exceptions→ fixtures_ HelpersD Http>_Integrations> Minteractions• D Jobs> M Activitv> M AiAutomation>_ Audiov _ AutomatedReportsAulomaleakeporissendcommand.ongC AddLayoutEntities.phpC Team.phpC) AutomatedReportsRepository.php X© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?rovidernstalled-vent.onoC ActivityLogged.phpC RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsrepos1tory©) CreateResultsTest.pl(C) RequestGenerateAs'© RequestGenerateRerC SendReportJobTest.(ch SendRenortMailJobTcallendar!1CrmDeaksksM Mailbox_ Streaming→ Team_ TelephonyD User(c) ImportRecallAlRecordins(c) SqsVisibilityControlTest→I Listeners→]Mal> MModelsM Notifications› M ObserversPoliciesProvidersRepositories> D Rules• _ Services_ Activity_ ActivityProvidersI IAvatarcallendarConference! CinmiM InternallKioskv _ AutomatedReports©) ActivityTypeServi(c) AskJiminnyRepor(c) AskJiminnyRepor(c AutomatedRenorA15 V4 ^* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...* Find an automated report by UUID* dparam string suuld* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReport118 M >return AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:157 Y185 MTusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReport206 >if (is numeric(sidorluid)) "225 D226227return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.250LOJ232- 233* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by", 'created_at'. 239* @param string $sortDirection The sort direction. Allowed values:"asc, "desc". veraults to "0ex236* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created at',string SsortDirection = 'desc': Collection 1...*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dparam usersuserIne user wnose reporus to retrieve.2421243144245240247248249250_251252 0 >274*oparan scring esortho lunnIne cocumn co sorc oy. Accowed values. creaced_oy, creaced_ar". 275)* Oparam string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'dez* dreturn Collection<AutomatedReport>14 usagesWinasur ch00 2.12.21: A new version is avallable. View chancelod loday 10:33.= custom.lo9= laravel.logL SF (iminny@localhostHs local liminnyalocalnostconsole PRODL console (EUl¿ consoe STAGINGI© AskJiminnyReportActivityService.php© AskJiminnyReportActivityServiceTest.php XC) RequestGenerateAskJiminnyReportJobTest.phpclass AskuLminnyкeporcActIviLyservicelest extenas lescuase290>procecced tunccion secupl: voldt...s11 usagesprivate function makeFilter(string $key, ?string $value): SearchFil1o usagesprivate function makeUserO: User&MockObject...8 usagesprivate function makesavedsearch(array sfilters): SearchxMock0bjectpublic function testGetActivityldsForsavedsearchReturnsuds(): vo1dtpubLic tunction tescbecAculvityLasrorsavedsearchkecurnsemptywnennokououc Tuncmion testcerAcewrosruersuurvatertuerstur voglonrapublic function testGetActivityldsFilters0utClosingPeriodDateFiltenpublic function testGetActivityldsHandlesArrayFiltersO: void.public function testGetActiv1tyldsHandlesscalarr1lters: vo1di...fo ae runecion, testoelactava y easressesnonderoseavencen men louasaesuser = schis->makeuseru;SsavedSearch = Sthis->nakeSavedSearchdiD:$filterSet = Sthis->createMock( originalClassName: FilterDefinitionCsthis->activitySearch->method( constraint:getArrayFilterKeys )->nscapturedcriteria = nului$this->activitySearch->expects ($this->onceO)iDemandPageF1lterset')->willReturnCallback(function (Criteria $criteria) use ($fiSthis-›elasticRepository->methodd constraint: "onDemandSearchIdsOnlSthis->loggen->methodc constraint: "info'):sthis-›service->getActivityldsForSavedSearch($savedSearch. suse.sthis->assertNotNull(ScapturedCriteria)isthis->assertralse(scapturedCriter1a->1sF1rstRequestOJhpubLic tunction tescbecAculvitylasLogswichcorrectconcextl: voldt..1 eailAcceot rlle do+X Reject File 4 %@+ 2 of 2 files →, 0labl: Support Daily • in 2 h 54 m100% |45]Tue 14 Apr 12:06:16RequestGenerateAskJiminnyReportJobTest vCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny F+D ..• php#L211 and add validation with logs inside@AutomatedReportsCommand. php#L209-213Let me read the current state of the command file first.kead Automareakeporscommand.ongIcan see the user's approach - processsing LeReport already exists trom my earlier work but getReportByld iswhat's being used in processReports.Ineed to implement getReportById properly with validation + logs, and addthe reposilory method. Let me also check the Illuminate Support collection impon situation:Searched use Illuminate (Support Collection in app/Console/Commands/Reports/AutomatedReportsCommand.ph.Now implement both changes - the repository method and the getReportByld method with proper validation:trror while editing automacedkeportscommand. pnpPoad AutomatedReoorscommana.ong /The file is now only 140 lines - the user removed the processSingleReport/warnIfNotApplicableForSchedulemetnoas. Now "l implement oot changes:AutomatedReportsCommand.php+57 -1Now add findByldorUuid to the repository:• AutomatedReportsRepository.phpAlso fix the import order Collection should be before the models alphabetically):• AutomatedReportsCommand.php+1 -1• AutomatedReportsCommand.php+1-1Done. summary or changes:AutomatedReportsRepository::findByld0rUuid() (AutomatedReportsRepository-php:47-54):• Numeric string → find() by int ID• Non-numeric → UUID lookup via toOptimized()• Both use withTrashed() so soft-deleted reports are findable manuallygetReportById() (AutomatedReportsCommand.php:135-194) - checks all conditions that getActiveReportsByFrequency entorces, loceine a warnine to the loe channel ane orintne a warn lo the terminal tor eaeh violation,out stlll returns the revort so orocessina continuesCheckBehaviour on failNot toundwarnino loo + terminal warn. returns emory collection skios processino))nactive statuswarning log + terminal warn, continuesTeam not activewarnind llod + terminal warn. continuesExoiredwarning log + terminal warn, continuesrrecuency woulentrun toodyinfo log + terminal warn, continuesGAl mAsk anything (&+L)+ < CodeClaude Sennet 4.6winasun leamsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10973
|
|
10974
|
PhpStormFileFditViewNavigateCodelaraveRetactonTool PhpStormFileFditViewNavigateCodelaraveRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.phpD Unit_ ActionsComponentConfigurationM ConsoleM ContractsM7 DomainD DTO• Enums_ Events_ Exceptions→ fixtures_ HelpersD Http>_Integrations> Minteractions• D Jobs> M Activitv> M AiAutomation>_ Audiov _ AutomatedReportsAulomaleakeporissendcommand.ongC AddLayoutEntities.phpC Team.phpC) AutomatedReportsRepository.php X© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?rovidernstalled-vent.onoC ActivityLogged.phpC RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsrepos1tory©) CreateResultsTest.pl(C) RequestGenerateAs'© RequestGenerateRerC SendReportJobTest.(ch SendRenortMailJobTcallendar!1CrmDeaksksM Mailbox_ Streaming→ Team_ TelephonyD User(c) ImportRecallAlRecordins(c) SqsVisibilityControlTest→I Listeners→]Mal> MModelsM Notifications› M ObserversPoliciesProvidersRepositories> D Rules• _ Services_ Activity_ ActivityProvidersI IAvatarcallendarConference! CinmiM InternallKioskv _ AutomatedReports©) ActivityTypeServi(c) AskJiminnyRepor(c) AskJiminnyRepor(c AutomatedRenorA15 V4 ^* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...* Find an automated report by UUID*dparam string suuld* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReport118 M >return AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:157 Y185 MTusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReport206 >if (is numeric(sidorluid)) "225 D226227return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.250LOJ232- 233* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by', 'created_at'. 235* @param string $sortDirection The sort direction. Allowed values:"asc, "desc". veraults to "0ex236* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created at',string SsortDirection = 'desc': Collection 1...*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dparam usersuserIne user wnose reporus to retrieve.2421243144245240247248249250_251252 0 >274*oparan scring esortho lunnIne cocumn co sorc oy. Accowed vacues. created_oy, "creaced_ac". 275)* Oparam string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'dez* dreturn Collection<AutomatedReport>14 usagesWinasun ch00 2.12.21: A new version is avallable." View Chancelod loday 10:33.= custom.lo9= laravel.logL SF (iminny@localhostHs local liminnyalocalnostconsole PRODL console [EUl& consoe STAGING© AskJiminnyReportActivityService.php© AskJiminnyReportActivityServiceTest.php XC) RequestGenerateAskJiminnyReportJobTest.phpclass AskuLminnyкeporcActIviLyservicelest extenas lesclase29@>procecced tunccion secupl: voldt...s11 usagesprivate function makeFilter(string $key, ?string $value): SearchFilto usagesprivate function makeUserO: User&MockObject...8 usagesprivate function makesavedsearch(array sfilters): SearchxMock0bjectpublic function testGetActivityldsrorSavedSearchReturnsids(: vo1dpubLic tunction tescbecAculvityLasrorsavedsearchkecurnsemptywnennokpublic function testGetActivitvIdsFiltersOutDateFilters@: void...public function testGetActivityldsFilters0utClosingPeriodDateFiltenpublic function testGetActivityldsHandlesArrayFiltersO: void..public function testGetActiv1tyldsHandlesscalarr1lters: vo1di...fo ae runecion, testoelactava y easressesnonderoseavencen men louasaesuser = schis->makeuseru;SsavedSearch = Sthis->makeSavedSearchdiD:$filterSet = Sthis->createMock( originalClassName: FilterDefinitionCsthis->activitySearch->method( constraint:getArrayFilterKeys )->uscapturedcriteria = nului$this->activitySearch->expects ($this->onceO)iDemandPageF1lterset')->willReturnCallback(function (Criteria $criteria) use ($filSthis-›elasticRepository->methodd constraint: "onDemandSearchIdsOnlSthis->logger->method constraint: "info'):sthis-›service->getActivityldsForSavedSearch($savedSearch. suse.sthis->assertNotNull(ScapturedCriteria)isthis->assertralse(scapturedCr1ter1a->1sF1rstRequest0J:pubLic tunction testbetactivity-asLogswchcorrectcontexto: volar.1 eailAcceot rlle do+X Reject File 4 %@+ 2 of 2 files →, 0lablSupport Daily • in 2 h 54m100% |45]Tue 14 Apr 12:06:18RequestGenerateAsk.liminnvRenort.lob TestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny F+0 .Now nave tne root cause. Letme look al sequence nunber Tier soecitically.searcneo seduence numoer secuencenumoer ano venormeo z other ouerles»Now l have the key insight. Let me check what sequence_number does in the context of isFirstRequest() :Inis is tne root cause. Let me check AcClvityActualDace in celall.Now I see the full picture. Let me also check ActivityDurationRange and ActivityRecorded detaults for isFirstRequestRead ActivityDurationRange.php and ActivityRecorded.phpNow |have the comolete root cause picture. This is critica.koor cause rounoThe bur dRequestPanarch method in AskJiminnyReportActivityService passes sequence_number=0implcitiy not in params, whieh means 1srir Stkequest rerums true.When sequence_number Is notin requestparams, the criteria:: createrromkequest deraultsitto o, and isrirstRequest() returns true when empty |l sequenceNumber == 0.Ine trontend UkL has sequence number=4 — meaning il's not a tirst reouest. Ine service doesh't ser it, so thecriteria thinks it's a first request.When isFirstRequest() = true, these implicit filters are applied that aren't in the saved search:1. ActivityDurationRange — applies min duration = 1 (INITIAL_MIN) - filters out 0-second calls2. ActivityRecorded - applies only recorded = 1 (DEFAULT VALUE = OPTION RECORDED) - filters torecorded-only3. OrganiserGroupIn - applies user's default group filterBut the trontend with sequence_number=4 skips all of these defaults, so it returns more results.The fix should be in buildRequestParamsFromSearch - it needs to pass sequence number in the built params tosignal "not a tirst recuest" so the implicit derauls con t apoly. or alternatively, always pass a non-zero sequence number in the merge in getActivityldsForSavedSearch.Now let me verify my understanding of isFirstRequest :Read Criteria.phpContirmed. The fix is clear and minimal. The getActivityldsForSavedSearch method needs to pass sequence_number with a non-zero value so tnat 1srirstkequestl returns Talse ane no impllclt deraults are appllea.• Ask.JNow let me check iT there's an existine lestror AskJ1minnykeportaccivicyservice lo uodare:ExploredAskJiminnvReoortActivtvServicelest.onv and searched.Ask.iminnvReoortActivitvI need to add a test that verifies sequence number=1 is passed to Criteria (so isFirstRequest() hiturns false).Letme ade lulo tne existine lesttlle.• AskJ.Now let's run the test to veriry:aocker execinnyReportActivityServiceTest.php --no-Could not open input file: /var/www/html/artisanCommand dockeno dests/nxe/sdrvkces/K105k/Automate/aeports/A5kJiminnyReportActivityserviceTest.php -no-2 files +28-1%Reject allAccent allAsk anything (&+L)+ & CodeClaude Sonnet 4.6winasun leamsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10974
|
|
10975
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aalal]Support Daily - in 2h 54 m100% <47Tue 14 Apr 12:06:208Today ~...
|
NULL
|
NULL
|
NULL
|
10975
|
|
10976
|
PhpStormFileFditViewNavigateCodelaraveRetactonTool PhpStormFileFditViewNavigateCodelaraveRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.phpD Unit_ ActionsComponentConfigurationM ConsoleM ContractsM7 DomainD DTO• Enums_Events_ Exceptions→ fixtures_ HelpersD Http>_Integrations> Minteractions• D Jobs> M Activitv> M AiAutomation>_ Audiov _ AutomatedReportsAulomaleakeporissendcommand.ongC AddLayoutEntities.phpC Team.phpC) AutomatedReportsRepository.php X© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?rovidernstalled-vent.onoC ActivityLogged.phpC RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsrepos1tory©) CreateResultsTest.pl(C) RequestGenerateAs'© RequestGenerateRerC SendReportJobTest.(ch SendRenortMailJobTcallendar!1CrmDeaksksM Mailbox_ Streaming→ Team_ TelephonyD User(c) ImportRecallAlRecordins(c) SqsVisibilityControlTest→I Listeners→]Mal> MModelsM Notifications› M ObserversPoliciesProvidersRepositories> D Rules• _ Services_ Activity_ ActivityProvidersI IAvatarcallendarConference! CinmiM InternallKioskv _ AutomatedReports©) ActivityTypeServi(c) AskJiminnyRepor(c) AskJiminnyRepor(c) AutomatedRenonA15 V4 ^* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...* Find an automated report by UUID* dparam string suuld* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReport118 M >return AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:157 Y185 MTusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReport206 >if (is numeric(sidorluid)) "225 D226227return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.250LOJ232- 233* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by', 'created_at'. 235* @param string $sortDirection The sort direction. Allowed values:"asc, "desc". veraults to "0ex236* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created at',string SsortDirection = 'desc'): Collection i...r*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dparam usersuserIne user wnose reporus to retrieve.2421243144245240247248249250_251252 0 >274*oparan scring esorceocunnIne cocumn co sorc oy. Accowed vacues. created_oy, "creaced_ac". 275)* Oparam string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'dez* dreturn Collection<AutomatedReport>14 usagesWinasur ch00 2.12.21: A new version is avallable. View chancelod loday 10:33.= custom.lo9= laravel.logL SF (iminny@localhostHs local liminnyalocalnostconsole PRODL console (EUl& consoe STAGING© AskJiminnyReportActivityService.php© AskJiminnyReportActivityServiceTest.php XC) RequestGenerateAskJiminnyReportJobTest.phpclass AskuLminnyкeporcActIviLyservicelest extenas lescuase290>procecced tunccion secupl: voldt...s11 usagesprivate function makeFilter(string $key, ?string $value): SearchFil1o usagesprivate function makeUserO: User&MockObject...8 usagesprivate function makesavedsearch(array sfilters): SearchxMock0bjectpublic function testGetActivityldsrorSavedSearchReturnsids(: vo1dpubLic tunction tescbecAculvityLasrorsavedsearchkecurnsemptywnennokououc Tuncmion testceracewvosruersuurvatertuersur voglog ...ipublic function testGetActivityldsFilters0utClosingPeriodDateFiltenpublic function testGetActivityldsHandlesArrayFiltersO: void..public function testGetActiv1tyldsHandlesscalarr1lters: vo1di...fo ae runecion, testoelactava y easressesnonderoseavencen men louasaesuser = schis->makeuseru;SsavedSearch = Sthis->makeSavedSearchdiD:$filterSet = Sthis->createMock( originalClassName: FilterDefinitionCsthis->activitySearch->method( constraint:getArrayFilterKeys )->uscapturedcriteria = nului$this->activitySearch->expects ($this->onceO)DemandPageFilterSet')->willReturnCallback(function (Criteria $criteria) use ($filSthis-›elasticRepository->methodd constraint: "onDemandSearchIdsOnlSthis->loggen->methodc constraint: "info'):sthis-›service->getActivityldsForSavedSearch($savedSearch. suse.sthis->assertNotNull(ScapturedCriteria)isthis->assertralse(scapturedCr1ter1a->1sF1rstRequest0J:pubLic tunction tescbecAculvitylasLogswichcorrectconcextl: vold.1 eailAcceot rlle do+X Reject File 4 %@+ 2 of 2 files →, 0lablSupport Daily • in 2 h 54m100% |45]Tue 14 Apr 12:06:20RequestGenerateAsk.liminnvRenort.lob TestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny F+D ..Now see tne Tul o clure, Lerme also check Activitvlurat ionkande ano Actwvitvkecorded ceauis or 1sFirstRequeseureReao Acuviyburauonkance ono ano Acrivivrecorcec.onoNow Inave tne comolere roo, cause o cture. nis s crucarRoot Cause Foundne oua lokequestraramsrromsearch mernocin Ask aminnvredortActvl vservice vasses sequence number=implicitly (not in params), which means isFirstRequest() returns true.When sequence number Is notin requestParams, the criteria:: createrromkequest delaulsitlo o, and 1sr1rstRequest() returns true when empty sequenceNumber == 0.The frontend URL has sequence number=4 - meaning it's not a first request. The service doesn't set it, so thecriera thinks iu's atrstrecuestWhen isFirstRequest() = true, these implicit filters are applied that aren't in the saved search:1. Activityburationkange — applies min_duration = 1 (INITIAL_MIN) - tllters out J-second calls2. ActivityRecorded - applies only recorded = 1 (DEFAULT VALUE = OPTION RECORDED) - filters torecorded-ohly3. OrganiserGroupln - applies user's detault group filterbut the Trontend With sequence number=4 sklos all or these derauls, so it returns more resuits.The fix should be in bui ldRequestParamsFromsearch - it needs to pass sequence_number in the built params tosignal "not a first request", so the implicit defaults don't apply. Or alternatively, always pass a non-zero sequence number In tne merce in derAcuivlivlostorsaveNow let me verify my understanding of isFirstRequest :reac criera,onoConirmeo, Ine rixis cear ano minimar Une oetActivlvlosrorsavedsearch menoo neeos o oass sequence nurber with a non-zero value so that isFirstRequest() returns false and no implicit defaults are applied.• Ask.Now let me check if there's an existing test for AskJiminnyReportActivityService to update:Explored AskJiminnyReportActivityServiceTest.php and searched AskJiminnyReportActivity*I need to add a test that verifies sequence_number=1 is passed to Criteria (so isFirstRequest() returns false).Let me add it to the existing test file:• AskJ.LACIIVILyoervicelestongNow ler's tun tne lestto verity.aocker Lame/var/www/html/artisan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php --no-covelayeCould not open input file: /var/www/html/artisanCommand dockenO cocker exedcoverrageoocker lano i ono aoparusan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.pho --no-Run &+ Skip2 files +28 -1 >Reject allAccept allAsk anything (&+L)+ ‹> CodeClaude Sennet 4.6winasun leamsuir-oia 4 spacesw...
|
NULL
|
NULL
|
NULL
|
10976
|
|
10977
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aalal]Support Daily - in 2h 54 m100% <47Tue 14 Apr 12:06:228Today ~...
|
NULL
|
NULL
|
NULL
|
10977
|
|
10978
|
PhpStormFileFditViewNavigateCodelaraveRetactonTool PhpStormFileFditViewNavigateCodelaraveRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.phpD Unit_ ActionsComponentConfigurationM ConsoleM ContractsM7 DomainD DTO• Enums_ Events_ Exceptions→ fixtures_ HelpersD Http>_Integrations> Minteractions• D Jobs> M Activitv> M AiAutomation>_ Audiov _ AutomatedReportsAulomaleakeporissendcommand.ongC AddLayoutEntities.phpC Team.phpC) AutomatedReportsRepository.php X© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?rovidernstalled-vent.onoC ActivityLogged.phpC RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsrepos1tory©) CreateResultsTest.pl(C) RequestGenerateAs'© RequestGenerateRerC SendReportJobTest.(ch SendRenortMailJobTcallendar!1CrmDeaksksM Mailbox_ Streaming→ Team_ TelephonyD User(c) ImportRecallAlRecordins(c) SqsVisibilityControlTest→I Listeners> MModelsM Notifications› M ObserversPoliciesProvidersRepositories> D Rules• _ Services_ Activity_ ActivityProvidersI IAvatarcallendarConference! CinmiM InternallKioskv _ AutomatedReports©) ActivityTypeServi(c) AskJiminnyRepor(c) AskJiminnyRepor(c) AutomatedRenonA15 /4 л* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...* Find an automated report by UUID*dparam string suuld* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReport118 M >return AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:157 Y185 MTusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReport206 >if (is numeric(sidorluid)) "225 D226227return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.250LOJ232- 233* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by', 'created_at'. 235* @param string $sortDirection The sort direction. Allowed values:"asc, "desc". veraults to "0ex236* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created at',string SsortDirection = 'desc': Collection 1...*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dparam usersuserIne user wnose reporus to retrieve.2421243144245240247248249|250_251|252 0 >274*oparan scring esortho lunnIne cocumn co sorc oy. Accowed vacues. created_oy, "creaced_ac". 275)* Oparam string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'dez* dreturn Collection<AutomatedReport>14 usagesWinasun ch00 2.12.21: A new version is avallable." View Chancelod loday 10:33.= custom.lo9= laravel.logL SF (iminny@localhostHs local liminnyalocalnostconsole PRODL console [EUl¿ consoe STAGING© AskJiminnyReportActivityService.php© AskJiminnyReportActivityServiceTest.php XC) RequestGenerateAskJiminnyReportJobTest.phpclass AskuLminnyкeporcActIviLyservicelest extenas lesclase290>procecced tunccion secupl: voldt...s11 usagesprivate function makeFilter(string $key, ?string $value): SearchFil1o usagesprivate function makeUserO: User&MockObject...8 usagesprivate function makesavedsearch(array sfilters): SearchxMock0bjectpublic function testGetActivityldsForsavedsearchReturnsuds(): vo1dtpubLic tunction tescbecAculvityLasrorsavedsearchkecurnsemptywnennokououc Tuncmion testcerAcewrosruersuurvatertuerstur voglonearipublic function testGetActivityldsFilters0utClosingPeriodDateFiltenpublic function testGetActivityldsHandlesArrayFiltersO: void..public function testGetActiv1tyldsHandlesscalarr1lters: vo1di...fo ae runecion, testoelactava y easressesnonderoseavencen men louasaesuser = schis->makeuseru;SsavedSearch = Sthis->nakeSavedSearchdiD:$filterSet = Sthis->createMock( originalClassName: FilterDefinitionCsthis->activitySearch->method( constraint:getArrayFilterKeys )->uscapturedcriteria = nului$this->activitySearch->expects ($this->onceO)DemandPageFilterSet')->willReturnCallback(function (Criteria $criteria) use ($fiSthis-›elasticRepository->methodd constraint: "onDemandSearchIdsOnlSthis->logger->method constraint: "info'):sthis-›service->getActivityldsForSavedSearch($savedSearch. suse.sthis->assertNotNull(ScapturedCriteria)isthis->assertralse(scapturedCr1ter1a->1sF1rstRequest0J:pubLic tunction testbetactivitytasLogswichcorrectcontexto: volar.1 eailAcceot rlle do+X Reject File 4 %@+ 2 of 2 files →, 0lablSupport Daily • in 2 h 54m100% |45]Tue 14 Apr 12:06:22RequestGenerateAsk.liminnvRenort.lob TestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny F+D ..Now see tne Tul o clure, Lerme also check Activitvlurat ionkande ano Actwvitvkecorded ceauis or 1sFirstRequeseuy.Reao Acuviyburauonkance ono ano Acrivivrecorcec.onoNow Inave tne comolere roo, cause o cture. nis s crucarRoot Cause Foundne oua lokequestraramsrromsearch mernocin Ask aminnvredortActvl vservice vasses sequence number=implicitly (not in params), which means isFirstRequest() returns true.When sequence number Is notin requestParams, the criteria:: createrromkequest delaulsitlo o, and 1sr1rstRequest() returns true when empty sequenceNumber == 0The frontend URL has sequence number=4 - meaning it's not a first request. The service doesn't set it, so thecriera thinks iu's atrstrecuestWhen isFirstRequest() = true, these implicit filters are applied that aren't in the saved search:1. ActivityburationKange — applies min_duration = 1 (INITIAL_MIN) - tliters out J-second calls2. ActivityRecorded - applies only recorded = 1 (DEFAULT VALUE = OPTION RECORDED) - filters torecorded-ohly3. OrganiserGroupln - applies user's detault group filterbut the Trontend With sequence number=4 sklos all or these derauls, so it returns more resuits.The fix should be in bui ldRequestParamsFromsearch - it needs to pass sequence_number in the built params tosignal "not a first request", so the implicit defaults don't apply. Or alternatively, always pass a non-zero sequence number In tne merce in derAcuivlivlostorsaveNow let me verify my understanding of isFirstRequest :reac criera,onoConirmeo, Ine rixis cear ano minimar Une oetActivlvlosrorsavedsearch menoo neeos o oass sequence nurber with a non-zero value so that isFirstRequest() returns false and no implicit defaults are applied.• AskNow let me check if there's an existing test for AskJiminnyReportActivityService to update:Explored AskJiminnyReportActivityServiceTest.php and searched AskJiminnyReportActivity*need to add a test that verifies sequence number=1 IS passed to Criteria (so 1sFirstRequest( returns false )Let me add it to the existing test file:• AskJ.LACIIVILyoervicelestongNow ler's tun tne lestto verity.aocker Lame/var/www/html/artisan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php --no-covelayeCould not open input file: /var/www/html/artisanCommand dockeno cocker execoocker lano " ono aoparusan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php --no-coverrageRun &+ Skip2 files with changestests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyRep/ytActivityservicelest.phpann/Services/Kiosk/AutomatedRenorts/MAsk.liminnvRenortActivitvService.ohnt1View allReject allAccept allAsk anything (&+L)+ ‹> CodeClaude Sennet 4.6wwinasun leamsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10978
|
|
10979
|
PhpStormFileFditViewNavigateCodeLaravelRetactonToo PhpStormFileFditViewNavigateCodeLaravelRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject vv _ AutomatedReports(C) ActivityTypeService.(C AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsS© DealStagesService.p© Recipientsservice.pr@ Reportsort.php(e) Reporisonbirection.Kloskservice.php> M Mail_ MeetingGenerator> NotificationD 0Auth2RecallAl_ Security_ StrategyStreamingM TeamTelephonyM UserPilotM Webhook© AbstractService.php© ActivityProviderFactory.phC) ActivityService.phpC ApiResponseService.php(C) ConferenceService.php© InsightSeatService.php© InstantMeetingService.php© Intercomservice.php© IpapiClient.phpC) IpapiService.phpC) ParticioantShareService.phC PlanhatService.ohp(C) PlaybackService.php(C PlaybackVideoOnlyService(C) PlaybookCategoryService.lC PlaylistGeneratorinterface.(C) ResolveTeamCrmConnectiC SimpleThrottleService.php© slackservice.php© SocialAccountService.php© SoftPhoneService.phpC) TeamDeactivatedService.p© TeamOwnerService.php(C) TeamService.phpC) TranscodeParameterResolC UserService.phpC) Uuid.php› C Traits• → UseCases> D UserDUtils• I validation•IV0pnp nelpers.png(C InitialFrontendState.php(©) Jiminny.php(C) Plan.php(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.php© AutomatedReportsSendCommand.phpC AddLayoutEntities.phpC) Team.phpC) AutomatedReportsRepository.php X) AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?roviderinstalled-vent.onoC ActivityLogged.phpC RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsrepos1tory62A15 V4 ^-14* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...* Find an automated report by UUID*dparam string suuld* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReportreturn AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:Tusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReportif (is numeric(sidorluid)) "return Automacedkeport..tznal(1nt) s1auruu1a);return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by", 'created_at'. 46* dparam string SsortDirection The sort direction. Allowed values:"asc","desc". befaults to "des47* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created_at',string SsortDirection = 'desc': Collection 1...*** Recrieve aLL Ask Jaminny reporus created Dy the given user.—57* dparam usersuserIne user wnose reporus to retrieve.*oparan scring esortho lunnIne cocumn co sorc by. Accowed vacues. createa_by!creaced_ar".xoocran saino osorcutreccion lne sorc anreccion. Accoyeo vocues.'asc'.'desc'. Defaults to 'dex 6e* dreturn Collection<AutomatedReport>14 usagesWinasurt changelog 2.12.21: A new version is avallable. |/ View Changelog (today 10:33)= custom.log= laravel.logL SF (iminny@localhostHs local liminnyalocalnostconsole PRODL console [EUl¿ consoe STAGINGI© AskJiminnyReportActivityService.php x©) AskJiminnyReportActivityServiceTest.phpC) RequestGenerateAskJiminnyReportJobTest.phpuseJlninny Models Acclvity seareh,useJiminny Models User:use Jiminny Repositories ElasticActivityRepository:use Jiminny VO Repository OnDemandActivitySearch\Criteria;use Psr\Log Loggerinterface;class ASKJ1minnyReportAct1vityserviceonvare const nt UEFAULI UP ACILEES CUUN = 100private const arrav DATE FILTER KEYS =AccIvLcyAccuaLbace..PARAM_SIAKI_UAlE.ActivityActualDate:: PARAM END DATE.ActivityUpdatedDate::PARAM_UPDATED_FROMActivityUpdatedDate::PARAM_UPDATED_TO.ClosingPer1odF1lter::KEY_START_DATE,ClosingPer1odF1lter::KEY_END_DATE,pubuic tunction __conscructlprivace readonly Aculviltysearch saccivitysearch,privace readonty clascicactiviсукeposicory selasucкepository.private readonty Loggerincertace +logger,Df...r*** Fetch activity IDs for a saved search, passing 1ts filters as-1s* Date filters stored on the saved search are excluded; 1f no othen* no date constraint 1s applied - matching the behaviour of getcont.* Oreturn string[] Activity IDspublic function getActivitvIdsForSavedSearchdSearch SsavedSearch.User suser,D: arraySrequestParams = Sthis->buildRequestParamsFromSearchSsavedSearc.scriteria = criteria::createrromrequestlAcceptmarьa-SrequestParams. "'Timit' => self::DEFAULT TOP AC1array_mergelsrequestrarams, L'Limlu => seLt::UEFAULI_10P_ACnuser-poernezone$filterSet = Sthis-›activitySearch->qetOnDemandPageFilterSet(ScriSactivityIds = sthis->elasticRepository->onDemandSearchlds0nly(Ssth1s->Logger->1nfolLAskJ1minnyReport) Fetched activity IDs fon=> ssavedSearch->getid)."user_1d = suser->gecia).=> count(SactivitvIds).1):Accept rlle ao+X Reject File 40 38 @* 1 of 2 files →, 0lablSupport Daily • in 2 h 54m100% |45]Tue 14 Apr 12:06:25RequestGenerateAsk.liminnvRenort.lob TestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny FNow see tne Tul o clure, Lerme also check Activitvlurat ionkande ano Actwvitvkecorded ceauis or 1sFirstRequeseureReao Acuviyburauonkance ono ano Acrivivrecorcec.onoNow Inave tne comolere roo, cause o cture. nis s crucarKoot cause rounene oua lokequestraramsrromsearch mernocin Ask aminnvredortActvl vservice vasses sequence number=implicitly (not in params), which means isFirstRequest() returns true.When sequence number Is notin requestParams, the criteria:: createrromkequest delaulsitlo o, and 1sr1rstRequest() returns true when empty sequenceNumber == 0The frontend URL has sequence number=4 - meaning it's not a first request. The service doesn't set it, so thecriera thinks iu's atrstrecuestWhen isFirstRequest() = true, these implicit filters are applied that aren't in the saved search:1. Activityburationkange — applies min_duration = 1 (INITIAL_MIN) - Tllters out U-second calls2. ActivityRecorded - applies only recorded = 1 (DEFAULT VALUE = OPTION RECORDED) - filters torecorded-ohly3. OrganiserGroupln - applies user's detault group filterbut the Trontend With sequence number=4 sklos all or these derauls, so it returns more resuits.The fix should be in bui ldRequestParamsFromsearch - it needs to pass sequence_number in the built params tosignal "not a first request", so the implicit defaults don't apply. Or alternatively, always pass a non-zero sequence number In tne merce in derAcuivlivlostorsaveNow let me verify my understanding of isFirstRequest :reao criera,onoConirmeo, Ine rixis cear ano minimar Une oetActivlvlosrorsavedsearch menoo neeos o oass sequence nurber with a non-zero value so that isFirstRequest() returns false and no implicit defaults are applied.• Ask.Now let me check if there's an existing test for AskJiminnyReportActivityService to update:Explored AskJiminnyReportActivityServiceTest.php and searched AskJiminnyReportActivity*need to add a test that verifies sequence number=1 IS passed to Criteria (so 1sFirstRequest( returns false )Let me add it to the existing test file:• AskJ.LACIVILyoervicelestongNow ler's tun tne lestto verity.aосker Lamplpnp /var/www/ncml/drc1san lesytests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServicelest.php -=no-covelayeCould not open input file: /var/www/html/artisanCommand dockenO cocker exec vocker lano i ono aoparusan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php -=no-coverrageRun &+ Skip2 files with changestests/Unit/services/Klosk Automatedkenoris/AskJiminnvrenortActivivservicellest.onoView allapp/Services/Kiosk/AutomatedReports/D AskJiminnyReportActivityService.php +1 -1Reject allAccept allAsk anything (&+L)+ <> CodeClaude Sennet 4.6Wwinasur leamsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10979
|
|
10980
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aalal]Support Daily - in 2h 54 m100% <47Tue 14 Apr 12:06:348Today ~...
|
NULL
|
NULL
|
NULL
|
10980
|
|
10981
|
PhpStormFileFditViewNavigateCodeLaravelRetactonToo PhpStormFileFditViewNavigateCodeLaravelRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject vv _ AutomatedReports(C) ActivityTypeService.(C AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsS© DealStagesService.p© Recipientsservice.pr@ Reportsort.php(e) Reporisonbirection.Kloskservice.php> M Mail_ MeetingGenerator› NotificationD 0Auth2RecallAl_ Security_ StrategyStreamingM TeamTelephonyM UserPilotM Webhook© AbstractService.php© ActivityProviderFactory.phC) ActivityService.phpC ApiResponseService.php(C) ConferenceService.php© InsightSeatService.php© InstantMeetingService.php© Intercomservice.php© IpapiClient.phpC) IpapiService.phpC) ParticioantShareService.phC PlanhatService.ohp(C) PlaybackService.php(C PlaybackVideoOnlyService(C) PlaybookCategoryService.lC PlaylistGeneratorinterface.(C) ResolveTeamCrmConnectiC SimpleThrottleService.php© slackservice.php© SocialAccountService.php© SoftPhoneService.phpC) TeamDeactivatedService.p© TeamOwnerService.php(C) TeamService.phpC) TranscodeParameterResolC UserService.php© Uuid.php> C Traits• → UseCases> D UserDUtils• I validation•IV0pnp nelpers.png(C InitialFrontendState.php(©) Jiminny.php(C) Plan.php(©) ReportController.phpJiminnybeouecommana.ongAutomatedReportsCommand.php© AutomatedReportsSendCommand.phpC AddLayoutEntities.phpC) Team.phpC) AutomatedReportsRepository.php X) AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?rovidernstalled-vent.onoC ActivityLogged.phpC RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsrepos1tory62A15 V4 ^* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...* Find an automated report by UUID*dparam string suuld* drecurn Aurondredkeoorcnuupublic function findByUuid(string Suuid): ?AutomatedReportreturn AutomatedReport::where('uuid', AutomatedReport:: to0ptimized(Suuid))->firstO:Tusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReportif (is numeric(sidorluid)) "return Automacedkeport..tznal(1nt) s1auruu1a);return AutomatedReport::where('uvid', AutomatedReport::to0ptimized(Sid0rUuid))->firstO;* Retrieve all standard (non-Ask Jiminny) automated reports.* dparam string ssortcolumnThe column to sort by. Allowed values: 'created_by", 'created_at'. 46* dparam string SsortDirection The sort direction. Allowed values:"asc","desc". befaults to "des47* drerurn couuectonsaurondredredor*/12 usagespublic function getAllStandardReportsstring SsortColumn ="created_at',string SsortDirection = 'desc': Collection 1...*** Recrieve aLL Ask Jaminny reporus created Dy the given user.—57* dparam usersuserIne user wnose reporus to retrieve.*oparan scring esortho lunnIne cocumn co sorc oy. Accowed values. creacea_by!creaced_ar".xoocran saino osorcutreccion lne sorc anreccion. Accoyeo vocues.'asc'.'desc'. Defaults to 'dex 6e* dreturn Collection<AutomatedReport>14 usagesWinasurt changelog 2.12.21: A new version is avallable. |/ View Changelog (today 10:33)= custom.log= laravel.logL SF (iminny@localhostHs local liminnyalocalnostconsole PRODL console [EUl¿ consoe STAGINGI© AskJiminnyReportActivityService.php x©) AskJiminnyReportActivityServiceTest.phpC) RequestGenerateAskJiminnyReportJobTest.phpuseJlninny Models Acclvity seareh,useJiminny Models User:use Jiminny Repositories ElasticActivityRepository:-14use Jiminny VO Repository OnDemandActivitySearch\Criteria;use Psr\Log Loggerinterface;17!class ASkJ1minnyReportAct1v1tyServiceonvare const nt UEFAULI UP ACILEES CUUN = 100private const arrav DATE FILTER KEYS =AccIvLcyAccuaLbace..PARAM_SIAKI_UAlE.ActivityActualDate:: PARAM END DATE.ActivityUpdatedDate::PARAM_UPDATED_FROMActivityUpdatedDate::PARAM_UPDATED_TO.ClosingPer1odF1lter::KEY_START_DATE,ClosingPer1odF1lter::KEY_END_DATE,pubuic tunction __conscructlprivace readonly Aculviltysearch saccivitysearch,privace readonty clascicactiviсукeposicory selasucкepository.private readonty Loggerincertace +logger,Df...r*** Fetch activity IDs for a saved search, passing 1ts filters as-1s* Date filters stored on the saved search are excluded; 1f no othen* no date constraint 1s applied - matching the behaviour of getcont.* Oreturn string[] Activity IDspublic function getActivitvIdsForSavedSearchdSearch SsavedSearch.User suser,): array 1SrequestParams = Sthis->buildRequestParamsFromSearchSsavedSearc.scriteria = criteria::createrromrequestlAcceptmreet$requestParams, l'limit' => self::DEFAULT_TOP_AC1array_mergelsrequestrarams, L'Limlu => seLt::UEFAULI_10P_ACnuser-poernezone$filterSet = Sthis-›activitySearch->qetOnDemandPageFilterSet(ScriSactivityIds = sthis->elasticRepository->onDemandSearchlds0nly(Ssth1s->Logger->1nfolLAskJ1minnyReport) Fetched activity IDs fon=> ssavedSearch->getid)."user_1d = suser->gecia).=> count(SactivitvIds).1):Accept rlle ao+X Reject File 40 38 @* 1 of 2 files →, 0lablSupport Daily • in 2 h 54m100% |45]Tue 14 Apr 12:06:34RequestGenerateAsk.liminnvRenort.lob TestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny FNow see tne Tul o clure, Lerme also check Activitvlurat ionkande ano Actwvitvkecorded ceauis or 1sFirstRequeseureReao Acuviyburauonkance ono ano Acrivivrecorcec.onoNow Inave tne comolere roo, cause o cture. nis s crucarKoot cause rounene oua lokequestraramsrromsearch mernocin Ask aminnvredortActvl vservice vasses sequence number=implicitly (not in params), which means isFirstRequest() returns true.When sequence number Is notin requestParams, the criteria:: createrromkequest delaulsitlo o, and 1sr1rstRequest() returns true when empty sequenceNumber == 0.The frontend URL has sequence number=4 - meaning it's not a first request. The service doesn't set it, so thecriera thinks iu's atrstrecuestWhen isFirstRequest() = true, these implicit filters are applied that aren't in the saved search:1. Activityburationkange — applies min_duration = 1 (INITIAL_MIN) - Tllters out U-second calls2. ActivityRecorded - applies only recorded = 1 (DEFAULT VALUE = OPTION RECORDED) - filters torecorded-ohly3. OrganiserGroupln - applies user's detault group filterbut the Trontend With sequence number=4 sklos all or these derauls, so it returns more resuits.The fix should be in bui ldRequestParamsFromsearch - it needs to pass sequence_number in the built params tosignal "not a first request", so the implicit defaults don't apply. Or alternatively, always pass a non-zero sequence number In tne merce in derAcuivlivlostorsaveNow let me verify my understanding of isFirstRequest :reao criera,onoConirmeo, Ine rixis cear ano minimar Une oetActivlvlosrorsavedsearch menoo neeos o oass sequence nurber with a non-zero value so that isFirstRequest() returns false and no implicit defaults are applied.• Ask.Now let me check if there's an existing test for AskJiminnyReportActivityService to update:Explored AskJiminnyReportActivityServiceTest.php and searched AskJiminnyReportActivity*need to add a test that verifies sequence number=1 IS passed to Criteria (so 1sFirstRequest( returns false )Let me add it to the existing test file:• AskJ.LACIVILyoervicelestongNow ler's tun tne lestto verity.aосker Lamplpnp /var/www/ncml/drc1san lesytests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServicelest.php -=no-covelayeCould not open input file: /var/www/html/artisanCommand dockenO cocker exec vocker lano i ono aoparusan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php -=no-coverrageRun &+ Skip2 files with changestests/Unit/services/Klosk Automatedkenoris/AskJiminnvrenortActivivservicellest.onoView allapp/Services/Kiosk/AutomatedReports/D AskJiminnyReportActivityService.php +1 -1Reject allAccept allAsk anything (&+L)+ <> CodeClaude Sennet 4.6Wwinasur leamsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10981
|
|
10982
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aalal]Support Daily - in 2h 54 m100% <47Tue 14 Apr 12:06:388Today ~...
|
NULL
|
NULL
|
NULL
|
10982
|
|
10983
|
PhpStormFileEditViewNavigateCodeLaravelRefactorFV PhpStormFileEditViewNavigateCodeLaravelRefactorFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vToolsWindowHelpProject vD AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© DealStagesService.p© RecipientsService.ph® ReportSort.php(e) Reporisonbirection.Kloskservice.php> M Mail• MeetingGenerator> D NotificationD OAuth2D RecallAl[ SecurityC StrategyStreamingD TeamTelephonyUserPilotM Webhook© AbstractService.php© ActivityProviderFactory.ph|©ActivityService.php© ApiResponseService.php© ConferenceService.php© InsightSeatService.php© InstantMeetingService.php©IntercomService.php©IpapiClient.phpIpapiService.php© ParticipantShareService.ph© PlanhatService.php© PlaybackService.phpPlaybackVideoOnlyService©PlaybookCategoryService./© PlaylistGeneratorInterface.© ResolveTeamCrmConnecti© SimpleThrottleService.php© SlackService.php© SocialAccountService.php© SoftPhoneService.phpC) TeamDeactivatedService.p© TeamOwnerService.php©TeamService.php© TranscodeParameterResol© UserService.php© Uuid.php› C Traits› D UseCases> D User→IUTIS• I validation> D VOphp helpers.php© InitialFrontendState.php© Jiminny.php© Plan.php© ReportController.php© AutomatedReportsCommand.phpAddLayoutEntities.php© JiminnyDebugCommand.php© AutomatedReportsSendCommana.pnp• Team.php© AutomatedReportsRepository.php x© CreateHeldActivityEvent.phpC CreateActivityLoggedEvent.php(C) User?llorActiviv.istener.oho© ActivityLogged.php(©) AutomatedReportsCallbackService.php• RequestGenerateAskJiminnyReportJob.php© AutomatedReportResult.php© AutomatedReport.phpclass AutomatedReportsRepository(C) RequestGenerateReportJob.phpA15 V4^475152535456646574* dreturn AutomatedReportpublic function create(array $data): AutomatedReportf./*** Find an automated report by UUID* @param string $uvid* @return AutomatedReport/nullpublic function findByUuid(string $uuid): ?AUtomatedRep(33return AutomatedReport:: where('uuid', AutomatedRepor 3637-381 usagepublic function findById0rUuid(string $id0rUuid): ?Autonif (is_numeric($idOrUuid)) €return Automacedkeport..tznal(1nt) s1auruu1a);return AutomatedReport: :where('uvid', AutomatedRepor/*** Retrieve all standard (non-ASk Liminny) automated retso* @param string $sortColumnThe column to sort by. A* Oparam string $sortDirection The sort direction. AllC51* Oreturn Collection<AutomatedReport>12 usagespublic function getAllStandardReports(string $sortColumn = 'created_at',string $sortDirection = 'desc'): Collection {...}/*** Retrieve all Ask Ziminny reports created by the giver 62* @param UsersusenThe user whose reports 164*oodrdl sarno osorccocuminIne cocumn co sorc Dy. ·65* Oparam string $sortDirection The sort direction. AllC66Windsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)= custom.log= laravel.logA SF [jiminny@localhost]L console [STAGING]© AskJiminnyReportActivityService.php xRequestGenerateAskJiminnyReportJobTest.phpuse Jiminny\Models\Activity\Search;useJiminny\Models \User;use Jiminny\Repositories\ElasticActivityRepository;use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;usePsr\Log\LoggerInterface;A HS_local [jiminny@localhost]Al console [PROD]© AskJiminnyReportActivityServiceTest.phpA console (EU]class asкуладукерorcaccvicyserviceprivate const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ActivityActualDate: :PARAM_END_DATE,ActivityUpdatedDate: :PARAM_UPDATED_FROM,ActivityUpdatedDate::PARAM_UPDATED_TO,ClosingPeriodFilter::KEY_START_DATE,closingrer1odrilter..KEY_ENU_bAlE,public function __construct(private readonly ActivitySearch $activitySearch,private readonly ElasticActivityRepository $elasticRepository,private readonly LoggerInterface $logger,0 {...3/*** Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* Oreturn string[] Activity IDspublic function getActivityIdsForSavedSearchCSearch $savedSearch,User $user,): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);$criteria = Criteria::createFromRequest(Acceptmagze ($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),array_merge($requestParams, ['Limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => A,'sequence_numb$user->getTimezone()$filterSet = $this-›activitySearch->getOnDemandPageFilterSet($criteria, $user);$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);nunus-> looder>info('lAskJiminnxRepont] Fetched activity IDsfor saved search'.→> $savedSearch->getId(),'user id' => Suser->qetIdo.'activity_count' => count($activityIds),ID:return SactivityIds;V Accept File *+X Reject File 0 38@€ 1 of 2 files →, 0lablSupport Daily - in 2h 54mA100% |45]Tue 14 Apr 12:06:37RequestGenerateAsk.liminnvRenort.lob TestCascadeFixing ReportControlleAutomated Report Ma© Fixing Ask Jiminny R+D ...Now see tne Tul o clure, Lerme also check Activitvlurat ionkande ano Actwvitvkecorded ceauis or 1sFirstRwequeseuy.Reao Acuiviyburauonkance ono ano Actvivrecorcec.onoNow Inave tne comolere roo, cause o cture. nis s crucarRoot Cause Foundne oua lokequestraramsrromsearch mernocin Ask aminnvredortActvl vservice vasses sequence number=implicitly (not in params), which means isFirstRequest() returns true.When sequence number Is notin requestParams, the criteria:: createrromkequest delaulsitlo o, and 1sr1rstRequest() returns true when empty || sequenceNumber === 0.The frontend URL has sequence_number=4 — meaning it's not a first request. The service doesn't set it, so thecriera thinks iu's atistrecuestWhen isFirstRequest() = true, these implicit filters are applied that aren't in the saved search:1. Activityburationkange — applies min_duration = 1 (INITIAL_MIN) - Tllters out U-second calls2. ActivityRecorded - applies only_recorded = 1 (DEFAULT_VALUE = OPTION_RECORDED) - filters torecorded-ohly3. OrganiserGroupIn - applies user's default group filterbut the Trontend With sequence number=4 sklos all or these derauls, so it returns more resuits.The fix should be in buildRequestParamsFromSearch - it needs to pass sequence_number in the built params tosignal "not a first request", so the implicit defaults don't apply. Or alternatively, always pass a non-zero sequence_number In tne merce in derAcuivlivlostorsaveNow let me verify my understanding of isFirstRequest:reao criera,onoConirmeo, Ine rixis cear ano minimar Une oetActivlvlosrorsavedsearch menoo neeos o oass sequence nurber with a non-zero value so that isFirstRequest() returns false and no implicit defaults are applied.• Ask.Now let me check if there's an existing test for AskJiminnyReportActivityService to update:Explored AskJiminnyReportActivityServiceTest.php and searched AskJiminnyReportActivity*I need to add a test that verifies sequence_number=1 is passed to Criteria (so isFirstRequest() returns false ).Let me add it to the existing test file:• AskJ.RACIViLyoervicelestoneNow ler's tun tne lestto verity.exeddocker_lamp_pnp /var/www/ncml/drc1san lesytests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServicelest.php --no-covelayeCould not open input file: /var/www/html/artisanCommand dockeno cocker execoocker lano " ono aoparusan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php --no-coverrageRun a8+ (Skip2 files with changestests/Unit/services/Klosk AutomateckeporisAsk.iminnvrenortActivivservicellest.onoapp/Services/Kiosk/AutomatedReports/ [ AskJiminnyReportActivityService.php +1 -1View allReject allAccept allAsk anything (2*L)+ <> CodeClaude Sonnet 4.6winasur leamsuir-o( 4 spaces...
|
NULL
|
NULL
|
NULL
|
10983
|
|
10984
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aalal]Support Daily - in 2h 54 m100% <47Tue 14 Apr 12:06:408Today ~...
|
NULL
|
NULL
|
NULL
|
10984
|
|
10985
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1, 'sequence_number' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
15
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where('automated_reports.team_id', $user->getTeamId())
->whereJsonContains('automated_reports.recipients->users', $user->getId())
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10985
|
|
10986
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1, 'sequence_number' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Sync Changes
Hide This Notification
Code changed:...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10986
|
|
10987
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1, 'sequence_number' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
15
4
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Carbon\CarbonImmutable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSort;
use Jiminny\Services\Kiosk\AutomatedReports\ReportSortDirection;
class AutomatedReportsRepository
{
/**
* Create a new automated report
*
* @param array $data
*
* @return AutomatedReport
*/
public function create(array $data): AutomatedReport
{
return AutomatedReport::create($data);
}
/**
* Find an automated report by UUID
*
* @param string $uuid
*
* @return AutomatedReport|null
*/
public function findByUuid(string $uuid): ?AutomatedReport
{
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($uuid))->first();
}
public function findByIdOrUuid(string $idOrUuid): ?AutomatedReport
{
if (is_numeric($idOrUuid)) {
return AutomatedReport::find((int) $idOrUuid);
}
return AutomatedReport::where('uuid', AutomatedReport::toOptimized($idOrUuid))->first();
}
/**
* Retrieve all standard (non-Ask Jiminny) automated reports.
*
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAllStandardReports(
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->whereNot('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->get();
}
/**
* Retrieve all Ask Jiminny reports created by the given user.
*
* @param User $user The user whose reports to retrieve.
* @param string $sortColumn The column to sort by. Allowed values: 'created_by', 'created_at'. Defaults to 'created_at'.
* @param string $sortDirection The sort direction. Allowed values: 'asc', 'desc'. Defaults to 'desc'.
*
* @return Collection<AutomatedReport>
*/
public function getAskJiminnyReportsByUser(
User $user,
string $sortColumn = 'created_at',
string $sortDirection = 'desc'
): Collection {
return $this->buildSortedQuery($sortColumn, $sortDirection)
->where('type', AutomatedReportsService::TYPE_ASK_JIMINNY)
->where('created_by', $user->getId())
->get();
}
private function buildSortedQuery(string $sortColumn, string $sortDirection): \Illuminate\Database\Eloquent\Builder
{
$allowedColumns = ['created_by', 'created_at'];
if (! in_array($sortColumn, $allowedColumns)) {
$sortColumn = 'created_at';
}
$sortDirection = strtolower($sortDirection) === 'asc' ? 'asc' : 'desc';
$query = AutomatedReport::query()->with(['creator', 'team']);
if ($sortColumn === 'created_by') {
$query->leftJoin('users', 'users.id', '=', 'automated_reports.created_by')
->orderByRaw("users.name COLLATE utf8mb4_unicode_ci {$sortDirection}")
->select('automated_reports.*');
} else {
$query->orderBy($sortColumn, $sortDirection);
}
return $query;
}
/**
* Get all active and enabled reports with active teams for the specified frequency.
*
* @param string $frequency
*
* @return Collection<AutomatedReport>
*/
public function getActiveReportsByFrequency(string $frequency): Collection
{
return AutomatedReport::where('automated_reports.status', true)
->where('automated_reports.frequency', $frequency)
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->where('teams.status', Team::STATUS_ACTIVE)
->where(function ($query) {
$query->whereNull('automated_reports.expires_at')
->orWhere('automated_reports.expires_at', '>=', now()->toDateString());
})
->select('automated_reports.*')
->get();
}
/**
* Update an automated report
*
* @param AutomatedReport $report
* @param array $data
*
* @return AutomatedReport
*/
public function update(AutomatedReport $report, array $data): AutomatedReport
{
$report->update($data);
return $report;
}
/**
* Create a new automated report result.
*
* @param array $data The data to create the automated report result with.
*
* @return AutomatedReportResult The newly created automated report result.
*/
public function createResult(array $data): AutomatedReportResult
{
return AutomatedReportResult::create($data);
}
/**
* Find an automated report result by UUID.
*
* @param string $uuid The UUID to find the automated report result with.
*
* @return AutomatedReportResult|null The automated report result if found, otherwise null.
*/
public function findResultByUuid(string $uuid): ?AutomatedReportResult
{
return AutomatedReportResult::where('uuid', AutomatedReportResult::toOptimized($uuid))->first();
}
public function findResultByUuidForUser(string $uuid, User $user): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('uuid', AutomatedReportResult::toOptimized($uuid))
->whereHas('report', static function ($query) use ($user): void {
$query->where('team_id', $user->getTeamId())
->where('created_by', $user->getId());
})
->first();
}
public function findChildResult(AutomatedReportResult $result, string $type): ?AutomatedReportResult
{
return AutomatedReportResult::query()
->where('parent_id', $result->getId())
->where('media_type', $type)
->first();
}
public function getGeneratedNotSentResults(): Collection
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNull('sent_at')
->where('status', AutomatedReportResult::STATUS_GENERATED)
->whereHas('report')
->with('report')
->get();
}
public function getPaginatedUserReports(
User $user,
ReportSort $sort,
ReportSortDirection $sortDirection,
int $resultsPerPage,
int $page,
?Carbon $fromDate,
?Carbon $toDate,
array $teamIds,
array $reportTypes,
?string $name,
): LengthAwarePaginator {
$query = AutomatedReportResult::query()
->whereNotNull('automated_report_results.generated_at')
->join('automated_reports', 'automated_report_results.report_id', '=', 'automated_reports.id')
->where('automated_reports.team_id', $user->getTeamId())
->whereJsonContains('automated_reports.recipients->users', $user->getId())
->orderByRaw("$sort->value COLLATE utf8mb4_unicode_ci {$sortDirection->value}")
->select('automated_report_results.*')
->with('report.team');
if ($fromDate !== null && $toDate !== null) {
$query->whereBetween('generated_at', [$fromDate, $toDate]);
}
if (! empty($teamIds)) {
$query->where(function ($q) use ($teamIds) {
foreach ($teamIds as $id) {
$q->orWhereJsonContains('automated_reports.groups', $id);
}
});
}
if (! empty($reportTypes)) {
$query->whereIn('automated_reports.type', $reportTypes);
}
if (! empty($name)) {
$query->whereLike('name', "%$name%");
}
return $query->paginate($resultsPerPage, ['*'], 'page', $page);
}
public function countUserReports(User $user): int
{
return AutomatedReportResult::query()
->whereNotNull('generated_at')
->whereNotNull('sent_at')
->whereHas('report', function ($q) use ($user) {
$q->where('team_id', $user->getTeamId())
->whereJsonContains('recipients->users', $user->getId());
})
->count();
}
/**
* Get report IDs for a specific team
*
* @param Team $team
*
* @return \Illuminate\Support\Collection
*/
public function getReportIdsByTeam(Team $team): \Illuminate\Support\Collection
{
return AutomatedReport::where('team_id', $team->getId())->pluck('id');
}
/**
* Get all reports for a specific team
*
* @param Team $team
*
* @return Collection
*/
public function getReportsByTeam(Team $team): Collection
{
return AutomatedReport::where('team_id', $team->getId())->get();
}
/**
* Get all report results for a specific report
*
* @param AutomatedReport $report
*
* @return Collection
*/
public function getResultsByReport(AutomatedReport $report): Collection
{
return $this->getResultsByReportQuery($report)->get();
}
public function getResultsByReportQuery(AutomatedReport $report): Builder
{
return AutomatedReportResult::where('report_id', $report->getId());
}
public function getReportResultsQueryForRetention(Team $team, CarbonImmutable $retentionDate): Builder
{
$reportIds = $this->getReportIdsByTeam($team);
return AutomatedReportResult::query()->whereIn('report_id', $reportIds)
->whereRaw('IFNULL(generated_at, created_at) <= ?', [$retentionDate]);
}
/**
* @param int|null $teamId Optional team ID to filter results
*
* @return \Illuminate\Support\Collection<int, int> Collection of team IDs
*/
public function getTeamIdsWithReportsResults(?int $teamId = null): \Illuminate\Support\Collection
{
$query = DB::table('automated_reports')
->join('teams', 'automated_reports.team_id', '=', 'teams.id')
->select('teams.id')
->distinct();
if ($teamId !== null) {
$query->where('teams.id', $teamId);
}
return $query->pluck('teams.id');
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10987
|
|
10988
|
+SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActi +SlackFileEditViewGoHistoryWindowHelpEDHomeDMsActivityFilesLater..•More+Jiminny ...sos# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product _launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Cala Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосЪщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAa>0 lhl§ Support Daily • in 2h 53 m100% <*Tue 14 Apr 12:07:3084Today ~New...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10988
|
|
10989
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aa> 0ladl= Support Daily • in 2h 53 m100% <47Tue 14 Apr 12:07:338Today ~...
|
NULL
|
NULL
|
NULL
|
10989
|
|
10990
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelpJiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili.... Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Nikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаNikolay Yankov 12:04 PMДа, там има 14 активитита, защо не сработи този пьт?Lukas Kovalik 12:05 PMпак изглежда sequenceгледам гоMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+Aa> 0ladl= Support Daily • in 2h 53 m100% C7Tue 14 Apr 12:07:428Today ~...
|
NULL
|
NULL
|
NULL
|
10990
|
|
10991
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
PhpStormFileFditViewNavigateCodelaravelRetactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject vv _ AutomatedReports(C) ActivityTypeService.(C AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsS© DealStagesService.p© Recipientsservice.pr@ Reportsort.php(e) Reporisonbirection.Kloskservice.php> M Mail› MeetingGenerator› Notification> D0Auth2RecallAl_ Security_ StrategyStreamingM TeamTelephonyM UserPilot>MWebhook© AbstractService.php© ActivityProviderFactory.ph(©) ActivityService.phpC ApiResponseService.php(C) ConferenceService.php© InsightSeatService.php© InstantMeetingService.phpC IntercomService.php© IpapiClient.phpC) IpapiService.phpC) ParticioantShareService.phC PlanhatService.ohp(C) PlaybackService.phpPlaybackVideoOnlyService(C) PlaybookCategoryService.C PlaylistGeneratorinterface.(C) ResolveTeamCrmConnectiC SimpleThrottleService.php© SlackService.php© SocialAccountService.phpC) SoftPhoneService.phpC) TeamDeactivatedService.p© TeamOwnerService.php(C) TeamService.phpC) TranscodeParameterResolC UserService.phpC) Uuid.php› D Traits• → UseCases> D UserDUtils• I validation•IV0pnp nelpers.png(C InitialFrontendState.php(©) Jiminny.php(C) Plan.php(©) ReportController.php© JiminnyDebugCommand.php© AutomatedReportsCommand.phpC AutomatedReportsSendCommand.phpAddLayoutentities.php(C) Team.nho© AutomatedReportsRepository.php X© CreateHeldActivityEvent.phpC CreateActivityLoggedEvent.php(C) User?llorActvtvuistener.ono(C) Activtv odded.nnrc) AutomatedRenorscalloackoerwce.onvC) RequestGenerateaskJiminnykeportJob.ono(©) RequestGenerateReportJob.phpAuLomaleakeportkesult.ono© AutomatedReport.phpclass AutomatedReportsrepos1toryA15 У4 л515354647576* dreturn AutomatedReportpublic function create(array $data): AutomatedReport...Д26* Find an automated report by UUID* dparam string suuld.30*dreturn AutomatedReportnul7public function findByUuid(string Suuid): ?AutomatedReportreturn AutomatedReport::where('uuid', AutomatedReport::to0ptim37-39Tusdyepublic function findByldorUu1d(string s1d0rUu1d): ?AutomatedReport 41— 42if (is_numeric($id0rUuid)) {return Automacedkeport..tznal(1nt) s1auruu1a);return AutomatedReport::where('uvid', AutomatedReport::to0ptim.46/*** Retrieve all standard (non-Ask Jaminny) automated reports._5€* dparam string ssortcolumnThe column to sort by. Allowed val* dparam string ssortuireccion ine sorc direccion. ALlowed values*dreturn coLLectlon<Aucomacedkeport>12 usagespublic function getAllStandardReportsstring $sortColumn = 'created_at",string SsortDirection =desc— 5/: Collection 1..\ 59/*** Recrieve aLL Ask Jaminny reporus created Dy the given user.* dodran UsensuserIne user whose reports to retrieve 64*oodrdl sarno osorccocumintne column to sort by. Allowed val 6s* Oparam string $sortDirection The sort direction. Allowed values 66Windsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)= custom.log= laravel.logL SF (iminny@localhostc HS_local fiminny@localhostL console (PROD]& console (EU]L console (STAGINGC AskJiminnyReportActivityservice.pnp x© AskJiminnyReportActivityService lest.pnp *C RequestGenerateAskJiminnyReportJobTest.phpuse Psr\Log Loggerincertace:8 usagesclass asкудmадукерorcaccvicyserviceprivate const int DEFAULT TOP_ACTIVITIES COUNT = 100:Tusdyeprivate const array [ENV_SECRET],ACEIVALEVACTUALDATE.-PAKAN ENUWANEAculvityupdaceduace:.PARAN_UPDATEU_FRUN,ACINLTVUDOaLeODaTe.:PAKAN UPDAIEU U.ClosingPeriodFilter::KEY START DATE.ClosingPeriodFilter::KEY_END_DATE]:public function __constructlprivate readonly ActivitySearch Sactivitysearch,private readonly Elast1cActiv1tyRepos1tory selasticrepos1tory.privace readonly Loggerintertace slogger.) 1...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnuthingByfilter.* Oreturn string[] Activity IDs*/14 usagespublic function getActivityIdsForSavedSearch(Search SsavedSearch,user puser,D: arraySrequestParams = Sthis->buildRequestParamsFromSearchSsavedSearch. Suser):$criteria = Criteria::createFromRequestmarree ($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),array_merge(srequestParams, L'Lim1t => self::DEFAULT_TOP_ACTIVITIES_COUNI,|'page' => 1, 'sequence_number' => 110.puser-›geclinezonel)SfilterSet = Sthis->activitySearch->getonbemandPager1lcersec(scruterta, suser):Sactivitylds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);sthis->logger->info(lAskJiminnyReport Fetched activity IDs for saved search','saved_search_1d => ssavedsearch->getid).'user_1d => Suser->getid),'actvity counti=> count(sactivitylds),J:return sactvitvlos.Accept File 8+X Reject File 138&€ 1 of 2 files →: Support Daily • in 2 h 53 m100% [2Tue 14 Apr 12:07:42RequestGenerateAskJiminnyReportJobTest vCascade†ControlleAutomated Renort Mal© Fixing Ask Jiminny FNow I nave the complele root cause picture. Inis is criucal:Poot calce SallndlIne ous lokequestraranst romsearch metnoe in Askudminnykeportactlv1tyService passes sequence number=" Implicitv not in params. whichimeals esrerstnequestly retums trueWhen sequence number Is notin requestParams, the criteria:: createrromRequest detaults itto 0, and isFirstRequest() returns true when emptysequencenunber ===0The frontend URL has sequence number=4 — meaning it's not a firstrequest. The service doesn t set it, so the criteria thinks it's a first request.wnen 1srirstkeouest = chue, tnese lmpllcit tlters are agglled tnalaren 't in the saved search1. ActivityDurationRange — applies min_duration = 1 (INITIAL_MIN)- filters out 0-second calls%AcIIvlivrecorded — adoles only recorded = 1 D--AULI VALUE=OPTION_RECORDED) - filters to recorded-only3. OrganiserGroupIn - applies user's default group filterburthe Tronteno Wiun sequence numberza skiosalll ortnese ceaulis. soitvetums more resullsIne tix snoule oe in bur lakequestraranstrombearch - lneeas lo pass sequence number in the oult params to sicnal "not a first recuest" so theimplicit defaults don't apply. Or alternatively, always pass a non-zero sequence number in the merge in gecactivitylasrorsavedsearch.Now let me verify my understanding of isFirstRequest :reao crieraronoContirmed. The fix is clear and minimal. Tine detActivirvidsForsavedsearich method needs to pass sequence number with a non-zero value so that 1srirstrequesc returns talse ane no imolicit aeraults are apollea1 ASkJInNow let me check ir there's an existing test for AskJiminnykeportActivityService to update:Explorea AskJiminnykepor Activilyservicelest.ono and searched ASkJl..Ineed lo add a lest thau verities sequence number=l is passed to criceriaso 1sFirstRequestlo returns false ). Ler me add It to the existine testi• AskJiminnyReportActivityServiceTest.phpNow ler's run the lestto verity.docker exec docker lamp 1 php /var/www/html/artisan testtests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyRepo"enceevalyoet veccteotephrTurcovelayeCould not open input file: /var/www/html/artisanCommand docken•docker exec aockerdocker_Lamp_1 php /app/artisan2 files with chandes.sk/AutomatedReports/@ AskJiminnvReportActivitvServiceTest.phv +27View all.../Kiosk/AutomatedReports/D AskJiminnyReportActivityService.php+1 -1Reject allAccept allAsk anything (&+L)+ ‹› CodeClaude Sonnet 4.6Winasun leams42:31uir-oia 4 spacesW...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityServiceTest.ph faVsco.js – AskJiminnyReportActivityServiceTest.php...
|
NULL
|
10991
|