1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize)]
4pub struct FileData {
5 pub id: String,
6 pub object: String,
7 pub bytes: i32,
8 pub created_at: i64,
9 pub filename: String,
10 pub purpose: String,
11}
12
13#[derive(Debug, Deserialize, Serialize)]
14pub struct FileListResponse {
15 pub object: String,
16 pub data: Vec<FileData>,
17}
18
19#[derive(Debug, Serialize)]
20pub struct FileUploadRequest {
21 pub file: String,
22 pub purpose: String,
23}
24
25impl FileUploadRequest {
26 pub fn new(file: String, purpose: String) -> Self {
27 Self { file, purpose }
28 }
29}
30
31#[derive(Debug, Deserialize, Serialize)]
32pub struct FileUploadResponse {
33 pub id: String,
34 pub object: String,
35 pub bytes: i32,
36 pub created_at: i64,
37 pub filename: String,
38 pub purpose: String,
39}
40
41#[derive(Debug, Serialize)]
42pub struct FileDeleteRequest {
43 pub file_id: String,
44}
45
46impl FileDeleteRequest {
47 pub fn new(file_id: String) -> Self {
48 Self { file_id }
49 }
50}
51
52#[derive(Debug, Deserialize, Serialize)]
53pub struct FileDeleteResponse {
54 pub id: String,
55 pub object: String,
56 pub delete: bool,
57}
58
59#[derive(Debug, Deserialize, Serialize)]
60pub struct FileRetrieveResponse {
61 pub id: String,
62 pub object: String,
63 pub bytes: i32,
64 pub created_at: i64,
65 pub filename: String,
66 pub purpose: String,
67}