142 lines
3.6 KiB
Plaintext
142 lines
3.6 KiB
Plaintext
@startuml
|
|
skinparam linetype ortho
|
|
'============================================================================================
|
|
'===========================================Микросервисы=====================================
|
|
'============================================================================================
|
|
package Microservices <<cloud>> {
|
|
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 <<database>> {
|
|
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 |