-- File: generate_comments_apiview_common_columns.eex.sql
-- Location: musebms/database/all/ms_syst_priv/functions/generate_comments_apiview_common_columns.eex.sql
-- Project: Muse Systems Business Management System
--
-- Copyright © Lima Buttgereit Holdings LLC d/b/a Muse Systems
-- This file may include content copyrighted and licensed from third parties.
--
-- See the LICENSE file in the project root for license terms and conditions.
-- See the NOTICE file in the project root for copyright ownership information.
--
-- muse.information@musesystems.com :: https://muse.systems
DECLARE
var_table regclass :=
(p_view_config.table_schema || '.' || p_view_config.table_name)::regclass;
var_columns jsonb := $API_VIEW_COMMON_COLUMNS$
[
{
"column_name": "id",
"unique_values": true,
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
},
{
"column_name": "internal_name",
"required": true,
"unique_values": true
},
{
"column_name": "display_name",
"required": true,
"unique_values": true,
"syst_update_mode": "maint"
},
{
"column_name": "external_name",
"required": true,
"syst_update_mode": "maint"
},
{
"column_name": "syst_defined",
"default_value": "`FALSE`",
"user_insert": false,
"user_update": false
},
{
"column_name": "user_maintainable",
"default_value": "`TRUE`",
"user_insert": false,
"user_update": false
},
{
"column_name": "syst_description",
"user_insert": false,
"user_update": false
},
{
"column_name": "user_description",
"syst_update_mode": "always"
},
{
"column_name": "diag_timestamp_created",
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
},
{
"column_name": "diag_role_created",
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
},
{
"column_name": "diag_timestamp_modified",
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
},
{
"column_name": "diag_wallclock_modified",
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
},
{
"column_name": "diag_role_modified",
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
},
{
"column_name": "diag_row_version",
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
},
{
"column_name": "diag_update_count",
"default_value": "Automatically Generated",
"user_insert": false,
"user_update": false
}
]
$API_VIEW_COMMON_COLUMNS$::jsonb;
BEGIN
PERFORM
ms_syst_priv.generate_comments_apiview_column(
p_view_config => p_view_config,
p_column_config =>
jsonb_populate_record(
NULL::ms_syst_priv.comments_config_apiview_column, c ) )
FROM
jsonb_array_elements( var_columns ) c
JOIN pg_attribute pa
ON c ->> 'column_name' = pa.attname::text
WHERE
pa.attrelid = var_table
AND pa.attnum > 0
AND NOT pa.attisdropped;
END;