using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using AsbCloudApp.Data.User;

namespace AsbCloudApp.Data
{
    /// <summary>
    /// DTO компании
    /// </summary>
    public class CompanyDto : IId
    {
        /// <inheritdoc/>
        public int Id { get; set; }

        /// <summary>
        /// Название
        /// </summary>
        [Required]
        [StringLength(50, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 50 символов")]
        public string Caption { get; set; } = null!;

        /// <summary>
        /// ИД типа компании
        /// </summary>
        public int IdCompanyType { get; set; }

        /// <summary>
        /// Название типа компании
        /// </summary>
        [StringLength(30, MinimumLength = 1, ErrorMessage = "Допустимое имя типа компании от 1 до 30 символов")]
        public string? CompanyTypeCaption { get; set; } = null!;

    }

    /// <summary>
    /// DTO компании с пользователями
    /// </summary>
    public class CompanyWithUsersDto: CompanyDto
    {
        /// <summary>
        /// Пользователи компании
        /// </summary>
        public IEnumerable<UserContactDto> Users { get; set; } = Enumerable.Empty<UserContactDto>();
    }
}