```plantuml
@startuml
state Normal {
state "Get Data From query join" as join
state "Get Data From tb auto_deploy_product" as tb_deploy
state "Ext Service evm-inventory" as inv1
state "Restock" as restock
state "New Stock" as newstock
state "Data Auto Deploy Product" as dataFinal
state fork_state <<fork>>
[*] -> fork_state
fork_state -> join
join : Get Data By Query Filter voucherStockist, stockistFlagging, brandParent
fork_state -> tb_deploy
tb_deploy : Get Data last sync by created_at desc limit 1
state join_state <<join>>
tb_deploy --> join_state
join --> join_state
join_state --> Eligible
Eligible: if auto_deploy_product.od_id != complete_order.od_id
join_state --> NotEligible
NotEligible: stockist user buy from brand but doesn't use voucher or not flagged as stockist
NotEligible --> dataFinal : set status = unprocessed
Eligible --> Populate
Populate : to model/object
Populate --> inv1
inv1: call endpoint /v1/product-variant-attribute/search
state fork_state2 <<fork>>
inv1 --> fork_state2
fork_state2 --> restock
state restock {
state "Ext Service evm-inventory" as inv2
[*] --> model
model: set status = pending_restock
model --> inv2
inv2: call endpoint /v2/internal/stock?isContinueToLog=true
}
fork_state2 --> newstock
state newstock {
state "Ext Service evm-inventory" as inv3
state "model" as modelNewStock
state "Ext Service evm-inventory" as inv4
[*] --> modelNewStock
modelNewStock: set status = pending_new_stock
modelNewStock --> inv3
inv3: call endpoint /v1/product-variant-mapping/bulk
inv3 --> inv4
inv4: call endpoint /v2/internal/stock? isContinueToLog=true
}
state join_state2 <<join>>
restock --> join_state2
newstock --> join_state2
state "Model" as model1
state "Model" as model2
state "Model" as model3
join_state2 --> model1 : success
join_state2 --> model2 : unknown
join_state2 --> model3 : error
state join_state3 <<join>>
model1 --> join_state3
model1: set status = success
model2 --> join_state3
model2: set status not changed
model3 --> join_state3
model3: set status = failed
join_state3 --> dataFinal
dataFinal : store to tb_auto_deploy
dataFinal --> [*]
}
@enduml
```