🚀 Revolucionando a forma como você compra bebidas ✨ Freezer Control
- Docker + docker-compose
- curl
- Make 4.x
Simplesmente execute o comando make
no seu terminal:
make
# Depois que você realizar o clone faça os seguintes comandos
php artisan storage:link
php artisan migrate:fresh --seed
php artisan shield:instal
Usuário de acesso
admin@admin.com
e senhapassword
Agora, basta acessar a URL http://laravel.test
OBS.: Verifique se no seu arquivo
hosts
existe o alias para127.0.0.1 laravel.test
.
- Ao criar um novo customer, verificar se ele não está cadastrado no asaas. Se não tiver, cadastrar e adicionar o "customerId" no nosso banco.
- Criar a coluna "customerId" na tabela customers
- Sincronizar o cliente com o ASAAS no observer que já temos (em todos os métodos do CRUD)
- Criar integração com o recurso "Cobrança" do ASAAS (Charge).
- Finalizar a tela de Venda do nosso sistema (Checkout).
- Dashboards, Relatórios, Gráficos, ETECETARASS!!!!
- Adicionar validação de maioridade na tela de vendas (ao adicionar novo cliente).
- Criar painel APP com a tela de "Venda" (que pode chamar "Comprar")
- Criar um globalScope/policies para que um cliente não tenha acesso a informações de outro.
- Criar Dashboards no painel APP
- Testes finais
- Correr pro abraço!
Instanciar o conector (adapter) do gateway de pagamento que deseja
$adapter = new App\Services\PaymentGateway\Connectors\AsaasConnector);
Instanciar o cliente Gateway utilizando o adapter criado préviamente
$gateway = new App\Services\PaymentGateway\Gateway($adapter);
Clientes:
// Insere um novo cliente
$data = [
'name' => 'Fabiano Fernandes',
'cpfCnpj' => '21115873709',
'email' => 'fabianofernandes@test.com.br',
'mobilePhone' => '16992222222',
];
$customer = $gateway->customer()->create($data);
// Atualizar um cliente
$newData = [
'name' => 'Tio Jobs',
'cpfCnpj' => '21115873709',
'email' => 'tiojobs@test.com.br',
'mobilePhone' => '16992222222',
];
$customer = $gateway->customer()->update('cus_000005891625', $newData);
// Retorna a listagem de clientes
$customers = $gateway->customer()->list();
// Retorna clientes utilizando filtros
$customers = $gateway->customer()->list(['cpfCnpj' => '21115873709']);
// Remove um cliente
$customer = $gateway->customer()->delete('cus_000005891625');
Cobrança:
// Criar uma nova cobrança
$data = [
"billingType" => "BOLETO", // "CREDIT_CARD", "PIX", "BOLETO"
"discount" => [
"value" => 10,
"dueDateLimitDays" => 0
],
"interest" => [
"value" => 2
],
"fine" => [
"value" => 1
],
"customer" => "cus_000005891625",
"dueDate" => "2024-02-29",
"value" => 100,
"description" => "Pedido 056984",
"daysAfterDueDateToCancellationRegistration" => 1,
"externalReference" => "056984",
"postalService" => false
];
$payment = $gateway->payment()->create($data);
// Atualiza uma cobrança
$payment = $gateway->payment()->update('cus_000005891625', $newData);
// Retorna a listagem de cobranças
$payments = $gateway->payment()->list();
// Retorna cobranças utilizando filtros
$payments = $gateway->payment()->list(['customer' => 'cus_000005891625', 'status' => 'RECEIVED']);
// Remove uma cobrança
$customer = $gateway->payment()->delete('cus_000005891625');
Estamos utilizando um plugin chamado API Service
, encontrando no link: https://filamentphp.com/plugins/rupadana-api-service
Esse pacote também depende do plugin Filament Shield
, encontrado no link https://filamentphp.com/plugins/bezhansalleh-shield#installation
sail art make:filament-api-service BlaBlaBlaResource
Estrutura de Rotas Necessárias:
// ---------------- PAINEL ADMIN --------------------------
// Cadastro de usuário (sem autenticação)
// Login de usuário (sem autenticação)
// Informações de dashboard - mais informações do que no painel /app (logado)
// Atualização cadastral de clientes [customer] (nome, email [caso não exista], celular
// - Já atualizar o email dele também ta tabela users (caso aplicável)
// Inventário (logado)
// Venda (venda)
// ---------------- PAINEL APP --------------------------
// Cadastro de usuário (sem autenticação)
// Login de usuário (sem autenticação)
// Informações de dashboard (logado)
// Atualização cadastral [customer] (nome, email [caso não exista], celular
// - Já atualizar o email dele também ta tabela users (caso aplicável)
- Criar APIs para aplicativo Mobile (sanctum).
- Criar Aplicativo Mobile (Administrador + Consumidor)
- API: https://filamentphp.com/plugins/rupadana-api-service
https://youtu.be/-Jf9hgt-Fj4?list=PLbjKo3xK3gjcOz9Ocn3H6aTtTRBypCAaA&t=509
Icaro William |
Fabiano Fernandes |
Rafael Blum |
Wesley |
Michel Versiani |
Tiago Lemos Neitzke |
Ninguém é tão sábio que não tenha algo para aprender e nem tão tolo que não tenha algo pra ensinar.
Blaise Pascal
.