Skip to content

Kco 32 custom fields #3012

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 590 commits into
base: development3
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
590 commits
Select commit Hold shift + click to select a range
11dc34a
Merge pull request #3185 from bakaphp/kco-576-deactive-integration
kaioken Feb 24, 2025
6fa6962
refactor: import from dev
FredPeal Feb 25, 2025
694387c
refactor: rename class
FredPeal Feb 25, 2025
eb0a00a
Merge pull request #3186 from bakaphp/graphql-shopify
FredPeal Feb 25, 2025
9e1e932
feat: add getRecommendedUsers query to suggest users to follow based …
rwhite27 Feb 25, 2025
ede9718
fix
kaioken Feb 25, 2025
52c0424
Merge pull request #3187 from bakaphp/graphql-shopify
kaioken Feb 25, 2025
14e1430
fix
kaioken Feb 25, 2025
bd727ca
Merge pull request #3189 from bakaphp/hotfix-email-template-order-2
kaioken Feb 25, 2025
d5fd2a8
Merge pull request #3188 from bakaphp/hotfix-email-template-order-2
kaioken Feb 25, 2025
0255b86
new refuel order method
tiberius19 Feb 25, 2025
406d418
requested changes
tiberius19 Feb 25, 2025
9c655a2
refactor: format code for consistency in FollowQueries.php
rwhite27 Feb 25, 2025
c279d6a
refactor: remove unnecessary whitespace in RecommendUsersToFollowByPo…
rwhite27 Feb 25, 2025
1f6e280
formatting
tiberius19 Feb 25, 2025
f37267e
hotfi
kaioken Feb 25, 2025
5248c48
Merge pull request #3192 from bakaphp/hotfix-email-template-order-2
kaioken Feb 25, 2025
1b88b87
Merge pull request #3191 from bakaphp/hotfix-email-template-order-2
kaioken Feb 25, 2025
c20ef8a
Merge pull request #3190 from bakaphp/refuel-order-method
kaioken Feb 25, 2025
7fdbd22
refactor: add sku to product variant
FredPeal Feb 26, 2025
79446fb
Merge pull request #3194 from bakaphp/graphql-shopify
FredPeal Feb 26, 2025
77b81dd
feat: update Recombee services to include database and API key config…
rwhite27 Feb 26, 2025
1ba788b
feat: update MessageIndexTest to use environment variables for databa…
rwhite27 Feb 26, 2025
5945525
feat: update MessageIndexTest to include region configuration for Rec…
rwhite27 Feb 26, 2025
a4410df
fix: correct environment variable usage for Recombee region in Messag…
rwhite27 Feb 26, 2025
0845882
fix: update userLikedTags retrieval to use entityData instead of entity
rwhite27 Feb 26, 2025
61feee4
feat: enhance MessageIndexTest to utilize environment variables for d…
rwhite27 Feb 26, 2025
68a93a5
Hotfix - update default gemini tag
kaioken Feb 26, 2025
cf573a0
Merge pull request #3195 from bakaphp/hotfix-google-recommendation
kaioken Feb 26, 2025
cedf2b1
refact: add follow recommendation engine
Feb 27, 2025
334dfc7
refact: add follow recommendation engine
Feb 27, 2025
bc9a0d4
refact: add follow recommendation engine
Feb 27, 2025
8e1994a
feat: add lead attemps
Feb 28, 2025
cd33623
Refact: login of follow
Feb 28, 2025
3a04e8a
Refact: login of follow
Feb 28, 2025
d37b334
fix: add b2c shopify webhooks
jesusantguerrero Feb 28, 2025
efcea99
lower level for now
Feb 28, 2025
a27d249
feat: add test
Feb 28, 2025
4a90b3e
add variant plan from father-sku attribute
tiberius19 Feb 28, 2025
d8fa2d3
Feat: update for you logic
Feb 28, 2025
e8c74b0
fix method usage
tiberius19 Feb 28, 2025
9dcb10e
feat: update user actions
Feb 28, 2025
ff18c8c
remove ?
tiberius19 Feb 28, 2025
2e2f115
feat: update user actions
Feb 28, 2025
f78abac
feat: update user actions
Feb 28, 2025
4a9ae02
feat: update user actions
Feb 28, 2025
df9f624
update
Feb 28, 2025
0d84f17
feat: update user actions
Feb 28, 2025
f38094b
feat: update user actions
Feb 28, 2025
1c0a857
Merge pull request #3196 from bakaphp/follow-recommendation-engine-up…
kaioken Feb 28, 2025
c9f8a1e
Merge pull request #3139 from bakaphp/MK-3252-follow-recommendation-e…
kaioken Feb 28, 2025
37a9a9d
feat: update user actions
Mar 1, 2025
7e884b6
feat: update user actions
Mar 1, 2025
feebba5
Merge pull request #3199 from bakaphp/refact-foryou-feed-list
kaioken Mar 1, 2025
b781f68
feat: update user actions
Mar 1, 2025
1416ffc
Merge pull request #3200 from bakaphp/refact-foryou-feed-list
kaioken Mar 1, 2025
3e2df30
feat: update user actions
Mar 1, 2025
2332c4c
Merge pull request #3201 from bakaphp/refact-foryou-feed-list
kaioken Mar 1, 2025
c5370e4
refactor: publish on all channels
FredPeal Mar 1, 2025
5c455fb
Apply fixes from StyleCI
StyleCIBot Mar 1, 2025
038ffab
Merge pull request #3203 from bakaphp/analysis-7WjaKb
FredPeal Mar 1, 2025
d3fdcc9
feat: update user actions
Mar 1, 2025
2f59f0d
feat: update user actions
Mar 1, 2025
4b0646d
feat: update user actions
Mar 1, 2025
7fc6567
Merge pull request #3204 from bakaphp/refact-foryou-feed-list
kaioken Mar 1, 2025
a03d056
Merge pull request #3173 from bakaphp/development
kaioken Mar 1, 2025
b8bcbdb
feat: update user actions
Mar 1, 2025
18e8300
hotfix
Mar 1, 2025
0b04853
Merge pull request #3205 from bakaphp/refact-foryou-feed-list
kaioken Mar 1, 2025
7e6eabf
Merge pull request #3206 from bakaphp/development
kaioken Mar 1, 2025
b735e2c
feat: update user actions
Mar 1, 2025
e82d672
feat: update user actions
Mar 1, 2025
b9df41a
Merge pull request #3207 from bakaphp/refact-foryou-feed-list
kaioken Mar 1, 2025
0383557
Merge pull request #3208 from bakaphp/development
kaioken Mar 1, 2025
06361af
refact: user
Mar 2, 2025
c5f6437
Merge pull request #3209 from bakaphp/refact-foryou-feed-list
kaioken Mar 2, 2025
4e6ac0a
refact: support for parent sku
Mar 2, 2025
3e7d64f
refact: support for parent sku
Mar 2, 2025
5502d0d
Merge pull request #3198 from bakaphp/add-variant-plans-from-same-sku
kaioken Mar 2, 2025
91ba849
Merge pull request #3202 from bakaphp/graphql-shopify
FredPeal Mar 2, 2025
2f6159c
Merge branch 'development' into fix/add-b2c-shopify-webhooks
Mar 2, 2025
81b2927
Refact: we just need 1 receiver
Mar 2, 2025
5c856fc
Refact: we just need 1 receiver
Mar 2, 2025
3967a5a
Refact: we just need 1 receiver
Mar 2, 2025
46ca3e4
Refact: we just need 1 receiver
Mar 2, 2025
503ebb5
fix
Mar 2, 2025
69b40e1
fix
Mar 2, 2025
5008afe
Merge pull request #3197 from bakaphp/fix/add-b2c-shopify-webhooks
kaioken Mar 2, 2025
78c6dfb
fix translation attributes array
Mar 3, 2025
c1c8831
fix translation attributes array
Mar 3, 2025
7510026
Merge pull request #3211 from bakaphp/hotfix-translation-attributes-a…
kaioken Mar 3, 2025
73e97ea
fix translation attributes array
Mar 3, 2025
4064a14
Merge pull request #3213 from bakaphp/hotfix-translation-attributes-a…
kaioken Mar 3, 2025
b19ca8d
fix translation attributes array
Mar 3, 2025
01f2f43
Merge pull request #3214 from bakaphp/hotfix-translation-attributes-a…
kaioken Mar 3, 2025
80251b0
fix translation attributes array
Mar 3, 2025
671af98
Merge pull request #3215 from bakaphp/hotfix-attribute-set
kaioken Mar 3, 2025
0d11303
Merge pull request #3216 from bakaphp/hotfix-attribute-set
kaioken Mar 3, 2025
5b955a0
refactor: handle product
FredPeal Mar 3, 2025
99fa187
Merge branch 'graphql-shopify' of github.com:bakaphp/kanvas-ecosystem…
FredPeal Mar 3, 2025
3b5a679
Merge pull request #3217 from bakaphp/graphql-shopify
kaioken Mar 3, 2025
9c602de
update dependecies
FredPeal Mar 3, 2025
15f3495
Merge branch '1.x' of github.com:bakaphp/kanvas-ecosystem-api into gr…
FredPeal Mar 3, 2025
205515a
Merge pull request #3220 from bakaphp/graphql-shopify
FredPeal Mar 3, 2025
a56ceb2
feat: recache custom fields
Mar 3, 2025
aeb0b88
add try catch to variant save on shopify
arfenis Mar 3, 2025
fdb6775
Merge pull request #3221 from bakaphp/feat-recache-custom-fields
kaioken Mar 3, 2025
c5e53a2
add log
arfenis Mar 3, 2025
24d2918
Merge pull request #3222 from bakaphp/log-variant-shopify-export
arfenis Mar 3, 2025
cecfdfd
feat: finish expired orders and release occupied qty
jesusantguerrero Mar 3, 2025
9535dcc
hotfix: sync product
Mar 3, 2025
3a87532
Merge pull request #3224 from bakaphp/hotfix-sync-product
kaioken Mar 3, 2025
58cd439
Merge pull request #3225 from bakaphp/hotfix-sync-product
kaioken Mar 3, 2025
bfaa9d4
hotfix: sync product
Mar 3, 2025
bdd377b
Merge pull request #3226 from bakaphp/hotfix-sync-product
kaioken Mar 3, 2025
bdb2f6e
Merge pull request #3227 from bakaphp/hotfix-sync-product
kaioken Mar 3, 2025
824a8d4
hotfix: sync product
Mar 3, 2025
185ee3d
Merge pull request #3228 from bakaphp/hotfix-sync-product
kaioken Mar 4, 2025
8af604a
Merge pull request #3229 from bakaphp/hotfix-sync-product
kaioken Mar 4, 2025
dacac81
hotfix: sync product
Mar 4, 2025
6ac1b4f
hotfix client
Mar 4, 2025
4daef49
hotfix client
Mar 4, 2025
c3d4539
hotfix client
Mar 4, 2025
0ced42e
hotfix client
Mar 4, 2025
fd3a7d2
Merge pull request #3231 from bakaphp/hotfix-sync-product
kaioken Mar 4, 2025
e568d9a
Merge pull request #3230 from bakaphp/hotfix-sync-product
kaioken Mar 4, 2025
5601f29
hotfix client
Mar 4, 2025
056bca3
Merge pull request #3232 from bakaphp/hotfix-sync-product
kaioken Mar 4, 2025
1a211d3
Merge pull request #3233 from bakaphp/hotfix-sync-product
kaioken Mar 4, 2025
448312c
fix: improve query and add test
jesusantguerrero Mar 4, 2025
45bf140
comment product 230 usd
FredPeal Mar 4, 2025
2110821
fix: send all errors at once
jesusantguerrero Mar 4, 2025
fc32d18
Merge pull request #3236 from bakaphp/graphql-shopify
FredPeal Mar 4, 2025
0905e04
Merge pull request #3237 from bakaphp/graphql-shopify
FredPeal Mar 4, 2025
5f13324
feat: add command to sync user messages with followed users
rwhite27 Mar 4, 2025
ff0f9b2
feat: add product type sync
Mar 4, 2025
5640637
feat: add product type sync
Mar 4, 2025
7f59737
feat: add product type sync
Mar 4, 2025
a0c9a14
Merge pull request #3235 from bakaphp/fix/process-order-items-errors
jesusantguerrero Mar 4, 2025
7a2d8f3
Merge pull request #3223 from bakaphp/feat/finish-expired-orders
jesusantguerrero Mar 4, 2025
1bf234a
Merge pull request #3238 from bakaphp/hotfix-sync-product
kaioken Mar 4, 2025
36eb8f3
feat: add product type sync
Mar 4, 2025
b5b2c8f
feat: add zoho agent lead
Mar 4, 2025
4594429
Merge pull request #3239 from bakaphp/hotfix-zoho-agent-lead
kaioken Mar 4, 2025
ec2ca9a
Add command to sync user interactions with User messages
rwhite27 Mar 4, 2025
5b0a593
Merge pull request #3212 from bakaphp/development
kaioken Mar 4, 2025
6f56c7a
Add activity and job for distributing messages to user follows
rwhite27 Mar 4, 2025
fb4ad1d
fix style
rwhite27 Mar 4, 2025
ed94b1c
fix: improve echo formatting in KanvasSyncUserMessagesCommand
rwhite27 Mar 4, 2025
248b3ec
fix: streamline echo formatting in KanvasSyncUserMessagesCommand
rwhite27 Mar 4, 2025
725bcbe
fix: remove unnecessary blank line in KanvasSyncUserMessagesCommand
rwhite27 Mar 4, 2025
51547ba
refactor: rename getUserFeed to getForYouFeed for clarity
rwhite27 Mar 4, 2025
b28b931
refactor: rename getUserFeed to getForYouFeed for clarity
rwhite27 Mar 4, 2025
8c052f0
feat: add order father sku
Mar 4, 2025
7ce3e8f
Merge pull request #3241 from bakaphp/hotfix-order-father-sku
kaioken Mar 4, 2025
96ff633
Merge pull request #3242 from bakaphp/development
kaioken Mar 4, 2025
7f1d2b5
feat: add getFollowingFeed method and corresponding GraphQL schema fo…
rwhite27 Mar 4, 2025
1b6e44b
fix: remove unnecessary whitespace in orderBy clause of getFollowingF…
rwhite27 Mar 4, 2025
5c63253
feat: add order father sku v2
Mar 4, 2025
185d104
Merge pull request #3243 from bakaphp/hotfix-order-father-sku-v2
kaioken Mar 4, 2025
910b606
Merge pull request #3244 from bakaphp/development
kaioken Mar 4, 2025
e012087
feat: add DistributeMessageActivity to KanvasWorkflowSynActionCommand
rwhite27 Mar 4, 2025
6378903
hotfix: filter with now trnalsation
Mar 5, 2025
536a02e
hotfix: filter with now trnalsation
Mar 5, 2025
5c4d0d0
hotfix: filter with now trnalsation
Mar 5, 2025
8da3f83
Merge pull request #3245 from bakaphp/hotfix-order-father-sku-v2
kaioken Mar 5, 2025
9eb37cd
Merge pull request #3246 from bakaphp/development
kaioken Mar 5, 2025
4bdb31f
feat: add KanvasSyncUserMessagesCommand to sync user messages with fo…
rwhite27 Mar 5, 2025
1c70976
feat: implement DistributeMessagesToUsersAction for message distribut…
rwhite27 Mar 5, 2025
3b21642
fix: format code by adding whitespace for better readability in Distr…
rwhite27 Mar 5, 2025
e38dcc1
fix: correct field name from message_id to messages_id in DistributeM…
rwhite27 Mar 5, 2025
0e08379
fix: validate user before executing imports
jesusantguerrero Mar 5, 2025
473ce0d
Merge pull request #3247 from bakaphp/fix/validate-user-shopify-wh
jesusantguerrero Mar 5, 2025
ebc8c0a
hotfix: json attributes
Mar 5, 2025
157cf78
Merge pull request #3248 from bakaphp/hotfix-json-attributes
kaioken Mar 5, 2025
54f66e3
Merge pull request #3249 from bakaphp/hotfix-json-attributes
kaioken Mar 5, 2025
ef2a006
fix: empty shipping address
FredPeal Mar 6, 2025
f512bda
Apply fixes from StyleCI
StyleCIBot Mar 6, 2025
6899197
Merge pull request #3251 from bakaphp/analysis-6Vy2jW
FredPeal Mar 6, 2025
ff28001
Merge pull request #3250 from bakaphp/fix-woocomerce
kaioken Mar 6, 2025
4999e96
update distribute messages test
Mar 6, 2025
8bd4299
update distribute messages test
Mar 6, 2025
aa4999a
Merge pull request #3252 from bakaphp/MK-3314-for-you-feed-prompt-min…
kaioken Mar 6, 2025
3158612
Merge pull request #3240 from bakaphp/MK-3314-for-you-feed-prompt-mine
kaioken Mar 6, 2025
2d69d50
feat: add map price
jesusantguerrero Mar 6, 2025
7d63f74
refactor: entity value custom fields
FredPeal Mar 6, 2025
f96cb77
add GOOGLE_PLAY_PACKAGE_NAME to ConfigurationEnum
rwhite27 Mar 6, 2025
43c3dd6
add test for following messages in MessageTest
rwhite27 Mar 6, 2025
ae654da
Merge pull request #3253 from bakaphp/feat/add-map-price
jesusantguerrero Mar 6, 2025
c21776a
Merge pull request #3254 from bakaphp/add-tests-messages-feeds
kaioken Mar 6, 2025
491085b
add actions command for testing
arfenis Mar 6, 2025
46590df
Create Builder for Receiver
arfenis Mar 6, 2025
7f1eb75
add queries for workflow
arfenis Mar 6, 2025
4080a0e
create graph for receivers and logs
arfenis Mar 6, 2025
b011633
add method to get workflow actions
arfenis Mar 6, 2025
63842ce
create receivers status enum
arfenis Mar 6, 2025
da51588
add test for receivers and actions
arfenis Mar 6, 2025
bd39339
stylo
arfenis Mar 6, 2025
5e529c4
composer lock
arfenis Mar 6, 2025
f3f1db9
rename
arfenis Mar 6, 2025
c101062
fix
arfenis Mar 6, 2025
d4288bf
fix: user signup validation
Mar 6, 2025
61b2a5d
fix: user signup validation
Mar 6, 2025
08e8cd3
fix: user signup validation
Mar 6, 2025
1fb5535
Merge pull request #3256 from bakaphp/hotfix-user-signup-validation
kaioken Mar 7, 2025
39b2aa1
fix: user signup validation
Mar 7, 2025
986b180
fix: user signup validation
Mar 7, 2025
325280d
fix: user signup validation
Mar 7, 2025
44fb485
Merge pull request #3259 from bakaphp/hotfix-user-signup-validation
kaioken Mar 7, 2025
e130127
Merge branch 'development' of github.com:bakaphp/kanvas-ecosystem-api…
arfenis Mar 7, 2025
def444e
rename receivers to workflowreceivers
arfenis Mar 7, 2025
51edf29
Merge pull request #3255 from bakaphp/receiver-logs
kaioken Mar 7, 2025
95d1a02
format
Mar 7, 2025
b2c3fe4
add scout
Mar 8, 2025
c25d087
feat: add support for meili search
Mar 8, 2025
a57375b
feat: add support for meili search
Mar 8, 2025
c6c9f9e
feat: add support for meili search
Mar 8, 2025
379320a
hotfix: add notification storage trait
Mar 8, 2025
f01bca0
Merge pull request #3263 from bakaphp/feat-multitenant-scout
kaioken Mar 8, 2025
e737b9a
hotfix: move to exteded search
Mar 8, 2025
42a49a9
hotfix: move to exteded search
Mar 8, 2025
82f6abf
Merge pull request #3264 from bakaphp/feat-multitenant-scout
kaioken Mar 8, 2025
6c6385d
hotfix: move to exteded search
Mar 8, 2025
63901c6
refactor: working on test
FredPeal Mar 8, 2025
2e3c9c4
hotfix: move to exteded search
Mar 8, 2025
1ced9a1
hotfix: move to exteded search
Mar 8, 2025
3e52f9f
Merge pull request #3265 from bakaphp/refact-dyanmic-scout-engine
kaioken Mar 8, 2025
c6ecba8
hotfix: move to exteded search
Mar 8, 2025
2a5b3ec
fix: nginx file
FredPeal Mar 8, 2025
63dad6a
refactor: test custom field
FredPeal Mar 8, 2025
a36c264
Merge pull request #3266 from bakaphp/refact-dyanmic-scout-engine
kaioken Mar 8, 2025
3dd7e94
hotfix: move to exteded search
Mar 9, 2025
1a82502
add filter for public results in searchSuggestions
rwhite27 Mar 9, 2025
596546e
hotfix: move to exteded search
Mar 9, 2025
f37c12f
Merge pull request #3268 from bakaphp/refact-dyanmic-scout-engine
kaioken Mar 9, 2025
c6cb913
Merge pull request #3267 from bakaphp/MK-3233-fix-private-prompts-feed
kaioken Mar 9, 2025
27bd36c
hotfix: move to exteded search
Mar 9, 2025
850578c
Merge pull request #3269 from bakaphp/refact-dyanmic-scout-engine
kaioken Mar 9, 2025
eaeba12
hotfix: move to exteded search
Mar 9, 2025
d62fe8d
hotfix: move to exteded search
Mar 9, 2025
c9ced84
feat: recommendation
Mar 9, 2025
0e846b7
Merge pull request #3271 from bakaphp/feat-esim-recommendation
kaioken Mar 9, 2025
e86a422
Merge pull request #3270 from bakaphp/hotfix-message-index
kaioken Mar 9, 2025
1972f2a
refactor: custom field test
FredPeal Mar 9, 2025
44f21ec
feat: add vin solutions
Mar 10, 2025
948e114
refactor: set entity value
FredPeal Mar 10, 2025
9902431
Apply fixes from StyleCI
StyleCIBot Mar 10, 2025
f5f1b44
Merge pull request #3273 from bakaphp/analysis-16Pnww
FredPeal Mar 10, 2025
5ba7a6d
Merge branch 'development' of github.com:bakaphp/kanvas-ecosystem-api…
FredPeal Mar 10, 2025
03badeb
Merge branch 'KCO-32-custom-fields' of github.com:bakaphp/kanvas-ecos…
FredPeal Mar 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/ec2-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
environment: ${{ github.ref_name }}
steps:
- name: executing remote ssh commands using password
uses: appleboy/[email protected].0
uses: appleboy/[email protected].1
with:
host: ${{ secrets.AWS_EC2_HOST }}
username: ${{ secrets.AWS_EC2_USERNAME }}
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ jobs:
TEST_VINSOLUTIONS_API_KEY: ${{ secrets.TEST_VINSOLUTIONS_API_KEY }}
TEST_VINSOLUTIONS_API_KEY_DIGITAL_SHOWROOM: ${{ secrets.TEST_VINSOLUTIONS_API_KEY_DIGITAL_SHOWROOM }}
TEST_VINSOLUTIONS_COMPANY_ID: ${{ secrets.TEST_VINSOLUTIONS_COMPANY_ID }}
TEST_RECOMBEE_DATABASE: ${{ secrets.TEST_RECOMBEE_DATABASE }}
TEST_RECOMBEE_API_KEY: ${{ secrets.TEST_RECOMBEE_API_KEY }}
TEST_RECOMBEE_REGION: ${{ secrets.TEST_RECOMBEE_REGION }}
strategy:
fail-fast: false
matrix:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ jobs:
TEST_VINSOLUTIONS_API_KEY: ${{ secrets.TEST_VINSOLUTIONS_API_KEY }}
TEST_VINSOLUTIONS_API_KEY_DIGITAL_SHOWROOM: ${{ secrets.TEST_VINSOLUTIONS_API_KEY_DIGITAL_SHOWROOM }}
TEST_VINSOLUTIONS_COMPANY_ID: ${{ secrets.TEST_VINSOLUTIONS_COMPANY_ID }}
TEST_RECOMBEE_DATABASE: ${{ secrets.TEST_RECOMBEE_DATABASE }}
TEST_RECOMBEE_API_KEY: ${{ secrets.TEST_RECOMBEE_API_KEY }}
TEST_RECOMBEE_REGION: ${{ secrets.TEST_RECOMBEE_REGION }}
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -199,6 +202,9 @@ jobs:
- name: Setup Kanvas Integrations
run: php artisan kanvas:create-integration shopify --config='{"client_id":{"type":"text","required":true},"client_secret":{"type":"text","required":true},"shop_url":{"type":"text","required":true}}' --handler='Kanvas\Connectors\Shopify\Handlers\ShopifyHandler'

- name: Setup Kanvas Workflow Actions
run: php artisan kanvas:workflow-sync-actions

- name: create .env file
run: echo '' > .env

Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"Logix",
"Meili",
"Metafield",
"Nuwave"
"Nuwave",
"Typesense"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
<?php

declare(strict_types=1);

namespace App\Console\Commands\Connectors\ESim;

use Baka\Traits\KanvasJobsTrait;
use Illuminate\Console\Command;
use Kanvas\Apps\Models\Apps;
use Kanvas\Inventory\Products\Models\Products;
use Kanvas\Souk\Orders\Models\Order;

class GenerateEsimRecommendationCommand extends Command
{
use KanvasJobsTrait;

protected $signature = 'kanvas:esim-generate-recommendation {app_id} {company_id}}';
protected $description = 'Generate eSIM recommendation';

public function handle(): void
{
$app = Apps::getById((int) $this->argument('app_id'));
$this->overwriteAppService($app);

$products = Products::fromApp($app)->with('variants.attributes')->get();

foreach ($products as $product) {
$recommendations = $this->mapProductRecommendationAttribute($product->variants->toArray());

$product->addAttribute(
'recommended_plans',
$recommendations
);

$this->info('Set recommendation for product ' . $product->getId() . ' - ' . $product->name);
}
}

protected function mapProductRecommendationAttribute(array $variants): array
{
if (empty($variants)) {
return []; // Return empty if there are no variants
}

$sections = [];
$sectionCounter = 1;

// Sort variants by `esim_days` in ascending order
usort($variants, function ($a, $b) {
$aDays = $this->extractAttributeValue($a['attributes'], 'esim_days');
$bDays = $this->extractAttributeValue($b['attributes'], 'esim_days');

return $aDays <=> $bDays; // Ascending order
});

// Split sorted variants into two groups (low and high packages)
$sortedSkus = array_column($variants, 'sku');
$groupSize = max(1, (int)ceil(count($sortedSkus) / 2)); // Explicitly cast ceil result to int
$groups = array_chunk($sortedSkus, $groupSize);

$lowPackages = $groups[0] ?? [];
$highPackages = $groups[1] ?? [];

// Create Sections 1 to 4 with lower packages
$lowPackageGroups = $this->groupVariantsIntoSections($lowPackages, 4);
foreach ($lowPackageGroups as $group) {
if ($sectionCounter > 4) {
break;
}
$sections[] = [
'name' => 'section_' . $sectionCounter,
'variantSku' => $group,
];
$sectionCounter++;
}

// Create Sections 5 to 10 with higher packages
$highPackageGroups = $this->groupVariantsIntoSections($highPackages, 4);
while (count($highPackageGroups) < 6) {
$highPackageGroups[] = $highPackages; // Add repeated high packages if needed
}
$highPackageGroups = array_slice($highPackageGroups, 0, 6); // Ensure only 6 groups

foreach ($highPackageGroups as $group) {
$sections[] = [
'name' => 'section_' . $sectionCounter,
'variantSku' => $group,
];
$sectionCounter++;
}

return $sections;
}

// Helper function to group variants into sections of specified size
protected function groupVariantsIntoSections(array $variants, int $sectionSize): array
{
$groups = [];

foreach (array_chunk($variants, $sectionSize) as $group) {
$groups[] = $group;
}

return $groups;
}

// Extract attribute value by name from the attributes array
protected function extractAttributeValue(array $attributes, string $attributeName): int
{
foreach ($attributes as $attribute) {
if ($attribute['name'] === $attributeName) {
return (int) $attribute['value'];
}
}

return 0; // Default value if the attribute is not found
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@
use Kanvas\Companies\Models\Companies;
use Kanvas\Connectors\CMLink\Enums\PlanTypeEnum;
use Kanvas\Connectors\CMLink\Services\CustomerService;
use Kanvas\Connectors\CMLink\Services\OrderService as ServicesOrderService;
use Kanvas\Connectors\EasyActivation\Services\OrderService;
use Kanvas\Connectors\ESim\DataTransferObject\ESimStatus;
use Kanvas\Connectors\ESim\Enums\ProviderEnum;
use Kanvas\Connectors\ESim\Support\FileSizeConverter;
use Kanvas\Connectors\ESimGo\Enums\IccidStatusEnum;
use Kanvas\Connectors\ESimGo\Services\ESimService;
use Kanvas\Inventory\Products\Models\Products;
use Kanvas\Social\Messages\Models\Message;
use Kanvas\Souk\Orders\Models\Order;

Expand Down Expand Up @@ -49,7 +51,7 @@ public function handle(): void
$messages = Message::fromApp($app)
->fromCompany($company)
->notDeleted()
->whereIsPublic()
//->whereIsPublic()
->orderBy('id', 'desc')
->get();

Expand All @@ -75,13 +77,23 @@ private function processMessage(
): void {
$iccid = $message->message['data']['iccid'] ?? null;
$bundle = $message->message['data']['plan'] ?? null;
$network = strtolower($message->message['items'][0]['variant']['attributes']['Variant Network'] ?? '');
//$network = strtolower($message->message['items'][0]['variant']['attributes']['Variant Network'] ?? '');
$network = '';
if (isset($message->message['items'][0]['variant']['products_id'])) {
$network = strtolower(Products::getById($message->message['items'][0]['variant']['products_id'])->getAttributeBySlug('product-provider')?->value ?? '');
}

if (empty($network) && $message->appModuleMessage && $message->appModuleMessage->entity instanceof Order) {
$network = strtolower($message->appModuleMessage->entity->items()->first()->variant?->product?->getAttributeBySlug('product-provider')?->value ?? '');
}

if (! $iccid) {
if (empty($network)) {
$this->info("Message ID: {$message->id} does not have a network.");

return;
}

if ($iccid === null) {
$this->info("Message ID: {$message->id} does not have an ICCID.");

return;
Expand Down Expand Up @@ -182,17 +194,26 @@ private function formatCmLinkResponse(Message $message, array $response): array

$variant = $message->appModuleMessage->entity->items()->first()->variant;
$totalData = $variant->getAttributeBySlug('data')?->value ?? 0;
$orderId = $message->message['order_id'] ?? null;
$dataUsage = 0;
$totalBytesData = FileSizeConverter::toBytes($totalData);
if ($orderId) {
$orderService = new ServicesOrderService($message->app, $message->company);
$dataUsage = $orderService->getOrderStatus($orderId)['total'];
}
// Calculate remaining data usage, ensuring it doesn't go negative
$remainingData = max(0, $totalBytesData - max(0, $dataUsage));

$esimStatus = new ESimStatus(
id: $response['activationCode'],
callTypeGroup: 'data',
initialQuantity: FileSizeConverter::toBytes($totalData),
remainingQuantity: FileSizeConverter::toBytes($totalData),
initialQuantity: $totalBytesData,
remainingQuantity: $remainingData,
assignmentDateTime: $installedDate,
assignmentReference: $response['activationCode'],
bundleState: IccidStatusEnum::getStatus(strtolower($response['state'])),
unlimited: $variant->getAttributeBySlug('variant-type')?->value === PlanTypeEnum::UNLIMITED->value,
expirationDate: Carbon::parse($installedDate)->addDays($variant->getAttributeBySlug('esim-days')?->value)->format('Y-m-d H:i:s'),
expirationDate: Carbon::parse($installedDate)->addDays((int) $variant->getAttributeBySlug('esim-days')?->value)->format('Y-m-d H:i:s'),
imei: $message->message['data']['imei_number'] ?? null,
esimStatus: $response['state'],
message: $response['installDevice'],
Expand All @@ -209,6 +230,12 @@ private function updateMessageStatus(Message $message, array $response, string $
$message->message = $messageData;
$message->saveOrFail();

$order = $message->appModuleMessage->entity;
$metadata = is_array($order->metadata) ? $order->metadata : [];
$metadata['esim_status'] = $response;
$order->metadata = $metadata;
$order->saveOrFail();

$this->info("Message ID: {$message->id} has been updated with the eSIM status.");

$inactiveStatuses = [
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php

declare(strict_types=1);

namespace App\Console\Commands\Connectors\Google;

use Baka\Traits\KanvasJobsTrait;
use Illuminate\Console\Command;
use Kanvas\Apps\Models\Apps;
use Kanvas\Companies\Models\Companies;
use Kanvas\Connectors\Google\Services\DiscoveryEngineDocumentService;
use Kanvas\Social\Messages\Models\Message;
use Kanvas\Social\MessagesTypes\Models\MessageType;
use Kanvas\Users\Models\Users;

class GoogleDeleteMessageDocumentCommand extends Command
{
use KanvasJobsTrait;

/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'kanvas:google-delete-all-message-document {app_id} {company_id} {message_type_id}';

/**
* The console command description.
*
* @var string|null
*/
protected $description = 'Send all messages to google recommendation as documents';

/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$app = Apps::getById((int) $this->argument('app_id'));
$this->overwriteAppService($app);

$company = Companies::getById((int) $this->argument('company_id'));

$messageType = (int) $this->argument('message_type_id');

$messageType = MessageType::getById($messageType, $app);
$query = Message::fromApp($app)->notDeleted()->where('message_types_id', $messageType->getId())->orderBy('id', 'DESC');
$cursor = $query->cursor();

$totalMessages = $query->count();

$messageRecommendation = new DiscoveryEngineDocumentService($app, $company);

$this->output->progressStart($totalMessages);

foreach ($cursor as $message) {
$messageRecommendation->deleteDocument($message);
$this->output->progressAdvance();
}

$this->output->progressFinish();

return;
}
}
Loading
Loading