File size: 3,465 Bytes
0211e6e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
-- ============================================================================
-- Seed Data para desenvolvimento local - para.AI
-- ============================================================================
-- Este script insere dados de teste para desenvolvimento

-- Inserir tribunal de teste
INSERT INTO tribunais (id, nome, sigla, uf, tipo, url_base, created_at, updated_at)
VALUES 
    (gen_random_uuid(), 'Tribunal de Justiça do Paraná', 'TJPR', 'PR', 'Estadual', 'https://www.tjpr.jus.br', NOW(), NOW()),
    (gen_random_uuid(), 'Tribunal de Justiça de São Paulo', 'TJSP', 'SP', 'Estadual', 'https://www.tjsp.jus.br', NOW(), NOW()),
    (gen_random_uuid(), 'Superior Tribunal de Justiça', 'STJ', 'DF', 'Superior', 'https://www.stj.jus.br', NOW(), NOW())
ON CONFLICT (sigla) DO NOTHING;

-- Inserir usuário de teste
INSERT INTO usuarios (id, email, nome, senha_hash, ativo, role, created_at, updated_at)
VALUES 
    (gen_random_uuid(), 'admin@para.ai', 'Administrador', '$2b$12$dummy_hash_for_development', TRUE, 'admin', NOW(), NOW()),
    (gen_random_uuid(), 'dev@para.ai', 'Desenvolvedor', '$2b$12$dummy_hash_for_development', TRUE, 'user', NOW(), NOW())
ON CONFLICT (email) DO NOTHING;

-- Inserir acórdão de teste
DO $$
DECLARE
    v_tribunal_id VARCHAR(36);
    v_acordao_id VARCHAR(36);
BEGIN
    -- Pegar ID do TJPR
    SELECT id INTO v_tribunal_id FROM tribunais WHERE sigla = 'TJPR' LIMIT 1;

    -- Inserir acórdão de teste
    INSERT INTO acordaos (
        id, tribunal_id, numero, ano, data_julgamento, 
        ementa, relator, orgao_julgador, 
        hash_conteudo, status_processamento,
        created_at, updated_at
    )
    VALUES (
        gen_random_uuid(),
        v_tribunal_id,
        '0000001-00.2025.8.16.0000',
        2025,
        '2025-01-15 14:30:00',
        'APELAÇÃO CÍVEL. DIREITO DO CONSUMIDOR. RESPONSABILIDADE CIVIL. DANO MORAL. CDC ART. 14. RECURSO PROVIDO.',
        'Des. Teste da Silva',
        '1ª Câmara Cível',
        encode(sha256('teste_acordao_1'::bytea), 'hex'),
        'pendente',
        NOW(),
        NOW()
    )
    ON CONFLICT (hash_conteudo) DO NOTHING
    RETURNING id INTO v_acordao_id;

    -- Inserir palavras-chave de teste
    INSERT INTO palavras_chave (id, termo, categoria, frequencia, ativo, created_at)
    VALUES 
        (gen_random_uuid(), 'responsabilidade civil', 'direito_civil', 100, TRUE, NOW()),
        (gen_random_uuid(), 'dano moral', 'direito_civil', 150, TRUE, NOW()),
        (gen_random_uuid(), 'consumidor', 'direito_consumidor', 200, TRUE, NOW()),
        (gen_random_uuid(), 'CDC', 'legislacao', 180, TRUE, NOW())
    ON CONFLICT (termo) DO NOTHING;

END $$;

-- Criar índices adicionais úteis
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_acordao_ano_tribunal ON acordaos(ano, tribunal_id);
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_acordao_status_data ON acordaos(status_processamento, data_julgamento DESC);

-- Vacuum e analyze
VACUUM ANALYZE acordaos;
VACUUM ANALYZE tribunais;
VACUUM ANALYZE usuarios;

-- Mensagem de sucesso
DO $$
BEGIN
    RAISE NOTICE '✅ Seed data inserido com sucesso!';
    RAISE NOTICE '📊 Estatísticas:';
    RAISE NOTICE '   - Tribunais: %', (SELECT COUNT(*) FROM tribunais);
    RAISE NOTICE '   - Usuários: %', (SELECT COUNT(*) FROM usuarios);
    RAISE NOTICE '   - Acórdãos: %', (SELECT COUNT(*) FROM acordaos);
    RAISE NOTICE '   - Palavras-chave: %', (SELECT COUNT(*) FROM palavras_chave);
END $$;