/freezer-control

Sistema de gestão de freezers

Primary LanguagePHPMIT LicenseMIT

Sistema de gestão de freezers


🚀 Revolucionando a forma como você compra bebidas ✨ Freezer Control

version project stack php stack laravel stack Filament stack Tailwind GPLv3 License

🚧 Projeto 🚀 em construção... 🚧



📦 dependências do projeto

  • Docker + docker-compose
  • curl
  • Make 4.x

📚 Configurando o projeto em um novo ambiente

Simplesmente execute o comando make no seu terminal:

make

📚 Como rodar o projeto em novo ambiente SEM o 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 senha password

Agora, basta acessar a URL http://laravel.test

OBS.: Verifique se no seu arquivo hosts existe o alias para 127.0.0.1 laravel.test.


✨ Link do projeto anterior

🔧 Versão antiga


♻️ Pendências

  • 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!

🧱 Como integrar com gateway de pagamento

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');

CRIAÇÃO DE ROTAS API

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)


🔜 Parte 02

  • Criar APIs para aplicativo Mobile (sanctum).

🔜 Parte 03

https://youtu.be/-Jf9hgt-Fj4?list=PLbjKo3xK3gjcOz9Ocn3H6aTtTRBypCAaA&t=509


✨ Contribuidores


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.