You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Com o módulo Profile implementado (#251), o Address polimórfico no lugar (#252), e as actions de domínio prontas (#253), o código legado do módulo Identity que tratava de "apresentação" não é mais necessário.
Esta issue faz a limpeza completa — remove todo o código que referencia os models antigos (Information, Address do Identity), a API REST de perfil, e os artefatos relacionados (DTOs, actions, controllers, rotas, testes).
Regra fundamental
Código removido por completo. Tabelas permanecem no banco. As tabelas user_information e user_address ficam como safety net. Nenhum DROP TABLE nesta issue.
O que NÃO remover
Tabela user_information (fica no banco)
Tabela user_address (fica no banco)
Migrations antigas (elas descrevem o histórico do schema)
Qualquer coisa do módulo profile novo
O que remover
No módulo Identity (app-modules/identity/)
Models e factories:
src/User/Models/Information.php
src/User/Models/Address.php
database/factories/InformationFactory.php
database/factories/AddressFactory.php
Actions e DTOs:
src/User/Actions/InformationUserAction.php
src/User/Actions/UpdateProfile.php
src/User/DTOs/UpdateProfileDTO.php
src/User/DTOs/UpsertInformationDTO.php
HTTP layer (API REST):
src/User/Http/Controllers/UsersController.php — métodos getProfile() e putProfile() (avaliar se o controller inteiro pode ser removido ou se getUsers()/getUser() ainda são usados)
Após a remoção, nenhum arquivo PHP no projeto deve:
Importar He4rt\Identity\User\Models\Information
Importar He4rt\Identity\User\Models\Address
Referenciar user_information como tabela (exceto migrations)
Referenciar as rotas users.profile ou users.profile.update
Cenários BDD
Cenário: Nenhum arquivo referencia InformationDado que o código legado foi removido
Quando faço grep por "Information" nos arquivos PHP (exceto migrations e este teste)
Então zero resultados para o model He4rt\Identity\User\Models\Information
Cenário: Nenhum arquivo referencia Address antigoDado que o código legado foi removido
Quando faço grep por "He4rt\Identity\User\Models\Address" nos arquivos PHP
Então zero resultados
Cenário: API REST de perfil não respondeQuando faço GET /api/users/profile/qualquer-valor
Então recebo 404
E a rota users.profile não existe
Cenário: API REST de update de perfil não respondeQuando faço PUT /api/users/profile/qualquer-valor
Então recebo 404
E a rota users.profile.update não existe
Cenário: Tabelas antigas continuam no bancoDado que o código foi removido
Quando verifico o schema do banco
Então a tabela user_information existe
E a tabela user_address existe
Cenário: User model não tem relação information()Dado que o código legado foi removido
Quando instancio um User
Então chamar $user->information() lança erro (método não existe)
Cenário: Testes existentes continuam passandoDado que o código legado foi removido
Quando rodo a suite de testes completa
Então todos os testes passam (exceto os removidos nesta issue)
Acceptance Criteria
Todos os arquivos listados na seção "O que remover" foram deletados
Relações information() e address() antiga removidas do User model
Parent
Parte da PRD #250 — Módulo Profile Fase 1.
Contexto
Com o módulo Profile implementado (#251), o Address polimórfico no lugar (#252), e as actions de domínio prontas (#253), o código legado do módulo Identity que tratava de "apresentação" não é mais necessário.
Esta issue faz a limpeza completa — remove todo o código que referencia os models antigos (
Information,Addressdo Identity), a API REST de perfil, e os artefatos relacionados (DTOs, actions, controllers, rotas, testes).Regra fundamental
Código removido por completo. Tabelas permanecem no banco. As tabelas
user_informationeuser_addressficam como safety net. NenhumDROP TABLEnesta issue.O que NÃO remover
user_information(fica no banco)user_address(fica no banco)profilenovoO que remover
No módulo Identity (
app-modules/identity/)Models e factories:
src/User/Models/Information.phpsrc/User/Models/Address.phpdatabase/factories/InformationFactory.phpdatabase/factories/AddressFactory.phpActions e DTOs:
src/User/Actions/InformationUserAction.phpsrc/User/Actions/UpdateProfile.phpsrc/User/DTOs/UpdateProfileDTO.phpsrc/User/DTOs/UpsertInformationDTO.phpHTTP layer (API REST):
src/User/Http/Controllers/UsersController.php— métodosgetProfile()eputProfile()(avaliar se o controller inteiro pode ser removido ou segetUsers()/getUser()ainda são usados)src/User/Http/Requests/UpdateProfileRequest.phpsrc/User/Exceptions/ProfileException.phpFilament schemas:
src/Filament/Shared/Schemas/UserInformationForm.phpRotas:
routes/user-routes.php: remover as rotasusers.profileeusers.profile.update(GET/PUT /api/users/profile/{value})/api/users/também são legado e devem sairTestes:
tests/Feature/FindProfileTest.phptests/Feature/UpdateProfileTest.phpNo model User (
src/User/Models/User.php):information()(retornaHasOne<Information>)address()antiga (será substituída pelomorphOnedo Address polimórfico — ver Address polimórfico compartilhado #252)Verificação global
Após a remoção, nenhum arquivo PHP no projeto deve:
He4rt\Identity\User\Models\InformationHe4rt\Identity\User\Models\Addressuser_informationcomo tabela (exceto migrations)users.profileouusers.profile.updateCenários BDD
Acceptance Criteria
information()eaddress()antiga removidas do User modeladdress()nova (morphOne polimórfico) já está no User model (via Address polimórfico compartilhado #252)user_informationeuser_addresscontinuam existindo no bancoDROP TABLEfoi criadavendor/bin/pint --dirty --format agentpassa sem errosBlocked by