1use crate::structs::{FixView, SearchGroup, ViewConf, WorkItemInfo};
2use derive_builder::Builder;
3use serde::Serialize;
4
5#[derive(Builder, Debug, Default, Serialize)]
6#[builder(setter(into, strip_option))]
7#[builder(default)]
8pub struct GetViewListRequest {
9 pub project_key: String,
10 pub work_item_type_key: String,
11 pub view_name: Option<String>,
12 pub view_ids: Option<Vec<String>>,
13 pub created_by: Option<String>,
14 pub page_size: Option<i32>,
15 pub page_num: Option<i32>,
16}
17
18pub type GetViewListResponse = Vec<ViewConf>;
19
20#[derive(Builder, Debug, Default, Serialize)]
21#[builder(setter(into, strip_option))]
22#[builder(default)]
23pub struct GetFixViewRequest {
24 pub project_key: String,
25 pub view_id: String,
26 pub page_size: Option<i32>,
27 pub page_num: Option<i32>,
28}
29
30pub type GetFixViewResponse = FixView;
31
32#[derive(Builder, Debug, Default, Serialize)]
33#[builder(setter(into, strip_option))]
34#[builder(default)]
35pub struct GetPanoramicViewRequest {
36 pub project_key: String,
37 pub view_id: String,
38 pub page_size: Option<i64>,
39 pub page_num: Option<i64>,
40}
41
42pub type GetPanoramicViewResponse = Vec<WorkItemInfo>;
43
44#[derive(Builder, Debug, Default, Serialize)]
45#[builder(setter(into, strip_option))]
46#[builder(default)]
47pub struct CreateFixViewRequest {
48 pub project_key: String,
49 pub work_item_type_key: String,
50 pub work_item_id_list: Vec<i64>,
51 pub name: String,
52 pub cooperation_mode: Option<i32>,
53 pub cooperation_user_keys: Option<Vec<String>>,
54 pub cooperation_team_ids: Option<Vec<i64>>,
55}
56
57pub type CreateFixViewResponse = FixView;
58
59#[derive(Builder, Debug, Default, Serialize)]
60#[builder(setter(into, strip_option))]
61#[builder(default)]
62pub struct UpdateFixViewRequest {
63 pub project_key: String,
64 pub work_item_type_key: String,
65 pub view_id: String,
66 pub add_work_item_ids: Option<Vec<i64>>,
67 pub remove_work_item_ids: Option<Vec<i64>>,
68}
69
70pub type UpdateFixViewResponse = serde_json::Value;
71
72#[derive(Builder, Debug, Default, Serialize)]
73#[builder(setter(into, strip_option))]
74#[builder(default)]
75pub struct CreateConditionViewRequest {
76 pub project_key: String,
77 pub work_item_type_key: String,
78 pub search_group: SearchGroup,
79 pub cooperation_mode: Option<i32>,
80 pub cooperation_user_keys: Option<Vec<String>>,
81 pub cooperation_team_ids: Option<Vec<i64>>,
82 pub name: String,
83}
84
85pub type CreateConditionViewResponse = serde_json::Value;
86
87#[derive(Builder, Debug, Default, Serialize)]
88#[builder(setter(into, strip_option))]
89#[builder(default)]
90pub struct UpdateConditionViewRequest {
91 pub project_key: String,
92 pub work_item_type_key: String,
93 pub view_id: String,
94 pub search_group: SearchGroup,
95 pub cooperation_mode: Option<i32>,
96 pub cooperation_user_keys: Option<Vec<String>>,
97 pub cooperation_team_ids: Option<Vec<i64>>,
98 pub name: Option<String>,
99}
100
101pub type UpdateConditionViewResponse = serde_json::Value;
102
103#[derive(Builder, Debug, Default, Serialize)]
104#[builder(setter(into, strip_option))]
105#[builder(default)]
106pub struct DeleteViewRequest {
107 pub project_key: String,
108 pub view_id: String,
109}
110
111pub type DeleteViewResponse = serde_json::Value;