librarylib/enums/
request_status.rs

1use postgres_types::{FromSql, ToSql};
2use serde::{Deserialize, Serialize};
3use strum_macros::{Display, EnumString};
4
5
6#[derive(
7Serialize,
8Deserialize,
9Debug,
10EnumString,
11Display,
12ToSql,
13FromSql,
14PartialEq,
15Clone,
16Default
17)]
18#[postgres(name = "request_status")]
19#[postgres(allow_mismatch)]
20pub enum RequestStatus {
21    OnHand, // todo more variants
22    ReadyToReceive,
23    #[default]
24    Returned,
25    Request,
26}
27
28// impl fmt::Display for RequestStatus {
29//     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
30//         write!(f, "{:?}", self)
31//     }
32// }
33//
34//
35impl From<String> for RequestStatus {
36    fn from(value: String) -> Self {
37        match value.as_str() {
38            "OnHand" => RequestStatus::OnHand,
39            "ReadyToReceive" => RequestStatus::ReadyToReceive,
40            "Returned" => RequestStatus::Returned,
41            "Request" => RequestStatus::Request,
42            _ => RequestStatus::Request
43        }
44    }
45}