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

export interface Database {
  steelbook: {
    Tables: {
      usuarios: {
        Row: {
          id: string
          email: string
          nome_completo: string
          perfil: 'admin' | 'gerente_qualidade' | 'engenheiro' | 'cliente'
          ativo: boolean
          created_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['usuarios']['Row'], 'id' | 'created_at'>
        Update: Partial<Database['steelbook']['Tables']['usuarios']['Insert']>
      }
      clientes: {
        Row: {
          id: string
          nome: string
          contato: string | null
          email: string | null
          telefone: string | null
          ativo: boolean
          inativado_em: string | null
          created_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['clientes']['Row'], 'id' | 'created_at'>
        Update: Partial<Database['steelbook']['Tables']['clientes']['Insert']>
      }
      templates_topicos: {
        Row: {
          id: string
          numero_topico: string
          titulo: string
          descricao: string | null
          obrigatorio: boolean
          ordem: number | null
          tipo_documentos: string[] | null
          tags_padrao: string[] | null
          categoria: string | null
          ativo: boolean
          inativado_em: string | null
          created_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['templates_topicos']['Row'], 'id' | 'created_at'>
        Update: Partial<Database['steelbook']['Tables']['templates_topicos']['Insert']>
      }
      templates_customizados: {
        Row: {
          id: string
          nome: string
          tipo: 'novo' | 'derivado'
          template_pai_id: string | null
          topicos_selecionados: string[]
          total_topicos: number | null
          total_obrigatorios: number | null
          descricao: string | null
          ativo: boolean
          criado_por: string | null
          created_at: string
          updated_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['templates_customizados']['Row'], 'id' | 'created_at' | 'updated_at'>
        Update: Partial<Database['steelbook']['Tables']['templates_customizados']['Insert']>
      }
      projetos: {
        Row: {
          id: string
          numero_projeto: string
          nome_projeto: string
          cliente_id: string
          template_id: string | null
          status: 'rascunho' | 'em_andamento' | 'revisao' | 'finalizado' | 'cancelado'
          progresso_percentual: number
          data_inicio: string | null
          data_entrega_prevista: string | null
          responsavel_id: string | null
          created_at: string
          updated_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['projetos']['Row'], 'id' | 'created_at' | 'updated_at'>
        Update: Partial<Database['steelbook']['Tables']['projetos']['Insert']>
      }
      databooks_mestres: {
        Row: {
          id: string
          projeto_id: string
          cliente_nome: string | null
          cliente_contato: string | null
          cliente_email: string | null
          cliente_telefone: string | null
          produto_nome: string
          produto_tipo: string | null
          produto_descricao: string | null
          produto_normas: string[] | null
          numero_projeto: string | null
          ordem_compra: string | null
          data_inicio: string | null
          data_entrega_prevista: string | null
          responsavel_id: string | null
          revisao_numero: string
          revisao_data: string
          revisao_autor_id: string | null
          revisao_motivo: string | null
          logo_empresa_url: string | null
          logo_cliente_url: string | null
          marca_agua_url: string | null
          cor_primaria: string | null
          cor_secundaria: string | null
          titulo_principal: string | null
          subtitulo: string | null
          texto_rodape_capa: string | null
          tamanho_pagina: 'A4' | 'Letter'
          orientacao: 'retrato' | 'paisagem'
          margem_superior_mm: number
          margem_lateral_mm: number
          incluir_marca_agua: boolean
          incluir_numero_pagina: boolean
          created_at: string
          updated_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['databooks_mestres']['Row'], 'id' | 'created_at' | 'updated_at'>
        Update: Partial<Database['steelbook']['Tables']['databooks_mestres']['Insert']>
      }
      configuracoes_pastas: {
        Row: {
          id: string
          tipo_documento: string
          categoria_id: string | null
          caminho_local: string
          caminho_subtipo: string | null
          caminho_completo: string | null
          habilitado: boolean
          frequencia_atualizacao: 'manual' | 'ao_criar' | 'diario' | 'semanal'
          ultima_atualizacao: string | null
          incluir_subpastas: boolean
          formatos_aceitos: string[] | null
          tamanho_maximo_mb: number
          tags_obrigatorias: string[] | null
          palavras_chave_filtro: string[] | null
          palavras_chave_excluir: string[] | null
          ordem_docs: 'data' | 'nome' | 'relevancia'
          criado_por: string | null
          created_at: string
          updated_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['configuracoes_pastas']['Row'], 'id' | 'created_at' | 'updated_at'>
        Update: Partial<Database['steelbook']['Tables']['configuracoes_pastas']['Insert']>
      }
      design_templates: {
        Row: {
          id: string
          nome: string
          descricao: string | null
          tipo: 'capa' | 'indice' | 'divisora' | 'cabecalho' | 'rodape' | 'guia_estilo'
          config: Json
          ativo: boolean
          criado_por: string | null
          criado_em: string
          atualizado_em: string
        }
        Insert: Omit<Database['steelbook']['Tables']['design_templates']['Row'], 'id' | 'criado_em' | 'atualizado_em'>
        Update: Partial<Database['steelbook']['Tables']['design_templates']['Insert']>
      }
      databook_design_aplicacoes: {
        Row: {
          id: string
          databook_id: string
          template_capa_id: string | null
          template_indice_id: string | null
          template_divisora_id: string | null
          template_cabecalho_id: string | null
          template_rodape_id: string | null
          template_guia_estilo_id: string | null
          aplicado_em: string
          atualizado_em: string
        }
        Insert: Omit<Database['steelbook']['Tables']['databook_design_aplicacoes']['Row'], 'id' | 'aplicado_em' | 'atualizado_em'>
        Update: Partial<Database['steelbook']['Tables']['databook_design_aplicacoes']['Insert']>
      }
      documentos_auto_indexados: {
        Row: {
          id: string
          databook_id: string
          secao_id: string | null
          secao_numero: string | null
          titulo: string
          numero_documento: string | null
          revisao: string | null
          arquivo_url: string
          arquivo_tipo: string | null
          conteudo_texto: string | null
          tags_automaticas: string[] | null
          tags_usuario: string[] | null
          relevancia_score: number | null
          confianca_classificacao: number | null
          ordem_na_secao: number | null
          data_documento: string | null
          aprovado: boolean
          processado_por_ia: string | null
          processado_em: string | null
          criado_em: string
        }
        Insert: Omit<Database['steelbook']['Tables']['documentos_auto_indexados']['Row'], 'id' | 'criado_em'>
        Update: Partial<Database['steelbook']['Tables']['documentos_auto_indexados']['Insert']>
      }
      categorias: {
        Row: {
          id: string
          nome: string
          descricao: string | null
          cor: string
          ativo: boolean
          created_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['categorias']['Row'], 'id' | 'created_at'>
        Update: Partial<Database['steelbook']['Tables']['categorias']['Insert']>
      }
      integracao_ia: {
        Row: {
          id: string
          provider: string
          api_key_encriptada: string
          api_key: string
          modelo_padrao: string
          maximo_tokens: number
          ativo: boolean
          created_at: string
          updated_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['integracao_ia']['Row'], 'id' | 'created_at' | 'updated_at'>
        Update: Partial<Database['steelbook']['Tables']['integracao_ia']['Insert']>
      }
      logs_indexacao: {
        Row: {
          id: string
          projetos: {
            nome_projeto: string
            numero_projeto: string
          } | null
          total_documentos_indexados: number
          total_documentos_encontrados: number
          duracao_segundos: number
          status: 'sucesso' | 'erro' | 'em_andamento'
          created_at: string
        }
        Insert: Omit<Database['steelbook']['Tables']['logs_indexacao']['Row'], 'id' | 'created_at'>
        Update: Partial<Database['steelbook']['Tables']['logs_indexacao']['Insert']>
      }
    }
    Views: {
      [_ in never]: never
    }
    Functions: {
      [_ in never]: never
    }
    Enums: {
      [_ in never]: never
    }
  }
}
