use diesel::prelude::*; use crate::schema::{jrtables, jrcolumns, jrentries, jrcells, users}; #[derive(Queryable, Selectable, Identifiable, Associations)] #[diesel(table_name = crate::schema::jrtables)] #[diesel(belongs_to(User, foreign_key = owner_id))] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct Jrtable { pub id: i32, pub name: String, pub owner_id: i32, } #[derive(Insertable)] #[diesel(table_name = jrtables)] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct NewJrtable { pub name: String, pub owner_id: i32, } #[derive(Queryable, Selectable, Identifiable, Associations)] #[diesel(table_name = jrcolumns)] #[diesel(belongs_to(Jrtable))] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct Jrcolumn { pub id: i32, pub column_type: crate::FIELDTYPE, pub name: String, pub jrtable_id: i32, pub id_in_table: i32, } #[derive(Insertable)] #[diesel(table_name = jrcolumns)] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct NewJrcolumn { pub name: String, pub jrtable_id: i32, pub id_in_table: i32, } #[derive(Queryable, Selectable, Identifiable, Associations)] #[diesel(table_name = jrentries)] #[diesel(belongs_to(Jrtable))] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct Jrentry { pub id: i32, pub row_pos: i32, pub jrtable_id: i32, } #[derive(Insertable)] #[diesel(table_name = jrentries)] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct NewJrentry { pub row_pos: i32, pub jrtable_id: i32, } #[derive(Queryable, Selectable, Identifiable, Associations)] #[diesel(table_name = jrcells)] #[diesel(belongs_to(Jrentry))] #[diesel(belongs_to(Jrcolumn))] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct Jrcell { pub id: i32, pub cell_value: String, pub jrentry_id: i32, pub jrcolumn_id: i32, } #[derive(Insertable)] #[diesel(table_name = jrcells)] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct NewJrcell { pub cell_value: String, pub jrentry_id: i32, pub jrcolumn_id: i32, } #[derive(Queryable, Selectable, Identifiable)] #[diesel(table_name = users)] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct User { pub id: i32, pub username: String, pub email: String, } #[derive(Insertable)] #[diesel(table_name = users)] #[diesel(check_for_backend(diesel::mysql::Mysql))] pub struct NewUser { pub username: String, pub email: String, }