use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::ibc::IbcChannel;
#[non_exhaustive]
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum IbcQuery {
    PortId {},
    ListChannels { port_id: Option<String> },
    Channel {
        channel_id: String,
        port_id: Option<String>,
    },
    }
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
pub struct PortIdResponse {
    pub port_id: String,
}
impl_response_constructor!(PortIdResponse, port_id: String);
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
pub struct ListChannelsResponse {
    pub channels: Vec<IbcChannel>,
}
impl_response_constructor!(ListChannelsResponse, channels: Vec<IbcChannel>);
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
pub struct ChannelResponse {
    pub channel: Option<IbcChannel>,
}
impl_response_constructor!(ChannelResponse, channel: Option<IbcChannel>);