using System.Collections.Generic;

namespace AssortGenerator.Models.Input
{
    public class QuestRoot
    {
        public int err { get; set; }
        public object errmsg { get; set; }
        public List<Quest> data { get; set; }
    }

    public class Quest
    {
        public string _id { get; set; }
        public string traderId { get; set; }
        public string location { get; set; }
        public string image { get; set; }
        public string type { get; set; }
        public bool isKey { get; set; }
        public bool restartable { get; set; }
        public bool instantComplete { get; set; }
        public bool secretQuest { get; set; }
        public int min_level { get; set; }
        public bool canShowNotificationsInGame { get; set; }
        public Rewards rewards { get; set; }
    }

    public class Rewards
    {
        public List<RewardStatus> Started { get; set; }
        public List<RewardStatus> Success { get; set; }
        public List<RewardStatus> Fail { get; set; }
    }

    public class RewardStatus
    {
        public object value { get; set; }
        public string id { get; set; }
        public string type { get; set; }
        public int index { get; set; }
        public string target { get; set; }
        public List<QuestRewardItem> items { get; set; }
        public int? loyaltyLevel { get; set; }
        public string traderId { get; set; }
    }

    public class QuestRewardItem
    {
        public string _id { get; set; }
        public string _tpl { get; set; }
        public QuestRewardUpd upd { get; set; }
        public string parentId { get; set; }
        public string slotId { get; set; }
    }

    public class QuestRewardUpd
    {
        public int StackObjectsCount { get; set; }
    }
}