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

namespace PSO2SERVER.Models
{
    public unsafe struct Unk2Struct
    {
        public fixed uint Unk[0x40]; // Fixed length array equivalent in C#

    }

    public struct Mission
    {
        /*5 - main
        1 - daily
        2 - weekly
        7 - tier */
        /// Mission type.
        public uint MissionType;       // Mission type.
        public uint StartDate;         // Mission start timestamp.
        public uint EndDate;           // Mission end timestamp.
        public uint Id;                // Mission ID.
        public uint Unk5;
        public uint CompletionDate;    // Last completion timestamp.
        public uint Unk7;
        public uint Unk8;
        public uint Unk9;
        public uint Unk10;
        public uint Unk11;
        public uint Unk12;
        public uint Unk13;
        public uint Unk14;
        public uint Unk15;
    }

    public struct MissionPassItem
    {
        /// Reward ID (?).
        public uint Id { get; set; }

        /// Reward tier.
        public uint Tier { get; set; }

        /// Gold pass only flag.
        public uint IsGold { get; set; }

        public uint Unk4 { get; set; }

        /// Group ID.
        public uint Group { get; set; }

        public uint Unk6 { get; set; }

        public uint Unk7 { get; set; }

        public uint Unk8 { get; set; }

        /// Item data.
        public PSO2Items Item { get; set; }

        // Constructor for struct
        public MissionPassItem(uint id, uint tier, uint isGold, uint unk4, uint group, uint unk6, uint unk7, uint unk8, PSO2Items item)
        {
            Id = id;
            Tier = tier;
            IsGold = isGold;
            Unk4 = unk4;
            Group = group;
            Unk6 = unk6;
            Unk7 = unk7;
            Unk8 = unk8;
            Item = item;
        }
    }
}
