using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace OnlineAssessment.Domain.ViewModels
{
    
    public class PracticeViewAllPagedModel
    {
        public int total_count { get; set; }
        public int total_pages { get; set; }
        public int page_index { get; set; }
        public bool next { get; set; }
        public bool previous { get; set; }
        public List<PracticeViewAllModel> practices { get; set; }
    }

    public class PracticeViewDraftPagedModel
    {
        public int total_count { get; set; }
        public int total_pages { get; set; }
        public int page_index { get; set; }
        public bool next { get; set; }
        public bool previous { get; set; }
        public List<PracticeViewAllModel> practices { get; set; }
    }

    public class PracticeViewModel
    {
        public int id { get; set; }
        public int institute_id { get; set; }
        public int? author_id { get; set; }
        public string module { get; set; }
        public string module_name { get; set; }
        public int module_id { get; set; }
        public string module_status { get; set; }
        public int? language_id { get; set; }
        public string name { get; set; }
        public string instruction { get; set; }
        public string image { get; set; }
        public string status { get; set; }
        public DateTime? start_date { get; set; }
        public bool? isActive { get; set; }
        public DateTime? created_on { get; set; }
        public DateTime? updated_on { get; set; }
    }

    

    public class PracticeViewAllModel
    {
        public int id { get; set; }
        public int? author_id { get; set; }
        public string author_name { get; set; }
        public string name { get; set; }
        public string image { get; set; }
        public string module { get; set; }
        public int module_id { get; set; }
        public string language_code { get; set; }
        public string status { get; set; }
        public short complexity { get; set; }
        public DateTime? start_date { get; set; }
        public int total_questions { get; set; }
        public DateTime? created_on { get; set; }
        public DateTime? updated_on { get; set; }
        public bool? isActive { get; set; }
    }
    
    public class PracticeQuestionsPagedModel
    {
        public int total_count { get; set; }
        public int total_pages { get; set; }
        public int page_index { get; set; }
        public bool next { get; set; }
        public bool previous { get; set; }
        public List<PracticeQuestionDetails> questions { get; set; }
    }

    public class PracticeQuestionDetails
    {
        public int id { get; set; }
        public string type { get; set; }
        public string type_name { get; set; }
        public string status { get; set; }
        public string title { get; set; }
        public short? complexity_code { get; set; }
        public string image { get; set; }
        public string source { get; set; }
        public int author { get; set; }
        public bool? isBookmarked { get; set; }
        public int topic_id { get; set; }
        public string topic_name { get; set; }
        public double? duration_seconds { get; set; }
        public int? sequence { get; set; }
        public bool? isActive { get; set; }

    }

    public class PracticeAddModel
    {
        [Required]
        public string name { get; set; }
        public string image { get; set; }
        [Required]
        public string module { get; set; }
        [Required]
        public int module_id { get; set; }
    }


    public class QuestionDurationList
    {
        [Required]
        public List<QuestionDuration> qnsMarkList { get; set; }
    }

    public class QuestionDuration
    {
        [Required]
        public int id { get; set; }
        [Required]
        public int duration_seconds { get; set; }
    }

    

    public class PracticePublishModel
    {
        [Required]
        public DateTime start_date { get; set; }
        [Required]
        public int complexity { get; set; }

    }

    /*
    public class ExamEditModel
    {
        [Key]
        public int id { get; set; }
        public int examtype_id { get; set; }

        public string name { get; set; }

        public string image { get; set; }
    }

    public class ExamSectionAddModel
    {
        [Required]
        public int subject_id { get; set; }
        [Required]
        public int author_id { get; set; }

        [Required]
        public short? section_duration { get; set; }
    }


    public class IntegerSectionList
    {
        [Required]
        public List<int> idList { get; set; }
    }

    public class ExamSectionViewModel
    {
        public int id { get; set; }
        public int subject_id { get; set; }
        public string subject_name { get; set; }
        public string section_state { get; set; }
        public short? section_sequence { get; set; }
        public short? section_duration { get; set; }
        public int total_questions { get; set; }
        public double total_marks { get; set; }
    }



    public class ExamSectionEditModel
    {
        [Key]
        public int id { get; set; }
        public int subject_id { get; set; }
        public int author_id { get; set; }
        public bool? isActive { get; set; }
    }


    public class QuestionMarkWeight
    {
        public int question_id { get; set; }
        public short correct_mark { get; set; }
        public short negative_mark { get; set; }
    }

    public class QuestionMarkWeightViewModel
    {
        public int id { get; set; }
        public string type { get; set; }
        public string status { get; set; }
        public string title { get; set; }
        public short? complexity_code { get; set; }
        public string source { get; set; }
        public int author { get; set; }
        public bool? isBookmarked { get; set; }
        public bool? isActive { get; set; }
        public int topic_id { get; set; }
        public string topic_name { get; set; }
        public int subtopic_id { get; set; }
        public string subtopic_name { get; set; }
        public int? question_sequence { get; set; }
        public double? correct_mark { get; set; }
        public double? negative_mark { get; set; }


    }

    public class QuestionMarkWeightEditModel
    {
        public int question_id { get; set; }

        public int? question_sequence { get; set; }

        public short? correct_mark { get; set; }
        public short? negative_mark { get; set; }
    }


    public class UsersList
    {
        [Required]
        public List<int> idList { get; set; }

    }


    public class QuestionMarksList
    {
        [Required]
        public List<QuestionMarks> qnsMarkList { get; set; }
    }

    public class QuestionMarks
    {
        [Required]
        public int id { get; set; }
        [Required]
        public double? correct_mark { get; set; }
        [Required]
        public double? negative_mark { get; set; }
    }




    public class QuestionsMarkList
    {
        [Required]
        public List<QuestionMarkWeightEditModel> idList { get; set; }
    }

    public class ExamSectionsList
    {
        [Required]
        public List<int> idList { get; set; }
    }

    public class UserGroupsList
    {
        
        public List<int> idList { get; set; }
    }
*/

}
