use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize)]
pub struct UserInfo {
pub subscribe: i32,
pub openid: String,
pub language: Option<String>,
pub subscribe_time: Option<i64>,
pub unionid: Option<String>,
pub remark: Option<String>,
pub groupid: Option<i32>,
pub tagid_list: Option<Vec<i32>>,
pub subscribe_scene: Option<String>,
pub qr_scene: Option<i64>,
pub qr_scene_str: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct BatchUserInfoResponse {
pub user_info_list: Vec<UserInfo>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct UserListResponse {
pub total: i32,
pub count: i32,
pub data: Option<UserOpenIdList>,
pub next_openid: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct UserOpenIdList {
pub openid: Vec<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Tag {
pub id: Option<i32>,
pub name: String,
pub count: Option<i32>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct TagListResponse {
pub tags: Vec<Tag>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct CreateTagResponse {
pub tag: Tag,
}
#[derive(Debug, Clone, Serialize)]
pub struct GetUsersByTagRequest {
pub tagid: i32,
pub next_openid: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct UsersByTagResponse {
pub count: i32,
pub data: Option<UserOpenIdList>,
pub next_openid: Option<String>,
}