my_libs\api/model.rs
1// src/api/model.rs
2
3use serde::{Deserialize, Serialize};
4use surrealdb::sql::Thing; // Specjalny typ SurrealDB dla ID rekordów (np. kot:ulv8...)
5
6// 📚 EDU (Serde):
7// Serialize -> pozwala zamienić obiekt Rust na JSON/TOML (do zapisu).
8// Deserialize -> pozwala zamienić JSON/TOML na obiekt Rust (do odczytu).
9// Debug -> pozwala wyświetlić obiekt w println!("{:?}", kot);
10#[derive(Debug, Serialize, Deserialize, Clone)]
11pub struct Kot {
12 // 📚 EDU (Option):
13 // Odpowiednik `string | null` w TS.
14 // ID jest Option, bo jak tworzymy nowego kota w RAM, to jeszcze nie ma ID.
15 pub id: Option<Thing>,
16 pub imie: String,
17 pub kolor: String,
18
19 // Opcjonalne pola - jeśli w bazie nie ma tego pola, Rust wstawi tu `None` zamiast błędu.
20 pub zrodlo: Option<String>,
21 pub wiek: Option<i32>,
22}