CZK implemented
This commit is contained in:
22
src/models/_entities/currencies.rs
Normal file
22
src/models/_entities/currencies.rs
Normal file
@@ -0,0 +1,22 @@
|
||||
//! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.19
|
||||
|
||||
use sea_orm::entity::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "currencies")]
|
||||
pub struct Model {
|
||||
pub created_at: DateTimeWithTimeZone,
|
||||
pub updated_at: DateTimeWithTimeZone,
|
||||
#[sea_orm(primary_key)]
|
||||
pub id: i32,
|
||||
#[sea_orm(unique)]
|
||||
pub code: String,
|
||||
pub symbol: String,
|
||||
/// Units of this currency per 1 EUR, scaled ×10000 (e.g. 25.30 → 253000).
|
||||
pub rate_e4: i64,
|
||||
pub enabled: bool,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {}
|
||||
@@ -8,6 +8,7 @@ pub mod account_product_resolutions;
|
||||
pub mod audience_discount_profiles;
|
||||
pub mod audit_logs;
|
||||
pub mod categories;
|
||||
pub mod currencies;
|
||||
pub mod customer_profiles;
|
||||
pub mod discount_profile_products;
|
||||
pub mod discount_profiles;
|
||||
|
||||
@@ -6,6 +6,7 @@ pub use super::account_product_resolutions::Entity as AccountProductResolutions;
|
||||
pub use super::audience_discount_profiles::Entity as AudienceDiscountProfiles;
|
||||
pub use super::audit_logs::Entity as AuditLogs;
|
||||
pub use super::categories::Entity as Categories;
|
||||
pub use super::currencies::Entity as Currencies;
|
||||
pub use super::customer_profiles::Entity as CustomerProfiles;
|
||||
pub use super::discount_profile_products::Entity as DiscountProfileProducts;
|
||||
pub use super::discount_profiles::Entity as DiscountProfiles;
|
||||
|
||||
40
src/models/currencies.rs
Normal file
40
src/models/currencies.rs
Normal file
@@ -0,0 +1,40 @@
|
||||
use sea_orm::entity::prelude::*;
|
||||
pub use crate::models::_entities::currencies::{ActiveModel, Column, Entity, Model};
|
||||
pub type Currencies = Entity;
|
||||
|
||||
#[async_trait::async_trait]
|
||||
impl ActiveModelBehavior for ActiveModel {
|
||||
async fn before_save<C>(self, _db: &C, insert: bool) -> std::result::Result<Self, DbErr>
|
||||
where
|
||||
C: ConnectionTrait,
|
||||
{
|
||||
if !insert && self.updated_at.is_unchanged() {
|
||||
let mut this = self;
|
||||
this.updated_at = sea_orm::ActiveValue::Set(chrono::Utc::now().into());
|
||||
Ok(this)
|
||||
} else {
|
||||
Ok(self)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// implement your read-oriented logic here
|
||||
impl Model {}
|
||||
|
||||
// implement your write-oriented logic here
|
||||
impl ActiveModel {}
|
||||
|
||||
// implement your custom finders, selectors oriented logic here
|
||||
impl Entity {
|
||||
/// An enabled currency by its ISO code (case-insensitive), or `None`.
|
||||
pub async fn find_enabled_by_code<C: ConnectionTrait>(
|
||||
db: &C,
|
||||
code: &str,
|
||||
) -> Result<Option<Model>, DbErr> {
|
||||
Entity::find()
|
||||
.filter(Column::Code.eq(code.to_uppercase()))
|
||||
.filter(Column::Enabled.eq(true))
|
||||
.one(db)
|
||||
.await
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ pub mod account_product_resolutions;
|
||||
pub mod audience_discount_profiles;
|
||||
pub mod audit_logs;
|
||||
pub mod categories;
|
||||
pub mod currencies;
|
||||
pub mod discount_profile_products;
|
||||
pub mod discount_profiles;
|
||||
pub mod customer_profiles;
|
||||
|
||||
Reference in New Issue
Block a user