export type Json =
| string
| number
| boolean
| null
| { [key: string]: Json | undefined }
| Json[]
export type Database = {
graphql_public: {
Tables: {
[_ in never]: never
}
Views: {
[_ in never]: never
}
Functions: {
graphql: {
Args: {
operationName?: string
query?: string
variables?: Json
extensions?: Json
}
Returns: Json
}
}
Enums: {
[_ in never]: never
}
CompositeTypes: {
[_ in never]: never
}
}
public: {
Tables: {
profiles: {
Row: {
avatar_url: string | null
created_at: string
email: string | null
full_name: string | null
id: string
updated_at: string
}
Insert: {
avatar_url?: string | null
created_at?: string
email?: string | null
full_name?: string | null
id: string
updated_at?: string
}
Update: {
avatar_url?: string | null
created_at?: string
email?: string | null
full_name?: string | null
id?: string
updated_at?: string
}
Relationships: []
}
email_preferences: {
Row: {
user_id: string
weekly_progress_digest: boolean
product_updates: boolean
account_notifications: boolean
created_at: string
updated_at: string
}
Insert: {
user_id: string
weekly_progress_digest?: boolean
product_updates?: boolean
account_notifications?: boolean
created_at?: string
updated_at?: string
}
Update: {
user_id?: string
weekly_progress_digest?: boolean
product_updates?: boolean
account_notifications?: boolean
created_at?: string
updated_at?: string
}
Relationships: [
{
foreignKeyName: "email_preferences_user_id_fkey"
columns: ["user_id"]
isOneToOne: true
referencedRelation: "profiles"
referencedColumns: ["id"]
}
]
}
books: {
Row: {
id: string
title: string
description: string | null
status: string
word_count: number
created_at: string
updated_at: string
user_id: string
author: string | null
cover_image_url: string | null
genre: string | null
target_word_count: number | null
settings: Json
}
Insert: {
id?: string
title: string
description?: string | null
status?: string
word_count?: number
created_at?: string
updated_at?: string
user_id: string
author?: string | null
cover_image_url?: string | null
genre?: string | null
target_word_count?: number | null
settings?: Json
}
Update: {
id?: string
title?: string
description?: string | null
status?: string
word_count?: number
created_at?: string
updated_at?: string
user_id?: string
author?: string | null
cover_image_url?: string | null
genre?: string | null
target_word_count?: number | null
settings?: Json
}
Relationships: []
}
file_system_items: {
Row: {
id: string
book_id: string
parent_id: string | null
name: string
type: string
content: string | null
file_extension: string | null
mime_type: string | null
file_size: number | null
file_url: string | null
expanded: boolean
sort_order: number
created_at: string
updated_at: string
metadata: Json
}
Insert: {
id?: string
book_id: string
parent_id?: string | null
name: string
type: string
content?: string | null
file_extension?: string | null
mime_type?: string | null
file_size?: number | null
file_url?: string | null
expanded?: boolean
sort_order?: number
created_at?: string
updated_at?: string
metadata?: Json
}
Update: {
id?: string
book_id?: string
parent_id?: string | null
name?: string
type?: string
content?: string | null
file_extension?: string | null
mime_type?: string | null
file_size?: number | null
file_url?: string | null
expanded?: boolean
sort_order?: number
created_at?: string
updated_at?: string
metadata?: Json
}
Relationships: [
{
foreignKeyName: "file_system_items_book_id_fkey"
columns: ["book_id"]
isOneToOne: false
referencedRelation: "books"
referencedColumns: ["id"]
},
{
foreignKeyName: "file_system_items_parent_id_fkey"
columns: ["parent_id"]
isOneToOne: false
referencedRelation: "file_system_items"
referencedColumns: ["id"]
}
]
}
chats: {
Row: {
id: string
book_id: string
user_id: string
title: string
created_at: string
updated_at: string
model: string
total_messages: number
last_message_at: string
}
Insert: {
id?: string
book_id: string
user_id: string
title?: string
created_at?: string
updated_at?: string
model?: string
total_messages?: number
last_message_at?: string
}
Update: {
id?: string
book_id?: string
user_id?: string
title?: string
created_at?: string
updated_at?: string
model?: string
total_messages?: number
last_message_at?: string
}
Relationships: [
{
foreignKeyName: "chats_book_id_fkey"
columns: ["book_id"]
isOneToOne: false
referencedRelation: "books"
referencedColumns: ["id"]
},
{
foreignKeyName: "chats_user_id_fkey"
columns: ["user_id"]
isOneToOne: false
referencedRelation: "profiles"
referencedColumns: ["id"]
}
]
}
messages: {
Row: {
id: string
chat_id: string
type: string
content: string
created_at: string
sequence_number: number
model: string | null
tool_results: Json | null
context_info: Json | null
}
Insert: {
id?: string
chat_id: string
type: string
content: string
created_at?: string
sequence_number: number
model?: string | null
tool_results?: Json | null
context_info?: Json | null
}
Update: {
id?: string
chat_id?: string
type?: string
content?: string
created_at?: string
sequence_number?: number
model?: string | null
tool_results?: Json | null
context_info?: Json | null
}
Relationships: [
{
foreignKeyName: "messages_chat_id_fkey"
columns: ["chat_id"]
isOneToOne: false
referencedRelation: "chats"
referencedColumns: ["id"]
}
]
}
}
Views: {
[_ in never]: never
}
Functions: {
[_ in never]: never
}
Enums: {
[_ in never]: never
}
CompositeTypes: {
[_ in never]: never
}
}
}
type DefaultSchema = Database[Extract<keyof Database, "public">]
export type Tables<
DefaultSchemaTableNameOrOptions extends
| keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
| { schema: keyof Database },
TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof Database
}
? keyof (Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
Database[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
: never = never,
> = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
? (Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
Database[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
Row: infer R
}
? R
: never
: DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] &
DefaultSchema["Views"])
? (DefaultSchema["Tables"] &
DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
Row: infer R
}
? R
: never
: never
export type TablesInsert<
DefaultSchemaTableNameOrOptions extends
| keyof DefaultSchema["Tables"]
| { schema: keyof Database },
TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof Database
}
? keyof Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never,
> = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
? Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
Insert: infer I
}
? I
: never
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
Insert: infer I
}
? I
: never
: never
export type TablesUpdate<
DefaultSchemaTableNameOrOptions extends
| keyof DefaultSchema["Tables"]
| { schema: keyof Database },
TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof Database
}
? keyof Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never,
> = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
? Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
Update: infer U
}
? U
: never
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
Update: infer U
}
? U
: never
: never
export type Enums<
DefaultSchemaEnumNameOrOptions extends
| keyof DefaultSchema["Enums"]
| { schema: keyof Database },
EnumName extends DefaultSchemaEnumNameOrOptions extends {
schema: keyof Database
}
? keyof Database[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
: never = never,
> = DefaultSchemaEnumNameOrOptions extends { schema: keyof Database }
? Database[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
: never
export type CompositeTypes<
PublicCompositeTypeNameOrOptions extends
| keyof DefaultSchema["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 DefaultSchema["CompositeTypes"]
? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
: never
export const Constants = {
graphql_public: {
Enums: {},
},
public: {
Enums: {},
},
} as const