namespace OpenAuth.WebApi.CloudSdk.mqtt;

/// <summary>
/// The name of all channels.
/// </summary>
public static class ChannelName
{
    // Basic Channels
    public const string Inbound = "inbound";
    public const string Default = "default";
    public const string Outbound = "outbound";

    // Status Channels
    public const string InboundStatus = "inboundStatus";
    public const string OutboundStatus = "outboundStatus";
    public const string InboundStatusOnline = "inboundStatusOnline";
    public const string InboundStatusOffline = "inboundStatusOffline";

    // State Channels
    public const string InboundState = "inboundState";
    public const string InboundStateRcControlSource = "inboundStateRcControlSource";
    public const string InboundStateDockControlSource = "inboundStateDockControlSource";
    public const string InboundStateRcLiveCapacity = "inboundStateRcLiveCapacity";
    public const string InboundStateDockLiveCapacity = "inboundStateDockLiveCapacity";
    public const string InboundStateRcLiveStatus = "inboundStateRcLiveStatus";
    public const string InboundStateDockLiveStatus = "inboundStateDockLiveStatus";
    public const string InboundStateRcAndDroneFirmwareVersion = "inboundStateRcAndDroneFirmwareVersion";
    public const string InboundStateDockFirmwareVersion = "inboundStateDockFirmwareVersion";
    public const string InboundStateRcPayloadFirmware = "inboundStateRcPayloadFirmware";
    public const string InboundStateDockDroneWpmzVersion = "inboundStateDockDroneWpmzVersion";
    public const string InboundStateDockDronePayload = "inboundStateDockDronePayload";
    public const string InboundStateDockDroneRthMode = "inboundStateDockDroneRthMode";
    public const string InboundStateDockDroneCurrentRthMode = "inboundStateDockDroneCurrentRthMode";
    public const string InboundStateDockDroneCommanderModeLostAction = "inboundStateDockDroneCommanderModeLostAction";

    public const string InboundStateDockDroneCurrentCommanderFlightMode =
        "inboundStateDockDroneCurrentCommanderFlightMode";

    public const string InboundStateDockDroneCommanderFlightHeight = "inboundStateDockDroneCommanderFlightHeight";
    public const string InboundStateDockDroneModeCodeReason = "inboundStateDockDroneModeCodeReason";
    public const string InboundStateDockDroneOfflineMapEnable = "inboundStateDockDroneOfflineMapEnable";
    public const string InboundStateDockAndDroneDongleInfos = "inboundStateDockAndDroneDongleInfos";
    public const string InboundStateDockSilentMode = "inboundStateDockSilentMode";
    public const string OutboundState = "outboundState";

    // Services Reply
    public const string InboundServicesReply = "inboundServicesReply";

    // OSD Channels
    public const string InboundOsd = "inboundOsd";
    public const string InboundOsdRc = "inboundOsdRc";
    public const string InboundOsdDock = "inboundOsdDock";
    public const string InboundOsdRcDrone = "inboundOsdRcDrone";
    public const string InboundOsdDockDrone = "inboundOsdDockDrone";

    // Request Channels
    public const string InboundRequests = "inboundRequests";
    public const string InboundRequestsStorageConfigGet = "inboundRequestsStorageConfigGet";
    public const string InboundRequestsAirportBindStatus = "inboundRequestsAirportBindStatus";
    public const string InboundRequestsAirportOrganizationGet = "inboundRequestsAirportOrganizationGet";
    public const string InboundRequestsAirportOrganizationBind = "inboundRequestsAirportOrganizationBind";
    public const string InboundRequestsConfig = "inboundRequestsConfig";
    public const string InboundRequestsFlightTaskResourceGet = "inboundRequestsFlightTaskResourceGet";
    public const string InboundRequestsFlightAreasGet = "inboundRequestsFlightAreasGet";
    public const string InboundRequestsOfflineMapGet = "inboundRequestsOfflineMapGet";
    public const string OutboundRequests = "outboundRequests";

    // Event Channels
    public const string InboundEvents = "inboundEvents";
    public const string OutboundEvents = "outboundEvents";
    public const string InboundEventsDeviceExitHomingNotify = "inboundEventsDeviceExitHomingNotify";
    public const string InboundEventsFlighttaskProgress = "inboundEventsFlighttaskProgress";
    public const string InboundEventsFlighttaskReady = "inboundEventsFlighttaskReady";
    public const string InboundEventsFileUploadCallback = "inboundEventsFileUploadCallback";
    public const string InboundEventsHms = "inboundEventsHms";
    public const string InboundEventsControlProgress = "inboundEventsControlProgress";
    public const string InboundEventsOtaProgress = "inboundEventsOtaProgress";
    public const string InboundEventsFileUploadProgress = "inboundEventsFileUploadProgress";
    public const string InboundEventsFlyToPointProgress = "inboundEventsFlyToPointProgress";
    public const string InboundEventsTakeoffToPointProgress = "inboundEventsTakeoffToPointProgress";
    public const string InboundEventsDrcStatusNotify = "inboundEventsDrcStatusNotify";
    public const string InboundEventsJoystickInvalidNotify = "inboundEventsJoystickInvalidNotify";

    public const string InboundEventsHighestPriorityUploadFlightTaskMedia =
        "inboundEventsHighestPriorityUploadFlightTaskMedia";

    public const string InboundEventsReturnHomeInfo = "inboundEventsReturnHomeInfo";
    public const string InboundEventsCustomDataTransmissionFromEsdk = "inboundEventsCustomDataTransmissionFromEsdk";
    public const string InboundEventsCustomDataTransmissionFromPsdk = "inboundEventsCustomDataTransmissionFromPsdk";
    public const string InboundEventsAirsenseWarning = "inboundEventsAirsenseWarning";
    public const string InboundEventsFlightAreasSyncProgress = "inboundEventsFlightAreasSyncProgress";
    public const string InboundEventsFlightAreasDroneLocation = "inboundEventsFlightAreasDroneLocation";
    public const string InboundEventsOfflineMapSyncProgress = "inboundEventsOfflineMapSyncProgress";
    public const string InboundEventsPoiStatusNotify = "inboundEventsPoiStatusNotify";
    public const string InboundEventsCameraPhotoTakeProgress = "inboundEventsCameraPhotoTakeProgress";

    // Property Set Reply
    public const string InboundPropertySetReply = "inboundPropertySetReply";

    // DRC UP Channels
    public const string InboundDrcUp = "inboundDrcUp";
    public const string InboundDrcUpDroneControl = "inboundDrcUpDroneControl";
    public const string InboundDrcUpDroneEmergencyStop = "inboundDrcUpDroneEmergencyStop";
    public const string InboundDrcUpHeartBeat = "inboundDrcUpHeartBeat";
    public const string InboundDrcUpHsiInfoPush = "inboundDrcUpHsiInfoPush";
    public const string InboundDrcUpDelayInfoPush = "inboundDrcUpDelayInfoPush";
    public const string InboundDrcUpOsdInfoPush = "inboundDrcUpOsdInfoPush";
}