use chrono::{DateTime, Utc}; use sqlx::types::Json; use fully_pub::fully_pub; use sqlxgentools_attrs::{sql_generator_model, SqlGeneratorDerive}; #[derive(sqlx::Type, Clone, Debug, PartialEq)] enum UserStatus { Disabled, Invited, Active, Archived } #[derive(SqlGeneratorDerive, sqlx::FromRow, Debug, Clone)] #[sql_generator_model(table_name="usersss")] #[fully_pub] struct User { #[sql_generator_field(is_primary=true)] id: String, #[sql_generator_field(is_unique=true)] handle: String, full_name: Option, prefered_color: Option, last_login_at: Option>, status: UserStatus, groups: Json>, avatar_bytes: Vec } #[derive(SqlGeneratorDerive, sqlx::FromRow, Debug, Clone)] #[sql_generator_model(table_name="user_tokens")] #[fully_pub] struct UserToken { #[sql_generator_field(is_primary=true)] id: String, #[sql_generator_field(foreign_key=Relation::BelongsTo(User))] user_id: String, secret: String, last_use_time: Option>, creation_time: DateTime, expiration_time: DateTime }