@startuml
left to right direction
'top to bottom direction
hide circle
'avoide "." issues:
set namespaceSeparator none


skinparam class {
  BackgroundColor White
  BackgroundColor<<FN>> Yellow
  BackgroundColor<<FS>> Yellow
  BackgroundColor<<FT>> LightGray
  BackgroundColor<<IF>> Yellow
  BackgroundColor<<IS>> Yellow
  BackgroundColor<<P>> Aqua
  BackgroundColor<<PC>> Aqua
  BackgroundColor<<SN>> Yellow
  BackgroundColor<<SO>> SlateBlue
  BackgroundColor<<TF>> LightGray
  BackgroundColor<<TR>> Tomato
  BackgroundColor<<U>> White
  BackgroundColor<<V>> WhiteSmoke
  BackgroundColor<<X>> Aqua
  BackgroundColor<<external>> AliceBlue
}


entity "puml-link:dhw:sqldb:config.parameter.adoc[]" as config.Parameter << U >> {
  - **Parameter_name** : (varchar(100))
  - **sub_Parameter** : (nvarchar(128))
  Parameter_default_value : (nvarchar(max))
  Parameter_desciption : (nvarchar(1000))
  Parameter_value : (nvarchar(max))
  ~ Parameter_value_result : (nvarchar(max))
  ~ Parameter_value_result_date : (date)
  ~ Parameter_value_result_datetime : (datetime)
  ~ Parameter_value_result_int : (int)
  --
}

entity "puml-link:dhw:sqldb:property.propertyname_repoobject_t.adoc[]" as property.PropertyName_RepoObject_T << U >> {
  **property_name** : (nvarchar(128))
  - has_inheritance : (bit)
  --
}

entity "puml-link:dhw:sqldb:property.repoobjectproperty.adoc[]" as property.RepoObjectProperty << U >> {
  - **RepoObjectProperty_id** : (int)
  inheritance : (tinyint)
  - property_name : (nvarchar(128))
  property_value : (nvarchar(max))
  - RepoObject_guid : (uniqueidentifier)
  ~ property_bigint : (bigint)
  ~ property_float : (float)
  ~ property_int : (int)
  ~ property_money : (money)
  ~ property_real : (real)
  --
}

entity "puml-link:dhw:sqldb:property.repoobjectproperty_inheritancetype_inheritancedefinition.adoc[]" as property.RepoObjectProperty_InheritanceType_InheritanceDefinition << V >> {
  - **RepoObject_guid** : (uniqueidentifier)
  - **property_name** : (nvarchar(128))
  Inheritance_Source_fullname : (nvarchar(261))
  Inheritance_StringAggSeparatorSql : (nvarchar(max))
  InheritanceDefinition : (nvarchar(max))
  InheritanceType : (int)
  par_Inheritance_StringAggSeparatorSql : (nvarchar(max))
  par_InheritanceDefintion : (nvarchar(max))
  par_InheritanceType : (int)
  property_value : (nvarchar(max))
  - RepoObject_fullname : (nvarchar(261))
  - RepoObject_type : (char(2))
  ro_Inheritance_StringAggSeparatorSql : (nvarchar(4000))
  ro_InheritanceDefinition : (nvarchar(4000))
  ro_InheritanceType : (tinyint)
  sub_Inheritance_StringAggSeparatorSql : (nvarchar(max))
  sub_InheritanceDefintion : (nvarchar(max))
  sub_InheritanceType : (int)
  --
}

entity "puml-link:dhw:sqldb:property.repoobjectproperty_inheritancetype_resulting_inheritancedefinition.adoc[]" as property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition << V >> {
  Inheritance_Source_fullname : (nvarchar(261))
  Inheritance_StringAggSeparatorSql : (nvarchar(max))
  InheritanceDefinition : (nvarchar(max))
  InheritanceType : (int)
  - is_force_inherit_empty_source : (int)
  - is_StringAggAllSources : (int)
  - property_name : (nvarchar(128))
  property_value : (nvarchar(max))
  - RepoObject_fullname : (nvarchar(261))
  - RepoObject_guid : (uniqueidentifier)
  - RepoObject_type : (char(2))
  resulting_InheritanceDefinition : (nvarchar(max))
  --
}

entity "puml-link:dhw:sqldb:repo.repoobject.adoc[]" as repo.RepoObject << U >> {
  - **RepoObject_guid** : (uniqueidentifier)
  external_AntoraComponent : (nvarchar(128))
  external_AntoraModule : (nvarchar(128))
  has_execution_plan_issue : (bit)
  has_get_referenced_issue : (bit)
  Inheritance_Source_fullname : (nvarchar(261))
  Inheritance_StringAggSeparatorSql : (nvarchar(4000))
  InheritanceDefinition : (nvarchar(4000))
  InheritanceType : (tinyint)
  - is_DocsExclude : (bit)
  - is_external : (bit)
  is_repo_managed : (bit)
  is_required_ObjectMerge : (bit)
  - is_ssas : (bit)
  is_SysObject_missing : (bit)
  - modify_dt : (datetime)
  pk_index_guid : (uniqueidentifier)
  pk_IndexPatternColumnName_new : (nvarchar(4000))
  Repo_history_table_guid : (uniqueidentifier)
  Repo_temporal_type : (tinyint)
  - RepoObject_name : (nvarchar(128))
  RepoObject_Referencing_Count : (int)
  - RepoObject_schema_name : (nvarchar(128))
  - RepoObject_type : (char(2))
  SysObject_id : (int)
  SysObject_modify_date : (datetime)
  - SysObject_name : (nvarchar(128))
  - SysObject_parent_object_id : (int)
  - SysObject_schema_name : (nvarchar(128))
  SysObject_type : (char(2))
  ~ has_different_sys_names : (bit)
  # is_RepoObject_name_uniqueidentifier : (int)
  # is_SysObject_name_uniqueidentifier : (int)
  ~ node_id : (bigint)
  # RepoObject_fullname : (nvarchar(261))
  # RepoObject_fullname2 : (nvarchar(257))
  # SysObject_fullname : (nvarchar(261))
  # SysObject_fullname2 : (nvarchar(257))
  ~ SysObject_query_sql : (nvarchar(406))
  # usp_persistence_fullname2 : (nvarchar(269))
  # usp_persistence_name : (nvarchar(140))
  --
}

config.Parameter <.. property.RepoObjectProperty_InheritanceType_InheritanceDefinition
property.PropertyName_RepoObject_T <.. property.RepoObjectProperty_InheritanceType_InheritanceDefinition
property.RepoObjectProperty <.. property.RepoObjectProperty_InheritanceType_InheritanceDefinition
property.RepoObjectProperty_InheritanceType_InheritanceDefinition <.. property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition
repo.RepoObject <.. property.RepoObjectProperty_InheritanceType_InheritanceDefinition
"config.Parameter::Parameter_value_result" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::sub_Inheritance_StringAggSeparatorSql"
"config.Parameter::Parameter_value_result" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::par_Inheritance_StringAggSeparatorSql"
"config.Parameter::Parameter_value_result" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::sub_InheritanceDefintion"
"config.Parameter::Parameter_value_result" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::par_InheritanceDefintion"
"config.Parameter::Parameter_value_result_int" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::par_InheritanceType"
"config.Parameter::Parameter_value_result_int" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::sub_InheritanceType"
"property.PropertyName_RepoObject_T::property_name" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::property_name"
"property.RepoObjectProperty::property_value" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::property_value"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::Inheritance_Source_fullname" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::Inheritance_Source_fullname"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::Inheritance_StringAggSeparatorSql" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::Inheritance_StringAggSeparatorSql"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::InheritanceDefinition" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::InheritanceDefinition"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::InheritanceType" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::InheritanceType"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::property_name" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::property_name"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::property_value" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::property_value"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::RepoObject_fullname" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::RepoObject_fullname"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::RepoObject_guid" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::RepoObject_guid"
"property.RepoObjectProperty_InheritanceType_InheritanceDefinition::RepoObject_type" <-- "property.RepoObjectProperty_InheritanceType_resulting_InheritanceDefinition::RepoObject_type"
"repo.RepoObject::Inheritance_Source_fullname" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::Inheritance_Source_fullname"
"repo.RepoObject::Inheritance_StringAggSeparatorSql" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::ro_Inheritance_StringAggSeparatorSql"
"repo.RepoObject::Inheritance_StringAggSeparatorSql" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::Inheritance_StringAggSeparatorSql"
"repo.RepoObject::InheritanceDefinition" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::ro_InheritanceDefinition"
"repo.RepoObject::InheritanceType" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::InheritanceType"
"repo.RepoObject::InheritanceType" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::ro_InheritanceType"
"repo.RepoObject::RepoObject_fullname" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::RepoObject_fullname"
"repo.RepoObject::RepoObject_guid" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::RepoObject_guid"
"repo.RepoObject::RepoObject_type" <-- "property.RepoObjectProperty_InheritanceType_InheritanceDefinition::RepoObject_type"footer The diagram is interactive and contains links.
@enduml

