export type Json = | string | number | boolean | null | { [key: string]: Json | undefined } | Json[] export type Database = { public: { Tables: { message_threads: { Row: { created_at: string id: string } Insert: { created_at?: string id?: string } Update: { created_at?: string id?: string } Relationships: [] } messages: { Row: { created_at: string id: string recipient_content: string sender_content: string sender_uuid: string thread_id: string | null } Insert: { created_at?: string id?: string recipient_content: string sender_content: string sender_uuid: string thread_id?: string | null } Update: { created_at?: string id?: string recipient_content?: string sender_content?: string sender_uuid?: string thread_id?: string | null } Relationships: [ { foreignKeyName: "messages_sender_uuid_fkey" columns: ["sender_uuid"] isOneToOne: false referencedRelation: "users" referencedColumns: ["uuid"] }, { foreignKeyName: "messages_thread_id_fkey" columns: ["thread_id"] isOneToOne: false referencedRelation: "message_threads" referencedColumns: ["id"] }, ] } thread_participants: { Row: { thread_id: string user_uuid: string } Insert: { thread_id: string user_uuid: string } Update: { thread_id?: string user_uuid?: string } Relationships: [ { foreignKeyName: "thread_participants_thread_id_fkey" columns: ["thread_id"] isOneToOne: false referencedRelation: "message_threads" referencedColumns: ["id"] }, { foreignKeyName: "thread_participants_user_uuid_fkey" columns: ["user_uuid"] isOneToOne: false referencedRelation: "users" referencedColumns: ["uuid"] }, ] } users: { Row: { created_at: string indexable: boolean | null public_key: Json | null requests: string[] | null suuid: string username: string uuid: string } Insert: { created_at?: string indexable?: boolean | null public_key?: Json | null requests?: string[] | null suuid: string username: string uuid?: string } Update: { created_at?: string indexable?: boolean | null public_key?: Json | null requests?: string[] | null suuid?: string username?: string uuid?: string } Relationships: [] } } Views: { [_ in never]: never } Functions: { create_private_thread: { Args: { participant_suuid: string } Returns: string } generate_short_uuid: { Args: Record Returns: string } get_user_threads: { Args: { user_id: string } Returns: { thread_id: string participants: string[] messages: Json[] }[] } is_thread_participant: { Args: { thread_uuid: string } Returns: boolean } search_users: { Args: { search_term: string } Returns: { uuid: string suuid: string username: string indexable: boolean }[] } send_message: { Args: { thread_id: string sender_content: string recipient_content: string } Returns: string } update_user_public_key: { Args: { new_public_key: Json } Returns: boolean } update_user_requests: { Args: { search_term: string new_request: string } Returns: boolean } } Enums: { [_ in never]: never } CompositeTypes: { [_ in never]: never } } } type PublicSchema = Database[Extract] export type Tables< PublicTableNameOrOptions extends | keyof (PublicSchema["Tables"] & PublicSchema["Views"]) | { schema: keyof Database }, TableName extends PublicTableNameOrOptions extends { schema: keyof Database } ? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] & Database[PublicTableNameOrOptions["schema"]]["Views"]) : never = never, > = PublicTableNameOrOptions extends { schema: keyof Database } ? (Database[PublicTableNameOrOptions["schema"]]["Tables"] & Database[PublicTableNameOrOptions["schema"]]["Views"])[TableName] extends { Row: infer R } ? R : never : PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] & PublicSchema["Views"]) ? (PublicSchema["Tables"] & PublicSchema["Views"])[PublicTableNameOrOptions] extends { Row: infer R } ? R : never : never export type TablesInsert< PublicTableNameOrOptions extends | keyof PublicSchema["Tables"] | { schema: keyof Database }, TableName extends PublicTableNameOrOptions extends { schema: keyof Database } ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"] : never = never, > = PublicTableNameOrOptions extends { schema: keyof Database } ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends { Insert: infer I } ? I : never : PublicTableNameOrOptions extends keyof PublicSchema["Tables"] ? PublicSchema["Tables"][PublicTableNameOrOptions] extends { Insert: infer I } ? I : never : never export type TablesUpdate< PublicTableNameOrOptions extends | keyof PublicSchema["Tables"] | { schema: keyof Database }, TableName extends PublicTableNameOrOptions extends { schema: keyof Database } ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"] : never = never, > = PublicTableNameOrOptions extends { schema: keyof Database } ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends { Update: infer U } ? U : never : PublicTableNameOrOptions extends keyof PublicSchema["Tables"] ? PublicSchema["Tables"][PublicTableNameOrOptions] extends { Update: infer U } ? U : never : never export type Enums< PublicEnumNameOrOptions extends | keyof PublicSchema["Enums"] | { schema: keyof Database }, EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database } ? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"] : never = never, > = PublicEnumNameOrOptions extends { schema: keyof Database } ? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName] : PublicEnumNameOrOptions extends keyof PublicSchema["Enums"] ? PublicSchema["Enums"][PublicEnumNameOrOptions] : never export type CompositeTypes< PublicCompositeTypeNameOrOptions extends | keyof PublicSchema["CompositeTypes"] | { schema: keyof Database }, CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { schema: keyof Database } ? keyof Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] : never = never, > = PublicCompositeTypeNameOrOptions extends { schema: keyof Database } ? Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] : PublicCompositeTypeNameOrOptions extends keyof PublicSchema["CompositeTypes"] ? PublicSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions] : never