refactor: move database entities into separate crate
This commit is contained in:
parent
4225ce3471
commit
f761e3b36d
26 changed files with 191 additions and 492 deletions
8
entity/Cargo.toml
Normal file
8
entity/Cargo.toml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "entity"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
sea-orm = "0.12.15"
|
||||
serde = { version = "1.0.204", features = ["derive"] }
|
||||
28
entity/src/entity/distro.rs
Normal file
28
entity/src/entity/distro.rs
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "distro")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key)]
|
||||
pub id: i32,
|
||||
#[sea_orm(unique)]
|
||||
pub name: String,
|
||||
pub description: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {
|
||||
#[sea_orm(has_many = "super::repo::Entity")]
|
||||
Repo,
|
||||
}
|
||||
|
||||
impl Related<super::repo::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Repo.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
11
entity/src/entity/mod.rs
Normal file
11
entity/src/entity/mod.rs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
pub mod prelude;
|
||||
|
||||
pub mod distro;
|
||||
pub mod package;
|
||||
pub mod package_file;
|
||||
pub mod package_group;
|
||||
pub mod package_license;
|
||||
pub mod package_related;
|
||||
pub mod repo;
|
||||
79
entity/src/entity/package.rs
Normal file
79
entity/src/entity/package.rs
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "package")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key)]
|
||||
pub id: i32,
|
||||
pub repo_id: i32,
|
||||
pub base: String,
|
||||
pub name: String,
|
||||
pub version: String,
|
||||
pub arch: String,
|
||||
pub size: i64,
|
||||
pub c_size: i64,
|
||||
pub description: Option<String>,
|
||||
pub url: Option<String>,
|
||||
pub build_date: DateTime,
|
||||
pub packager: Option<String>,
|
||||
pub pgp_sig: Option<String>,
|
||||
pub pgp_sig_size: Option<i64>,
|
||||
pub sha256_sum: String,
|
||||
pub compression: String,
|
||||
pub state: crate::PackageState,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {
|
||||
#[sea_orm(has_many = "super::package_file::Entity")]
|
||||
PackageFile,
|
||||
#[sea_orm(has_many = "super::package_group::Entity")]
|
||||
PackageGroup,
|
||||
#[sea_orm(has_many = "super::package_license::Entity")]
|
||||
PackageLicense,
|
||||
#[sea_orm(has_many = "super::package_related::Entity")]
|
||||
PackageRelated,
|
||||
#[sea_orm(
|
||||
belongs_to = "super::repo::Entity",
|
||||
from = "Column::RepoId",
|
||||
to = "super::repo::Column::Id",
|
||||
on_update = "NoAction",
|
||||
on_delete = "Cascade"
|
||||
)]
|
||||
Repo,
|
||||
}
|
||||
|
||||
impl Related<super::package_file::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::PackageFile.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl Related<super::package_group::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::PackageGroup.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl Related<super::package_license::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::PackageLicense.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl Related<super::package_related::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::PackageRelated.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl Related<super::repo::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Repo.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
33
entity/src/entity/package_file.rs
Normal file
33
entity/src/entity/package_file.rs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "package_file")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub package_id: i32,
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub path: String,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {
|
||||
#[sea_orm(
|
||||
belongs_to = "super::package::Entity",
|
||||
from = "Column::PackageId",
|
||||
to = "super::package::Column::Id",
|
||||
on_update = "NoAction",
|
||||
on_delete = "Cascade"
|
||||
)]
|
||||
Package,
|
||||
}
|
||||
|
||||
impl Related<super::package::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Package.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
33
entity/src/entity/package_group.rs
Normal file
33
entity/src/entity/package_group.rs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "package_group")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub package_id: i32,
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {
|
||||
#[sea_orm(
|
||||
belongs_to = "super::package::Entity",
|
||||
from = "Column::PackageId",
|
||||
to = "super::package::Column::Id",
|
||||
on_update = "NoAction",
|
||||
on_delete = "Cascade"
|
||||
)]
|
||||
Package,
|
||||
}
|
||||
|
||||
impl Related<super::package::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Package.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
33
entity/src/entity/package_license.rs
Normal file
33
entity/src/entity/package_license.rs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "package_license")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub package_id: i32,
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {
|
||||
#[sea_orm(
|
||||
belongs_to = "super::package::Entity",
|
||||
from = "Column::PackageId",
|
||||
to = "super::package::Column::Id",
|
||||
on_update = "NoAction",
|
||||
on_delete = "Cascade"
|
||||
)]
|
||||
Package,
|
||||
}
|
||||
|
||||
impl Related<super::package::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Package.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
35
entity/src/entity/package_related.rs
Normal file
35
entity/src/entity/package_related.rs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "package_related")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub package_id: i32,
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub r#type: crate::PackageRelatedEnum,
|
||||
#[sea_orm(primary_key, auto_increment = false)]
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {
|
||||
#[sea_orm(
|
||||
belongs_to = "super::package::Entity",
|
||||
from = "Column::PackageId",
|
||||
to = "super::package::Column::Id",
|
||||
on_update = "NoAction",
|
||||
on_delete = "Cascade"
|
||||
)]
|
||||
Package,
|
||||
}
|
||||
|
||||
impl Related<super::package::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Package.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
9
entity/src/entity/prelude.rs
Normal file
9
entity/src/entity/prelude.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
pub use super::distro::Entity as Distro;
|
||||
pub use super::package::Entity as Package;
|
||||
pub use super::package_file::Entity as PackageFile;
|
||||
pub use super::package_group::Entity as PackageGroup;
|
||||
pub use super::package_license::Entity as PackageLicense;
|
||||
pub use super::package_related::Entity as PackageRelated;
|
||||
pub use super::repo::Entity as Repo;
|
||||
43
entity/src/entity/repo.rs
Normal file
43
entity/src/entity/repo.rs
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.1
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "repo")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key)]
|
||||
pub id: i32,
|
||||
pub distro_id: i32,
|
||||
#[sea_orm(unique)]
|
||||
pub name: String,
|
||||
pub description: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {
|
||||
#[sea_orm(
|
||||
belongs_to = "super::distro::Entity",
|
||||
from = "Column::DistroId",
|
||||
to = "super::distro::Column::Id",
|
||||
on_update = "NoAction",
|
||||
on_delete = "Cascade"
|
||||
)]
|
||||
Distro,
|
||||
#[sea_orm(has_many = "super::package::Entity")]
|
||||
Package,
|
||||
}
|
||||
|
||||
impl Related<super::distro::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Distro.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl Related<super::package::Entity> for Entity {
|
||||
fn to() -> RelationDef {
|
||||
Relation::Package.def()
|
||||
}
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
37
entity/src/lib.rs
Normal file
37
entity/src/lib.rs
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
pub mod entity;
|
||||
pub use entity::prelude::*;
|
||||
pub use entity::*;
|
||||
|
||||
use sea_orm::{DeriveActiveEnum, EnumIter};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(EnumIter, DeriveActiveEnum, Serialize, Deserialize, PartialEq, Eq, Clone, Debug)]
|
||||
#[sea_orm(rs_type = "i32", db_type = "Integer")]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
pub enum PackageRelatedEnum {
|
||||
#[sea_orm(num_value = 0)]
|
||||
Conflicts,
|
||||
#[sea_orm(num_value = 1)]
|
||||
Replaces,
|
||||
#[sea_orm(num_value = 2)]
|
||||
Provides,
|
||||
#[sea_orm(num_value = 3)]
|
||||
Depend,
|
||||
#[sea_orm(num_value = 4)]
|
||||
Makedepend,
|
||||
#[sea_orm(num_value = 5)]
|
||||
Checkdepend,
|
||||
#[sea_orm(num_value = 6)]
|
||||
Optdepend,
|
||||
}
|
||||
|
||||
#[derive(EnumIter, DeriveActiveEnum, Deserialize, Serialize, PartialEq, Eq, Clone, Debug)]
|
||||
#[sea_orm(rs_type = "i32", db_type = "Integer")]
|
||||
pub enum PackageState {
|
||||
#[sea_orm(num_value = 0)]
|
||||
PendingCommit,
|
||||
#[sea_orm(num_value = 1)]
|
||||
Committed,
|
||||
#[sea_orm(num_value = 2)]
|
||||
PendingDeletion,
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue