@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:reference.repoobject_referencedlist.adoc[]" as reference.RepoObject_ReferencedList << V >> {
  --
  AntoraReferencedList : (nvarchar(max))
  Referencing_fullname : (nvarchar(261))
  Referencing_fullname2 : (nvarchar(257))
  - Referencing_guid : (uniqueidentifier)
  Referencing_type : (varchar(2))
  --
  --
}

entity "puml-link:dhw:sqldb:reference.repoobject_referencinglist.adoc[]" as reference.RepoObject_ReferencingList << V >> {
  --
  AntoraReferencingList : (nvarchar(max))
  Referenced_fullname : (nvarchar(261))
  Referenced_fullname2 : (nvarchar(257))
  - Referenced_guid : (uniqueidentifier)
  Referenced_type : (char(2))
  --
  --
}

entity "puml-link:dhw:sqldb:repo.repoobject_columnlist.adoc[]" as repo.RepoObject_ColumnList << V >> {
  --
  CreateColumnList : (nvarchar(max))
  DbmlColumnList : (nvarchar(max))
  PersistenceCompareColumnList : (nvarchar(max))
  PersistenceInsertColumnList : (nvarchar(max))
  PersistenceUpdateColumnList : (nvarchar(max))
  - RepoObject_guid : (uniqueidentifier)
  RepoObjectColumn_fullname : (nvarchar(520))
  --
  --
}

entity "puml-link:dhw:sqldb:repo.repoobject_gross.adoc[]" as repo.RepoObject_gross << V >> {
  --
  AntoraComponent : (nvarchar(max))
  AntoraModule : (nvarchar(max))
  Description : (nvarchar(max))
  external_AntoraComponent : (nvarchar(128))
  external_AntoraModule : (nvarchar(128))
  external_DatabaseName : (nvarchar(128))
  external_RepoDatabaseName : (nvarchar(128))
  has_different_sys_names : (bit)
  has_execution_plan_issue : (bit)
  has_get_referenced_issue : (bit)
  has_history : (bit)
  has_history_columns : (bit)
  history_schema_name : (nvarchar(128))
  history_table_name : (nvarchar(128))
  Inheritance_StringAggSeparatorSql : (nvarchar(4000))
  InheritanceDefinition : (nvarchar(4000))
  InheritanceType : (tinyint)
  - is_DocsExclude : (bit)
  is_DocsOutput : (int)
  - is_external : (bit)
  - is_in_reference : (int)
  is_persistence : (bit)
  is_persistence_check_duplicate_per_pk : (bit)
  is_persistence_check_for_empty_source : (bit)
  is_persistence_delete_changed : (bit)
  is_persistence_delete_missing : (bit)
  is_persistence_insert : (bit)
  is_persistence_merge_delete_missing : (bit)
  is_persistence_merge_insert : (bit)
  is_persistence_merge_update_changed : (bit)
  is_persistence_truncate : (bit)
  is_persistence_update_changed : (bit)
  is_repo_managed : (bit)
  - is_RepoObject_name_uniqueidentifier : (int)
  is_required_ObjectMerge : (bit)
  - is_ssas : (bit)
  is_SysObject_missing : (bit)
  - is_SysObject_name_uniqueidentifier : (int)
  - modify_dt : (datetime)
  node_id : (bigint)
  persistence_source_RepoObject_fullname : (nvarchar(261))
  persistence_source_RepoObject_fullname2 : (nvarchar(257))
  persistence_source_RepoObject_guid : (uniqueidentifier)
  persistence_source_RepoObject_xref : (nvarchar(4000))
  persistence_source_SysObject_fullname : (nvarchar(261))
  persistence_source_SysObject_fullname2 : (nvarchar(257))
  persistence_source_SysObject_xref : (nvarchar(4000))
  pk_index_guid : (uniqueidentifier)
  pk_IndexPatternColumnDatatype : (nvarchar(4000))
  pk_IndexPatternColumnName : (nvarchar(4000))
  pk_IndexPatternColumnName_new : (nvarchar(4000))
  pk_IndexSemanticGroup : (nvarchar(512))
  Property_ms_description : (nvarchar(4000))
  Repo_history_table_guid : (uniqueidentifier)
  Repo_temporal_type : (tinyint)
  - RepoObject_fullname : (nvarchar(261))
  - RepoObject_fullname2 : (nvarchar(257))
  - RepoObject_guid : (uniqueidentifier)
  - RepoObject_name : (nvarchar(128))
  RepoObject_Referencing_Count : (int)
  - RepoObject_schema_name : (nvarchar(128))
  - RepoObject_type : (char(2))
  RepoObject_type_name : (nvarchar(128))
  source_filter : (nvarchar(4000))
  - SysObject_fullname : (nvarchar(261))
  - SysObject_fullname2 : (nvarchar(257))
  SysObject_id : (int)
  SysObject_modify_date : (datetime)
  - SysObject_name : (nvarchar(128))
  - SysObject_parent_object_id : (int)
  SysObject_query_executed_dt : (datetime)
  SysObject_query_plan : (xml)
  - SysObject_query_sql : (nvarchar(406))
  - SysObject_schema_name : (nvarchar(128))
  SysObject_type : (char(2))
  SysObject_type_name : (nvarchar(128))
  tables_dataCategory : (nvarchar(500))
  tables_description : (nvarchar(max))
  tables_isHidden : (bit)
  target_filter : (nvarchar(4000))
  temporal_type : (tinyint)
  - usp_persistence_name : (nvarchar(140))
  usp_persistence_RepoObject_guid : (uniqueidentifier)
  uspgenerator_usp_id : (int)
  --
  --
}

entity "puml-link:dhw:sqldb:repo.repoobject_sat2.adoc[]" as repo.RepoObject_sat2 << V >> {
  - **RepoObject_guid** : (uniqueidentifier)
  --
  AntoraReferencedList : (nvarchar(max))
  AntoraReferencingList : (nvarchar(max))
  CreateColumnList : (nvarchar(max))
  DbmlColumnList : (nvarchar(max))
  PersistenceCompareColumnList : (nvarchar(max))
  PersistenceInsertColumnList : (nvarchar(max))
  PersistenceUpdateColumnList : (nvarchar(max))
  sql_modules_antora : (nvarchar(max))
  sql_modules_definition : (nvarchar(max))
  sql_modules_formatted : (nvarchar(max))
  sql_modules_formatted2 : (nvarchar(max))
  --
  --
}

entity "puml-link:dhw:sqldb:repo.repoobject_sat2_t.adoc[]" as repo.RepoObject_sat2_T << U >> {
  - **RepoObject_guid** : (uniqueidentifier)
  --
  AntoraReferencedList : (nvarchar(max))
  AntoraReferencingList : (nvarchar(max))
  CreateColumnList : (nvarchar(max))
  DbmlColumnList : (nvarchar(max))
  PersistenceCompareColumnList : (nvarchar(max))
  PersistenceInsertColumnList : (nvarchar(max))
  PersistenceUpdateColumnList : (nvarchar(max))
  sql_modules_antora : (nvarchar(max))
  sql_modules_definition : (nvarchar(max))
  sql_modules_formatted : (nvarchar(max))
  sql_modules_formatted2 : (nvarchar(max))
  --
  --
}

entity "puml-link:dhw:sqldb:repo.usp_persist_repoobject_sat2_t.adoc[]" as repo.usp_PERSIST_RepoObject_sat2_T << P >> {
  --
  --
  --
}

entity "puml-link:dhw:sqldb:sqlparse.repoobject_sqlmodules_repo_sys.adoc[]" as sqlparse.RepoObject_SqlModules_Repo_Sys << V >> {
  --
  is_json_sql_modules_json : (int)
  is_outdated : (bit)
  - modify_date : (datetime)
  - RepoObject_guid : (uniqueidentifier)
  sql_modules_definition : (nvarchar(max))
  sql_modules_dt : (datetime)
  sql_modules_formatted : (nvarchar(max))
  sql_modules_formatted2 : (nvarchar(max))
  sql_modules_json : (nvarchar(max))
  SysObject_type : (char(2))
  --
  --
}

reference.RepoObject_ReferencedList <.. repo.RepoObject_sat2
reference.RepoObject_ReferencingList <.. repo.RepoObject_sat2
repo.RepoObject_ColumnList <.. repo.RepoObject_sat2
repo.RepoObject_gross <.. repo.RepoObject_sat2
repo.RepoObject_sat2 <.. repo.RepoObject_sat2_T
repo.RepoObject_sat2 <.. repo.usp_PERSIST_RepoObject_sat2_T
sqlparse.RepoObject_SqlModules_Repo_Sys <.. repo.RepoObject_sat2
"reference.RepoObject_ReferencedList::AntoraReferencedList" <-- "repo.RepoObject_sat2::AntoraReferencedList"
"reference.RepoObject_ReferencingList::AntoraReferencingList" <-- "repo.RepoObject_sat2::AntoraReferencingList"
"repo.RepoObject_ColumnList::CreateColumnList" <-- "repo.RepoObject_sat2::CreateColumnList"
"repo.RepoObject_ColumnList::DbmlColumnList" <-- "repo.RepoObject_sat2::DbmlColumnList"
"repo.RepoObject_ColumnList::PersistenceCompareColumnList" <-- "repo.RepoObject_sat2::PersistenceCompareColumnList"
"repo.RepoObject_ColumnList::PersistenceInsertColumnList" <-- "repo.RepoObject_sat2::PersistenceInsertColumnList"
"repo.RepoObject_ColumnList::PersistenceUpdateColumnList" <-- "repo.RepoObject_sat2::PersistenceUpdateColumnList"
"repo.RepoObject_gross::RepoObject_guid" <-- "repo.RepoObject_sat2::RepoObject_guid"
"repo.RepoObject_sat2::AntoraReferencedList" <-- "repo.RepoObject_sat2_T::AntoraReferencedList"
"repo.RepoObject_sat2::AntoraReferencingList" <-- "repo.RepoObject_sat2_T::AntoraReferencingList"
"repo.RepoObject_sat2::CreateColumnList" <-- "repo.RepoObject_sat2_T::CreateColumnList"
"repo.RepoObject_sat2::DbmlColumnList" <-- "repo.RepoObject_sat2_T::DbmlColumnList"
"repo.RepoObject_sat2::PersistenceCompareColumnList" <-- "repo.RepoObject_sat2_T::PersistenceCompareColumnList"
"repo.RepoObject_sat2::PersistenceInsertColumnList" <-- "repo.RepoObject_sat2_T::PersistenceInsertColumnList"
"repo.RepoObject_sat2::PersistenceUpdateColumnList" <-- "repo.RepoObject_sat2_T::PersistenceUpdateColumnList"
"repo.RepoObject_sat2::RepoObject_guid" <-- "repo.RepoObject_sat2_T::RepoObject_guid"
"repo.RepoObject_sat2::sql_modules_antora" <-- "repo.RepoObject_sat2_T::sql_modules_antora"
"repo.RepoObject_sat2::sql_modules_definition" <-- "repo.RepoObject_sat2_T::sql_modules_definition"
"repo.RepoObject_sat2::sql_modules_formatted" <-- "repo.RepoObject_sat2_T::sql_modules_formatted"
"repo.RepoObject_sat2::sql_modules_formatted2" <-- "repo.RepoObject_sat2_T::sql_modules_formatted2"
"sqlparse.RepoObject_SqlModules_Repo_Sys::sql_modules_definition" <-- "repo.RepoObject_sat2::sql_modules_definition"
"sqlparse.RepoObject_SqlModules_Repo_Sys::sql_modules_formatted" <-- "repo.RepoObject_sat2::sql_modules_formatted"
"sqlparse.RepoObject_SqlModules_Repo_Sys::sql_modules_formatted2" <-- "repo.RepoObject_sat2::sql_modules_formatted2"
@enduml

