-module(glitch@types@condition). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([decoder/0, from_json/1, to_json/1]). -export_type([condition/0]). -type condition() :: {condition, gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary())}. -spec decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, condition()} | {error, list(gleam@dynamic:decode_error())}). decoder() -> gleam@dynamic:decode8( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7) -> {condition, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7} end, gleam@dynamic:optional_field( <<"broadcaster_user_id"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"from_broadcaster_id"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"moderator_user_id"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"to_broadcaster_id_user_id"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"reward_id"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"client_id"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"extension_client_id"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"user_id"/utf8>>, fun gleam@dynamic:string/1 ) ). -spec from_json(binary()) -> {ok, condition()} | {error, gleam@json:decode_error()}. from_json(Json_string) -> gleam@json:decode(Json_string, decoder()). -spec to_json(condition()) -> gleam@json:json(). to_json(Transport) -> gleam@json:object( [{<<"broadcaster_user_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(2, Transport), fun gleam@json:string/1 )}, {<<"from_broadcaster_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(3, Transport), fun gleam@json:string/1 )}, {<<"moderator_user_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(4, Transport), fun gleam@json:string/1 )}, {<<"to_broadcaster_id_user_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(5, Transport), fun gleam@json:string/1 )}, {<<"reward_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(6, Transport), fun gleam@json:string/1 )}, {<<"client_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(7, Transport), fun gleam@json:string/1 )}, {<<"extension_client_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(8, Transport), fun gleam@json:string/1 )}, {<<"user_id"/utf8>>, glitch@extended@json_ext:option( erlang:element(9, Transport), fun gleam@json:string/1 )}] ).