using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Entities.Contracts
{
    [Table("question_types")]
    public class QuestionType
    {
        [Key]
        [Column("id")]
        public Guid Id { get; set; }

        [Column("name")]
        [MaxLength(20)]
        public string Name { get; set; }

        [Column("subject_id")]
        public Guid SubjectId { get; set; }
        [ForeignKey(nameof(SubjectId))]
        public virtual Subject Subject { get; set; }

        [Column("description")]
        public string Description { get; set; }

        [Column("score_rule")]
        [MaxLength(20)]
        public string ScoreRule { get; set; }

        [InverseProperty(nameof(Question.QuestionType))]
        public virtual IEnumerable<Question> Questions { get; set; }

        public QuestionType()
        {
            Id = Guid.NewGuid();

			Questions = new HashSet<Question>();
		}
	}
}
