@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.fs_get_parameter_value.adoc[]" as config.fs_get_parameter_value << FN >> {
  --
}

entity "puml-link:dhw:sqldb:logs.usp_executionlog_insert.adoc[]" as logs.usp_ExecutionLog_insert << P >> {
  --
}

entity "puml-link:dhw:sqldb:property.usp_external_property_import.adoc[]" as property.usp_external_property_import << P >> {
  --
}

entity "puml-link:dhw:sqldb:property.usp_repoobject_inheritance.adoc[]" as property.usp_RepoObject_Inheritance << P >> {
  --
}

entity "puml-link:dhw:sqldb:property.usp_repoobjectcolumn_inheritance.adoc[]" as property.usp_RepoObjectColumn_Inheritance << P >> {
  --
}

entity "puml-link:dhw:sqldb:property.usp_repoobjectproperty_collect.adoc[]" as property.usp_RepoObjectProperty_collect << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.repoobject_reference_persistence.adoc[]" as reference.RepoObject_reference_persistence << V >> {
  **referenced_RepoObject_guid** : (uniqueidentifier)
  - **referencing_RepoObject_guid** : (uniqueidentifier)
  - InformationSource : (varchar(27))
  - referenced_entity_name : (nvarchar(128))
  - referenced_fullname : (nvarchar(261))
  referenced_id : (int)
  - referenced_schema_name : (nvarchar(128))
  referenced_type : (char(2))
  - referencing_entity_name : (nvarchar(128))
  - referencing_fullname : (nvarchar(261))
  referencing_id : (int)
  - referencing_schema_name : (nvarchar(128))
  referencing_type : (varchar(2))
  --
}

entity "puml-link:dhw:sqldb:reference.repoobject_reference_persistence_target_as_source.adoc[]" as reference.RepoObject_reference_persistence_target_as_source << V >> {
  - InformationSource : (varchar(28))
  referenced_entity_name : (nvarchar(128))
  referenced_fullname : (nvarchar(517))
  - referenced_id : (int)
  referenced_RepoObject_guid : (uniqueidentifier)
  referenced_schema_name : (nvarchar(128))
  referenced_type : (char(2))
  referencing_entity_name : (nvarchar(128))
  referencing_fullname : (nvarchar(517))
  referencing_id : (int)
  referencing_RepoObject_guid : (uniqueidentifier)
  referencing_schema_name : (nvarchar(128))
  referencing_type : (char(2))
  --
}

entity "puml-link:dhw:sqldb:reference.repoobject_reference_t.adoc[]" as reference.RepoObject_reference_T << U >> {
  **referenced_RepoObject_guid** : (uniqueidentifier)
  **referencing_RepoObject_guid** : (uniqueidentifier)
  - is_ReversePersistenceViaView : (bit)
  referenced_entity_name : (nvarchar(128))
  referenced_external_AntoraComponent : (nvarchar(128))
  referenced_external_AntoraModule : (nvarchar(128))
  referenced_is_external : (int)
  - referenced_is_PersistenceSource : (bit)
  - referenced_is_PersistenceTarget : (bit)
  referenced_schema_name : (nvarchar(128))
  referenced_type : (char(2))
  referencing_entity_name : (nvarchar(128))
  referencing_external_AntoraComponent : (nvarchar(128))
  referencing_external_AntoraModule : (nvarchar(128))
  referencing_is_external : (int)
  - referencing_is_PersistenceTarget : (bit)
  - referencing_is_PersistenceUspSourceRef : (bit)
  referencing_is_PersistenceUspTargetRef : (bit)
  referencing_schema_name : (nvarchar(128))
  referencing_type : (varchar(2))
  # referenced_fullname : (nvarchar(261))
  # referenced_fullname2 : (nvarchar(257))
  ~ referenced_puml_entity : (nvarchar(4000))
  # referencing_fullname : (nvarchar(261))
  # referencing_fullname2 : (nvarchar(257))
  ~ referencing_puml_entity : (nvarchar(4000))
  --
}

entity "puml-link:dhw:sqldb:reference.usp_additional_reference.adoc[]" as reference.usp_additional_Reference << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_persist_additional_reference_from_properties_tgt.adoc[]" as reference.usp_PERSIST_additional_Reference_from_properties_tgt << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_persist_additional_reference_from_ssas_tgt.adoc[]" as reference.usp_PERSIST_additional_Reference_from_ssas_tgt << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_persist_additional_reference_wo_columns_from_properties_tgt.adoc[]" as reference.usp_PERSIST_additional_Reference_wo_columns_from_properties_tgt << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_persist_repoobject_reference_t.adoc[]" as reference.usp_PERSIST_RepoObject_reference_T << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_persist_repoobjectcolumn_reference_t.adoc[]" as reference.usp_PERSIST_RepoObjectColumn_reference_T << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_repoobject_referencetree_insert.adoc[]" as reference.usp_RepoObject_ReferenceTree_insert << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_repoobject_update_sysobjectqueryplan.adoc[]" as reference.usp_RepoObject_update_SysObjectQueryPlan << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_repoobjectsource_firstresultset.adoc[]" as reference.usp_RepoObjectSource_FirstResultSet << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_repoobjectsource_queryplan.adoc[]" as reference.usp_RepoObjectSource_QueryPlan << P >> {
  --
}

entity "puml-link:dhw:sqldb:reference.usp_update_referencing_count.adoc[]" as reference.usp_update_Referencing_Count << P >> {
  --
}

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))
  --
}

entity "puml-link:dhw:sqldb:repo.repoobject_persistence.adoc[]" as repo.RepoObject_persistence << U >> {
  - **target_RepoObject_guid** : (uniqueidentifier)
  - has_history : (bit)
  - has_history_columns : (bit)
  history_schema_name : (nvarchar(128))
  history_table_name : (nvarchar(128))
  - 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_persist_source : (bit)
  - is_persistence_truncate : (bit)
  - is_persistence_update_changed : (bit)
  source_filter : (nvarchar(4000))
  source_RepoObject_guid : (uniqueidentifier)
  source_RepoObject_name : (nvarchar(128))
  target_filter : (nvarchar(4000))
  ~ is_persistence : (bit)
  ~ temporal_type : (tinyint)
  --
}

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

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

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

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:repo.usp_repoobjectcolumn_update_repoobjectcolumn_column_id.adoc[]" as repo.usp_RepoObjectColumn_update_RepoObjectColumn_column_id << P >> {
  --
}

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

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

entity "puml-link:dhw:sqldb:ssas.usp_persist_repoobjectcolumn_translation_t.adoc[]" as ssas.usp_PERSIST_RepoObjectColumn_translation_T << P >> {
  --
}

entity "puml-link:dhw:sqldb:uspgenerator.usp_generatorusp_insert_update_persistence.adoc[]" as uspgenerator.usp_GeneratorUsp_insert_update_persistence << P >> {
  --
}

config.fs_get_parameter_value <.. repo.usp_main
logs.usp_ExecutionLog_insert <.. repo.usp_main
property.usp_external_property_import <.. repo.usp_main
property.usp_RepoObject_Inheritance <.. repo.usp_main
property.usp_RepoObjectColumn_Inheritance <.. repo.usp_main
property.usp_RepoObjectProperty_collect <.. repo.usp_main
reference.RepoObject_reference_persistence <.. repo.usp_main
reference.RepoObject_reference_persistence_target_as_source <.. repo.usp_main
reference.RepoObject_reference_T <.. repo.usp_main
reference.usp_additional_Reference <.. repo.usp_main
reference.usp_PERSIST_additional_Reference_from_properties_tgt <.. repo.usp_main
reference.usp_PERSIST_additional_Reference_from_ssas_tgt <.. repo.usp_main
reference.usp_PERSIST_additional_Reference_wo_columns_from_properties_tgt <.. repo.usp_main
reference.usp_PERSIST_RepoObject_reference_T <.. repo.usp_main
reference.usp_PERSIST_RepoObjectColumn_reference_T <.. repo.usp_main
reference.usp_RepoObject_ReferenceTree_insert <.. repo.usp_main
reference.usp_RepoObject_update_SysObjectQueryPlan <.. repo.usp_main
reference.usp_RepoObjectSource_FirstResultSet <.. repo.usp_main
reference.usp_RepoObjectSource_QueryPlan <.. repo.usp_main
reference.usp_update_Referencing_Count <.. repo.usp_main
repo.RepoObject <.. repo.usp_main
repo.RepoObject_persistence <.. repo.usp_main
repo.usp_Index_ForeignKey <.. repo.usp_main
repo.usp_index_inheritance <.. repo.usp_main
repo.usp_PERSIST_RepoObject_sat2_T <.. repo.usp_main
repo.usp_RepoObjectColumn_update_RepoObjectColumn_column_id <.. repo.usp_main
repo.usp_sync_guid <.. repo.usp_main
repo.usp_sync_guid_ssas <.. repo.usp_main
ssas.usp_PERSIST_RepoObjectColumn_translation_T <.. repo.usp_main
uspgenerator.usp_GeneratorUsp_insert_update_persistence <.. repo.usp_main
footer The diagram is interactive and contains links.
@enduml

