runledger_postgres/jobs/types/
definitions.rs1use 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#[derive(Clone, Debug, Eq, PartialEq)]
30pub struct JobScheduleJobTypeReference {
31 pub schedule_name: String,
33 pub job_type: JobTypeName,
35}
36
37#[derive(Clone, Debug)]
38pub struct JobDefinitionListFilter<'a> {
39 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 pub job_type: Option<&'a str>,
77 pub limit: i64,
78 pub offset: i64,
79}