Initial commit

This commit is contained in:
Andrey
2024-04-08 19:15:50 +03:00
commit 072ced2815
51 changed files with 2926 additions and 0 deletions

404
search/WatsonScheme.puml Normal file
View File

@@ -0,0 +1,404 @@
@startuml
frame AS_IS_ALL_SCHEME {
skinparam linetype ortho
scale 2500*1700
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_check" as search_check {
*id: int auto_increment "PK"
--
*locality: char(36)
*product: char(36)
*update_at: timestamp
--
unique(locality, 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_countries" as countries {
*id: int auto_increment "PK"
--
*code varchar(3)
*name: varchar(256)
*full_name: varchar(256)
*alpha_2: varchar(2)
*alpha_3: varchar(3)
--
unique (code)
}
entity "search_prices_types_localities" 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" 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)
}
entity "search_products_relevancy_counts" as products_relevancy_counts {
*id: bigint: auto_increment "PK"
--
*product_guid: char(36)
*orders: int(11)
*views: int(11)
*reviews: int(11)
*updated_at: timestamp
--
unique (product_guid)
}
entity "search_products_relevancy_data_items" as relevancy_data_items {
*id: bigint: auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*manufacter_guid: char(36)
*seo_position: int
*koef_sort: float
*updated_at: timestamp
--
unique (hash)
}
entity "search_products_sort_rating" as products_sort_rating {
*id: bigint: auto_increment "PK"
--
*product_guid: char(36)
*rating: float
*updated_at: timestamp
--
unique (product_guid)
}
entity "search_manufacturers_settings" as manufacturers_settings {
*id: int auto_increment "PK"
--
*manufacturer_guid: char(36)
*locality_guid: char(36)
*is_hide: tinyint(1)
*updated_at: timestamp
*created_at: timestamp
--
unique (manufacturer_guid, locality_guid)
}
entity "search_manufacturers" as manufacturers {
*id: int auto_increment "PK"
--
*guid: char(36)
*name: varchar(256)
*is_our: tinyint(1)
*description: varchar(256)
*updated_at: timestamp
--
unique (guid)
}
entity "search_products" as products {
*id: int auto_increment "PK"
--
*is_consumable: tinyint(1)
*is_on_site: tinyint(1)
*is_visible: tinyint(1)
*status: smallint
*is_discountinued: tinyint(1)
*is_for_order: tinyint(1)
*sku: int
*height: float
*lenght: float
*width: float
*guid: char(36)
*manufacter_guid: char(36)
*name_site: varchar(256)
*category: char(36)
*name_pdm: varchar(256)
*name_wtis: varchar(256)
*name_contractor: varchar(256)
*keywords: varchar(256)
*lights: varchar(20)
*country_code: varchar(3)
*uri: text
*advantages: text
*description: text
*equipment: text
*features: text
*updated_at: timestamp
--
unique (guid)
}
entity "search_products_categories" as products_categories {
*id: int auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*category_guid: char(36)
*is_enabled: tinyint(1)
*updated_at: timestamp
--
unique (hash)
}
entity "search_categories_settings" as categories_settings {
*id: int auto_increment "PK"
--
*category_guid: char(36)
*locality_guid: char(36)
*is_hide: tinyint(1)
*updated_at: timestamp
*created_at: timestamp
--
unique (category_guid, locality_guid)
}
entity "search_categories_relationship" as categories_relationship {
*id: int auto_increment "PK"
--
*parent: char(36)
*child: char(36)
*main: tinyint(1)
*level: int
*line: int
*created_at: timestamp
}
entity "search_categories" as categories {
*id: int auto_increment "PK"
--
*guid: char(36)
name: varchar(256)
type: varchar(256)
parent_guid: char(36)
is_active: tinyint(1)
is_enable: tinyint(1)
up_caption: varchar(256)
updated_at: timestamp
--
unique (guid)
}
entity "search_products_sale" as product_sale {
*id: bigint: auto_increment "PK"
--
*hash: char(40)
*guid: char(36)
*product_guid: char(36)
*locality_guid: char(36)
remaining: int
price: float
updated_at: timestamp
--
unique (hash)
}
entity "search_promotions" as promotions {
*id: int: auto_increment "PK"
--
*product_guid: char(36)
*locality_guid char(36)
*name: varchar(256)
*updated_at: timestamp
}
entity "search_specifications_bool" as specifications_bool {
*id: int auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*guid: char(36)
*name: varchar(256)
*unit: varchar(256)
*description: text
*value: tinyint(1)
*updated_at: timestamp
--
unique (hash)
}
entity "search_specifications_collection" as specifications_collection {
*id: int auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*guid: char(36)
*name: varchar(256)
*unit: varchar(256)
*description: text
*value: varchar(256)
*value_guid: char(36)
*updated_at: timestamp
--
unique (hash)
}
entity "search_specifications_float" as specifications_float {
*id: int auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*guid: char(36)
*name: varchar(256)
*unit: varchar(256)
*description: text
*value: float
*updated_at: timestamp
--
unique (hash)
}
entity "search_specifications_int" as specifications_int {
*id: int auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*guid: char(36)
*name: varchar(256)
*unit: varchar(256)
*description: text
*value: int
*updated_at: timestamp
--
unique (hash)
}
entity "search_specifications_range" as specifications_range {
*id: int auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*guid: char(36)
*name: varchar(256)
*unit: varchar(256)
*description: text
*value_gte: float
*value_lte: float
*updated_at: timestamp
--
unique (hash)
}
entity "search_specifications_text" as specifications_text {
*id: int auto_increment "PK"
--
*hash: char(40)
*product_guid: char(36)
*guid: char(36)
*name: varchar(256)
*unit: varchar(256)
*description: text
*value: varchar(256)
*updated_at: timestamp
--
unique (hash)
}
entity "search_locality" as locality {
*id: mediumint(9) auto_increment "PK"
--
*name: char(50)
*english_name: varchar(255)
*areg_id: char(36)
*is_enabled: tinyint(1)
}
entity "search_dates_sync" as dates_sync {
*id: int auto_increment "PK"
--
*is_successful tinyint(1)
*'system': text
*message: text
*date: datetime
}
'Связи
products -d----> specifications_bool
specifications_bool -r-> specifications_range
specifications_bool -r-> specifications_text
specifications_bool -r-> specifications_collection
specifications_bool -r-> specifications_int
specifications_bool -r-> specifications_float
'products -d---> specifications_range
'products -d---> specifications_text
'products -d---> specifications_collection
'products -d---> specifications_int
'products -d---> specifications_float
note left of specifications_bool: Все таблицы с тх связаны с \nтаблицей товаров по product_guid
products -l--> manufacturers
manufacturers -l-> manufacturers_settings
prices_types_localities -> localities_offices
prices_types_products -> prices_types_localities
products -d--> promotions
products -d--> availability
products -d--> search_check
products --> remaining
products -r--> relevancy_data_items
product_sale -> localities_offices
promotions -> localities_offices
products -l--> prices_types_products
products -u-> categories
products -> products_relevancy_counts
products -> product_sale
products -> products_sort_rating
categories -> categories_relationship
categories -> categories_settings
products_categories -> products
products_categories -> categories
}
@enduml