O Shared Kernel contĂ©m elementos fundamentais do domĂnio que sĂŁo compartilhados entre mĂșltiplos bounded contexts, como value objects, enums e utilitĂĄrios bĂĄsicos que representam conceitos universais do sistema judicial.
// Identificadores Ășnicos
ProcessoId, ServentiaId, UsuarioId, ComarcaId, CargoId, AreaId
AssessorId, AdvogadoId, ParteId, GuiaId, AudienciaId
// Dados estruturados
CPF, CNPJ, RG, OAB, Email, Telefone
CEP, Endereco, NumeroProcesso
// PerĂodos e datas
PeriodoProcessual, DataAudiencia, PrazoLegal
// Status universais
StatusProcesso, StatusPendencia, StatusAudiencia, StatusGuia
// Tipos e classificaçÔes
TipoProcesso, TipoMovimentacao, TipoPendencia, TipoAudiencia
PerfilUsuario, TipoDocumento, GrauInstancia
// ConfiguraçÔes do sistema
ConfiguracaoSistema, ParametrosGerais
// Validadores de domĂnio
ValidadorCPF, ValidadorCNPJ, ValidadorOAB
ValidadorNumeroProcesso, ValidadorCodigoAcesso
// Formatadores
FormatadorProcesso, FormatadorDocumento, FormatadorData
// ExceçÔes de domĂnio base
DominioException, ValidacaoException, NegocioException
// Eventos fundamentais
ProcessoCriado, ProcessoAlterado, MovimentacaoRealizada
PendenciaGerada, AudienciaAgendada, ConclusaoRealizada
src/main/java/br/gov/go/tj/projudi/
âââ shared/
âââ valueobject/ # Value Objects
â âââ identificador/ # ProcessoId, UsuarioId, etc.
â âââ documento/ # CPF, CNPJ, RG, etc.
â âââ endereco/ # CEP, Endereco, etc.
â âââ periodo/ # Datas, prazos, perĂodos
âââ enums/ # Enums e constantes
â âââ status/ # Status diversos
â âââ tipo/ # Tipos e classificaçÔes
â âââ configuracao/ # ConfiguraçÔes
âââ validation/ # Validadores de domĂnio
âââ formatter/ # Formatadores
âââ exception/ # ExceçÔes base de domĂnio
âââ event/ # Eventos de domĂnio base
âââ util/ # UtilitĂĄrios compartilhados
// No contexto de Processo
public class Processo {
private ProcessoId id;
private NumeroProcesso numero;
private StatusProcesso status;
private ComarcaId comarca;
// ...
}
// No contexto de PendĂȘncia
public class Pendencia {
private PendenciaId id;
private ProcessoId processoId; // Reutiliza do Shared Kernel
private StatusPendencia status;
private UsuarioId responsavel; // Reutiliza do Shared Kernel
// ...
}
src/main/java/br/gov/go/tj/projudi/
âââ shared/ # đ Shared Kernel
â âââ valueobject/
â âââ enums/
â âââ validation/
â âââ exception/
â âââ event/
âââ conclusao/ # ConclusĂ”es e DecisĂ”es
âââ pendencia/ # PendĂȘncias e Cumprimentos
âââ audiencia/ # AudiĂȘncias, SessĂ”es e Agenda
âââ processo/
â âââ ciclovida/ # Ciclo de Vida do Processo
â âââ consulta/ # Consulta e Dados do Processo
âââ identidadeacesso/ # Identidade, Acesso e Equipes
âââ ato/ # Atos e Instrumentos Judiciais
âââ configuracao/ # ConfiguraçÔes e Automação
âââ relatorio/
â âââ produtividade/ # EstatĂsticas e Produtividade
â âââ gerencial/ # RelatĂłrios Gerenciais
âââ documento/ # GestĂŁo Documental
âââ movimentacao/ # MovimentaçÔes Processuais
âââ parte/ # Partes e Representação
âââ financeiro/ # Financeiro â Guias e Custas
âââ api/publica/ # APIs PĂșblicas e Serviços
â
Reutilização: Elimina duplicação de conceitos fundamentais
â
ConsistĂȘncia: Uso padronizado de value objects e validaçÔes
â
Integridade: Garantia de que conceitos fundamentais sĂŁo tratados uniformemente
â
Manutenibilidade: Centralização de mudanças em conceitos base
â
EficiĂȘncia: Reduz tempo de desenvolvimento ao reutilizar componentes validados