first commit

This commit is contained in:
Antero Asafe Matos de Oliveira 2025-03-26 22:13:35 -04:00
commit a10790da60
20 changed files with 79 additions and 0 deletions

Binary file not shown.

16
app/__init__.py Normal file
View File

@ -0,0 +1,16 @@
from flask import Flask
from app.database import db
from app.routes.user_routes import user_bp
from app.routes.invoice_routes import invoice_bp
def create_app():
app = Flask(__name__)
app.config.from_object("config")
db.init_app(app)
# Registrar blueprints
app.register_blueprint(user_bp, url_prefix="/users")
app.register_blueprint(invoice_bp, url_prefix="/invoices")
return app

Binary file not shown.

Binary file not shown.

3
app/database.py Normal file
View File

@ -0,0 +1,3 @@
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

0
app/models/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

6
app/models/invoice.py Normal file
View File

@ -0,0 +1,6 @@
from app.database import db
class Invoice(db.Model):
id = db.Column(db.Integer, primary_key=True)
amount = db.Column(db.Float, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)

7
app/models/user.py Normal file
View File

@ -0,0 +1,7 @@
from app.database import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(100), unique=True, nullable=False)
invoices = db.relationship("Invoice", backref="user", lazy=True)

0
app/routes/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,10 @@
from flask import Blueprint, jsonify
from app.models.invoice import Invoice
from app.database import db
invoice_bp = Blueprint("invoices", __name__)
@invoice_bp.route("/", methods=["GET"])
def get_invoices():
invoices = Invoice.query.all()
return jsonify([{"id": i.id, "amount": i.amount, "user_id": i.user_id} for i in invoices])

23
app/routes/user_routes.py Normal file
View File

@ -0,0 +1,23 @@
from flask import Blueprint, jsonify, request
from app.models.user import User
from app.database import db
user_bp = Blueprint("users", __name__)
@user_bp.route("/", methods=["GET"])
def get_users():
users = User.query.all()
return jsonify([{"id": u.id, "name": u.name, "email": u.email} for u in users])
@user_bp.route("/", methods=["POST"])
def create_user():
data = request.get_json()
if not data or not data.get("name") or not data.get("email"):
return jsonify({"error": "Nome e email são obrigatórios"}), 400
new_user = User(name=data["name"], email=data["email"])
db.session.add(new_user)
db.session.commit()
return jsonify({"message": "Usuário criado com sucesso!", "id": new_user.id}), 201

4
config.py Normal file
View File

@ -0,0 +1,4 @@
import os
SQLALCHEMY_DATABASE_URI = "sqlite:///database.db"
SQLALCHEMY_TRACK_MODIFICATIONS = False

BIN
instance/database.db Normal file

Binary file not shown.

10
run.py Normal file
View File

@ -0,0 +1,10 @@
from app import create_app
from app.database import db
app = create_app()
if __name__ == "__main__":
with app.app_context():
db.create_all()
print("Banco de dados criado com sucesso!")
app.run(debug=True)