vkashti / types_db.ts
types_db.ts
Raw
export type Json =
  | string
  | number
  | boolean
  | null
  | { [key: string]: Json | undefined }
  | Json[]

export type Database = {
  public: {
    Tables: {
      deal_tags: {
        Row: {
          deal_id: number | null
          id: number
          tag_id: number | null
        }
        Insert: {
          deal_id?: number | null
          id?: number
          tag_id?: number | null
        }
        Update: {
          deal_id?: number | null
          id?: number
          tag_id?: number | null
        }
        Relationships: [
          {
            foreignKeyName: "deal_tags_deal_id_fkey"
            columns: ["deal_id"]
            isOneToOne: false
            referencedRelation: "deals"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "deal_tags_tag_id_fkey"
            columns: ["tag_id"]
            isOneToOne: false
            referencedRelation: "tags"
            referencedColumns: ["id"]
          },
        ]
      }
      deals: {
        Row: {
          benefits: string[] | null
          description: string | null
          for_who: string | null
          icon: string | null
          id: number
          is_for_business: boolean | null
          max_group_size: number | null
          min_group_size: number | null
          price: number | null
          regular_price: number | null
          title: string
        }
        Insert: {
          benefits?: string[] | null
          description?: string | null
          for_who?: string | null
          icon?: string | null
          id?: number
          is_for_business?: boolean | null
          max_group_size?: number | null
          min_group_size?: number | null
          price?: number | null
          regular_price?: number | null
          title: string
        }
        Update: {
          benefits?: string[] | null
          description?: string | null
          for_who?: string | null
          icon?: string | null
          id?: number
          is_for_business?: boolean | null
          max_group_size?: number | null
          min_group_size?: number | null
          price?: number | null
          regular_price?: number | null
          title?: string
        }
        Relationships: []
      }
      distributors: {
        Row: {
          company: string | null
          created_at: string
          description: string | null
          id: number
          name: string | null
          phone: string | null
        }
        Insert: {
          company?: string | null
          created_at?: string
          description?: string | null
          id?: number
          name?: string | null
          phone?: string | null
        }
        Update: {
          company?: string | null
          created_at?: string
          description?: string | null
          id?: number
          name?: string | null
          phone?: string | null
        }
        Relationships: []
      }
      events: {
        Row: {
          created_at: string
          description: string | null
          from_date: string | null
          id: number
          price: number | null
          title: string | null
          to_date: string | null
        }
        Insert: {
          created_at?: string
          description?: string | null
          from_date?: string | null
          id?: number
          price?: number | null
          title?: string | null
          to_date?: string | null
        }
        Update: {
          created_at?: string
          description?: string | null
          from_date?: string | null
          id?: number
          price?: number | null
          title?: string | null
          to_date?: string | null
        }
        Relationships: []
      }
      profiles: {
        Row: {
          birthday: string | null
          discord_id: string | null
          email: string
          first_name: string
          id: number
          last_name: string
          user_id: string
        }
        Insert: {
          birthday?: string | null
          discord_id?: string | null
          email: string
          first_name: string
          id?: never
          last_name: string
          user_id?: string
        }
        Update: {
          birthday?: string | null
          discord_id?: string | null
          email?: string
          first_name?: string
          id?: never
          last_name?: string
          user_id?: string
        }
        Relationships: []
      }
      quiz_answers: {
        Row: {
          answer: string | null
          correct: boolean | null
          created_at: string
          id: number
          points: number | null
          question_number: number | null
          quiz_id: number | null
          team_name: string | null
        }
        Insert: {
          answer?: string | null
          correct?: boolean | null
          created_at?: string
          id?: number
          points?: number | null
          question_number?: number | null
          quiz_id?: number | null
          team_name?: string | null
        }
        Update: {
          answer?: string | null
          correct?: boolean | null
          created_at?: string
          id?: number
          points?: number | null
          question_number?: number | null
          quiz_id?: number | null
          team_name?: string | null
        }
        Relationships: [
          {
            foreignKeyName: "quiz_answers_quiz_id_fkey"
            columns: ["quiz_id"]
            isOneToOne: false
            referencedRelation: "quizes"
            referencedColumns: ["id"]
          },
        ]
      }
      quizes: {
        Row: {
          created_at: string
          date: string | null
          id: number
          name: string | null
          url: string | null
        }
        Insert: {
          created_at?: string
          date?: string | null
          id?: number
          name?: string | null
          url?: string | null
        }
        Update: {
          created_at?: string
          date?: string | null
          id?: number
          name?: string | null
          url?: string | null
        }
        Relationships: []
      }
      reservation_tags: {
        Row: {
          id: number
          reservation_id: number | null
          tag_id: number | null
        }
        Insert: {
          id?: number
          reservation_id?: number | null
          tag_id?: number | null
        }
        Update: {
          id?: number
          reservation_id?: number | null
          tag_id?: number | null
        }
        Relationships: [
          {
            foreignKeyName: "reservation_tags_reservation_id_fkey"
            columns: ["reservation_id"]
            isOneToOne: false
            referencedRelation: "reservations"
            referencedColumns: ["id"]
          },
          {
            foreignKeyName: "reservation_tags_tag_id_fkey"
            columns: ["tag_id"]
            isOneToOne: false
            referencedRelation: "tags"
            referencedColumns: ["id"]
          },
        ]
      }
      reservations: {
        Row: {
          approved: boolean | null
          caparo: number | null
          created_at: string
          description: string | null
          event_id: number | null
          from_date: string | null
          id: number
          person_name: string | null
          persons: number | null
          phone: string | null
          to_date: string | null
        }
        Insert: {
          approved?: boolean | null
          caparo?: number | null
          created_at?: string
          description?: string | null
          event_id?: number | null
          from_date?: string | null
          id?: number
          person_name?: string | null
          persons?: number | null
          phone?: string | null
          to_date?: string | null
        }
        Update: {
          approved?: boolean | null
          caparo?: number | null
          created_at?: string
          description?: string | null
          event_id?: number | null
          from_date?: string | null
          id?: number
          person_name?: string | null
          persons?: number | null
          phone?: string | null
          to_date?: string | null
        }
        Relationships: [
          {
            foreignKeyName: "reservations_event_id_fkey"
            columns: ["event_id"]
            isOneToOne: false
            referencedRelation: "events"
            referencedColumns: ["id"]
          },
        ]
      }
      schedules: {
        Row: {
          created_at: string
          end_time: string | null
          id: number
          position: string | null
          start_time: string | null
          user_id: string | null
        }
        Insert: {
          created_at?: string
          end_time?: string | null
          id?: number
          position?: string | null
          start_time?: string | null
          user_id?: string | null
        }
        Update: {
          created_at?: string
          end_time?: string | null
          id?: number
          position?: string | null
          start_time?: string | null
          user_id?: string | null
        }
        Relationships: []
      }
      tables: {
        Row: {
          capacity: number
          created_at: string | null
          height: number | null
          id: number
          label: string
          position_x: number
          position_y: number
          updated_at: string | null
          width: number | null
        }
        Insert: {
          capacity: number
          created_at?: string | null
          height?: number | null
          id?: never
          label: string
          position_x: number
          position_y: number
          updated_at?: string | null
          width?: number | null
        }
        Update: {
          capacity?: number
          created_at?: string | null
          height?: number | null
          id?: never
          label?: string
          position_x?: number
          position_y?: number
          updated_at?: string | null
          width?: number | null
        }
        Relationships: []
      }
      tags: {
        Row: {
          description: string | null
          id: number
          name: string
        }
        Insert: {
          description?: string | null
          id?: number
          name: string
        }
        Update: {
          description?: string | null
          id?: number
          name?: string
        }
        Relationships: []
      }
      tasks: {
        Row: {
          created_at: string
          difficulty: number | null
          id: number
          interval: number | null
          name: string | null
          shift: string | null
          start_date: string | null
          time: string | null
        }
        Insert: {
          created_at?: string
          difficulty?: number | null
          id?: number
          interval?: number | null
          name?: string | null
          shift?: string | null
          start_date?: string | null
          time?: string | null
        }
        Update: {
          created_at?: string
          difficulty?: number | null
          id?: number
          interval?: number | null
          name?: string | null
          shift?: string | null
          start_date?: string | null
          time?: string | null
        }
        Relationships: []
      }
      user_roles: {
        Row: {
          role: string
          user_id: string
        }
        Insert: {
          role: string
          user_id: string
        }
        Update: {
          role?: string
          user_id?: string
        }
        Relationships: [
          {
            foreignKeyName: "user_roles_user_id_fkey1"
            columns: ["user_id"]
            isOneToOne: true
            referencedRelation: "profiles"
            referencedColumns: ["user_id"]
          },
        ]
      }
    }
    Views: {
      [_ in never]: never
    }
    Functions: {
      [_ in never]: never
    }
    Enums: {
      [_ in never]: never
    }
    CompositeTypes: {
      [_ in never]: never
    }
  }
}

type PublicSchema = Database[Extract<keyof Database, "public">]

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