Database/xyz/Functions/fn_GetAssetTypeList.sqladded--liquibase formatted sql
--changeset agentneo:fn_GetAssetTypeList runOnChange:true stripComments:false endDelimiter:/
--comment: Create or replace xyz.fn_GetAssetTypeList
----------------------------------------------------------------------------------------------------
-- Created by: AgentNeo
-- Created on: 03/07/2026
-- Description: Return all AssetTypes (full column set) for a project, ordered by Name. Filtered by
-- ProjectShardId so the result is project-isolated by construction.
----------------------------------------------------------------------------------------------------
DROP FUNCTION IF EXISTS xyz."fn_GetAssetTypeList";
CREATE OR REPLACE FUNCTION xyz."fn_GetAssetTypeList"(_projectId UUID)
RETURNS TABLE (
"AssetTypeId" UUID,
"ProjectId" UUID,
"CommissioningWorkflowId" UUID,
"Name" TEXT,
"Code" TEXT,
"CreatedBy" TEXT,
"InsertedOn" TIMESTAMP WITH TIME ZONE,
"LastModifiedOn" TIMESTAMP WITH TIME ZONE,
"LastModifiedBy" TEXT
)
AS $$
DECLARE
_projectShardId INT;
BEGIN
SELECT xyz."fn_GetProjectShardId"(_projectId) INTO _projectShardId;
RETURN QUERY
SELECT
at."AssetTypeId",
_projectId,
at."CommissioningWorkflowId",
at."Name",
at."Code",
at."CreatedBy",
at."InsertedOn",
at."LastModifiedOn",
at."LastModifiedBy"
FROM xyz."AssetType" at
WHERE at."ProjectShardId" = _projectShardId
ORDER BY at."Name";
END
$$ LANGUAGE plpgsql;
/