commit 143ad71822525ffb4da8500d30551941bc698cd5 Author: Gustavo Date: Thu Aug 13 09:39:28 2026 -0300 chore: scaffold painel-clientes-web diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..0ad832f --- /dev/null +++ b/.env.example @@ -0,0 +1,13 @@ +# Copie para .env e preencha antes de rodar (nunca commitar o .env real). + +ADMIN_USER=admin +ADMIN_PASSWORD=SUBSTITUA_POR_UMA_SENHA_FORTE + +# Banco de dev (mesmo container do projeto n8n / contatos-chave-web): +# DB_HOST=host.docker.internal (se este app tambem rodar em container) +# DB_HOST=127.0.0.1 (se este app rodar direto na maquina) +DB_HOST=127.0.0.1 +DB_PORT=3307 +DB_NAME=gtisoftw_clientes_dev +DB_USER=root +DB_PASSWORD=devpassword123 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bc4f72a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +__pycache__/ +*.pyc +.venv/ +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..df5efa5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.12-slim +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt +COPY app ./app +EXPOSE 8000 +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8e8d2a6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +services: + painel: + build: . + ports: + - "8010:8000" + env_file: + - .env + restart: unless-stopped diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..4584de7 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +testpaths = tests +pythonpath = . diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..b918a15 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,3 @@ +-r requirements.txt +pytest==8.3.3 +httpx==0.27.2 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b8e9fbe --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +fastapi==0.115.0 +uvicorn[standard]==0.30.6 +jinja2==3.1.4 +python-multipart==0.0.9 +PyMySQL==1.1.1 +python-dotenv==1.0.1 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..9bc1ab8 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,16 @@ +""" +Configuração compartilhada dos testes. Define defaults de conexão iguais ao +.env.example ANTES de qualquer módulo do app ser importado, para os testes +rodarem direto contra o container de dev (licenciamento-mysql-dev, porta +3307) sem exigir setup manual — quem rodar `pytest` só precisa ter esse +container de pé (docker-compose.yml de licenciamento-n8n/ ou Banco para Prod/). +""" +import os + +os.environ.setdefault("ADMIN_USER", "admin") +os.environ.setdefault("ADMIN_PASSWORD", "teste123") +os.environ.setdefault("DB_HOST", "127.0.0.1") +os.environ.setdefault("DB_PORT", "3307") +os.environ.setdefault("DB_NAME", "gtisoftw_clientes_dev") +os.environ.setdefault("DB_USER", "root") +os.environ.setdefault("DB_PASSWORD", "devpassword123")