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.

29 lines
717 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. #[derive(Debug, Clone, Queryable, Identifiable, Deserialize)]
  7. pub struct User {
  8. pub id: i32,
  9. pub name: String,
  10. pub password: String,
  11. pub created_at: chrono::NaiveDateTime,
  12. }
  13. #[derive(Debug, Clone, Insertable, Deserialize, Validate)]
  14. #[table_name = "users"]
  15. pub struct NewUser {
  16. #[validate(regex = "regexs::USERNAME_REG", length(min = 4, max = 10))]
  17. pub name: String,
  18. pub password: String,
  19. }
  20. #[derive(Debug, Clone, Serialize, Deserialize, Queryable)]
  21. pub struct UserDTO {
  22. pub name: String,
  23. pub registration_date: chrono::NaiveDateTime,
  24. }