1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
9#[cfg_attr(feature = "swagger", derive(utoipa::ToSchema))]
10pub struct Settings {
11 pub ttl: Option<u64>,
13 pub cached_endpoints: Vec<CachedEndpoint>,
15}
16
17#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
19#[cfg_attr(feature = "swagger", derive(utoipa::ToSchema))]
20pub struct CachedEndpoint {
21 pub method: Method,
23 pub path: Path,
25}
26
27impl CachedEndpoint {
28 pub fn new(method: Method, path: Path) -> Self {
30 Self { method, path }
31 }
32}
33
34#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
36#[serde(rename_all = "UPPERCASE")]
37#[cfg_attr(feature = "swagger", derive(utoipa::ToSchema))]
38pub enum Method {
39 Get,
41 Post,
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
47#[cfg_attr(feature = "swagger", derive(utoipa::ToSchema))]
48pub enum Path {
49 #[serde(rename = "/v1/mint/bolt11")]
51 MintBolt11,
52 #[serde(rename = "/v1/melt/bolt11")]
54 MeltBolt11,
55 #[serde(rename = "/v1/swap")]
57 Swap,
58}