Untitled
# 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)
Leave a Comment