using System;
using System.Collections.Generic;
using VkNet.Model.Keyboard;

namespace SvetoforVKBot.Models.Updates
{
    public class OrderLog
    {
        public int id { get; set; }
        public int chatId { get; set; }
        public int type { get; set; }
        public CartObject cart { get; set; }
        public string phone { get; set; }
        public string comment { get; set; }
        public double commentId { get; set; }
        public DateTime pickupTime { get; set; }
        public int arrivalCall { get; set; }
        public int paymentMethod { get; set; }
        public int isPaid { get; set; }
        public int hoursOS { get; set; }
        public int state { get; set; }
        public double bonus { get; set; }
        public DateTime datetime { get; set; }
        public string osRating { get; set; }
        public string fio { get; set; }
        public string pickupId { get; set; }

    }
    public class SvetoforObj
    {
        public int id { get; set; }
        public int colorId { get; set; }
        public string name { get; set; }
        public string btnName { get; set; }
        public string kbColor { get; set; }
    }

    public class PersonalCons
    {
        public int chatId { get; set; }
        public string fio { get; set; }
        public string phone { get; set; }
        public DateTime birthdate { get; set; }
        public string question { get; set; }
        public DateTime date { get; set; }
        public int state { get; set; }
    }
    public class StackObject
    {
        public int id { get; set; }
        public string name { get; set; }
        public string description { get; set; }
    }

    public class SportObject
    {
        public int id { get; set; }
        public string name { get; set; }
        public string btnName { get; set; }
        public int kind { get; set; }
    }
    public class Answers
    {
        public int id { get; set; }
        public int number { get; set; }
    }
    public class Questions
    {
        public int id { get; set; }
        public int number { get; set; }
        public string text { get; set; }
    }
    public class Size
    {
        public string type { get; set; }
        public string url { get; set; }
        public int width { get; set; }
        public int height { get; set; }
    }

    public class Photo
    {
        public int id { get; set; }
        public int album_id { get; set; }
        public int owner_id { get; set; }
        public List<Size> sizes { get; set; }
        public string text { get; set; }
        public int date { get; set; }
        public string access_key { get; set; }
    }

    public class Video
    {
        public int id { get; set; }
        public int owner_id { get; set; }
        public string title { get; set; }
        public int duration { get; set; }
        public string description { get; set; }
        public int date { get; set; }
        public int comments { get; set; }
        public int views { get; set; }
        public int width { get; set; }
        public int height { get; set; }
        public string photo_130 { get; set; }
        public string photo_320 { get; set; }
        public string photo_800 { get; set; }
        public string access_key { get; set; }
        public string first_frame_320 { get; set; }
        public string first_frame_160 { get; set; }
        public string first_frame_130 { get; set; }
        public string first_frame_800 { get; set; }
        public int can_add { get; set; }
    }

    public class Doc
    {
        public int id { get; set; }
        public int owner_id { get; set; }
        public string title { get; set; }
        public int size { get; set; }
        public string ext { get; set; }
        public string url { get; set; }
        public int date { get; set; }
        public int type { get; set; }
        public string access_key { get; set; }
    }

    public class Attachment
    {
        public string type { get; set; }
        public Photo photo { get; set; }
        public Doc doc { get; set; }
        public Video video { get; set; }
    }
    public class Coordinates
    {
        public double latitude { get; set; }
        public double longitude { get; set; }
    }

    public class Place
    {
        public string country { get; set; }
        public string city { get; set; }
        public string title { get; set; }
    }

    public class Geo
    {
        public string type { get; set; }
        public Coordinates coordinates { get; set; }
        public Place place { get; set; }
    }
    public class Message
    {
        public int date { get; set; }
        public int from_id { get; set; }
        public int id { get; set; }
        public int @out { get; set; }
        public int peer_id { get; set; }
        public string text { get; set; }
        public int conversation_message_id { get; set; }
        public List<object> fwd_messages { get; set; }
        public bool important { get; set; }
        public int random_id { get; set; }
        public string @ref { get; set; }
        public string ref_source { get; set; }
        public List<Attachment> attachments { get; set; }
        public string payload { get; set; }
        public Geo geo { get; set; }
        public bool is_hidden { get; set; }
    }

    public class ClientInfo
    {
        public List<string> button_actions { get; set; }
        public bool keyboard { get; set; }
        public bool inline_keyboard { get; set; }
        public bool carousel { get; set; }
        public int lang_id { get; set; }
    }

    public class ObjectVK
    {
        public Message message { get; set; }
        public ClientInfo client_info { get; set; }
        //like
        public int liker_id { get; set; }
        public string object_type { get; set; }
        public int object_owner_id { get; set; }
        public int object_id { get; set; }
        public int thread_reply_id { get; set; }
    }

    public class RootObject
    {
        public string type { get; set; }
        public ObjectVK @object { get; set; }
        public int group_id { get; set; }
        public string secret { get; set; }
    }
}
