app_rev.rs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. use crate::entities::app::App;
  2. use crate::entities::{RepeatedApp, TrashType};
  3. use crate::revision::{TrashRevision, ViewRevision};
  4. use serde::{Deserialize, Serialize};
  5. #[derive(Default, Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
  6. pub struct AppRevision {
  7. pub id: String,
  8. pub workspace_id: String,
  9. pub name: String,
  10. pub desc: String,
  11. pub belongings: Vec<ViewRevision>,
  12. pub version: i64,
  13. pub modified_time: i64,
  14. pub create_time: i64,
  15. }
  16. impl std::convert::From<AppRevision> for App {
  17. fn from(app_serde: AppRevision) -> Self {
  18. App {
  19. id: app_serde.id,
  20. workspace_id: app_serde.workspace_id,
  21. name: app_serde.name,
  22. desc: app_serde.desc,
  23. belongings: app_serde.belongings.into(),
  24. version: app_serde.version,
  25. modified_time: app_serde.modified_time,
  26. create_time: app_serde.create_time,
  27. }
  28. }
  29. }
  30. impl std::convert::From<AppRevision> for TrashRevision {
  31. fn from(app_rev: AppRevision) -> Self {
  32. TrashRevision {
  33. id: app_rev.id,
  34. name: app_rev.name,
  35. modified_time: app_rev.modified_time,
  36. create_time: app_rev.create_time,
  37. ty: TrashType::TrashApp,
  38. }
  39. }
  40. }
  41. impl std::convert::From<Vec<AppRevision>> for RepeatedApp {
  42. fn from(values: Vec<AppRevision>) -> Self {
  43. let items = values.into_iter().map(|value| value.into()).collect::<Vec<App>>();
  44. RepeatedApp { items }
  45. }
  46. }