Inventur/inventur_db/src/models.rs
Johannes Randerath c06ddc9498 First release
2024-08-27 18:25:04 +02:00

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,
}