@startuml skinparam linetype ortho '============================================================================================ '===========================================Микросервисы===================================== '============================================================================================ package Microservices <> { abstract "Shcat" as shcat { +request: POST +endpoint: http://shcat.vseinstrumenti.ru/rpc -- *Method: rests.get *nomenclature - guid товара *source - guid магазина -- +response -- *nomenclature - guid товара *source - guid офиса *quntity - количество остатков *quality - качество, по умолчанию 1 } abstract "HamletX10" as hamlet { +request: POST +enpoint: http://hamlet-v2.vseinstrumenti.ru/rpc -- *Method: availability.chain *store - guid офиса *nomenclature - guid товара *filter_zero_chain - скрывать или нет ЛЦ по которым нет наличия -- +response -- *available - Признак наличия *store - guid офиса *free - количество остатков } abstract "Officer" as officer { +request: POST +endpoint: https://officer2go.vseinstrumenti.ru/query -- *Method: availability.get_offices *locality_areg_id - areg_id города -- +response -- *id - guid офиса *created_at - Дата создания } abstract "Scrooge_sync" as scrooge { +request: GET +endpoint: http://exporter.scrooge-v2.vseinstrumenti.ru/file/price?after-id= -- +response -- *price *price_type } abstract "Scrooge_graphQL" as Scrooge_graphQL { +request: POST +endpoint: http://exporter.scrooge-v2.vseinstrumenti.ru/query -- *method: priceTypeBinding -- +response -- *priceTypeId *priceCategory *localityID } } package MySql <> { entity "search_availability_flag_{guid_office}" as availability { * id : int auto_increment "PK" -- *product : char(36) *is_availability : tinyint(1) *create_at : timestamp *update_at : timestamp -- unique (product) } entity "search_remaining_{guid_office}" as remaining { * id: int auto_increment "PK" -- *product: char(36) *remaining: int *create_at: timestamp *update_at: timestamp -- unique (product) } entity "search_localities_offices" as localities_offices { *id: int auto_increment "PK" -- *locality_guid: char(36) *office_guid: char(36) *is_active: tinyint(1) -- unique (office_guid) } entity "search_prices_types_localities_2" as prices_types_localities { *id: int auto_increment "PK" -- *hash: char(40) *locality_guid: char(36) *price_type_guid: char(36) *type: varchar(128) -- unique (hash) } entity "search_prices_types_products_2" as prices_types_products { *id: int auto_increment "PK" -- *hash: char(40) *product_guid: char(36) *price_type_guid: char(36) *price: decimal(10, 2) *updated_at: timestamp -- unique (hash) } } shcat -d-----> remaining hamlet -d-----> availability officer -d-----> localities_offices scrooge -d-----> prices_types_products Scrooge_graphQL -d--> prices_types_localities @enduml