using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    /// <summary>
    /// define a lobby for QMC rapidity fight
    /// attributes :
    ///     id : identifier of the lobby in the database
    ///     name : name of the lobby
    ///     password : password require to access at the lobby
    ///     idCreator : identifier of the creator player
    /// </summary>
    public class Lobby
    {
        private int id;
        private string? name;
        private string? password;
        private int nbPlayers;
        private int? idCreator;
        //      getters and setters of attributes
        public int Id
        {
            get => id;
            private set { id = value; }
        }
        public string Name
        {
            get => name == null ? "" : name;
            private set { name = value == "" ? null : value; }
        }
        public string Password
        {
            get => password == null ? "" : password;
            private set { password = value == "" ? null : value; }
        }
        public int NbPlayers
        {
            get => nbPlayers;
            set { nbPlayers = value; }
        }
        public int? IdCreator
        {
            get => idCreator;
            private set { idCreator = value; }
        }

        /// <summary>
        /// constructor of a lobby
        /// </summary>
        /// <param name="name">the name of the lobby</param>
        /// <param name="creator">the creator</param>
        /// <param name="password">the password require to access to the lobby</param>
        /// <param name="nbPlayers">the number of players in the lobby</param>
        /// <param name="id">the id of the lobby</param>
        public Lobby(string name, int? idCreator, string password = "", int nbPlayers = 0, int id = 0)
        {
            Name = name;
            IdCreator = idCreator;
            Password = password;
            NbPlayers = nbPlayers;
            Id = id;
        }
    }
}
