# ---------- USER FUNCTIONS ----------
@[Link]('/register_user', methods=['POST'])
def register_user():
data = [Link]
user = User(**data)
[Link](user)
[Link]()
return jsonify({'message': 'User registered successfully'})
@[Link]('/login_user', methods=['POST'])
def login_user():
data = [Link]
user = [Link].filter_by(username=data['username'],
password=data['password']).first()
if user:
session['user_id'] = [Link]
return jsonify({'message': 'User logged in'})
return jsonify({'message': 'Invalid credentials'}), 401
@[Link]('/view_movies')
def view_movies():
movies = [Link]()
return jsonify([{'id': [Link], 'title': [Link], 'genre': [Link], 'rating':
[Link], 'duration': [Link]} for m in movies])
@[Link]('/view_showtimes/<int:movie_id>')
def view_showtimes(movie_id):
shows = [Link].filter_by(movie_id=movie_id).all()
return jsonify([{'id': [Link], 'time': s.show_time, 'language': [Link],
'price': [Link]} for s in shows])
@[Link]('/book_ticket', methods=['POST'])
def book_ticket():
data = [Link]
booking = Booking(
user_id=[Link]('user_id'),
show_id=data['show_id'],
seats=data['seats'],
booking_time=str([Link]())
)
[Link](booking)
[Link]()
return jsonify({'message': 'Ticket booked'})
@[Link]('/view_booking_history')
def view_booking_history():
bookings = [Link].filter_by(user_id=[Link]('user_id')).all()
return jsonify([{'show_id': b.show_id, 'seats': [Link], 'time':
b.booking_time} for b in bookings])
@[Link]('/logout_user')
def logout_user():
[Link]('user_id', None)
return jsonify({'message': 'User logged out'})
@[Link]('/cancel_booking/<int:booking_id>', methods=['DELETE'])
def cancel_booking(booking_id):
booking = [Link](booking_id)
if booking and booking.user_id == [Link]('user_id'):
[Link](booking)
[Link]()
return jsonify({'message': 'Booking cancelled'})
return jsonify({'message': 'Unauthorized or not found'}), 403
# ---------- ADMIN FUNCTIONS ----------
@[Link]('/login_admin', methods=['POST'])
def login_admin():
data = [Link]
admin = [Link].filter_by(username=data['username'],
password=data['password']).first()
if admin:
session['admin_id'] = [Link]
return jsonify({'message': 'Admin logged in'})
return jsonify({'message': 'Invalid admin credentials'}), 401
@[Link]('/add_movie', methods=['POST'])
def add_movie():
data = [Link]
movie = Movie(**data)
[Link](movie)
[Link]()
return jsonify({'message': 'Movie added'})
@[Link]('/add_show', methods=['POST'])
def add_show():
data = [Link]
show = Show(**data)
[Link](show)
[Link]()
return jsonify({'message': 'Show added'})
@[Link]('/view_all_movies')
def view_all_movies():
movies = [Link]()
return jsonify([{'id': [Link], 'title': [Link]} for m in movies])
@[Link]('/update_movie/<int:movie_id>', methods=['PUT'])
def update_movie(movie_id):
data = [Link]
movie = [Link](movie_id)
if movie:
for key, value in [Link]():
setattr(movie, key, value)
[Link]()
return jsonify({'message': 'Movie updated'})
return jsonify({'message': 'Movie not found'}), 404
@[Link]('/delete_movie/<int:movie_id>', methods=['DELETE'])
def delete_movie(movie_id):
movie = [Link](movie_id)
if movie:
[Link](movie)
[Link]()
return jsonify({'message': 'Movie deleted'})
return jsonify({'message': 'Movie not found'}), 404
@[Link]('/view_all_bookings')
def view_all_bookings():
bookings = [Link]()
return jsonify([{'user_id': b.user_id, 'show_id': b.show_id, 'seats':
[Link]} for b in bookings])
@[Link]('/manage_seats', methods=['POST'])
def manage_seats():
data = [Link] # {show_id: 1, seat_no: "A1", is_booked: False,
seat_type: "VIP"}
seat = Seat(**data)
[Link](seat)
[Link]()
return jsonify({'message': 'Seat updated/added'})
@[Link]('/logout_admin')
def logout_admin():
[Link]('admin_id', None)
return jsonify({'message': 'Admin logged out'})
@[Link]('/generate_report')
def generate_report():
bookings = [Link]()
total_earnings = 0
for b in bookings:
show = [Link](b.show_id)
if show:
total_earnings += [Link]
return jsonify({'total_bookings': len(bookings), 'total_earnings':
total_earnings})
# ---------- MAIN ----------
if __name__ == '__main__':
with app.app_context():
db.create_all()
[Link](debug=True)
✅ How to Use
1. Save the code in [Link].
2. Run the server:
3. python [Link]
4. Use Postman or any API tool to test endpoints like:
o POST /register_user with JSON {"username": "john", ...}
o POST /login_user, POST /book_ticket, etc.