-module(galchemy@dsl@insert). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src\\galchemy\\dsl\\insert.gleam"). -export([insert_into/1, field/2, row/2, values/2, returning/2, value/3]). -file("src\\galchemy\\dsl\\insert.gleam", 7). -spec insert_into(galchemy@ast@schema:table()) -> galchemy@ast@query:insert_query(). insert_into(Table) -> {insert_query, Table, [], []}. -file("src\\galchemy\\dsl\\insert.gleam", 12). -spec field( galchemy@ast@schema:column(any()), galchemy@ast@expression:expression() ) -> {galchemy@ast@schema:column_meta(), galchemy@ast@expression:expression()}. field(Column, Expr) -> {erlang:element(2, Column), Expr}. -file("src\\galchemy\\dsl\\insert.gleam", 29). -spec row( galchemy@ast@query:insert_query(), list({galchemy@ast@schema:column_meta(), galchemy@ast@expression:expression()}) ) -> galchemy@ast@query:insert_query(). row(Query, Values) -> {insert_query, erlang:element(2, Query), lists:append(erlang:element(3, Query), [Values]), erlang:element(4, Query)}. -file("src\\galchemy\\dsl\\insert.gleam", 37). -spec values( galchemy@ast@query:insert_query(), list(list({galchemy@ast@schema:column_meta(), galchemy@ast@expression:expression()})) ) -> galchemy@ast@query:insert_query(). values(Query, Rows) -> {insert_query, erlang:element(2, Query), Rows, erlang:element(4, Query)}. -file("src\\galchemy\\dsl\\insert.gleam", 45). -spec returning( galchemy@ast@query:insert_query(), list(galchemy@ast@expression:select_item()) ) -> galchemy@ast@query:insert_query(). returning(Query, Items) -> {insert_query, erlang:element(2, Query), erlang:element(3, Query), Items}. -file("src\\galchemy\\dsl\\insert.gleam", 59). -spec append_field_to_last_row( list(list({galchemy@ast@schema:column_meta(), galchemy@ast@expression:expression()})), {galchemy@ast@schema:column_meta(), galchemy@ast@expression:expression()} ) -> list(list({galchemy@ast@schema:column_meta(), galchemy@ast@expression:expression()})). append_field_to_last_row(Rows, Pair) -> case Rows of [] -> [[Pair]]; [Last_row] -> [lists:append(Last_row, [Pair])]; [First | Rest] -> [First | append_field_to_last_row(Rest, Pair)] end. -file("src\\galchemy\\dsl\\insert.gleam", 52). -spec append_field( galchemy@ast@query:insert_query(), {galchemy@ast@schema:column_meta(), galchemy@ast@expression:expression()} ) -> galchemy@ast@query:insert_query(). append_field(Query, Pair) -> {insert_query, erlang:element(2, Query), append_field_to_last_row(erlang:element(3, Query), Pair), erlang:element(4, Query)}. -file("src\\galchemy\\dsl\\insert.gleam", 20). -spec value( galchemy@ast@query:insert_query(), galchemy@ast@schema:column(any()), galchemy@ast@expression:expression() ) -> galchemy@ast@query:insert_query(). value(Query, Column, Expr) -> append_field(Query, field(Column, Expr)).