# Generated by Django 5.1 on 2026-04-02 19:30
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
[docs]
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='ProcessoSeletivo',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('titulo', models.CharField(max_length=255, verbose_name='Título')),
('descricao', models.TextField(blank=True, verbose_name='Descrição')),
('edital', models.CharField(blank=True, max_length=100, verbose_name='Número do edital')),
('status', models.CharField(choices=[('RASCUNHO', 'Rascunho'), ('PUBLICADO', 'Publicado'), ('SUSPENSO', 'Suspenso'), ('ENCERRADO', 'Encerrado')], default='RASCUNHO', max_length=20, verbose_name='Status')),
('data_criacao', models.DateTimeField(auto_now_add=True, verbose_name='Data de criação')),
('data_atualizacao', models.DateTimeField(auto_now=True, verbose_name='Data de atualização')),
('coordenador', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='processos_coordenados', to=settings.AUTH_USER_MODEL, verbose_name='Coordenador')),
],
options={
'verbose_name': 'Processo Seletivo',
'verbose_name_plural': 'Processos Seletivos',
'ordering': ['-data_criacao'],
},
),
migrations.CreateModel(
name='Fase',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('tipo', models.CharField(choices=[('INSCRICAO', 'Inscrição'), ('INTERMEDIARIA', 'Intermediária'), ('RESULTADO_FINAL', 'Resultado Final')], default='INTERMEDIARIA', max_length=20, verbose_name='Tipo')),
('nome', models.CharField(max_length=255, verbose_name='Nome')),
('descricao', models.TextField(blank=True, verbose_name='Descrição')),
('ordem', models.PositiveIntegerField(verbose_name='Ordem')),
('data_inicio', models.DateTimeField(blank=True, null=True, verbose_name='Data de início')),
('data_fim', models.DateTimeField(blank=True, null=True, verbose_name='Data de fim')),
('habilitacao_obrigatoria', models.BooleanField(default=True, help_text='Se marcado, candidatos não habilitados serão eliminados do processo.', verbose_name='Eliminação por não habilitação')),
('processo_seletivo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fases', to='processos.processoseletivo')),
],
options={
'verbose_name': 'Fase',
'verbose_name_plural': 'Fases',
'ordering': ['processo_seletivo', 'ordem'],
'unique_together': {('processo_seletivo', 'ordem')},
},
),
migrations.CreateModel(
name='Etapa',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('nome', models.CharField(max_length=255, verbose_name='Nome')),
('descricao', models.TextField(blank=True, verbose_name='Descrição')),
('ordem', models.PositiveIntegerField(verbose_name='Ordem')),
('tipo_avaliacao', models.CharField(choices=[('NOTA', 'Nota'), ('PARECER', 'Parecer textual'), ('CHECKLIST', 'Checklist'), ('CRITERIOS', 'Critérios ponderados'), ('APROVACAO', 'Aprovação/Reprovação')], default='NOTA', max_length=20, verbose_name='Tipo de avaliação')),
('criterio_consolidacao', models.CharField(choices=[('MEDIA', 'Média'), ('SOMA', 'Soma')], default='MEDIA', max_length=10, verbose_name='Critério de consolidação de notas')),
('numero_avaliadores', models.PositiveIntegerField(default=1, help_text='Deve ser ímpar: 1, 3, 5, 7...', verbose_name='Número de avaliadores')),
('exige_formulario', models.BooleanField(default=False, verbose_name='Exige preenchimento de formulário')),
('exige_documentos', models.BooleanField(default=False, verbose_name='Exige envio de documentos')),
('data_inicio', models.DateTimeField(blank=True, null=True, verbose_name='Data de início')),
('data_fim', models.DateTimeField(blank=True, null=True, verbose_name='Data de fim')),
('fase', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='etapas', to='processos.fase')),
],
options={
'verbose_name': 'Etapa',
'verbose_name_plural': 'Etapas',
'ordering': ['fase', 'ordem'],
'unique_together': {('fase', 'ordem')},
},
),
]