# melhorias meli-sac ## principais problemas - qual data (estimated_deliver_date) enviar no pedido enviado? - regras não estarem juntas - não saber diferenciar seller_order do olist_order - falta de testes end 2 end - como diferenciar seller_order ou olist_order quando entrar no handler de mensagem transacionais ## possiveis soluções? ações - separar handlers (mensagens transacionais) - render templates (data absurdas) - logs (remover olist_commons) - domain (seller order, olist order) - documentar (behave?) fluxo mensagens transacionais criado -> faturado -> coletado -> enviado -> aguardando retirada -> entregue -> transferido e cancelado ```sequence Title: Flow of Messages to Buyer Meli buyer_purchase->order_created: [SellerOrder] Order Created order_created-->order_transfered: [SellerOrder] Order transfered to another Seller order_transfered-->buyer_purchase: [SellerOrder] Restart flow order_created->order_invoiced: [SellerOrder] Send Invoice to Meli order_invoiced->order_collected: [SellerOrder] Collecting packs order_collected->order_shipped: [SellerOrder] Shipped to Buyer order_shipped->order_awaiting_pickup: [SellerOrder] Awaiting Pickup at Correios order_awaiting_pickup->order_delivered: Buyer catched Package at Correios order_shipped->order_delivered: [SellerOrder] Delivered to Buyer order_created-->order_canceled: [SellerOrder] Order Canceled order_invoiced-->order_canceled: [SellerOrder] Order Canceled order_collected-->order_canceled: [SellerOrder] Order Canceled order_shipped-->order_canceled: [SellerOrder] Order Canceled ``` ```flow st=>start: Buyer Purchase e=>end: End oc=>operation: [SellerOrder] Order Created oi=>operation: [SellerOrder] Order Invoiced occ=>operation: [SellerOrder] Order Collected os=>operation: [SellerOrder] Order Shipped oap=>operation: [Package] Order Awaiting PickUp (Correios) od=>operation: [SellerOrder] Order Delivered ocld=>operation: [SellerOrder] Order Canceled ot=>operation: [SellerOrder] Order Transfered cond_awaiting_pickup=>condition: Awaiting PickUp? st(right)->oc(bottom)->oi(right)->occ->os(right)->cond_awaiting_pickup->od->e cond_awaiting_pickup(no, bottom)->od cond_awaiting_pickup(yes)->oap->od cond_awaiting_pickup@>oap({"stroke":"Red"})@>od({"stroke":"Red"}) od@>e({"stroke":"Green"}) ``` ```flow st=>start: Start e=>end: End op=>operation: My Operation op2=>operation: lalala cond=>condition: Yes or No? st->op->op2->cond cond(yes)->e cond(no)->op2 ``` ```sequence Alice->Bob: Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks! Note left of Alice: Alice responds Alice->Bob: Where have you been? ``` adminapp . . . . . . ToDos - meli-sac-not, meli-question-not, meli-claims, adminapp validar e migrar pra OCSIM - cache no adminapp do request para issues-api:v1/prefilled-answers/ - Remover coisas não usadas no adminapp batendo na issues-api - na issues-api tentar deixar os SNS async