1use crate::types::{DesmosRoute, Post, Reaction, Report};
2use cosmwasm_std::CustomQuery;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
8#[serde(rename_all = "snake_case")]
9pub struct DesmosQueryWrapper {
10 pub route: DesmosRoute,
11 pub query_data: DesmosQuery,
12}
13
14impl CustomQuery for DesmosQueryWrapper {}
15
16#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
18#[serde(rename_all = "snake_case")]
19pub enum DesmosQuery {
20 Posts {},
21 Reactions { post_id: String },
22 Reports { post_id: String },
23}
24
25#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
27#[serde(rename_all = "snake_case")]
28pub struct PostsResponse {
29 pub posts: Vec<Post>,
30}
31
32#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
34#[serde(rename_all = "snake_case")]
35pub struct ReportsResponse {
36 pub reports: Vec<Report>,
37}
38
39#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
41#[serde(rename_all = "snake_case")]
42pub struct ReactionsResponse {
43 pub reactions: Vec<Reaction>,
44}