use chrono::NaiveDate; use serde::Serialize; use sqlx::FromRow; // 处理日期类型 #[derive(Debug, Serialize, FromRow)] pub struct User { pub id: i32, #[serde(rename = "name")] #[sqlx(rename = "name")] pub name: String, #[sqlx(rename = "openid")] pub openid: Option, #[sqlx(rename = "phone")] pub phone: Option, #[serde(rename = "type")] #[sqlx(rename = "type")] pub user_type: i32, #[serde(rename = "desc")] #[sqlx(rename = "desc")] pub description: Option, } #[derive(Debug, Serialize, FromRow)] pub struct WeatherData { pub id: i32, pub user_id: i32, pub title: Option, #[serde(rename = "date")] #[sqlx(rename = "date")] pub record_date: Option, // 避免与关键字冲突 pub hour: Option, pub min: Option, pub longitude: Option, pub latitude: Option, pub daysincejanfirst: Option, pub theta: Option, pub solardeclination: Option, pub sunaltitude: Option, pub overallcloudiness: Option, pub lowcloudiness: Option, pub cloudindex: Option, pub solarradiationlevel: Option, pub hasmeasuredwindspeed: Option, pub measuredwindspeed: Option, pub convertedwindspeed: Option, pub measurementheight: Option, pub areatype: Option, pub pointwindspeed: Option, pub atmosphericstability: Option, pub suitabilitydegree: Option, pub winddirection: Option, // JSONB类型 pub averagewinddirection: Option, pub winddirectionstandarddeviation: Option, pub windspeed: Option, // JSONB类型 pub averagewindspeed: Option, pub windspeedsuitability: Option, pub winddirectionsuitability: Option, pub overallsuitability: Option, pub inspectiontype: Option, pub assignmentnumber: Option, pub calculatedwindspeed: Option, }