using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MessagePack;
using MongoDB.Bson;

namespace CommonEntity
{
    public class PMSData
    {
    }


    public class CheckInYuanShidata_db: CheckInYuanShidata
    {
        public ObjectId _id { get; set; }
    }

    [MessagePackObject()]
    public class CheckInYuanShidata
    {
        [Key(0)]
        public string? CommandType { get; set; }

        [Key(1)]
        public double Step { get; set; }

        [Key(2)]
        public string? IP { get; set; }

        [Key(3)]
        public string? RequestId { get; set; }

        [Key(4)]
        public ZhiJie? ZhiJieData { get; set; }

        [Key(5)]
        public JianJie? JianJieData { get; set; }

        [Key(6)]
        public DateTime CurrentTime { get; set; }
    }

    [MessagePackObject()]
    public class ZhiJie
    {
        [Key(0)]
        public CheckInData? CheckInData { get; set; }

        [Key(1)]
        public CheckOutData? CheckOutData { get; set; }

        [Key(2)]
        public RentData? RentData { get; set; }
    }

    [MessagePackObject()]
    public class JianJie
    {
        [Key(0)]
        public string? OriginallData { get; set; }
    }

    [MessagePackObject()]
    public class CheckInData
    {
        [Key(0)]
        public string? key { get; set; }

        [Key(1)]
        public string? code { get; set; }

        [Key(2)]
        public string? roomNumber { get; set; }

        [Key(3)]
        public DateTime checkInDate;

        [Key(4)]
        public string? xmlString { get; set; }

        [Key(5)]
        public string? phoneNumber { get; set; }

        [Key(6)]
        public string? idNumber { get; set; }
    }

    [MessagePackObject()]
    public class CheckOutData
    {

        [Key(0)]
        public string? key { get; set; }

        [Key(1)]
        public string? code { get; set; }

        [Key(2)]
        public string? roomNumber { get; set; }

        [Key(3)]
        public DateTime checkOutDate { get; set; }
    }

    [MessagePackObject()]
    public class RentData
    {
        [Key(0)]
        public string? key { get; set; }

        [Key(1)]
        public string? code { get; set; }

        [Key(2)]
        public string? roomNumber { get; set; }

        [Key(3)]
        public DateTime rentDate { get; set; }
    }
}
