export type Json =
  | string
  | number
  | boolean
  | null
  | { [key: string]: Json | undefined }
  | Json[]

export interface Database {
  public: {
    Tables: {
      beta_testers: {
        Row: {
          email: string
          id: number
        }
        Insert: {
          email: string
          id?: number
        }
        Update: {
          email?: string
          id?: number
        }
        Relationships: []
      }
      feature: {
        Row: {
          created_at: string
          description: string | null
          id: number
          name: string
          project_id: number
        }
        Insert: {
          created_at?: string
          description?: string | null
          id?: number
          name: string
          project_id: number
        }
        Update: {
          created_at?: string
          description?: string | null
          id?: number
          name?: string
          project_id?: number
        }
        Relationships: [
          {
            foreignKeyName: "feature_project_id_fkey"
            columns: ["project_id"]
            referencedRelation: "project"
            referencedColumns: ["id"]
          }
        ]
      }
      feature_dependencies: {
        Row: {
          dependency_id: number
          feature_id: number
          id: number
        }
        Insert: {
          dependency_id: number
          feature_id: number
          id?: number
        }
        Update: {
          dependency_id?: number
          feature_id?: number
          id?: number
        }
        Relationships: [
          {
            foreignKeyName: "feature_dependencies_dependency_id_fkey"
            columns: ["dependency_id"]
            referencedRelation: "feature"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "feature_dependencies_feature_id_fkey"
            columns: ["feature_id"]
            referencedRelation: "feature"
            referencedColumns: ["id"]
          }
        ]
      }
      message: {
        Row: {
          content: string
          created_at: string
          id: number
          role: string
          task_id: number
        }
        Insert: {
          content: string
          created_at?: string
          id?: number
          role: string
          task_id: number
        }
        Update: {
          content?: string
          created_at?: string
          id?: number
          role?: string
          task_id?: number
        }
        Relationships: [
          {
            foreignKeyName: "message_task_id_fkey"
            columns: ["task_id"]
            referencedRelation: "task"
            referencedColumns: ["id"]
          }
        ]
      }
      profile: {
        Row: {
          created_at: string
          email: string
          id: string
        }
        Insert: {
          created_at?: string
          email: string
          id: string
        }
        Update: {
          created_at?: string
          email?: string
          id?: string
        }
        Relationships: [
          {
            foreignKeyName: "profile_id_fkey"
            columns: ["id"]
            referencedRelation: "users"
            referencedColumns: ["id"]
          }
        ]
      }
      profile_project: {
        Row: {
          id: number
          profile_id: string
          project_id: number
        }
        Insert: {
          id?: number
          profile_id: string
          project_id: number
        }
        Update: {
          id?: number
          profile_id?: string
          project_id?: number
        }
        Relationships: [
          {
            foreignKeyName: "profile_project_profile_id_fkey"
            columns: ["profile_id"]
            referencedRelation: "profile"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "profile_project_project_id_fkey"
            columns: ["project_id"]
            referencedRelation: "project"
            referencedColumns: ["id"]
          }
        ]
      }
      profile_task: {
        Row: {
          id: number
          profile_id: string
          task_id: number
        }
        Insert: {
          id?: number
          profile_id: string
          task_id: number
        }
        Update: {
          id?: number
          profile_id?: string
          task_id?: number
        }
        Relationships: [
          {
            foreignKeyName: "profile_task_profile_id_fkey"
            columns: ["profile_id"]
            referencedRelation: "profile"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "profile_task_task_id_fkey"
            columns: ["task_id"]
            referencedRelation: "task"
            referencedColumns: ["id"]
          }
        ]
      }
      profile_workspace: {
        Row: {
          id: number
          profile_id: string
          workspace_id: number
        }
        Insert: {
          id?: number
          profile_id: string
          workspace_id: number
        }
        Update: {
          id?: number
          profile_id?: string
          workspace_id?: number
        }
        Relationships: [
          {
            foreignKeyName: "profile_workspace_profile_id_fkey"
            columns: ["profile_id"]
            referencedRelation: "profile"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "profile_workspace_workspace_id_fkey"
            columns: ["workspace_id"]
            referencedRelation: "workspace"
            referencedColumns: ["id"]
          }
        ]
      }
      project: {
        Row: {
          created_at: string
          description: string | null
          id: number
          name: string
          questions: Json[] | null
          stack: string[] | null
          workspace_id: number
        }
        Insert: {
          created_at?: string
          description?: string | null
          id?: number
          name: string
          questions?: Json[] | null
          stack?: string[] | null
          workspace_id: number
        }
        Update: {
          created_at?: string
          description?: string | null
          id?: number
          name?: string
          questions?: Json[] | null
          stack?: string[] | null
          workspace_id?: number
        }
        Relationships: [
          {
            foreignKeyName: "project_workspace_id_fkey"
            columns: ["workspace_id"]
            referencedRelation: "workspace"
            referencedColumns: ["id"]
          }
        ]
      }
      task: {
        Row: {
          assignee: string | null
          created_at: string
          description: string | null
          due_date: string | null
          feature_id: number | null
          id: number
          name: string
          order: number | null
          priority: string | null
          project_id: number | null
          status: string
        }
        Insert: {
          assignee?: string | null
          created_at?: string
          description?: string | null
          due_date?: string | null
          feature_id?: number | null
          id?: number
          name: string
          order?: number | null
          priority?: string | null
          project_id?: number | null
          status: string
        }
        Update: {
          assignee?: string | null
          created_at?: string
          description?: string | null
          due_date?: string | null
          feature_id?: number | null
          id?: number
          name?: string
          order?: number | null
          priority?: string | null
          project_id?: number | null
          status?: string
        }
        Relationships: [
          {
            foreignKeyName: "task_assignee_fkey"
            columns: ["assignee"]
            referencedRelation: "profile"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "task_feature_id_fkey"
            columns: ["feature_id"]
            referencedRelation: "feature"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "task_project_id_fkey"
            columns: ["project_id"]
            referencedRelation: "project"
            referencedColumns: ["id"]
          }
        ]
      }
      workspace: {
        Row: {
          created_at: string
          description: string | null
          icon: string | null
          id: number
          name: string
        }
        Insert: {
          created_at?: string
          description?: string | null
          icon?: string | null
          id?: number
          name: string
        }
        Update: {
          created_at?: string
          description?: string | null
          icon?: string | null
          id?: number
          name?: string
        }
        Relationships: []
      }
    }
    Views: {
      [_ in never]: never
    }
    Functions: {
      [_ in never]: never
    }
    Enums: {
      [_ in never]: never
    }
    CompositeTypes: {
      [_ in never]: never
    }
  }
}