From e07f174358d252fd59dc4bb6b10a8316685f4645 Mon Sep 17 00:00:00 2001 From: Ranbir Singh Date: Mon, 22 Jun 2026 09:37:19 +0530 Subject: [PATCH] Add codegen-generated Supabase models to chat-compose sample Generated by supabase-codegen from the local Supabase stack (migrations in supabase/migrations) and verified by compiling + deserializing live rows. Shows the codegen output for the chat_rooms / chat_messages / e2e_messages tables. The credentials gitignore guard remains; generated models contain no secrets (just table structure) so they are committed. --- .gitignore | 6 ++++ .../sample/chat/generated/SupabaseModels.kt | 36 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 samples/chat-compose/src/main/java/io/github/androidpoet/supabase/sample/chat/generated/SupabaseModels.kt diff --git a/.gitignore b/.gitignore index ac20520a..5fcb3cb0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,5 +16,11 @@ docs/ # Local-only Supabase config for the web sample samples/passkey-web/src/wasmJsMain/resources/config.js +# Codegen credentials (kept local, never committed). The credentials are passed via +# SUPABASE_URL / SUPABASE_KEY env vars; this guards any stray files. The *generated* +# models contain no secrets (just table structure) and ARE committed — see +# samples/chat-compose/.../generated/SupabaseModels.kt. +codegen.local.properties + # Local-only JVM desktop demo app — kept on this machine, never pushed to GitHub samples/desktop-demo/ diff --git a/samples/chat-compose/src/main/java/io/github/androidpoet/supabase/sample/chat/generated/SupabaseModels.kt b/samples/chat-compose/src/main/java/io/github/androidpoet/supabase/sample/chat/generated/SupabaseModels.kt new file mode 100644 index 00000000..d249311f --- /dev/null +++ b/samples/chat-compose/src/main/java/io/github/androidpoet/supabase/sample/chat/generated/SupabaseModels.kt @@ -0,0 +1,36 @@ +// Generated from the Supabase schema. Do not edit by hand. +package io.github.androidpoet.supabase.sample.chat.generated + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlin.String + +@Serializable +public data class E2eMessages( + public val id: String, + public val body: String, + @SerialName("created_at") + public val createdAt: String, +) + +@Serializable +public data class ChatRooms( + public val id: String, + public val name: String, + @SerialName("created_at") + public val createdAt: String, +) + +@Serializable +public data class ChatMessages( + public val id: String, + @SerialName("room_id") + public val roomId: String, + @SerialName("sender_id") + public val senderId: String? = null, + @SerialName("sender_name") + public val senderName: String, + public val body: String, + @SerialName("created_at") + public val createdAt: String, +)