Add rent request table
This commit is contained in:
parent
9158987469
commit
24751a3a17
@ -0,0 +1,92 @@
|
|||||||
|
use sea_orm_migration::prelude::*;
|
||||||
|
|
||||||
|
use crate::m20220101_000001_create_table::Account;
|
||||||
|
use crate::m20230726_135630_parking_spaces::ParkingSpace;
|
||||||
|
use crate::m20230726_135630_parking_spaces::ParkingSpaceRent;
|
||||||
|
|
||||||
|
#[derive(DeriveMigrationName)]
|
||||||
|
pub struct Migration;
|
||||||
|
|
||||||
|
#[async_trait::async_trait]
|
||||||
|
impl MigrationTrait for Migration {
|
||||||
|
async fn up(&self, m: &SchemaManager) -> Result<(), DbErr> {
|
||||||
|
m.create_table(
|
||||||
|
Table::create()
|
||||||
|
.table(RentRequest::RentRequests)
|
||||||
|
.if_not_exists()
|
||||||
|
.col(
|
||||||
|
ColumnDef::new(RentRequest::Id)
|
||||||
|
.integer()
|
||||||
|
.not_null()
|
||||||
|
.auto_increment()
|
||||||
|
.primary_key(),
|
||||||
|
)
|
||||||
|
.col(ColumnDef::new(RentRequest::ParkingSpaceId).integer())
|
||||||
|
.col(ColumnDef::new(RentRequest::ParkingSpaceRentId).integer())
|
||||||
|
.col(ColumnDef::new(RentRequest::AccountId).integer())
|
||||||
|
.col(
|
||||||
|
ColumnDef::new(RentRequest::CreatedAt)
|
||||||
|
.timestamp()
|
||||||
|
.default(SimpleExpr::Custom("NOW()".to_owned()))
|
||||||
|
.not_null(),
|
||||||
|
)
|
||||||
|
.col(
|
||||||
|
ColumnDef::new(RentRequest::UpdatedAt)
|
||||||
|
.timestamp()
|
||||||
|
.default(SimpleExpr::Custom("NOW()".to_owned()))
|
||||||
|
.not_null(),
|
||||||
|
)
|
||||||
|
.if_not_exists()
|
||||||
|
.to_owned(),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
m.create_foreign_key(
|
||||||
|
ForeignKeyCreateStatement::new()
|
||||||
|
.from_tbl(RentRequest::RentRequests)
|
||||||
|
.from_col(RentRequest::ParkingSpaceId)
|
||||||
|
.to_tbl(ParkingSpace::ParkingSpaces)
|
||||||
|
.to_col(ParkingSpace::Id)
|
||||||
|
.to_owned(),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
m.create_foreign_key(
|
||||||
|
ForeignKeyCreateStatement::new()
|
||||||
|
.from_tbl(RentRequest::RentRequests)
|
||||||
|
.from_col(RentRequest::ParkingSpaceId)
|
||||||
|
.to_tbl(ParkingSpaceRent::ParkingSpaceRents)
|
||||||
|
.to_col(ParkingSpaceRent::Id)
|
||||||
|
.to_owned(),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
m.create_foreign_key(
|
||||||
|
ForeignKeyCreateStatement::new()
|
||||||
|
.from_tbl(RentRequest::RentRequests)
|
||||||
|
.from_col(RentRequest::AccountId)
|
||||||
|
.to_tbl(Account::Accounts)
|
||||||
|
.to_col(Account::Id)
|
||||||
|
.to_owned(),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn down(&self, m: &SchemaManager) -> Result<(), DbErr> {
|
||||||
|
m.drop_table(Table::drop().table(RentRequest::RentRequests).to_owned())
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Iden)]
|
||||||
|
pub enum RentRequest {
|
||||||
|
RentRequests,
|
||||||
|
Id,
|
||||||
|
ParkingSpaceId,
|
||||||
|
ParkingSpaceRentId,
|
||||||
|
AccountId,
|
||||||
|
CreatedAt,
|
||||||
|
UpdatedAt,
|
||||||
|
}
|
123
crates/oswilno-contract/src/rent_requests.rs
Normal file
123
crates/oswilno-contract/src/rent_requests.rs
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2
|
||||||
|
|
||||||
|
use actix_admin::prelude::*;
|
||||||
|
use sea_orm::entity::prelude::*;
|
||||||
|
#[allow(unused_imports)]
|
||||||
|
use sea_orm::Iterable;
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||||
|
pub struct Entity;
|
||||||
|
|
||||||
|
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||||
|
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||||
|
impl EntityName for Entity {
|
||||||
|
fn table_name(&self) -> &str {
|
||||||
|
"rent_requests"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(
|
||||||
|
Clone,
|
||||||
|
Debug,
|
||||||
|
PartialEq,
|
||||||
|
DeriveModel,
|
||||||
|
DeriveActiveModel,
|
||||||
|
Eq,
|
||||||
|
DeriveActixAdmin,
|
||||||
|
DeriveActixAdminModel,
|
||||||
|
DeriveActixAdminViewModel,
|
||||||
|
)]
|
||||||
|
pub struct Model {
|
||||||
|
#[actix_admin(primary_key)]
|
||||||
|
pub id: i32,
|
||||||
|
#[actix_admin(select_list=crate::parking_spaces::Entity)]
|
||||||
|
pub parking_space_id: Option<i32>,
|
||||||
|
pub parking_space_rent_id: Option<i32>,
|
||||||
|
pub account_id: Option<i32>,
|
||||||
|
#[actix_admin(list_hide_column, column_type = "NaiveDateTime")]
|
||||||
|
pub created_at: DateTime,
|
||||||
|
#[actix_admin(list_hide_column, column_type = "NaiveDateTime")]
|
||||||
|
pub updated_at: DateTime,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)]
|
||||||
|
pub enum Column {
|
||||||
|
Id,
|
||||||
|
ParkingSpaceId,
|
||||||
|
ParkingSpaceRentId,
|
||||||
|
AccountId,
|
||||||
|
CreatedAt,
|
||||||
|
UpdatedAt,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, Debug, EnumIter, DerivePrimaryKey)]
|
||||||
|
pub enum PrimaryKey {
|
||||||
|
Id,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PrimaryKeyTrait for PrimaryKey {
|
||||||
|
type ValueType = i32;
|
||||||
|
fn auto_increment() -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, Debug, EnumIter)]
|
||||||
|
pub enum Relation {
|
||||||
|
Accounts,
|
||||||
|
ParkingSpaceRents,
|
||||||
|
ParkingSpaces,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ColumnTrait for Column {
|
||||||
|
type EntityName = Entity;
|
||||||
|
fn def(&self) -> ColumnDef {
|
||||||
|
match self {
|
||||||
|
Self::Id => ColumnType::Integer.def(),
|
||||||
|
Self::ParkingSpaceId => ColumnType::Integer.def().null(),
|
||||||
|
Self::ParkingSpaceRentId => ColumnType::Integer.def().null(),
|
||||||
|
Self::AccountId => ColumnType::Integer.def().null(),
|
||||||
|
Self::CreatedAt => ColumnType::DateTime.def(),
|
||||||
|
Self::UpdatedAt => ColumnType::DateTime.def(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl RelationTrait for Relation {
|
||||||
|
fn def(&self) -> RelationDef {
|
||||||
|
match self {
|
||||||
|
Self::Accounts => Entity::belongs_to(super::accounts::Entity)
|
||||||
|
.from(Column::AccountId)
|
||||||
|
.to(super::accounts::Column::Id)
|
||||||
|
.into(),
|
||||||
|
Self::ParkingSpaceRents => Entity::belongs_to(super::parking_space_rents::Entity)
|
||||||
|
.from(Column::ParkingSpaceId)
|
||||||
|
.to(super::parking_space_rents::Column::Id)
|
||||||
|
.into(),
|
||||||
|
Self::ParkingSpaces => Entity::belongs_to(super::parking_spaces::Entity)
|
||||||
|
.from(Column::ParkingSpaceId)
|
||||||
|
.to(super::parking_spaces::Column::Id)
|
||||||
|
.into(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Related<super::accounts::Entity> for Entity {
|
||||||
|
fn to() -> RelationDef {
|
||||||
|
Relation::Accounts.def()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Related<super::parking_space_rents::Entity> for Entity {
|
||||||
|
fn to() -> RelationDef {
|
||||||
|
Relation::ParkingSpaceRents.def()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Related<super::parking_spaces::Entity> for Entity {
|
||||||
|
fn to() -> RelationDef {
|
||||||
|
Relation::ParkingSpaces.def()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ActiveModelBehavior for ActiveModel {}
|
Loading…
Reference in New Issue
Block a user