from fastapi import FastAPI from pydantic import BaseModel from database import execute, fetch_one DEFAULT_ROLE = "member" def create_room(user_id, room_name, invite_code): room_id = execute( """ INSERT INTO rooms (name, owner_id, invite_code) VALUES (?, ?, ?) """, ( room_name, user_id, invite_code ) ) member_id = execute( """ INSERT INTO room_members (room_id, user_id, role) VALUES (?, ?, ?) """, ( room_id, user_id, "owner" ) ) return { "room_id": room_id, "member_id": member_id } def search_room( invite_code ): query = """ SELECT name FROM rooms WHERE invite_code = ? """ room = fetch_one( query, ( invite_code, ) ) if room is None: return None return room["name"] def accept_room(user_id, invite_code): query = """ SELECT id FROM rooms WHERE invite_code = ? """ room = fetch_one( query, (invite_code,) ) if room is None: return None room_id = room["id"] existing = fetch_one( """ SELECT * FROM room_members WHERE room_id = ? AND user_id = ? """, ( room_id, user_id ) ) if existing: return None query = """ INSERT INTO room_members (room_id, user_id, role) VALUES (?, ?, ?) """ member_id = execute( query, ( room_id, user_id, "member" ) ) return { "room_id": room_id, "member_id": member_id }