grid_info_rev.rs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. use crate::entities::{ViewFilter, ViewGroup, ViewSort};
  2. use serde::{Deserialize, Serialize};
  3. use serde_repr::*;
  4. #[derive(Debug, Clone, Serialize, Deserialize, Default)]
  5. pub struct GridInfoRevision {
  6. pub filter: GridFilterRevision,
  7. pub group: GridGroupRevision,
  8. pub sort: GridSortRevision,
  9. pub layout: GridLayoutRevision,
  10. }
  11. #[derive(Debug, Clone, Serialize, Deserialize, Default)]
  12. pub struct GridLayoutRevision {
  13. pub ty: GridLayoutType,
  14. }
  15. #[derive(Debug, Clone, Serialize_repr, Deserialize_repr)]
  16. #[repr(u8)]
  17. pub enum GridLayoutType {
  18. Table = 0,
  19. Board = 1,
  20. }
  21. impl std::default::Default for GridLayoutType {
  22. fn default() -> Self {
  23. GridLayoutType::Table
  24. }
  25. }
  26. #[derive(Debug, Clone, Serialize, Deserialize, Default)]
  27. pub struct GridFilterRevision {
  28. pub field_id: Option<String>,
  29. }
  30. #[derive(Debug, Clone, Serialize, Deserialize, Default)]
  31. pub struct GridGroupRevision {
  32. pub group_field_id: Option<String>,
  33. pub sub_group_field_id: Option<String>,
  34. }
  35. #[derive(Debug, Clone, Serialize, Deserialize, Default)]
  36. pub struct GridSortRevision {
  37. field_id: Option<String>,
  38. }
  39. impl std::convert::From<GridFilterRevision> for ViewFilter {
  40. fn from(rev: GridFilterRevision) -> Self {
  41. ViewFilter { field_id: rev.field_id }
  42. }
  43. }
  44. impl std::convert::From<GridGroupRevision> for ViewGroup {
  45. fn from(rev: GridGroupRevision) -> Self {
  46. ViewGroup {
  47. group_field_id: rev.group_field_id,
  48. sub_group_field_id: rev.sub_group_field_id,
  49. }
  50. }
  51. }
  52. impl std::convert::From<GridSortRevision> for ViewSort {
  53. fn from(rev: GridSortRevision) -> Self {
  54. ViewSort { field_id: rev.field_id }
  55. }
  56. }