-module(galchemy@schema@model). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src\\galchemy\\schema\\model.gleam"). -export_type([schema_snapshot/0, table_schema/0, column_schema/0, column_type/0, primary_key/0, unique_constraint/0, foreign_key/0, index_schema/0]). -type schema_snapshot() :: {schema_snapshot, list(table_schema())}. -type table_schema() :: {table_schema, binary(), binary(), list(column_schema()), gleam@option:option(primary_key()), list(unique_constraint()), list(foreign_key()), list(index_schema())}. -type column_schema() :: {column_schema, binary(), column_type(), boolean(), gleam@option:option(binary()), integer()}. -type column_type() :: small_int_type | integer_type | big_int_type | boolean_type | text_type | {var_char_type, gleam@option:option(integer())} | {timestamp_type, boolean()} | {time_type, boolean()} | date_type | real_type | double_precision_type | {numeric_type, gleam@option:option(integer()), gleam@option:option(integer())} | json_type | jsonb_type | uuid_type | bytea_type | {array_type, column_type()} | {custom_type, binary()}. -type primary_key() :: {primary_key, binary(), list(binary())}. -type unique_constraint() :: {unique_constraint, binary(), list(binary())}. -type foreign_key() :: {foreign_key, binary(), list(binary()), binary(), binary(), list(binary())}. -type index_schema() :: {index_schema, binary(), boolean(), binary()}.