Изменения из поездки

This commit is contained in:
2025-04-05 21:59:37 +04:00
parent 28d4c52c5c
commit b9777deba6
2 changed files with 351 additions and 0 deletions
+2
View File
@@ -363,4 +363,6 @@ MigrationBackup/
FodyWeavers.xsd
.vscode
/Pf2eDataScrapper/.env
+349
View File
@@ -0,0 +1,349 @@
// https://dbml.dbdiagram.io/docs
// Entity
Table entity {
id int [pk]
name varchar [not null, note: "{*}.name"]
img varchar(100) [note: "{*}.img"]
type entity_type [not null]
slug varchar
rarity entity_rarity [not null, default: "common", note: "{*}.system.rarity"]
}
Enum entity_type {
feat
}
Enum entity_rarity {
common
uncommon
rare
}
// Alias
Table entity_aliases {
id int [pk, increment]
entity_id int [ref: > entity.id]
alias varchar [not null]
type alias_type [not null]
}
Enum alias_type {
old
english
hobby
}
// Keywords
Table keyword {
id int [pk, increment]
}
Table entity_keywords {
entity_id int [ref: > entity.id]
keyword_id int [ref: > keyword.id]
}
// Sources
TableGroup source_group {
source
entity_sources
}
Table source {
id int [pk, increment]
name varchar
url varchar
}
Table entity_sources {
entity_id int [ref: > entity.id]
source_id int [ref: > source.id]
suffix varchar [default: ""]
}
// External links
TableGroup external_group {
external_target
entity_external
}
Table external_target {
id int
name varchar
icon varchar
}
Table entity_external {
entity_id int [ref: > entity.id]
target_id int [ref: > external_target.id]
path varchar
}
// Traits
TableGroup trait_group {
trait
entity_traits
}
Table trait {
id int [pk]
name varchar [not null]
description text
}
Table entity_traits {
entity_id int [ref: > entity.id]
trait_id int [ref: > trait.id]
}
// ----------------------------------------------
// Action
Table action {
id int [pk, ref: - entity.id]
description text [not null, note: "{}.system.description"]
type action_type [not null, note: "{}.system.actionType.value"]
actions int [null, note: "{}.system.actions?.value"]
category action_category [null, note: "{}.system.category"] // Нет у 81 объекта
death_note bool [null, note: "{}.system.deathNote"]
Note: '''{} = Item.action
Перенаправление:
{}.system.publication -> entity_sources
{}.system.traits -> entity_traits
{}.system.frequency -> ??? Возможно нужно на общую frequency
Рассмотреть:
{}.system.selfEffect
{}.system.duration
{}.system.start - .value всегда 103462347
{}.system.target
Не использованы поля:
{}.system.subfeatures - пишем в описании пока что, потом подключение таблицы
{}.system.actionCategory - всегда пробел???
'''
}
Enum action_type {
action
free
reaction
passive
}
Enum action_category {
offensive
defensive
interaction
familiar
}
// Ancestery
Table ancestry {
id int [pk, ref: - entity.id]
description text [not null, note: "{}.system.description"]
hp int [not null, note: "{}.system.hp"]
reach int [not null, note: "{}.system.reach"]
size ancestry_size [not null, note: "{}.system.size"]
speed int [not null, note: "{}.system.speed"]
vision ancestry_vision [not null, note: "{}.system.vision"]
Note: '''{} = Item.ancestry
Перенаправление:
{}.system.publication -> entity_sources
{}.system.traits -> entity_traits
Рассмотреть:
{}.system.boosts
{}.system.flaws
{}.system.items - TODO добавить в определение dict-типа
{}.system.lanuages
Не использованы поля:
{}.system.additionalLanguages
'''
}
Enum ancestry_size {
med
lanuages
system
tiny
}
Enum ancestry_vision {
normal
low-light-vision
darkvision
}
// Armor
Table armor {
id int [pk, ref: - entity.id]
description text [not null, note: "{}.system.description"]
ac_bonus int [not null, note: "{}.system.acBonus"]
strength int [null, note: "{}.system.strength"]
check_penalty int [not null, note: "{}.system.checkPenalty"]
dex_cap int [not null, note: "{}.system.dexCap"]
speed_penalty int [not null, note: "{}.system.speedPenalty"]
bulk float [not null, note: "{}.system.bulk"]
category armor_category [not null, note: "{}.system.category"]
group armor_group [null, note: "{}.system.group"] // 16 без группы
level int [not null, note: "{}.system.level.value"]
price int [not null, note: "price({}.system.price.value)"]
size armor_size [not null, note: "{}.system.size"]
Note: '''{} = Item.armor
Перенаправление:
{}.system.publication -> entity_sources
{}.system.traits -> entity_traits
Рассмотреть:
{}.system.base_item - возможно связь на себя
{}.system.material
{}.system.runes
{}.system.specific
Не использованы поля:
{}.system.containerId - пустое
{}.system.hardness - всегда 0
{}.system.hp - всегда 0
{}.system.quantity - всегда 1
'''
}
Enum armor_category {
light
heavy
medium
light-barding
heavy-barding
unarmored
}
Enum armor_group {
leather
plate
wood
chain
cloth
skeletal
composite
}
Enum armor_size {
med
lg
}
// Background
Table background {
id int [pk, ref: - entity.id]
description text [not null, note: "{}.system.description"]
Note: '''{} = Item.background
Перенаправление:
{}.system.publication -> entity_sources
{}.system.traits -> entity_traits
Рассмотреть:
{}.system.boosts
Не использованы поля:
'''
}
// Feat
Table feat {
id int [pk, ref: - entity.id]
description text [not null, note: "{}.system.description"]
action_type feat_action_type [note: "{}.system.actionType.value"]
actions int [null, note: "{}.system.actions?.value"]
category feat_category [not null, note: "{}.system.category"]
level int [not null, note: "{}.system.level.value"]
level_taker int [null, note: "{}.system.level.taken"] // Всего 2 значения: 1, 2
max_takable int [null, note: "{}.system.level.maxTakable"]
location varchar(12) [null, note: "{}.system.level.location"]
only_level_1 bool [null, note: "{}.system.onlyLevel1"]
Note: '''{} = Item.feat
Перенаправление:
{}.system.publication -> entity_sources
{}.system.traits -> entity_traits
{}.system.frequency -> feat_frequency
Рассмотреть:
{}.system.prerequisites
{}.system.selfEffect
{}.system.duration
{}.system.start - .value всегда 103462347
{}.system.target
Не использованы поля:
{}.system.subfeatures - пишем в описании пока что, потом подключение таблицы
{}.system.actionCategory - всегда пробел???
'''
}
Enum feat_action_type {
passive
action
reaction
free
}
Enum feat_category {
ancestryfeature
classfeature
calling
class
skill
general
ancestry
bonus
deityboon
curse
pfsboon
}
Table feat_frequency {
feat_id int [pk, ref: > feat.id]
max int [not null, note: "{Item.feat}.system.frequency.max"]
per int [not null, note: "{Item.feat}.system.frequency.per"]
value int [null, note "{Item.feat}.system.frequency.value - что это вообще?!"]
}
/*
Table template {
id int [pk, ref: - entity.id]
description text [not null, note: "{}.system.description"]
Note: '''{} = Item.
Перенаправление:
{}.system.publication -> entity_sources
{}.system.traits -> entity_traits
Рассмотреть:
Не использованы поля:
'''
}
*/