Skip to main content

runledger_postgres/jobs/types/
definitions.rs

1use chrono::{DateTime, Utc};
2use runledger_core::jobs::{JobType, JobTypeName};
3use serde_json::Value;
4use sqlx::types::Uuid;
5
6#[derive(Clone, Debug)]
7pub struct JobDefinitionUpsert<'a> {
8    pub job_type: JobType<'a>,
9    pub version: i32,
10    pub max_attempts: i32,
11    pub default_timeout_seconds: i32,
12    pub default_priority: i32,
13    pub is_enabled: bool,
14}
15
16#[derive(Clone, Debug)]
17pub struct JobDefinitionRecord {
18    pub job_type: JobTypeName,
19    pub version: i32,
20    pub max_attempts: i32,
21    pub default_timeout_seconds: i32,
22    pub default_priority: i32,
23    pub is_enabled: bool,
24    pub created_at: DateTime<Utc>,
25    pub updated_at: DateTime<Utc>,
26}
27
28/// Schedule row that blocks a job-definition catalog sync.
29#[derive(Clone, Debug, Eq, PartialEq)]
30pub struct JobScheduleJobTypeReference {
31    /// Active schedule name.
32    pub schedule_name: String,
33    /// Job type referenced by the active schedule.
34    pub job_type: JobTypeName,
35}
36
37#[derive(Clone, Debug)]
38pub struct JobDefinitionListFilter<'a> {
39    /// Admin list query input used for escaped `ILIKE` substring matching, not a canonical
40    /// persisted identifier boundary.
41    pub job_type: Option<&'a str>,
42    pub limit: i64,
43    pub offset: i64,
44}
45
46#[derive(Clone, Debug)]
47pub struct JobDefinitionUpdate {
48    pub max_attempts: Option<i32>,
49    pub default_timeout_seconds: Option<i32>,
50    pub default_priority: Option<i32>,
51    pub is_enabled: Option<bool>,
52}
53
54#[derive(Clone, Debug)]
55pub struct JobRuntimeConfigUpsert<'a> {
56    pub job_type: JobType<'a>,
57    pub schema_version: i32,
58    pub config: &'a Value,
59    pub updated_by_user_id: Option<Uuid>,
60}
61
62#[derive(Clone, Debug)]
63pub struct JobRuntimeConfigRecord {
64    pub job_type: JobTypeName,
65    pub schema_version: i32,
66    pub config: Value,
67    pub updated_by_user_id: Option<Uuid>,
68    pub created_at: DateTime<Utc>,
69    pub updated_at: DateTime<Utc>,
70}
71
72#[derive(Clone, Debug)]
73pub struct JobRuntimeConfigListFilter<'a> {
74    /// Admin query filter string used for listing/runtime-config lookup filters, not a canonical
75    /// persisted identifier boundary.
76    pub job_type: Option<&'a str>,
77    pub limit: i64,
78    pub offset: i64,
79}