namespace Core.Entities
{
	public class AssignmentParameters(
		int effortLowerBound = 6, 
		int effortUpperBound = 8, 
		int eventsLowerBound = 2, 
		int eventsUpperBound = 4, 
		int teamSizeLimit = 4,
		bool limitTeamsToOne = true,
		bool requireRegional = true, 
		bool requireOnSite = true)
	{
		public int EffortLowerBound { get; set;  } = effortLowerBound;
		public int EffortUpperBound { get; set; } = effortUpperBound;
		public int EventsLowerBound { get; set; } = eventsLowerBound;
		public int EventsUpperBound { get; set; } = eventsUpperBound;
		public int TeamSizeLimit { get; set; } = teamSizeLimit;
		public bool LimitTeamsToOne { get; set; } = limitTeamsToOne;
		public bool RequireRegional { get; set; } = requireRegional;
		public bool RequireOnSite { get; set; } = requireOnSite;

        public override string ToString()
        {
            return $"Team Size Limit: {TeamSizeLimit}" + Environment.NewLine +
                   $"Require Regional: {RequireRegional}" + Environment.NewLine +
                   $"Require On-site: {RequireOnSite}" + Environment.NewLine +
                   $"Events Range: [{EventsLowerBound}-{EventsUpperBound}]" + Environment.NewLine +
                   $"Effort Range: [{EffortLowerBound}-{EffortUpperBound}]";
        }
    }
}