using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Expedience.Models
{
    public class TopXCompletionResultDto
    {
        public int Rank { get; set; }
        public TimeSpan Duration { get; set; }
        public DutyCompletionResultDto DutyCompletionResult { get; set; }
        public List<DutyMemberDto> DutyMembers { get; set; }
        public TerritoryDto Territory { get; set; }
        public UserDto User { get; set; }
    }

    public class DutyMemberDto
    {
        public Guid UploadId { get; set; }
        public int GroupNumber { get; set; }
        public int MemberNumber { get; set; }
        public int Level { get; set; }
        public string ClassJob { get; set; }
        public bool IsNpc { get; set; }
        public bool IsPlayer { get; set; }
    }

    public class TerritoryDto
    {
        public int TerritoryId { get; set; }
        public string PlaceName { get; set; }
        public string ContentName { get; set; }
        public int Level { get; set; }
        public string ContentType { get; set; }
        public string Expac { get; set; }
    }

    public class UserDto
    {
        public int UserId { get; set; }
        public string UserName { get; set; }
        public int WorldId { get; set; }
    }

    public class DutyCompletionResultDto
    {
        public Guid Id { get; set; }
        public int UserId { get; set; }
        public int TerritoryId { get; set; }
        public bool HasEcho { get; set; }
        public bool IsUnrestricted { get; set; }
        public bool IsMinILevel { get; set; }
        public bool HasNpcMembers { get; set; }
        public DateTime StartTime { get; set; }
        public DateTime EndTime { get; set; }
        public int Hours { get; set; }
        public int Minutes { get; set; }
        public int Seconds { get; set; }
        public int Milliseconds { get; set; }
        public string GameVersion { get; set; }
        public string PluginVersion { get; set; }
        public string Lang { get; set; }
        public string DataCenter { get; set; }
        public DateTime UploadedAt { get; set; }

    }
}
