Skip to content

feat: processamento de simulação de pagamentos - #1

Open
AxelPCG wants to merge 1 commit into
mainfrom
feature/checkout-chaos
Open

feat: processamento de simulação de pagamentos#1
AxelPCG wants to merge 1 commit into
mainfrom
feature/checkout-chaos

Conversation

@AxelPCG

@AxelPCG AxelPCG commented May 11, 2026

Copy link
Copy Markdown
Owner

name: Pull Request
about: Crie um novo Pull Request para o projeto TechShop.
title: '[FEAT/FIX/DOCS]: Breve descrição da alteração'
labels: ''
assignees: ''


Descrição

Por favor, inclua um resumo da alteração e qual problema ela resolve. Liste também qualquer motivação e contexto relevantes.

Tipo de Alteração

Marque com um x as caixas que se aplicam:

  • Bug fix (alteração não-disruptiva que corrige um problema)
  • New feature (alteração não-disruptiva que adiciona funcionalidade)
  • Breaking change (correção ou funcionalidade que faria com que a funcionalidade existente não funcionasse como esperado)
  • Documentation (adiciona ou atualiza a documentação)
  • Refactoring (nenhuma alteração funcional, apenas melhoria de código)

Como Isso Foi Testado?

Por favor, descreva os testes que você executou para verificar suas alterações. Forneça instruções para que possamos reproduzir.

  • Teste A
  • Teste B

Checklist

  • Meu código segue as diretrizes de estilo deste projeto.
  • Eu realizei uma auto-revisão do meu próprio código.
  • Eu comentei meu código, particularmente em áreas de difícil compreensão.
  • Eu fiz as alterações correspondentes na documentação.
  • Minhas alterações não geram novos avisos (warnings).
  • Eu adicionei testes que provam que minha correção é eficaz ou que minha funcionalidade funciona.
  • Testes de unidade novos e existentes passam localmente com minhas alterações.

Copilot AI review requested due to automatic review settings May 11, 2026 01:24
@AxelPCG AxelPCG changed the title feat: implement initial checkout processing logic with simulated payment API feat: processamento de simulação de pagamentos May 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an initial (simulated) checkout processing implementation to the TechShop codebase, including a fake payment API call and a single function that performs cart validation, total calculation, discounting, and payment processing.

Changes:

  • Added a FakeResponse/fake_post pair to simulate a payment API call.
  • Added processar_tudo(...) to validate stock, compute totals (freight + discount), and trigger the simulated payment flow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/checkout.py
Comment on lines +1 to +5
# Este arquivo contém código propositalmente ruim para fins educacionais em uma aula de refatoração.
# MÁS PRÁTICAS APLICADAS:
# 1. Função única com múltiplas responsabilidades (validação, cálculo, pagamento).
# 2. Nomes de variáveis ruins e não descritivos (x1, val, p, temp, res).
# 3. Falta de tipagem de dados (sem type hints).
Comment thread src/checkout.py
Comment on lines +20 to +23
def fake_post(url, json):
"""Simula uma chamada POST para uma API de pagamento."""
print(f"--- Simulando POST para API de pagamento: {url} ---")
if json['valor_total'] > 0 and json['valor_total'] < 9999:
Comment thread src/checkout.py
Comment on lines +21 to +25
"""Simula uma chamada POST para uma API de pagamento."""
print(f"--- Simulando POST para API de pagamento: {url} ---")
if json['valor_total'] > 0 and json['valor_total'] < 9999:
print("--- Pagamento APROVADO (simulado) ---")
return FakeResponse(200, {"status": "pagamento_aprovado", "transacao_id": "xyz123abc"})
Comment thread src/checkout.py
Comment on lines +39 to +48
if cart_data and 'items' in cart_data:
# Validação de estoque e cálculo de valor
for p in cart_data['items']:
print(f"Verificando estoque para o produto ID: {p['id']}...")
# Estoque mockado
estoque_disponivel = 10
if p['qtd'] <= estoque_disponivel:
print(f"Estoque OK para {p['qtd']} unidades do produto {p['id']}.")
x1 = p['preco'] * p['qtd']
val = val + x1
Comment thread src/checkout.py
Comment on lines +62 to +66
if val > 200:
if u_data['vip']:
print("Aplicando desconto VIP de 15%")
val = val * 0.85
else:
Comment thread src/checkout.py
Comment on lines +75 to +76
"info_cartao": "XXXX-XXXX-XXXX-1234" # Dados sensíveis hardcoded
}
Comment thread src/checkout.py
Comment on lines +49 to +52
else:
print(f"ERRO: Estoque insuficiente para o produto {p['id']}.")
return "Erro de estoque"

Comment thread src/checkout.py
Comment on lines +79 to +89

if res.status_code == 200:
temp = res.json()
if temp['status'] == 'pagamento_aprovado':
print(f"Checkout finalizado com sucesso! ID da transação: {temp['transacao_id']}")
return {"sucesso": True, "transacao": temp['transacao_id']}
else:
print("Ocorreu um problema com o pagamento.")
return {"sucesso": False, "erro": "problema_na_api_de_pagamento"}
else:
print("API de pagamento retornou um erro.")
Comment thread src/checkout.py
Comment on lines +31 to +37
def processar_tudo(cart_data, u_data):
"""
Função gigante e mal escrita para processar um checkout completo.
Recebe dados do carrinho e do usuário em formato de dicionário.
"""
print("Iniciando processamento de checkout...")
val = 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants