@@ -89,6 +89,45 @@ defmodule AshTypescript.Test.Task do
8989 end
9090 end
9191
92+ read :read_with_typed_map_metadata do
93+ metadata :audit_entries , { :array , :map } ,
94+ constraints: [
95+ items: [
96+ fields: [
97+ field_name: [ type: :string ] ,
98+ old_value: [ type: :string ]
99+ ]
100+ ]
101+ ]
102+
103+ metadata :completion_info , :map ,
104+ constraints: [
105+ fields: [
106+ completed_at: [ type: :string ] ,
107+ completed_by: [ type: :string ]
108+ ]
109+ ]
110+
111+ prepare fn query , _context ->
112+ Ash.Query . after_action ( query , fn _query , results ->
113+ results_with_metadata =
114+ Enum . map ( results , fn record ->
115+ record
116+ |> Ash.Resource . put_metadata ( :audit_entries , [
117+ % { field_name: "title" , old_value: "Old Title" } ,
118+ % { field_name: "completed" , old_value: "false" }
119+ ] )
120+ |> Ash.Resource . put_metadata ( :completion_info , % {
121+ completed_at: "2025-01-15T10:30:00Z" ,
122+ completed_by: "user_123"
123+ } )
124+ end )
125+
126+ { :ok , results_with_metadata }
127+ end )
128+ end
129+ end
130+
92131 read :read_with_invalid_metadata_names do
93132 metadata :meta_1 , :string , allow_nil?: false , default: "metadata_value"
94133 metadata :is_valid? , :boolean , allow_nil?: false , default: true
0 commit comments