Descrição do Projeto:
Exigências:
1. Laravel versão: 8.83.27
2. PHP Versão: 8.0.19
3. Usar padrão Eloquent para querys, inserção etc
4. Antes de inserir qualquer registro realizar Select para evitar duplicações
5. Tratamentos de erros de duplicidade retornando toast na tela
6. Utilização do Validador do Laravel para verificar se as informações
enviadas do front são válidas (exemplo: URL , CNPJ etc)
7. Nos cruds de vínculo deve ser mostrado um box que filtre a tabela de usuários um checkbox ao lado do nome de cada usuário
8. CRUD de vínculo: (ex: Usuário empresa)
a. Para cada tabela que estiver vinculada o CRUD deve mostrar uma lista de itens e permitir ser filtrado por nome(like) com um checkbox para cada registro retornado no banco. Usar plugin DataTables
ex: Crud Usuários Empresa (uma box para usuários, outra para empresa)
b. Regra de preenchimento dos checkbox ao entrar na tela :
i. Checkbox marcado caso tenha registro ativo na tabela
ii. Checkbox desmarcado caso não tenha registro ou registro inativo na tabela
c. Regra de atualização :
i. Checkbox marcado insere se já não estiver inserido
ii. Checkbox desmarcado atualiza status para 0 caso já
exista na tabela, caso não exista não insere
? Crud Empresa: (Criar usando no modelo php artisan make:model Empresa -mcr)
? Campos: id, nome_empresa, cnpj, status(0,1)
? Filtro: Nome empresa(like), cnpj(like), id_empresa , status(0,1)
? Obs: Admin mostra todas, profissional mostra apenas empresa cadastrada
ou opção para cadastrar, caso ainda não tenha cadastrado. (simular id
usando variável injectada via compact vindo do EmpresaController)
? Crud Usuário Empresa: (Criar usando no modelo php artisan make:model
UsuarioEmpresa -mcr)
? Campos: id, id_usuario, id_empresa, status (0,1)
? Filtro: Nome empresa(like), nome_usuario(like), id_empresa , status
? Crud de Produto: (Envio Migration e Model prontos)
? Campos: id,nome_produto, descricao, icone, modo_analise (0,1) ,status (0,1)
? Filtro: Nome produto(like), id(like), url produto(like) , status(0,1)
? Crud Domínio Produto: (Envio Migration e Model prontos)
? Campos: id, id_produto, url (unique), status(0,1)
? Filtro: Nome produto(like), id_produto, url_produto(like) , status(0,1)
? Crud Produto Externo: (Envio Migration e Model prontos)
? Campos: id, codigo_produto_externo, nome_produto_externo, id_produto,
status(0,1)
? Filtro: codigo_produto_externo(like), id_produto, url_produto(like) , status,
nome_produto_externo (like)
? Obs: Vincula produtos ao produto externo
? Crud Produto Telegram Canais: (Envio Migration e Model prontos)
? Campos:id, id_produto, id_telegram_canal, nome_telegram_canal, convite,
canal_admin(0,1), status(0,1)
? Filtro: id_produto, url_produto(like), id_telegram_canal,
nome_telegram_canal(like), convite(like), canal_admin, status