package room;

import java.text.DecimalFormat;
import java.util.ArrayList;

import account.Account;
import account.AccountManager;

public class RoomManager {

	private ArrayList<Room> roomList = new ArrayList<Room>();
	private static RoomManager theInstance = null;
	
	//通しのroomId
	int id = 0;

	private RoomManager(){
	}

	public static RoomManager getInstance(){
			if(theInstance == null){
				theInstance = new RoomManager(); //最初だけ作成
			}
			return theInstance;
	}

	//部屋を増やす
	public void addRoom(Room room){
		roomList.add(room);
	}

	//部屋を減らす
	public void removeRoom(Room room){
		roomList.remove(room);
	}

	//部屋の個数をカウント
	public int getRoomCount(){
		return roomList.size();
	}

	//n番目の部屋情報を取得
	public Room getRoom(int n){
		return roomList.get(n);
	}
	
	//部屋を作り、作成者を部屋に追加する
	public boolean createRoom(String name, String mode, String pass, String sId) {
		
		// AccountManagerを使うために宣言しておく                      　↓シングルトンパターンを利用しているため
		AccountManager accountmgr = AccountManager.getInstance();

		Room room = new Room();
		
//		//部屋のidを決める 　//部屋が削除されない場合
//		int n = getRoomCount();
//		System.out.println("room count : " + n);
//		int roomid = n+1;
		
		//部屋のidを決める　//部屋が削除される場合
		int roomid = id;
		id++;
				
System.out.println("createrRoom sId" + sId);
		
		//作成者を部屋に追加し、roomidもacに記録する
		Account ac = new Account();
		ac = accountmgr.getAccount(sId);
		if(ac == null){	//アカウントが見つからなかった場合にfalseを返す
			return false;
		}
		
		room.addMember(ac);
		
		//部屋を作る
		room.setName(name);
		room.setPass(pass);
		room.setId(roomid);
		roomList.add(room);
		
		return true;
	}
	
	//部屋のidで部屋を探す
	public Room searchIdRoom(int id){
		Room room = new Room();
		for(int i=0; i<getRoomCount(); i++) {
			room = getRoom(i);
			if(id == room.getId()) {
				return room;
			}
		}
		return null;
	}
	
}
