“虞渠成” 3abf31324c 0610
2026-06-10 15:04:14 +08:00

511 lines
11 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
namespace Kill.Managers
{
#region AssetBundle
[System.Serializable]
public class AssetBundleInfoList
{
public string version;
public List<AssetBundleInfo> assetbundles;
public AssetBundleInfoList(List<AssetBundleInfo> list)
{
assetbundles = list;
}
}
[System.Serializable]
public class AssetBundleInfo
{
public string name;
public long size;
public string md5;
}
#endregion
#region
/// <summary>
/// 登录请求数据
/// </summary>
[Serializable]
public class LoginRequest
{
public string email;
public string password;
}
/// <summary>
/// 登录响应数据
/// </summary>
[Serializable]
public class LoginResponse
{
public int code;
public string message;
public LoginData data;
}
[Serializable]
public class LoginData
{
public string token;
public UserInfo user;
}
[Serializable]
public class UserInfo
{
public string id;
public string email;
public string avatar;
public string username;
public string role;
public bool exam_completed;
public int device_count;
public int total_kill_count;
/// <summary>
/// 单位系统 0公制 1英制
/// </summary>
public int unit_system;
public bool has_simple_password;
public bool has_complex_password;
}
#endregion
#region
public class EmailCodeRequest
{
public string email;
}
public class NoDataResponse
{
public int code;
public string message;
}
public class BoolResponse
{
public int code;
public string message;
public BoolData data;
}
public class BoolData
{
public bool registered;
}
public class VerifyCodeRequest
{
public string email;
public string code;
}
public class RegisterRequest
{
public string email;
public string password;
public int password_type;
}
public class ResetPasswordRequest
{
public string email;
public string password;
public int password_type;
}
public class FireBaseLoginRequest
{
public string firebase_token;
}
public class BindFireBaseRequest
{
public string code;
public string email;
public string temp_token;
}
/// <summary>
/// Firebase 绑定响应
/// </summary>
public class FirebaseBindResponse
{
public int code;
public string message;
public FirebaseBindData data;
}
public class FirebaseBindData
{
public bool firebase_bind;
}
#endregion
#region
/// <summary>
/// 题目列表响应
/// </summary>
[Serializable]
public class QuestionListResponse
{
public int code;
public string message;
public QuestionListData data;
}
[Serializable]
public class QuestionListData
{
public int total;
public int pages;
public int limit;
public int page;
public List<QuestionInfo> list;
}
/// <summary>
/// 题目信息
/// </summary>
[Serializable]
public class QuestionInfo
{
public int id;
public string questionNumber;
public string questionContent;
public string questionContentEn;
public string correctAnswer;
public string videoUrl;
public string videoUrlEn;
public List<QuestionOption> options;
}
/// <summary>
/// 题目选项
/// </summary>
[Serializable]
public class QuestionOption
{
public int id;
public string optionLabel;
public string optionContent;
public string optionContentEn;
public bool isCorrect;
public string explanation;
public string explanationEn;
}
#endregion
#region
/// <summary>
/// 答题记录(用于本地存储)
/// </summary>
[Serializable]
public class QuestionRecord
{
public int questionId;
public int correctCount; // 累计答对次数
}
/// <summary>
/// 答题记录数据
/// </summary>
[Serializable]
public class QuestionRecordData
{
public List<QuestionRecord> records = new List<QuestionRecord>();
public int totalAnsweredCount; // 总答题序号(累加)
}
#endregion
[Serializable]
public class BandDeviceRequest
{
public string device_sn;
public string user_id;
}
#region
/// <summary>
/// 设备列表响应
/// </summary>
[Serializable]
public class DeviceListResponse
{
public int code;
public string message;
public DeviceListData data;
}
[Serializable]
public class DeviceListData
{
public List<DeviceInfo> owned_devices;
public List<DeviceInfo> shared_devices;
public int? online_count;
public int? offline_count;
public int? fault_count;
public int? total;
public int? page;
public int? size;
public int? pages;
}
/// <summary>
/// 设备信息
/// </summary>
[Serializable]
public class DeviceInfo
{
public string device_sn;
public string ble_mac;
public string wifi_mac;
public string device_name;
public string product_id;
public string status;
public string bind_time;
public string device_model;
public string firmware_version;
public int? total_work_hours;
public int? total_mosquitoes_killed;
public string location;
public string last_online_time;
public string owner_id;
public string owner_name;
public string owner_username;
public string share_time;
}
#endregion
/// <summary>
/// 单位设置请求数据
/// </summary>
[Serializable]
public class UnitRequest
{
/// <summary>
/// 0公制 1英制
/// </summary>
public int unit_system;
}
/// <summary>
/// 密码校验
/// </summary>
[Serializable]
public class PasswordRequest
{
public string password;
}
/// <summary>
/// 重置设备请求数据
/// </summary>
[Serializable]
public class ResetDeviceRequest
{
public string device_sn;
}
public class ShareDeviceRequest
{
public string device_sn;
public string target_user_id;
public string owner_id;
}
[Serializable]
public class SharedUserInfo
{
public string user_id;
public string user_name;
public string avatar;
public DateTime share_time;
}
public class SharedUserInfoListData
{
public List<SharedUserInfo> list;
}
public class ShareUserInfoRequest
{
public string device_sn;
}
public class ShareUserListResponse
{
public int code;
public string message;
public SharedUserInfoListData data;
}
public class OTAResponse
{
public int code;
public string message;
public OTAData data;
}
public class OTAData
{
public string version;
public string download_url;
public string md5;
public string release_notes;
}
public class MessageData
{
public string id;
public string title;
public string type;
public string content;
public DateTime create_at;
public DateTime publish_time;
public bool is_read;
}
public class AnnouncementData
{
public string id;
public string title;
public string type;
public string content;
public DateTime publish_time;
public bool is_read;
}
public enum MessageType
{
device,
warning,
announcement
}
[Serializable]
public class MessageTypeData
{
public int device;
public int warning;
public int announcement;
}
public class MessageTypeDataListResponse
{
public int code;
public string message;
public MessageTypeData data;
}
public class RecordData
{
public string id;
public DateTime time;
public float angle;
public float distance;
}
public class DeviceVideoData
{
public string id;
public string video_url;
public string cover_url;
public DateTime record_time;
}
public class RecordDataList
{
public int total;
public List<RecordData> records;
}
public class DeviceVideoDataList
{
public int total;
public List<DeviceVideoData> list;
}
public class RecordDataListResponse
{
public int code;
public string message;
public RecordDataList data;
}
public class DeviceVideoDataListResponse
{
public int code;
public string message;
public DeviceVideoDataList data;
}
public class KillCountData
{
public string time_point;
public int count;
}
public class KillCountDataList
{
public int total_count;
public List<KillCountData> stats;
}
public class KillCountDataResponse
{
public int code;
public string message;
public KillCountDataList data;
}
public class HeatmapData
{
public float angle;
public float distance;
public int count;
}
public class HeatmapDataList
{
public List<HeatmapData> points;
}
public class HeatmapDataListResponse
{
public int code;
public string message;
public HeatmapDataList data;
}
public class RankData
{
public int rank;
public string nickname;
public string avatar;
public int kill_count;
}
public class RankDataList
{
public List<RankData> top_list;
public RankData my_rank;
}
public class RankDataListResponse
{
public int code;
public string message;
public RankDataList data;
}
public class BundleData
{
public string bundle_version;
public string bundle_url;
}
public class BundleDataResponse
{
public int code;
public string message;
public BundleData data;
}
[Serializable]
public class PostRecordData
{
public string device_sn;
public string record_time;
public float angle;
public float distance;
}
public class FileRequest
{
public byte[] file;
}
}