Querying JSON fields
harryet:
I have this query,
SELECT *
FROM users
WHERE settings->>'reminder_day' = 'Monday' -- Replace 'Monday' with your specific day
AND (settings->>'reminder_enabled')::boolean = true
AND (settings->>'reminder_time')::time BETWEEN '09:00'::time AND ('09:00'::time + INTERVAL '1 hour');
and Iād like to convert it to an Ash query - any suggestions?
# User.ex
attribute :settings, Proj.Resources.Accounts.UserSettings do
allow_nil?(false)
# TODO, can this be improved?!
default(fn -> %Proj.Resources.Accounts.UserSettings{} end)
end
# UserSettings.ex
defmodule Proj.Resources.Accounts.UserSettings do
use Ash.Resource,
data_layer: :embedded
attributes do
attribute :time_zone, :string do
allow_nil?(false)
default("Europe/London")
end
attribute :reminder_enabled, :boolean do
allow_nil?(false)
default(true)
end
attribute :reminder_time, :string do
allow_nil?(false)
default("09:00")
end
attribute :reminder_day, :string do
allow_nil?(false)
default("Monday")
end
end
end
zachdaniel:
settings[:reminder_day] == "Monday"
zachdaniel:
for example
harryet:
Thanks Zach šš¼