from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
room_id = Column(Integer, ForeignKey('rooms.id'))
class Room(Base):
__tablename__ = 'rooms'
id = Column(Integer, primary_key=True)
capacity = Column(Integer)
class Record(Base):
__tablename__ = 'records'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('users.id'))
room_id = Column(Integer, ForeignKey('rooms.id'))
from flask import Flask, request
app = Flask(__name__)
@app.route('/add_user', methods=['POST'])
def add_user():
data = request.get_json()
new_user = User(name=data['name'], room_id=data['room_id'])
db.session.add(new_user)
db.session.commit()
return {"message": "User added successfully"}, 201
@app.route('/assign_room', methods=['POST'])
def assign_room():
data = request.get_json()
user_id = data['user_id']
available_rooms = Room.query.filter_by(capacity=Room.capacity).first()
if available_rooms:
record = Record(user_id=user_id, room_id=available_rooms.id)
db.session.add(record)
db.session.commit()
return {"message": "Room assigned successfully"}, 200
else:
return {"message": "No available rooms"}, 400