99 lines
2.4 KiB
Rust
99 lines
2.4 KiB
Rust
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,
|
|
}
|
|
|