yggdrasil/models/sql_schema.rs
1//! SQL 补全用 schema 数据模型。
2//!
3//! 由 `get_db_schema` server function(`api/database/schema.rs`)从
4//! `information_schema` 查询填充,两端共享序列化:server 端构造真实数据,
5//! WASM 端序列化(`serde_wasm_bindgen::to_value`)后传给 CodeMirror
6//! (`bridges::codemirror::EditorInstance::set_schema`)做 SQL 补全。
7//!
8//! 放在 `models` 而非 `bridges::codemirror`:这是 server function 的返回值 DTO,
9//! CodeMirror 只是其中一个消费方,不应反过来让 API 层依赖 UI 桥接层。
10
11use serde::{Deserialize, Serialize};
12
13/// SQL 补全用 schema 数据,由 `get_db_schema` server function 填充。
14#[derive(Serialize, Deserialize, Clone, Default, Debug)]
15pub struct SqlSchema {
16 pub tables: Vec<SqlTable>,
17}
18
19/// 单张表的补全数据:表名 + 列名列表。
20#[derive(Serialize, Deserialize, Clone, Debug)]
21pub struct SqlTable {
22 pub name: String,
23 pub columns: Vec<String>,
24}