Untitled
unknown
plain_text
10 months ago
3.2 kB
2
Indexable
# Tailor App Backend (Initial Setup)
# Using Flask for backend API and SQLite for lightweight database.
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///tailor_app.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
# Models
class Customer(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)
phone = db.Column(db.String(15), unique=True, nullable=False)
measurements = db.Column(db.Text, nullable=True)
class Order(db.Model):
id = db.Column(db.Integer, primary_key=True)
customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False)
description = db.Column(db.Text, nullable=False)
status = db.Column(db.String(20), default='pending')
due_date = db.Column(db.Date, nullable=False)
price = db.Column(db.Float, nullable=False)
# Routes
@app.route('/customers', methods=['GET', 'POST'])
def manage_customers():
if request.method == 'POST':
data = request.json
new_customer = Customer(
name=data['name'],
email=data['email'],
phone=data['phone'],
measurements=data.get('measurements', '')
)
db.session.add(new_customer)
db.session.commit()
return jsonify({"message": "Customer added successfully!"}), 201
customers = Customer.query.all()
return jsonify([{
'id': customer.id,
'name': customer.name,
'email': customer.email,
'phone': customer.phone,
'measurements': customer.measurements
} for customer in customers])
@app.route('/orders', methods=['GET', 'POST'])
def manage_orders():
if request.method == 'POST':
data = request.json
new_order = Order(
customer_id=data['customer_id'],
description=data['description'],
status=data.get('status', 'pending'),
due_date=data['due_date'],
price=data['price']
)
db.session.add(new_order)
db.session.commit()
return jsonify({"message": "Order added successfully!"}), 201
orders = Order.query.all()
return jsonify([{
'id': order.id,
'customer_id': order.customer_id,
'description': order.description,
'status': order.status,
'due_date': str(order.due_date),
'price': order.price
} for order in orders])
@app.route('/orders/<int:order_id>', methods=['PUT', 'DELETE'])
def update_or_delete_order(order_id):
order = Order.query.get_or_404(order_id)
if request.method == 'PUT':
data = request.json
order.status = data.get('status', order.status)
db.session.commit()
return jsonify({"message": "Order updated successfully!"})
db.session.delete(order)
db.session.commit()
return jsonify({"message": "Order deleted successfully!"})
if __name__ == '__main__':
db.create_all() # Initialize the database
app.run(debug=True)
Editor is loading...
Leave a Comment