Skip to main content

fn0_shared_schema/
lib.rs

1use forte_macros::forte_doc;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5pub use doc_db::DbRequest;
6
7#[derive(Serialize, Deserialize, Clone)]
8pub struct WorkerProjectManifest {
9    pub code_version: u64,
10    pub custom_domain: Option<String>,
11    #[serde(default = "default_static_cache_state")]
12    pub static_cache_state: String,
13    #[serde(default)]
14    pub pending_code_version: Option<u64>,
15}
16
17pub const STATIC_CACHE_STATE_ACTIVE: &str = "active";
18pub const STATIC_CACHE_STATE_PRE_PURGE: &str = "pre_purge";
19pub const STATIC_CACHE_STATE_ACTIVATING: &str = "activating";
20
21fn default_static_cache_state() -> String {
22    STATIC_CACHE_STATE_ACTIVE.to_string()
23}
24
25#[forte_doc]
26pub struct WorkerManifestDoc {
27    pub manifest_version: u64,
28    pub project_manifests: HashMap<String, WorkerProjectManifest>,
29}
30
31#[forte_doc]
32pub struct WorkerHostStatusDoc {
33    #[sk]
34    pub host_id: String,
35    pub addr: String,
36    pub active_image_ref: Option<String>,
37    pub reported_at: i64,
38}
39
40#[forte_doc]
41pub struct PresignBlockedDoc {
42    pub updated_epoch_hour: i64,
43    pub blocked_project_ids: Vec<String>,
44}
45
46#[forte_doc]
47pub struct PresignMintCountDoc {
48    #[pk]
49    pub project_id: String,
50    #[sk]
51    pub window_epoch_hour: i64,
52    #[sk]
53    pub writer_id: String,
54    pub minted: u64,
55}