// DO NOT EDIT: Code generated by matcha from insert.matcha import gleam/list import gleam/string_builder.{type StringBuilder} import funsies/query/yummy import funsies/schema.{type Column, type Table} import gleam/int import gleam/iterator.{range, to_list} import gleam/pgo.{type Value} import gleam/string fn columnsyay(table: Table) -> StringBuilder { let builder = string_builder.from_string("") let builder = list.fold(table.columns, builder, fn(builder, col: Column) { let builder = string_builder.append(builder, " yummy.w(value.") let builder = string_builder.append(builder, col.name) let builder = string_builder.append(builder, "), ") builder }) builder } pub fn render_builder(table table: Table) -> StringBuilder { let builder = string_builder.from_string("") let builder = string_builder.append( builder, " ", ) let builder = string_builder.append( builder, " import funs/", ) let builder = string_builder.append(builder, table.name) let builder = string_builder.append( builder, "_decoder import funs/", ) let builder = string_builder.append(builder, table.name) let builder = string_builder.append( builder, " import gleam/pgo import funsies/query/yummy import gleam/list import gleam/string ", ) let builder = string_builder.append( builder, " pub fn insert( builder: yummy.QueryBuilder, // columns: List(String), value: ", ) let builder = string_builder.append(builder, table.name) let builder = string_builder.append(builder, ".") let builder = string_builder.append(builder, string.capitalise(table.name)) let builder = string_builder.append( builder, "Row, ) -> yummy.QueryBuilder { yummy.QueryBuilder( builder.table, builder.select_columns, builder.where_clauses, builder.order_by_clauses, list.map(builder.table.columns, fn(c) { c.name }), // Set insert columns [", ) let builder = string_builder.append_builder(builder, columnsyay(table)) let builder = string_builder.append( builder, "], // Set insert values ) } ", ) builder } pub fn render(table table: Table) -> String { string_builder.to_string(render_builder(table: table)) }