Skip to main content

neis_client/types/
school_info.rs

1#![allow(non_snake_case)]
2use super::{ToQueryString, YesOrNo};
3use form_urlencoded::Serializer;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Default, Serialize)]
7pub struct SchoolInfoParams {
8    /// 시도교육청코드
9    pub ATPT_OFCDC_SC_CODE: Option<String>,
10    /// 행정표준코드
11    pub SD_SCHUL_CODE: Option<String>,
12    /// 학교명
13    pub SCHUL_NM: Option<String>,
14    /// 학교종류명
15    pub SCHUL_KND_SC_NM: Option<String>,
16    /// 시도명
17    pub LCTN_SC_NM: Option<String>,
18    /// 설립명
19    pub FOND_SC_NM: Option<String>,
20}
21
22impl SchoolInfoParams {
23    pub fn school_code(school_code: &str) -> Self {
24        Self {
25            SD_SCHUL_CODE: Some(school_code.to_owned()),
26            ..Default::default()
27        }
28    }
29}
30
31impl ToQueryString for SchoolInfoParams {
32    fn to_query_string(&self) -> String {
33        let mut serializer = Serializer::new(String::new());
34
35        if let Some(s) = &self.ATPT_OFCDC_SC_CODE {
36            serializer.append_pair("ATPT_OFCDC_SC_CODE", s);
37        }
38        if let Some(s) = &self.SD_SCHUL_CODE {
39            serializer.append_pair("SD_SCHUL_CODE", s);
40        }
41        if let Some(s) = &self.SCHUL_NM {
42            serializer.append_pair("SCHUL_NM", s);
43        }
44        if let Some(s) = &self.SCHUL_KND_SC_NM {
45            serializer.append_pair("SCHUL_KND_SC_NM", s);
46        }
47        if let Some(s) = &self.LCTN_SC_NM {
48            serializer.append_pair("LCTN_SC_NM", s);
49        }
50        if let Some(s) = &self.FOND_SC_NM {
51            serializer.append_pair("FOND_SC_NM", s);
52        }
53
54        serializer.finish()
55    }
56}
57
58#[derive(Debug, Clone, Deserialize, Hash)]
59pub struct SchoolInfoItem {
60    /// 시도교육청코드
61    /// B10 | C10 | D10 | E10 | F10 | G10 | H10 | I10 | J10 | K10 | M10 | N10 | P10 | Q10 | R10 | S10 | T10 | V10
62    pub ATPT_OFCDC_SC_CODE: String,
63
64    /// 시도교육청명
65    /// Example: 서울특별시교육청
66    pub ATPT_OFCDC_SC_NM: String,
67
68    /// 행정표준코드
69    /// Example: 7010959
70    pub SD_SCHUL_CODE: String,
71
72    /// 학교명
73    /// Example: 문현고등학교
74    pub SCHUL_NM: String,
75
76    /// 영문학교명
77    /// Example: MUNHYEON HIGH SCHOOL
78    pub ENG_SCHUL_NM: Option<String>,
79
80    /// 학교종류명
81    /// Example: 고등학교
82    pub SCHUL_KND_SC_NM: Option<String>, // 초등학교, 중학교, 고등학교, ...
83
84    /// 시도명
85    /// Example: 서울특별시
86    pub LCTN_SC_NM: String,
87
88    /// 관할조직명
89    /// Example: 서울특별시교육청
90    pub JU_ORG_NM: String,
91
92    /// 설립명
93    /// Example: 공립
94    pub FOND_SC_NM: Option<String>,
95
96    /// 도로명우편번호
97    /// Example: 05811
98    pub ORG_RDNZC: Option<String>,
99
100    /// 도로명주소
101    /// Example: 서울특별시 송파구 충민로 115
102    pub ORG_RDNMA: Option<String>,
103
104    /// 도로명상세주소
105    /// Example: (장지동)
106    pub ORG_RDNDA: Option<String>,
107
108    /// 전화번호
109    /// Example: 02-6951-8702
110    pub ORG_TELNO: Option<String>,
111
112    /// 홈페이지주소
113    /// Example: http://munhyeon.sen.hs.kr
114    pub HMPG_ADRES: Option<String>,
115
116    /// 남녀공학구분명
117    /// 남 | 여 | 남여공학
118    pub COEDU_SC_NM: String,
119
120    /// 팩스번호
121    /// Example: 02-3012-0880
122    pub ORG_FAXNO: Option<String>,
123
124    /// 고등학교구분명
125    /// Example: 일반고
126    pub HS_SC_NM: Option<String>,
127
128    /// 산업체특별학급존재여부
129    pub INDST_SPECL_CCCCL_EXST_YN: YesOrNo,
130
131    /// 고등학교일반전문구분명
132    /// Example: 일반계
133    pub HS_GNRL_BUSNS_SC_NM: Option<String>,
134
135    /// 특수목적고등학교계열명
136    pub SPCLY_PURPS_HS_ORD_NM: Option<String>,
137
138    /// 입시전후기구분명
139    /// 전기 | 후기 | 전후기
140    pub ENE_BFE_SEHF_SC_NM: String,
141
142    /// 주야구분명
143    /// 주간 | 야간 | 주야간
144    pub DGHT_SC_NM: String,
145
146    /// 설립일자
147    /// Example: 20100301
148    pub FOND_YMD: String,
149
150    /// 개교기념일
151    /// Example: 20100301
152    pub FOAS_MEMRD: String,
153
154    /// 수정일자
155    /// Example: 20230627
156    pub LOAD_DTM: String,
157}