-module(plunk@internal@contacts_def). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([list_contacts_decoder/0, count_decoder/0, created_contact_decoder/0, deleted_contact_decoder/0, subscription_decoder/0, get_contact_decoder/0]). -export_type([event/0, action/0, trigger/0, email/0, extended_contact/0, contact/0, created_contact/0, count/0, subscription/0, deleted_contact/0]). -type event() :: {event, binary(), binary(), binary(), gleam@option:option(binary()), gleam@option:option(binary()), binary(), binary()}. -type action() :: {action, binary(), binary(), boolean(), integer(), gleam@option:option(binary()), gleam@option:option(binary()), binary(), binary()}. -type trigger() :: {trigger, binary(), binary(), binary(), gleam@option:option(binary()), binary(), binary(), gleam@option:option(event()), gleam@option:option(action())}. -type email() :: {email, binary(), binary(), binary(), binary(), binary(), binary(), gleam@option:option(binary()), gleam@option:option(binary()), binary(), binary(), binary()}. -type extended_contact() :: {extended_contact, binary(), binary(), gleam@option:option(binary()), binary(), binary(), list(trigger()), list(email())}. -type contact() :: {contact, binary(), binary(), boolean(), gleam@option:option(binary()), binary(), binary()}. -type created_contact() :: {created_contact, boolean(), binary(), binary(), boolean(), gleam@option:option(gleam@dynamic:dynamic_()), binary(), binary()}. -type count() :: {count, integer()}. -type subscription() :: {subscription, boolean(), binary(), boolean()}. -type deleted_contact() :: {deleted_contact, boolean(), binary(), binary(), boolean(), gleam@option:option(gleam@dynamic:dynamic_()), binary(), binary()}. -spec action_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, action()} | {error, list(gleam@dynamic:decode_error())}). action_decoder() -> gleam@dynamic:decode8( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7) -> {action, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7} end, gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"name"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"runOnce"/utf8>>, fun gleam@dynamic:bool/1), gleam@dynamic:field(<<"delay"/utf8>>, fun gleam@dynamic:int/1), gleam@dynamic:field( <<"projectId"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ), gleam@dynamic:field( <<"templateId"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ), gleam@dynamic:field(<<"createdAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"updatedAt"/utf8>>, fun gleam@dynamic:string/1) ). -spec event_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, event()} | {error, list(gleam@dynamic:decode_error())}). event_decoder() -> gleam@dynamic:decode7( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6) -> {event, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6} end, gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"name"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"projectId"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field( <<"templateId"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ), gleam@dynamic:field( <<"campaignId"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ), gleam@dynamic:field(<<"createdAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"updatedAt"/utf8>>, fun gleam@dynamic:string/1) ). -spec trigger_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, trigger()} | {error, list(gleam@dynamic:decode_error())}). trigger_decoder() -> gleam@dynamic:decode8( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7) -> {trigger, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6, Field@7} end, gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"contactId"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"eventId"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field( <<"actionId"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ), gleam@dynamic:field(<<"createdAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"updatedAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field( <<"event"/utf8>>, gleam@dynamic:optional(event_decoder()) ), gleam@dynamic:field( <<"action"/utf8>>, gleam@dynamic:optional(action_decoder()) ) ). -spec list_contacts_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, list(contact())} | {error, list(gleam@dynamic:decode_error())}). list_contacts_decoder() -> gleam@dynamic:list( gleam@dynamic:decode6( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5) -> {contact, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5} end, gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"email"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"subscribed"/utf8>>, fun gleam@dynamic:bool/1), gleam@dynamic:field( <<"data"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ), gleam@dynamic:field( <<"createdAt"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:field( <<"updatedAt"/utf8>>, fun gleam@dynamic:string/1 ) ) ). -spec count_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, count()} | {error, list(gleam@dynamic:decode_error())}). count_decoder() -> gleam@dynamic:decode1( fun(Field@0) -> {count, Field@0} end, gleam@dynamic:field(<<"count"/utf8>>, fun gleam@dynamic:int/1) ). -spec created_contact_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, created_contact()} | {error, list(gleam@dynamic:decode_error())}). created_contact_decoder() -> gleam@dynamic:decode7( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6) -> {created_contact, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6} end, gleam@dynamic:field(<<"success"/utf8>>, fun gleam@dynamic:bool/1), gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"email"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"subscribed"/utf8>>, fun gleam@dynamic:bool/1), gleam@dynamic:field( <<"data"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:dynamic/1) ), gleam@dynamic:field(<<"createdAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"updatedAt"/utf8>>, fun gleam@dynamic:string/1) ). -spec deleted_contact_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, deleted_contact()} | {error, list(gleam@dynamic:decode_error())}). deleted_contact_decoder() -> gleam@dynamic:decode7( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6) -> {deleted_contact, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6} end, gleam@dynamic:field(<<"success"/utf8>>, fun gleam@dynamic:bool/1), gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"email"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"subscribed"/utf8>>, fun gleam@dynamic:bool/1), gleam@dynamic:field( <<"data"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:dynamic/1) ), gleam@dynamic:field(<<"createdAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"updatedAt"/utf8>>, fun gleam@dynamic:string/1) ). -spec subscription_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, subscription()} | {error, list(gleam@dynamic:decode_error())}). subscription_decoder() -> gleam@dynamic:decode3( fun(Field@0, Field@1, Field@2) -> {subscription, Field@0, Field@1, Field@2} end, gleam@dynamic:field(<<"success"/utf8>>, fun gleam@dynamic:bool/1), gleam@dynamic:field(<<"contact"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"subscribed"/utf8>>, fun gleam@dynamic:bool/1) ). -spec all_errors({ok, any()} | {error, list(gleam@dynamic:decode_error())}) -> list(gleam@dynamic:decode_error()). all_errors(Result) -> case Result of {ok, _} -> []; {error, Errors} -> Errors end. -spec email_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, email()} | {error, list(gleam@dynamic:decode_error())}). email_decoder() -> fun(Dyn) -> Id_dc = (gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1))( Dyn ), Message_id_dc = (gleam@dynamic:field( <<"messageId"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), Subject_dc = (gleam@dynamic:field( <<"subject"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), Body_dc = (gleam@dynamic:field( <<"body"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), Status_dc = (gleam@dynamic:field( <<"status"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), Project_id_dc = (gleam@dynamic:field( <<"projectId"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), Action_id_dc = (gleam@dynamic:field( <<"actionId"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ))(Dyn), Campaign_id_dc = (gleam@dynamic:field( <<"campaignId"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ))(Dyn), Contact_id_dc = (gleam@dynamic:field( <<"contactId"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), Created_at_dc = (gleam@dynamic:field( <<"createdAt"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), Updated_at_dc = (gleam@dynamic:field( <<"updatedAt"/utf8>>, fun gleam@dynamic:string/1 ))(Dyn), case {Id_dc, Message_id_dc, Subject_dc, Body_dc, Status_dc, Project_id_dc, Action_id_dc, Campaign_id_dc, Contact_id_dc, Created_at_dc, Updated_at_dc} of {{ok, Id}, {ok, Message_id}, {ok, Subject}, {ok, Body}, {ok, Status}, {ok, Project_id}, {ok, Action_id}, {ok, Campaign_id}, {ok, Contact_id}, {ok, Created_at}, {ok, Updated_at}} -> {ok, {email, Id, Message_id, Subject, Body, Status, Project_id, Action_id, Campaign_id, Contact_id, Created_at, Updated_at}}; {A, B, C, D, E, F, G, H, I, J, K} -> {error, gleam@list:concat( [all_errors(A), all_errors(B), all_errors(C), all_errors(D), all_errors(E), all_errors(F), all_errors(G), all_errors(H), all_errors(I), all_errors(J), all_errors(K)] )} end end. -spec get_contact_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok, extended_contact()} | {error, list(gleam@dynamic:decode_error())}). get_contact_decoder() -> gleam@dynamic:decode7( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6) -> {extended_contact, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6} end, gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"email"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field( <<"data"/utf8>>, gleam@dynamic:optional(fun gleam@dynamic:string/1) ), gleam@dynamic:field(<<"createdAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"updatedAt"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field( <<"triggers"/utf8>>, gleam@dynamic:list(trigger_decoder()) ), gleam@dynamic:field( <<"emails"/utf8>>, gleam@dynamic:list(email_decoder()) ) ).