You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
886 B

  1. use serde::{Deserialize, Serialize};
  2. use crate::schema::users;
  3. use crate::utils::regexs;
  4. use validator::Validate;
  5. use validator_derive::*;
  6. use yarte::Template;
  7. #[derive(Debug, Clone, Queryable, Identifiable, Deserialize)]
  8. pub struct User {
  9. pub id: i32,
  10. pub name: String,
  11. pub password: String,
  12. pub created_at: chrono::NaiveDateTime,
  13. }
  14. #[derive(Debug, Clone, Insertable, Deserialize, Validate)]
  15. #[table_name = "users"]
  16. pub struct NewUser {
  17. #[validate(regex = "regexs::USERNAME_REG", length(min = 4, max = 10))]
  18. pub name: String,
  19. pub password: String,
  20. }
  21. #[derive(Debug, Clone, Serialize, Deserialize, Queryable)]
  22. pub struct UserDTO {
  23. pub name: String,
  24. pub registration_date: chrono::NaiveDateTime,
  25. }
  26. #[derive(Template)]
  27. #[template(path = "hello.hbs")]
  28. pub struct CardTemplate<'a> {
  29. pub title: &'a str,
  30. pub body: String,
  31. pub num: u32,
  32. }