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

export interface Database {
  public: {
    Tables: {
      _ProjectToUser: {
        Row: {
          A: string
          B: string
        }
        Insert: {
          A: string
          B: string
        }
        Update: {
          A?: string
          B?: string
        }
        Relationships: [
          {
            foreignKeyName: "_ProjectToUser_A_fkey"
            columns: ["A"]
            referencedRelation: "Project"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "_ProjectToUser_B_fkey"
            columns: ["B"]
            referencedRelation: "User"
            referencedColumns: ["id"]
          }
        ]
      }
      Comment: {
        Row: {
          authorId: string
          content: string
          createdAt: string
          id: string
          taskId: string
        }
        Insert: {
          authorId: string
          content: string
          createdAt?: string
          id: string
          taskId: string
        }
        Update: {
          authorId?: string
          content?: string
          createdAt?: string
          id?: string
          taskId?: string
        }
        Relationships: [
          {
            foreignKeyName: "Comment_authorId_fkey"
            columns: ["authorId"]
            referencedRelation: "User"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "Comment_taskId_fkey"
            columns: ["taskId"]
            referencedRelation: "Task"
            referencedColumns: ["id"]
          }
        ]
      }
      Feature: {
        Row: {
          description: string
          id: string
          projectId: string
        }
        Insert: {
          description: string
          id: string
          projectId: string
        }
        Update: {
          description?: string
          id?: string
          projectId?: string
        }
        Relationships: [
          {
            foreignKeyName: "Feature_projectId_fkey"
            columns: ["projectId"]
            referencedRelation: "Project"
            referencedColumns: ["id"]
          }
        ]
      }
      Project: {
        Row: {
          description: string
          githubURL: string | null
          id: string
          name: string
          techStack: string[] | null
        }
        Insert: {
          description: string
          githubURL?: string | null
          id: string
          name: string
          techStack?: string[] | null
        }
        Update: {
          description?: string
          githubURL?: string | null
          id?: string
          name?: string
          techStack?: string[] | null
        }
        Relationships: []
      }
      Subtask: {
        Row: {
          description: string
          id: string
          taskId: string
        }
        Insert: {
          description: string
          id: string
          taskId: string
        }
        Update: {
          description?: string
          id?: string
          taskId?: string
        }
        Relationships: [
          {
            foreignKeyName: "Subtask_taskId_fkey"
            columns: ["taskId"]
            referencedRelation: "Task"
            referencedColumns: ["id"]
          }
        ]
      }
      Task: {
        Row: {
          assigneeId: string | null
          description: string
          dueDate: string | null
          id: string
          priority: string | null
          projectId: string
          status: string | null
          tags: string[] | null
          teamId: string | null
        }
        Insert: {
          assigneeId?: string | null
          description: string
          dueDate?: string | null
          id: string
          priority?: string | null
          projectId: string
          status?: string | null
          tags?: string[] | null
          teamId?: string | null
        }
        Update: {
          assigneeId?: string | null
          description?: string
          dueDate?: string | null
          id?: string
          priority?: string | null
          projectId?: string
          status?: string | null
          tags?: string[] | null
          teamId?: string | null
        }
        Relationships: [
          {
            foreignKeyName: "Task_assigneeId_fkey"
            columns: ["assigneeId"]
            referencedRelation: "User"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "Task_projectId_fkey"
            columns: ["projectId"]
            referencedRelation: "Project"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "Task_teamId_fkey"
            columns: ["teamId"]
            referencedRelation: "Team"
            referencedColumns: ["id"]
          }
        ]
      }
      Team: {
        Row: {
          id: string
          name: string
          projectId: string
        }
        Insert: {
          id: string
          name: string
          projectId: string
        }
        Update: {
          id?: string
          name?: string
          projectId?: string
        }
        Relationships: [
          {
            foreignKeyName: "Team_projectId_fkey"
            columns: ["projectId"]
            referencedRelation: "Project"
            referencedColumns: ["id"]
          }
        ]
      }
      User: {
        Row: {
          description: string | null
          email: string
          firebaseID: string
          id: string
          profilePic: string
          strengths: string[] | null
          teamID: string | null
        }
        Insert: {
          description?: string | null
          email: string
          firebaseID: string
          id: string
          profilePic?: string
          strengths?: string[] | null
          teamID?: string | null
        }
        Update: {
          description?: string | null
          email?: string
          firebaseID?: string
          id?: string
          profilePic?: string
          strengths?: string[] | null
          teamID?: string | null
        }
        Relationships: [
          {
            foreignKeyName: "User_teamID_fkey"
            columns: ["teamID"]
            referencedRelation: "Team"
            referencedColumns: ["id"]
          }
        ]
      }
    }
    Views: {
      [_ in never]: never
    }
    Functions: {
      [_ in never]: never
    }
    Enums: {
      [_ in never]: never
    }
    CompositeTypes: {
      [_ in never]: never
    }
  }
}