1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5pub struct SchemaTree {
6 pub databases: Vec<Database>,
7}
8
9#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10pub struct Database {
11 pub name: String,
12 #[serde(default)]
13 pub schemas: Vec<Schema>,
14}
15
16#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
17pub struct Schema {
18 pub name: String,
19 #[serde(default)]
20 pub tables: Vec<Table>,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub struct Table {
25 pub name: String,
26 #[serde(default)]
27 pub columns: Vec<Column>,
28}
29
30#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
31pub struct Column {
32 pub name: String,
33 pub data_type: String,
34 pub nullable: bool,
35}