1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00

Use i32 for database IDs since that's support for postgres too

This commit is contained in:
NG (Graham)
2025-06-06 19:03:08 -04:00
parent 22dd57bd84
commit 4914e2057a
20 changed files with 117 additions and 117 deletions

View File

@@ -280,7 +280,7 @@ pub enum VehicleDescriptor {
factory: u32, factory: u32,
}, },
Database { Database {
garage: u32, garage: i32,
}, },
Raw { Raw {
cube_data: Vec<u8>, cube_data: Vec<u8>,

View File

@@ -5,27 +5,27 @@ use super::ItemCategory;
#[derive(Serialize, Deserialize, Clone, Debug)] #[derive(Serialize, Deserialize, Clone, Debug)]
pub struct GarageSlot { pub struct GarageSlot {
#[serde(default)] #[serde(default)]
pub slot: u32, pub slot: i32,
pub name: String, pub name: String,
#[serde(default)] #[serde(default)]
pub cubes: u32, pub cubes: u32,
#[serde(default)] #[serde(default)]
pub crf_id: u32, // 0 means not uploaded pub crf_id: i32, // 0 means not uploaded
#[serde(default = "default_false")] #[serde(default = "default_false")]
pub was_rated: bool, pub was_rated: bool,
#[serde(default)] #[serde(default)]
pub movement_categories: Vec<ItemCategory>, pub movement_categories: Vec<ItemCategory>,
#[serde(default)] #[serde(default)]
pub uuid: (u32, u32), pub uuid: (u32, u32),
pub thumbnail_version: u32, pub thumbnail_version: i32,
#[serde(default)] #[serde(default)]
pub total_robot_cpu: u32, pub total_robot_cpu: i32,
#[serde(default)] #[serde(default)]
pub total_cosmetic_cpu: u32, pub total_cosmetic_cpu: i32,
#[serde(default)] #[serde(default)]
pub total_robot_ranking: u32, pub total_robot_ranking: i32,
#[serde(default)] #[serde(default)]
pub bay_cpu: u32, pub bay_cpu: i32,
#[serde(default = "default_false")] #[serde(default = "default_false")]
pub tutorial_robot: bool, pub tutorial_robot: bool,
#[serde(default = "default_neg_1")] #[serde(default = "default_neg_1")]
@@ -79,15 +79,15 @@ impl std::convert::Into<crate::data::garage_bay::GarageSlotInfo> for GarageSlot
crate::data::garage_bay::GarageSlotInfo { crate::data::garage_bay::GarageSlotInfo {
name: self.name, name: self.name,
cubes: self.cubes, cubes: self.cubes,
crf_id: self.crf_id, crf_id: self.crf_id as u32,
was_rated: self.was_rated, was_rated: self.was_rated,
movement_categories: self.movement_categories.into_iter().map(|x| x.into()).collect(), movement_categories: self.movement_categories.into_iter().map(|x| x.into()).collect(),
uuid: self.uuid, uuid: self.uuid,
thumbnail_version: self.thumbnail_version, thumbnail_version: self.thumbnail_version as u32,
total_robot_cpu: self.total_robot_cpu, total_robot_cpu: self.total_robot_cpu as u32,
total_cosmetic_cpu: self.total_cosmetic_cpu, total_cosmetic_cpu: self.total_cosmetic_cpu as u32,
total_robot_ranking: self.total_robot_ranking, total_robot_ranking: self.total_robot_ranking as u32,
bay_cpu: self.bay_cpu, bay_cpu: self.bay_cpu as u32,
tutorial_robot: self.tutorial_robot, tutorial_robot: self.tutorial_robot,
starter_robot_index: self.starter_robot_index, starter_robot_index: self.starter_robot_index,
control_type: self.control_type.into(), control_type: self.control_type.into(),
@@ -104,15 +104,15 @@ pub fn db_into_data(garage: oj_rc_database::schema::garage::Model) -> crate::dat
crate::data::garage_bay::GarageSlotInfo { crate::data::garage_bay::GarageSlotInfo {
name: garage.name, name: garage.name,
cubes: cube_count, cubes: cube_count,
crf_id: garage.crf_id.unwrap_or(0), crf_id: garage.crf_id.unwrap_or(0) as u32,
was_rated: garage.was_rated, was_rated: garage.was_rated,
movement_categories: movement_category_into_data(&garage.movement_categories), movement_categories: movement_category_into_data(&garage.movement_categories),
uuid: super::user::i64_split(garage.uuid), uuid: super::user::i64_split(garage.uuid),
thumbnail_version: garage.thumbnail_version, thumbnail_version: garage.thumbnail_version as u32,
total_robot_cpu: garage.total_robot_cpu, total_robot_cpu: garage.total_robot_cpu as u32,
total_cosmetic_cpu: garage.total_cosmetic_cpu, total_cosmetic_cpu: garage.total_cosmetic_cpu as u32,
total_robot_ranking: garage.total_robot_ranking, total_robot_ranking: garage.total_robot_ranking as u32,
bay_cpu: garage.bay_cpu, bay_cpu: garage.bay_cpu as u32,
tutorial_robot: garage.tutorial_robot, tutorial_robot: garage.tutorial_robot,
starter_robot_index: garage.starter_robot_index.map(|x| x as i32).unwrap_or(-1), starter_robot_index: garage.starter_robot_index.map(|x| x as i32).unwrap_or(-1),
control_type: control_ty_into_data(garage.control_type), control_type: control_ty_into_data(garage.control_type),
@@ -193,7 +193,7 @@ pub enum PrefabId {
factory: u32, factory: u32,
}, },
Database { Database {
garage: u32, garage: i32,
}, },
Raw { Raw {
cube_data: Vec<u8>, cube_data: Vec<u8>,

View File

@@ -180,7 +180,7 @@ impl super::UserAuthenticator for AccountProvider {
}) })
} }
async fn register(&self, info: super::RegistrationInfo) -> Result<u32, String> { async fn register(&self, info: super::RegistrationInfo) -> Result<i32, String> {
super::register_new_user(&info, &self.db).await.map_err(|e| e.to_string()) super::register_new_user(&info, &self.db).await.map_err(|e| e.to_string())
} }
} }
@@ -197,13 +197,13 @@ struct UserData {
} }
impl UserData { impl UserData {
async fn load_garage_by_slot(&self, slot: u32) -> Result<Option<oj_rc_database::schema::garage::Model>, oj_rc_database::sea_orm::DbErr> { async fn load_garage_by_slot(&self, slot: i32) -> Result<Option<oj_rc_database::schema::garage::Model>, oj_rc_database::sea_orm::DbErr> {
//let path = self.root.join(super::GARAGE_DIR).join(format!("{}.json", id)); //let path = self.root.join(super::GARAGE_DIR).join(format!("{}.json", id));
//crate::persist::GarageSlot::load(&path) //crate::persist::GarageSlot::load(&path)
self.db.garage_by_user_id_and_slot(self.account.id, slot).await self.db.garage_by_user_id_and_slot(self.account.id, slot).await
} }
async fn save_garage_by_slot(&self, data: oj_rc_database::schema::garage::ActiveModel, slot: u32) -> Result<(), oj_rc_database::sea_orm::DbErr> { async fn save_garage_by_slot(&self, data: oj_rc_database::schema::garage::ActiveModel, slot: i32) -> Result<(), oj_rc_database::sea_orm::DbErr> {
self.db.update_garage_by_user_id_and_slot(data, self.account.id, slot).await?; self.db.update_garage_by_user_id_and_slot(data, self.account.id, slot).await?;
Ok(()) Ok(())
} }
@@ -436,7 +436,7 @@ impl <C: Clone> super::User<C> for UserData {
async fn selected_garage(&self) -> (String, u32) { async fn selected_garage(&self) -> (String, u32) {
match self.db.garage_selected(self.account.id).await { match self.db.garage_selected(self.account.id).await {
Ok(Some(selected)) => (super::i64_as_uuid_str(selected.uuid), selected.slot), Ok(Some(selected)) => (super::i64_as_uuid_str(selected.uuid), selected.slot as u32),
Ok(None) => { Ok(None) => {
log::warn!("User {} does not have a selected garage", self.account.id); log::warn!("User {} does not have a selected garage", self.account.id);
("0_0".to_owned(), 0) ("0_0".to_owned(), 0)
@@ -450,7 +450,7 @@ impl <C: Clone> super::User<C> for UserData {
async fn select_garage(&self, slot: i32) -> Result<(), i16> { async fn select_garage(&self, slot: i32) -> Result<(), i16> {
self.err_on_banned().await?; self.err_on_banned().await?;
self.db.update_garage_selected_by_user_id_and_slot(self.account.id, slot as u32).await.map_err(|e| { self.db.update_garage_selected_by_user_id_and_slot(self.account.id, slot).await.map_err(|e| {
log::error!("Failed to select vehicle slot {} user_id {}: {}", slot, self.account.id, e); log::error!("Failed to select vehicle slot {} user_id {}: {}", slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
}) })
@@ -536,11 +536,11 @@ impl <C: Clone> super::User<C> for UserData {
weapon_order: oj_rc_database::sea_orm::ActiveValue::Set(oj_rc_database::schema::dump_csv(&vehicle.weapon_order)), weapon_order: oj_rc_database::sea_orm::ActiveValue::Set(oj_rc_database::schema::dump_csv(&vehicle.weapon_order)),
robot_data: oj_rc_database::sea_orm::ActiveValue::Set(vehicle.robot_data), robot_data: oj_rc_database::sea_orm::ActiveValue::Set(vehicle.robot_data),
colour_data: oj_rc_database::sea_orm::ActiveValue::Set(vehicle.colour_data), colour_data: oj_rc_database::sea_orm::ActiveValue::Set(vehicle.colour_data),
crf_id: if let Some(crf_id) = vehicle.crf_id { oj_rc_database::sea_orm::ActiveValue::Set(Some(crf_id as u32)) } else { Default::default() }, crf_id: if let Some(crf_id) = vehicle.crf_id { oj_rc_database::sea_orm::ActiveValue::Set(Some(crf_id)) } else { Default::default() },
name: if let Some(new_name) = vehicle.name { oj_rc_database::sea_orm::ActiveValue::Set(new_name) } else { Default::default() }, name: if let Some(new_name) = vehicle.name { oj_rc_database::sea_orm::ActiveValue::Set(new_name) } else { Default::default() },
..Default::default() ..Default::default()
}; };
self.save_garage_by_slot(entity, vehicle.slot as u32).await.map_err(|e| { self.save_garage_by_slot(entity, vehicle.slot).await.map_err(|e| {
log::error!("Failed to save vehicle slot {} for user_id {}: {}", vehicle.slot, self.account.id, e); log::error!("Failed to save vehicle slot {} for user_id {}: {}", vehicle.slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})?; })?;
@@ -565,7 +565,7 @@ impl <C: Clone> super::User<C> for UserData {
self.err_on_banned().await?; self.err_on_banned().await?;
let model = if let Some(slot) = reset_slot { let model = if let Some(slot) = reset_slot {
let new_data = super::initial_data::default_reset_slot(); let new_data = super::initial_data::default_reset_slot();
if let Some(reset_g) = self.db.update_garage_by_user_id_and_slot(new_data, self.account.id, slot as u32).await.map_err(|e| { if let Some(reset_g) = self.db.update_garage_by_user_id_and_slot(new_data, self.account.id, slot).await.map_err(|e| {
log::error!("Failed to reset vehicle slot {} for user_id {}: {}", slot, self.account.id, e); log::error!("Failed to reset vehicle slot {} for user_id {}: {}", slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})? { })? {
@@ -599,7 +599,7 @@ impl <C: Clone> super::User<C> for UserData {
} }
async fn copy_slot(&self, slot: i32, into_slot: Option<i32>, append: &str) -> Result<(), i16> { async fn copy_slot(&self, slot: i32, into_slot: Option<i32>, append: &str) -> Result<(), i16> {
let slot_to_copy = self.db.garage_by_user_id_and_slot(self.account.id, slot as u32).await.map_err(|e| { let slot_to_copy = self.db.garage_by_user_id_and_slot(self.account.id, slot).await.map_err(|e| {
log::error!("Failed to retrieve vehicle slot {} to copy for user_id {}: {}", slot, self.account.id, e); log::error!("Failed to retrieve vehicle slot {} to copy for user_id {}: {}", slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})?.ok_or_else(|| { })?.ok_or_else(|| {
@@ -609,7 +609,7 @@ impl <C: Clone> super::User<C> for UserData {
let new_name = format!("{} {}", slot_to_copy.name, append); let new_name = format!("{} {}", slot_to_copy.name, append);
let new_slot = if let Some(existing_slot) = into_slot { let new_slot = if let Some(existing_slot) = into_slot {
log::info!("Copy slot {} -> {} as `{}`", slot, existing_slot, new_name); log::info!("Copy slot {} -> {} as `{}`", slot, existing_slot, new_name);
if let Some(existing_g) = self.db.garage_by_user_id_and_slot(self.account.id, existing_slot as u32).await.map_err(|e| { if let Some(existing_g) = self.db.garage_by_user_id_and_slot(self.account.id, existing_slot).await.map_err(|e| {
log::error!("Failed to retrieve vehicle slot {} for user_id {}: {}", slot, self.account.id, e); log::error!("Failed to retrieve vehicle slot {} for user_id {}: {}", slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})? { })? {
@@ -639,7 +639,7 @@ impl <C: Clone> super::User<C> for UserData {
log::error!("Failed to update garage slot {} copied from {} for user_id {}: {}", existing_slot, slot, self.account.id, e); log::error!("Failed to update garage slot {} copied from {} for user_id {}: {}", existing_slot, slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})?; })?;
existing_slot as u32 existing_slot
} else { } else {
log::warn!("No existing vehicle slot {} for user_id {}, copying to new slot", slot, self.account.id); log::warn!("No existing vehicle slot {} for user_id {}, copying to new slot", slot, self.account.id);
return <Self as super::User<C>>::copy_slot(self, slot, None, append).await; return <Self as super::User<C>>::copy_slot(self, slot, None, append).await;
@@ -657,7 +657,7 @@ impl <C: Clone> super::User<C> for UserData {
to_insert.id = Default::default(); to_insert.id = Default::default();
to_insert.creation_time = oj_rc_database::sea_orm::ActiveValue::Set(now); to_insert.creation_time = oj_rc_database::sea_orm::ActiveValue::Set(now);
to_insert.uuid = oj_rc_database::sea_orm::ActiveValue::Set(uuid); to_insert.uuid = oj_rc_database::sea_orm::ActiveValue::Set(uuid);
to_insert.slot = oj_rc_database::sea_orm::ActiveValue::Set(max_slot + 1); to_insert.slot = oj_rc_database::sea_orm::ActiveValue::Set((max_slot + 1) as i32);
to_insert.name = oj_rc_database::sea_orm::ActiveValue::Set(new_name); to_insert.name = oj_rc_database::sea_orm::ActiveValue::Set(new_name);
self.db.insert_garage(to_insert).await.map_err(|e| { self.db.insert_garage(to_insert).await.map_err(|e| {
log::error!("Failed to insert garage slot copied from {} for user_id {}: {}", slot, self.account.id, e); log::error!("Failed to insert garage slot copied from {} for user_id {}: {}", slot, self.account.id, e);
@@ -685,7 +685,7 @@ impl <C: Clone> super::User<C> for UserData {
log::error!("No selected vehicle slot for user_id {}", self.account.id); log::error!("No selected vehicle slot for user_id {}", self.account.id);
DATABASE_ERR DATABASE_ERR
})?; })?;
let inc_opt = self.garage_upgrades.increments.iter().enumerate().filter(|(_i, inc)| inc.cpu <= selected_slot.bay_cpu).last(); let inc_opt = self.garage_upgrades.increments.iter().enumerate().filter(|(_i, inc)| inc.cpu <= selected_slot.bay_cpu as u32).last();
if let Some((i, _)) = inc_opt { if let Some((i, _)) = inc_opt {
let max_upgrade = self.garage_upgrades.increments.len() - 1; let max_upgrade = self.garage_upgrades.increments.len() - 1;
let upgrade_to = i + (increments as usize); let upgrade_to = i + (increments as usize);
@@ -695,7 +695,7 @@ impl <C: Clone> super::User<C> for UserData {
} else { } else {
let upgrade_to_cpu = self.garage_upgrades.increments[upgrade_to].cpu; let upgrade_to_cpu = self.garage_upgrades.increments[upgrade_to].cpu;
let entity = oj_rc_database::schema::garage::ActiveModel { let entity = oj_rc_database::schema::garage::ActiveModel {
bay_cpu: oj_rc_database::sea_orm::ActiveValue::Set(upgrade_to_cpu), bay_cpu: oj_rc_database::sea_orm::ActiveValue::Set(upgrade_to_cpu as i32),
..Default::default() ..Default::default()
}; };
self.db.update_garage_by_user_id_and_slot(entity, self.account.id, selected_slot.slot).await.map_err(|e| { self.db.update_garage_by_user_id_and_slot(entity, self.account.id, selected_slot.slot).await.map_err(|e| {
@@ -721,7 +721,7 @@ impl <C: Clone> super::User<C> for UserData {
tracks_turn_on_spot: oj_rc_database::sea_orm::ActiveValue::Set(controls.tracks_turn_on_spot), tracks_turn_on_spot: oj_rc_database::sea_orm::ActiveValue::Set(controls.tracks_turn_on_spot),
..Default::default() ..Default::default()
}; };
self.save_garage_by_slot(entity, controls.slot as u32).await.map_err(|e| { self.save_garage_by_slot(entity, controls.slot).await.map_err(|e| {
log::error!("Failed to save controls for slot {} for user_id {}: {}", controls.slot, self.account.id, e); log::error!("Failed to save controls for slot {} for user_id {}: {}", controls.slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})?; })?;
@@ -770,7 +770,7 @@ impl <C: Clone> super::User<C> for UserData {
name: oj_rc_database::sea_orm::ActiveValue::Set(name), name: oj_rc_database::sea_orm::ActiveValue::Set(name),
..Default::default() ..Default::default()
}; };
self.db.update_garage_by_user_id_and_slot(to_save, self.account.id, slot as u32).await.map_err(|e| { self.db.update_garage_by_user_id_and_slot(to_save, self.account.id, slot).await.map_err(|e| {
log::error!("Failed to save garage {} for user_id {}: {}", slot, self.account.id, e); log::error!("Failed to save garage {} for user_id {}: {}", slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})?; })?;
@@ -822,7 +822,7 @@ impl <C: Clone> super::User<C> for UserData {
async fn prepare_factory_upload(&self, vehicle: super::VehicleUploadData) -> Result<oj_rc_factory::VehicleUploadInfo, i16> { async fn prepare_factory_upload(&self, vehicle: super::VehicleUploadData) -> Result<oj_rc_factory::VehicleUploadInfo, i16> {
self.err_on_banned().await?; self.err_on_banned().await?;
let slot = self.load_garage_by_slot(vehicle.slot as u32).await.map_err(|e| { let slot = self.load_garage_by_slot(vehicle.slot).await.map_err(|e| {
log::error!("Failed to retrieve vehicle slot {} for user_id {} (prepare_factory_upload): {}", vehicle.slot, self.account.id, e); log::error!("Failed to retrieve vehicle slot {} for user_id {} (prepare_factory_upload): {}", vehicle.slot, self.account.id, e);
DATABASE_ERR DATABASE_ERR
})?.ok_or_else(|| { })?.ok_or_else(|| {
@@ -835,8 +835,8 @@ impl <C: Clone> super::User<C> for UserData {
thumbnail: vehicle.thumbnail, thumbnail: vehicle.thumbnail,
added_by: self.account.public_id.clone(), added_by: self.account.public_id.clone(),
added_by_display_name: self.account.display_name.clone(), added_by_display_name: self.account.display_name.clone(),
cpu: slot.total_robot_cpu, cpu: slot.total_robot_cpu as u32,
total_robot_ranking: slot.total_robot_ranking, total_robot_ranking: slot.total_robot_ranking as u32,
build_version: vehicle.version, build_version: vehicle.version,
cube_data: slot.robot_data, cube_data: slot.robot_data,
colour_data: slot.colour_data, colour_data: slot.colour_data,

View File

@@ -31,7 +31,7 @@ pub async fn setup_new_user(user: &super::UserInfo, db: &oj_rc_database::Databas
Ok(()) Ok(())
} }
pub async fn register_new_user(info: &super::RegistrationInfo, db: &oj_rc_database::Database) -> Result<u32, oj_rc_database::sea_orm::DbErr> { pub async fn register_new_user(info: &super::RegistrationInfo, db: &oj_rc_database::Database) -> Result<i32, oj_rc_database::sea_orm::DbErr> {
let user_data = db.insert_user(default_user_data(info)).await?; let user_data = db.insert_user(default_user_data(info)).await?;
db.insert_perms(default_user_perms(user_data.id)).await?; db.insert_perms(default_user_perms(user_data.id)).await?;
db.insert_user_aux(default_user_aux_data(user_data.id)).await?; db.insert_user_aux(default_user_aux_data(user_data.id)).await?;
@@ -68,7 +68,7 @@ fn default_user_data(info: &super::RegistrationInfo) -> oj_rc_database::schema::
} }
} }
fn default_user_aux_data(user_id: u32) -> Vec<oj_rc_database::schema::user_aux::ActiveModel> { fn default_user_aux_data(user_id: i32) -> Vec<oj_rc_database::schema::user_aux::ActiveModel> {
let current_time = current_unix_time(); let current_time = current_unix_time();
vec![ vec![
oj_rc_database::schema::user_aux::ActiveModel { oj_rc_database::schema::user_aux::ActiveModel {
@@ -148,7 +148,7 @@ r#"{
] ]
} }
fn default_user_perms(user_id: u32) -> oj_rc_database::schema::permissions::ActiveModel { fn default_user_perms(user_id: i32) -> oj_rc_database::schema::permissions::ActiveModel {
oj_rc_database::schema::permissions::ActiveModel { oj_rc_database::schema::permissions::ActiveModel {
id: Default::default(), id: Default::default(),
user_id: oj_rc_database::sea_orm::ActiveValue::Set(user_id), user_id: oj_rc_database::sea_orm::ActiveValue::Set(user_id),
@@ -160,7 +160,7 @@ fn default_user_perms(user_id: u32) -> oj_rc_database::schema::permissions::Acti
} }
} }
pub fn default_new_slot(user_id: u32, slot: u32, bay_cpu: u32) -> oj_rc_database::schema::garage::ActiveModel { pub fn default_new_slot(user_id: i32, slot: i32, bay_cpu: i32) -> oj_rc_database::schema::garage::ActiveModel {
let current_time = current_unix_time(); let current_time = current_unix_time();
oj_rc_database::schema::garage::ActiveModel { oj_rc_database::schema::garage::ActiveModel {
id: Default::default(), id: Default::default(),
@@ -227,7 +227,7 @@ pub fn default_reset_slot() -> oj_rc_database::schema::garage::ActiveModel {
} }
} }
fn default_garage_slots(user_id: u32) -> Vec<oj_rc_database::schema::garage::ActiveModel> { fn default_garage_slots(user_id: i32) -> Vec<oj_rc_database::schema::garage::ActiveModel> {
let current_time = current_unix_time(); let current_time = current_unix_time();
vec![ vec![
oj_rc_database::schema::garage::ActiveModel { oj_rc_database::schema::garage::ActiveModel {

View File

@@ -50,7 +50,7 @@ pub trait UserProvider<C> {
pub trait UserAuthenticator { pub trait UserAuthenticator {
async fn login(&self, info: UserInfo) -> Result<UserLoginInfo, String>; async fn login(&self, info: UserInfo) -> Result<UserLoginInfo, String>;
async fn user_exists(&self, user: UserId) -> Result<bool, String>; async fn user_exists(&self, user: UserId) -> Result<bool, String>;
async fn register(&self, info: RegistrationInfo) -> Result<u32, String>; async fn register(&self, info: RegistrationInfo) -> Result<i32, String>;
} }
#[async_trait::async_trait] #[async_trait::async_trait]

View File

@@ -18,7 +18,7 @@ impl MigrationTrait for Migration {
.table(crate::schema::user::Entity) .table(crate::schema::user::Entity)
.col( .col(
ColumnDef::new(crate::schema::user::Column::Id) ColumnDef::new(crate::schema::user::Column::Id)
.unsigned() .integer()
.not_null() .not_null()
.auto_increment() .auto_increment()
.primary_key(), .primary_key(),

View File

@@ -18,12 +18,12 @@ impl MigrationTrait for Migration {
.table(crate::schema::permissions::Entity) .table(crate::schema::permissions::Entity)
.col( .col(
ColumnDef::new(crate::schema::permissions::Column::Id) ColumnDef::new(crate::schema::permissions::Column::Id)
.unsigned() .integer()
.not_null() .not_null()
.auto_increment() .auto_increment()
.primary_key(), .primary_key(),
) )
.col(ColumnDef::new(crate::schema::permissions::Column::UserId).unsigned().not_null()) .col(ColumnDef::new(crate::schema::permissions::Column::UserId).integer().not_null())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-permissions-user_id") .name("fk-permissions-user_id")

View File

@@ -18,12 +18,12 @@ impl MigrationTrait for Migration {
.table(crate::schema::garage::Entity) .table(crate::schema::garage::Entity)
.col( .col(
ColumnDef::new(crate::schema::garage::Column::Id) ColumnDef::new(crate::schema::garage::Column::Id)
.unsigned() .integer()
.not_null() .not_null()
.auto_increment() .auto_increment()
.primary_key(), .primary_key(),
) )
.col(ColumnDef::new(crate::schema::garage::Column::UserId).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::UserId).integer().not_null())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-garage-user_id") .name("fk-garage-user_id")
@@ -31,24 +31,24 @@ impl MigrationTrait for Migration {
.to(crate::schema::user::Entity, crate::schema::user::Column::Id), .to(crate::schema::user::Entity, crate::schema::user::Column::Id),
) )
.col(ColumnDef::new(crate::schema::garage::Column::CreationTime).big_integer().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::CreationTime).big_integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::Slot).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::Slot).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::Name).string().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::Name).string().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::CrfId).unsigned()) .col(ColumnDef::new(crate::schema::garage::Column::CrfId).integer())
.col(ColumnDef::new(crate::schema::garage::Column::WasRated).boolean().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::WasRated).boolean().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::MovementCategories).string().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::MovementCategories).string().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::Uuid).big_integer().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::Uuid).big_integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::ThumbnailVersion).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::ThumbnailVersion).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::TotalRobotCpu).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::TotalRobotCpu).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::TotalCosmeticCpu).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::TotalCosmeticCpu).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::TotalRobotRanking).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::TotalRobotRanking).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::BayCpu).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::BayCpu).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::TutorialRobot).boolean().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::TutorialRobot).boolean().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::StarterRobotIndex).unsigned()) .col(ColumnDef::new(crate::schema::garage::Column::StarterRobotIndex).integer())
.col(ColumnDef::new(crate::schema::garage::Column::ControlType).tiny_unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::ControlType).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::VerticalStrafing).boolean().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::VerticalStrafing).boolean().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::SidewaysDriving).boolean().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::SidewaysDriving).boolean().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::TracksTurnOnSpot).boolean().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::TracksTurnOnSpot).boolean().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::MasteryLevel).unsigned().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::MasteryLevel).integer().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::BaySkinId).string().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::BaySkinId).string().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::WeaponOrder).string().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::WeaponOrder).string().not_null())
.col(ColumnDef::new(crate::schema::garage::Column::RobotData).blob().not_null()) .col(ColumnDef::new(crate::schema::garage::Column::RobotData).blob().not_null())

View File

@@ -18,12 +18,12 @@ impl MigrationTrait for Migration {
.table(crate::schema::user_aux::Entity) .table(crate::schema::user_aux::Entity)
.col( .col(
ColumnDef::new(crate::schema::user_aux::Column::Id) ColumnDef::new(crate::schema::user_aux::Column::Id)
.unsigned() .integer()
.not_null() .not_null()
.auto_increment() .auto_increment()
.primary_key(), .primary_key(),
) )
.col(ColumnDef::new(crate::schema::user_aux::Column::UserId).unsigned().not_null()) .col(ColumnDef::new(crate::schema::user_aux::Column::UserId).integer().not_null())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-users_aux-user_id") .name("fk-users_aux-user_id")

View File

@@ -18,12 +18,12 @@ impl MigrationTrait for Migration {
.table(crate::schema::campaign::Entity) .table(crate::schema::campaign::Entity)
.col( .col(
ColumnDef::new(crate::schema::campaign::Column::Id) ColumnDef::new(crate::schema::campaign::Column::Id)
.unsigned() .integer()
.not_null() .not_null()
.auto_increment() .auto_increment()
.primary_key(), .primary_key(),
) )
.col(ColumnDef::new(crate::schema::campaign::Column::UserId).unsigned().not_null()) .col(ColumnDef::new(crate::schema::campaign::Column::UserId).integer().not_null())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-campaign-user_id") .name("fk-campaign-user_id")
@@ -41,12 +41,12 @@ impl MigrationTrait for Migration {
.table(crate::schema::campaign_difficulty_completion::Entity) .table(crate::schema::campaign_difficulty_completion::Entity)
.col( .col(
ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Id) ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Id)
.unsigned() .integer()
.not_null() .not_null()
.auto_increment() .auto_increment()
.primary_key(), .primary_key(),
) )
.col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::CampaignId).unsigned().not_null()) .col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::CampaignId).integer().not_null())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-campaigns_completion-campaign_id") .name("fk-campaigns_completion-campaign_id")
@@ -54,8 +54,8 @@ impl MigrationTrait for Migration {
.to(crate::schema::campaign::Entity, crate::schema::campaign::Column::Id), .to(crate::schema::campaign::Entity, crate::schema::campaign::Column::Id),
) )
.col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::CreationTime).big_integer().not_null()) .col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::CreationTime).big_integer().not_null())
.col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Level).unsigned().not_null()) .col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Level).integer().not_null())
.col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Wave).unsigned().not_null()) .col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Wave).integer().not_null())
.col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Complete).boolean().not_null()) .col(ColumnDef::new(crate::schema::campaign_difficulty_completion::Column::Complete).boolean().not_null())
.to_owned(), .to_owned(),
) )

View File

@@ -18,12 +18,12 @@ impl MigrationTrait for Migration {
.table(crate::schema::sanction::Entity) .table(crate::schema::sanction::Entity)
.col( .col(
ColumnDef::new(crate::schema::sanction::Column::Id) ColumnDef::new(crate::schema::sanction::Column::Id)
.unsigned() .integer()
.not_null() .not_null()
.auto_increment() .auto_increment()
.primary_key(), .primary_key(),
) )
.col(ColumnDef::new(crate::schema::sanction::Column::UserId).unsigned().not_null()) .col(ColumnDef::new(crate::schema::sanction::Column::UserId).integer().not_null())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-sanction-user_id") .name("fk-sanction-user_id")
@@ -31,7 +31,7 @@ impl MigrationTrait for Migration {
.to(crate::schema::user::Entity, crate::schema::user::Column::Id), .to(crate::schema::user::Entity, crate::schema::user::Column::Id),
) )
.col(ColumnDef::new(crate::schema::sanction::Column::CreationTime).big_integer().not_null()) .col(ColumnDef::new(crate::schema::sanction::Column::CreationTime).big_integer().not_null())
.col(ColumnDef::new(crate::schema::sanction::Column::IssuerId).unsigned().not_null()) .col(ColumnDef::new(crate::schema::sanction::Column::IssuerId).integer().not_null())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-sanction-issuer_id") .name("fk-sanction-issuer_id")
@@ -43,7 +43,7 @@ impl MigrationTrait for Migration {
.col(ColumnDef::new(crate::schema::sanction::Column::Reason).string().not_null()) .col(ColumnDef::new(crate::schema::sanction::Column::Reason).string().not_null())
.col(ColumnDef::new(crate::schema::sanction::Column::Duration).big_integer()) .col(ColumnDef::new(crate::schema::sanction::Column::Duration).big_integer())
.col(ColumnDef::new(crate::schema::sanction::Column::Acknowledged).big_integer()) .col(ColumnDef::new(crate::schema::sanction::Column::Acknowledged).big_integer())
.col(ColumnDef::new(crate::schema::sanction::Column::AppealerId).unsigned()) .col(ColumnDef::new(crate::schema::sanction::Column::AppealerId).integer())
.foreign_key( .foreign_key(
ForeignKey::create() ForeignKey::create()
.name("fk-sanction-appealer_id") .name("fk-sanction-appealer_id")

View File

@@ -4,8 +4,8 @@ use sea_orm::entity::prelude::*;
#[sea_orm(table_name = "campaigns")] #[sea_orm(table_name = "campaigns")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: u32, pub id: i32,
pub user_id: u32, pub user_id: i32,
pub creation_time: i64, // seconds since unix epoch pub creation_time: i64, // seconds since unix epoch
pub campaign_id: String, pub campaign_id: String,
} }

View File

@@ -4,11 +4,11 @@ use sea_orm::entity::prelude::*;
#[sea_orm(table_name = "campaigns_completion")] #[sea_orm(table_name = "campaigns_completion")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: u32, pub id: i32,
pub campaign_id: u32, pub campaign_id: i32,
pub creation_time: i64, // seconds since unix epoch pub creation_time: i64, // seconds since unix epoch
pub level: u32, pub level: i32,
pub wave: u32, pub wave: i32,
pub complete: bool, pub complete: bool,
} }

View File

@@ -2,7 +2,7 @@ use sea_orm::FromQueryResult;
#[derive(FromQueryResult)] #[derive(FromQueryResult)]
pub struct Id { pub struct Id {
pub id: u32, pub id: i32,
} }
#[derive(FromQueryResult)] #[derive(FromQueryResult)]

View File

@@ -4,29 +4,29 @@ use sea_orm::entity::prelude::*;
#[sea_orm(table_name = "garages")] #[sea_orm(table_name = "garages")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: u32, pub id: i32,
pub user_id: u32, pub user_id: i32,
pub creation_time: i64, // seconds since unix epoch pub creation_time: i64, // seconds since unix epoch
pub slot: u32, pub slot: i32,
pub name: String, pub name: String,
pub crf_id: Option<u32>, pub crf_id: Option<i32>,
pub was_rated: bool, pub was_rated: bool,
pub movement_categories: String, // csv? pub movement_categories: String, // csv?
pub uuid: i64, pub uuid: i64,
pub thumbnail_version: u32, pub thumbnail_version: i32,
pub total_robot_cpu: u32, pub total_robot_cpu: i32,
pub total_cosmetic_cpu: u32, pub total_cosmetic_cpu: i32,
pub total_robot_ranking: u32, pub total_robot_ranking: i32,
pub bay_cpu: u32, pub bay_cpu: i32,
pub tutorial_robot: bool, pub tutorial_robot: bool,
pub starter_robot_index: Option<u32>, pub starter_robot_index: Option<i32>,
pub control_type: ControlType, pub control_type: ControlType,
// control options // control options
pub vertical_strafing: bool, pub vertical_strafing: bool,
pub sideways_driving: bool, pub sideways_driving: bool,
pub tracks_turn_on_spot: bool, pub tracks_turn_on_spot: bool,
// end control options // end control options
pub mastery_level: u32, pub mastery_level: i32,
pub bay_skin_id: String, pub bay_skin_id: String,
pub death_animation_id: String, pub death_animation_id: String,
pub spawn_animation_id: String, pub spawn_animation_id: String,
@@ -64,9 +64,9 @@ impl Related<super::user::Entity> for Entity {
impl ActiveModelBehavior for ActiveModel {} impl ActiveModelBehavior for ActiveModel {}
#[repr(u8)] #[repr(i32)]
#[derive(Clone, Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)] #[derive(Clone, Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
#[sea_orm(rs_type = "u8", db_type = "TinyInteger")] #[sea_orm(rs_type = "i32", db_type = "Integer")]
pub enum ControlType { pub enum ControlType {
Camera = 0, Camera = 0,
Keyboard = 1, Keyboard = 1,

View File

@@ -4,8 +4,8 @@ use sea_orm::entity::prelude::*;
#[sea_orm(table_name = "permissions")] #[sea_orm(table_name = "permissions")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: u32, pub id: i32,
pub user_id: u32, pub user_id: i32,
pub moderator: bool, pub moderator: bool,
pub administrator: bool, pub administrator: bool,
pub developer: bool, pub developer: bool,

View File

@@ -4,16 +4,16 @@ use sea_orm::entity::prelude::*;
#[sea_orm(table_name = "sanctions")] #[sea_orm(table_name = "sanctions")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: u32, pub id: i32,
pub user_id: u32, pub user_id: i32,
pub creation_time: i64, // seconds since unix epoch pub creation_time: i64, // seconds since unix epoch
pub issuer_id: u32, pub issuer_id: i32,
pub issuer_name: String, pub issuer_name: String,
pub descriptor: Descriptor, pub descriptor: Descriptor,
pub reason: String, pub reason: String,
pub duration: Option<i64>, // seconds after creation_time (null means permanent or irrelevant) pub duration: Option<i64>, // seconds after creation_time (null means permanent or irrelevant)
pub acknowledged: Option<i64>, // seconds since unix epoch pub acknowledged: Option<i64>, // seconds since unix epoch
pub appealer_id: Option<u32>, // moderator who approved appeal pub appealer_id: Option<i32>, // moderator who approved appeal
pub appeal_time: Option<i64>, // seconds since unix epoch pub appeal_time: Option<i64>, // seconds since unix epoch
} }

View File

@@ -4,7 +4,7 @@ use sea_orm::entity::prelude::*;
#[sea_orm(table_name = "users")] #[sea_orm(table_name = "users")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: u32, pub id: i32,
pub creation_time: i64, // seconds since unix epoch pub creation_time: i64, // seconds since unix epoch
pub public_id: String, pub public_id: String,
pub display_name: String, pub display_name: String,

View File

@@ -4,8 +4,8 @@ use sea_orm::entity::prelude::*;
#[sea_orm(table_name = "users_aux")] #[sea_orm(table_name = "users_aux")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: u32, pub id: i32,
pub user_id: u32, pub user_id: i32,
pub creation_time: i64, // seconds since unix epoch pub creation_time: i64, // seconds since unix epoch
pub descriptor: Descriptor, pub descriptor: Descriptor,
pub data: String, // usually JSON pub data: String, // usually JSON

View File

@@ -54,14 +54,14 @@ impl Database {
entity.insert(&self.orm).await entity.insert(&self.orm).await
} }
pub async fn user_aux_by_user_id(&self, user_id: u32) -> Result<Vec<crate::schema::user_aux::Model>, sea_orm::DbErr> { pub async fn user_aux_by_user_id(&self, user_id: i32) -> Result<Vec<crate::schema::user_aux::Model>, sea_orm::DbErr> {
crate::schema::user_aux::Entity::find() crate::schema::user_aux::Entity::find()
.filter(crate::schema::user_aux::Column::UserId.eq(user_id)) .filter(crate::schema::user_aux::Column::UserId.eq(user_id))
.all(&self.orm) .all(&self.orm)
.await .await
} }
pub async fn user_aux_by_user_id_and_descriptor(&self, user_id: u32, descriptor: crate::schema::user_aux::Descriptor) -> Result<Option<crate::schema::user_aux::Model>, sea_orm::DbErr> { pub async fn user_aux_by_user_id_and_descriptor(&self, user_id: i32, descriptor: crate::schema::user_aux::Descriptor) -> Result<Option<crate::schema::user_aux::Model>, sea_orm::DbErr> {
crate::schema::user_aux::Entity::find() crate::schema::user_aux::Entity::find()
.filter(crate::schema::user_aux::Column::UserId.eq(user_id)) .filter(crate::schema::user_aux::Column::UserId.eq(user_id))
.filter(crate::schema::user_aux::Column::Descriptor.eq(descriptor)) .filter(crate::schema::user_aux::Column::Descriptor.eq(descriptor))
@@ -74,7 +74,7 @@ impl Database {
Ok(()) Ok(())
} }
pub async fn update_user_aux_by_user_id_and_descriptor(&self, mut entity: crate::schema::user_aux::ActiveModel, user_id: u32, descriptor: crate::schema::user_aux::Descriptor) -> Result<Option<crate::schema::user_aux::Model>, sea_orm::DbErr> { pub async fn update_user_aux_by_user_id_and_descriptor(&self, mut entity: crate::schema::user_aux::ActiveModel, user_id: i32, descriptor: crate::schema::user_aux::Descriptor) -> Result<Option<crate::schema::user_aux::Model>, sea_orm::DbErr> {
let id_opt = crate::schema::user_aux::Entity::find() let id_opt = crate::schema::user_aux::Entity::find()
.select_only() .select_only()
.column(crate::schema::user_aux::Column::Id) .column(crate::schema::user_aux::Column::Id)
@@ -94,7 +94,7 @@ impl Database {
} }
} }
pub async fn perms_by_user_id(&self, user_id: u32) -> Result<Option<crate::schema::permissions::Model>, sea_orm::DbErr> { pub async fn perms_by_user_id(&self, user_id: i32) -> Result<Option<crate::schema::permissions::Model>, sea_orm::DbErr> {
crate::schema::permissions::Entity::find() crate::schema::permissions::Entity::find()
.filter(crate::schema::permissions::Column::UserId.eq(user_id)) .filter(crate::schema::permissions::Column::UserId.eq(user_id))
.one(&self.orm) .one(&self.orm)
@@ -105,7 +105,7 @@ impl Database {
entity.insert(&self.orm).await entity.insert(&self.orm).await
} }
pub async fn update_perms_by_user_id(&self, mut entity: crate::schema::permissions::ActiveModel, user_id: u32) -> Result<Option<crate::schema::permissions::Model>, sea_orm::DbErr> { pub async fn update_perms_by_user_id(&self, mut entity: crate::schema::permissions::ActiveModel, user_id: i32) -> Result<Option<crate::schema::permissions::Model>, sea_orm::DbErr> {
let id_opt = crate::schema::permissions::Entity::find() let id_opt = crate::schema::permissions::Entity::find()
.select_only() .select_only()
.column(crate::schema::permissions::Column::Id) .column(crate::schema::permissions::Column::Id)
@@ -123,18 +123,18 @@ impl Database {
} }
} }
pub async fn garage_max_slot_by_user_id(&self, user_id: u32) -> Result<u32, sea_orm::DbErr> { pub async fn garage_max_slot_by_user_id(&self, user_id: i32) -> Result<i32, sea_orm::DbErr> {
let result = crate::schema::garage::Entity::find() let result = crate::schema::garage::Entity::find()
.select_only() .select_only()
.column_as(crate::schema::garage::Column::Slot.max(), "column") .column_as(crate::schema::garage::Column::Slot.max(), "column")
.filter(crate::schema::garage::Column::UserId.eq(user_id)) .filter(crate::schema::garage::Column::UserId.eq(user_id))
.into_model::<crate::schema::common_query::SingleColumn<u32>>() .into_model::<crate::schema::common_query::SingleColumn<i32>>()
.one(&self.orm) .one(&self.orm)
.await?; .await?;
Ok(result.map(|x| *x).unwrap_or(0)) Ok(result.map(|x| *x).unwrap_or(0))
} }
pub async fn garage_selected(&self, user_id: u32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> { pub async fn garage_selected(&self, user_id: i32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> {
crate::schema::garage::Entity::find() crate::schema::garage::Entity::find()
.filter(crate::schema::garage::Column::UserId.eq(user_id)) .filter(crate::schema::garage::Column::UserId.eq(user_id))
.filter(crate::schema::garage::Column::Selected.eq(true)) .filter(crate::schema::garage::Column::Selected.eq(true))
@@ -142,7 +142,7 @@ impl Database {
.await .await
} }
pub async fn garage_by_user_id_and_slot(&self, user_id: u32, garage_slot: u32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> { pub async fn garage_by_user_id_and_slot(&self, user_id: i32, garage_slot: i32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> {
crate::schema::garage::Entity::find() crate::schema::garage::Entity::find()
.filter(crate::schema::garage::Column::UserId.eq(user_id)) .filter(crate::schema::garage::Column::UserId.eq(user_id))
.filter(crate::schema::garage::Column::Slot.eq(garage_slot)) .filter(crate::schema::garage::Column::Slot.eq(garage_slot))
@@ -150,7 +150,7 @@ impl Database {
.await .await
} }
pub async fn garages_by_user_id(&self, user_id: u32) -> Result<Vec<crate::schema::garage::Model>, sea_orm::DbErr> { pub async fn garages_by_user_id(&self, user_id: i32) -> Result<Vec<crate::schema::garage::Model>, sea_orm::DbErr> {
crate::schema::garage::Entity::find() crate::schema::garage::Entity::find()
.filter(crate::schema::garage::Column::UserId.eq(user_id)) .filter(crate::schema::garage::Column::UserId.eq(user_id))
.order_by_asc(crate::schema::garage::Column::Slot) .order_by_asc(crate::schema::garage::Column::Slot)
@@ -165,7 +165,7 @@ impl Database {
.await .await
} }
pub async fn garage_by_id(&self, id: u32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> { pub async fn garage_by_id(&self, id: i32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> {
crate::schema::garage::Entity::find_by_id(id) crate::schema::garage::Entity::find_by_id(id)
.one(&self.orm) .one(&self.orm)
.await .await
@@ -186,7 +186,7 @@ impl Database {
.await .await
} }
pub async fn update_garage_by_user_id_and_slot(&self, mut entity: crate::schema::garage::ActiveModel, user_id: u32, slot: u32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> { pub async fn update_garage_by_user_id_and_slot(&self, mut entity: crate::schema::garage::ActiveModel, user_id: i32, slot: i32) -> Result<Option<crate::schema::garage::Model>, sea_orm::DbErr> {
let id_opt = crate::schema::garage::Entity::find() let id_opt = crate::schema::garage::Entity::find()
.select_only() .select_only()
.column(crate::schema::garage::Column::Id) .column(crate::schema::garage::Column::Id)
@@ -223,7 +223,7 @@ impl Database {
} }
} }
pub async fn update_garage_selected_by_user_id_and_slot(&self, user_id: u32, slot: u32) -> Result<(), sea_orm::DbErr> { pub async fn update_garage_selected_by_user_id_and_slot(&self, user_id: i32, slot: i32) -> Result<(), sea_orm::DbErr> {
self.orm.transaction(|txn| { self.orm.transaction(|txn| {
Box::pin(async move { Box::pin(async move {
crate::schema::garage::Entity::update_many() crate::schema::garage::Entity::update_many()
@@ -251,7 +251,7 @@ impl Database {
Ok(()) Ok(())
} }
pub async fn count_sanctions_to_ack_by_user_id_and_descriptor(&self, user_id: u32, desc: crate::schema::sanction::Descriptor) -> Result<u64, sea_orm::DbErr> { pub async fn count_sanctions_to_ack_by_user_id_and_descriptor(&self, user_id: i32, desc: crate::schema::sanction::Descriptor) -> Result<u64, sea_orm::DbErr> {
crate::schema::sanction::Entity::find() crate::schema::sanction::Entity::find()
.filter(crate::schema::sanction::Column::UserId.eq(user_id)) .filter(crate::schema::sanction::Column::UserId.eq(user_id))
.filter(crate::schema::sanction::Column::Descriptor.eq(desc)) .filter(crate::schema::sanction::Column::Descriptor.eq(desc))
@@ -260,7 +260,7 @@ impl Database {
.await .await
} }
pub async fn sanctions_by_user_id(&self, user_id: u32) -> Result<Vec<crate::schema::sanction::Model>, sea_orm::DbErr> { pub async fn sanctions_by_user_id(&self, user_id: i32) -> Result<Vec<crate::schema::sanction::Model>, sea_orm::DbErr> {
crate::schema::sanction::Entity::find() crate::schema::sanction::Entity::find()
.filter(crate::schema::sanction::Column::UserId.eq(user_id)) .filter(crate::schema::sanction::Column::UserId.eq(user_id))
.filter(crate::schema::sanction::Column::Acknowledged.is_null()) .filter(crate::schema::sanction::Column::Acknowledged.is_null())