use sea_query::Iden;
#[derive(Iden)]
pub enum Workflows {
Table,
WorkflowId,
Version,
Name,
Description,
Priority,
Status,
RolloutPercentage,
ConditionJson,
TasksJson,
TagsJson,
LoopJson,
ContinueOnError,
CreatedAt,
UpdatedAt,
}
#[derive(Iden)]
pub enum Channels {
Table,
ChannelId,
Version,
Name,
Description,
ChannelType,
Protocol,
MethodsJson,
RoutePattern,
Topic,
ConsumerGroup,
TransportConfigJson,
WorkflowId,
ConfigJson,
Status,
Priority,
TagsJson,
CreatedAt,
UpdatedAt,
}
#[derive(Iden)]
pub enum Connectors {
Table,
Id,
Name,
ConnectorType,
ConfigJson,
Enabled,
TagsJson,
CreatedAt,
UpdatedAt,
}
#[derive(Iden)]
pub enum Traces {
Table,
Id,
Channel,
ChannelId,
Mode,
Status,
InputJson,
ResultJson,
ErrorMessage,
DurationMs,
StartedAt,
CompletedAt,
CreatedAt,
UpdatedAt,
TaskTraceJson,
AccessTokenHash,
}
#[derive(Iden)]
pub enum TraceDlq {
Table,
Id,
TraceId,
Channel,
PayloadJson,
MetadataJson,
ErrorMessage,
RetryCount,
MaxRetries,
NextRetryAt,
CreatedAt,
UpdatedAt,
ClaimedBy,
ClaimedUntil,
}
#[derive(Iden, Clone, Copy)]
pub enum ConfigEpoch {
Table,
Id,
Epoch,
BreakerEpoch,
BreakerKey,
UpdatedAt,
}
#[derive(Iden)]
pub enum JobLeases {
Table,
JobName,
Holder,
ExpiresAt,
}
#[derive(Iden)]
pub enum Packages {
Table,
Name,
Version,
ContentHash,
State,
Principal,
CreatedAt,
UpdatedAt,
}
#[derive(Iden)]
pub enum AuditLogs {
Table,
Id,
Principal,
Action,
ResourceType,
ResourceId,
Details,
CreatedAt,
}
#[derive(Iden)]
pub enum CurrentWorkflows {
Table,
}
#[derive(Iden)]
pub enum CurrentChannels {
Table,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn column_identifiers_are_pinned() {
let workflows: Vec<String> = [
Iden::to_string(&Workflows::WorkflowId),
Iden::to_string(&Workflows::Version),
Iden::to_string(&Workflows::Name),
Iden::to_string(&Workflows::Description),
Iden::to_string(&Workflows::Priority),
Iden::to_string(&Workflows::Status),
Iden::to_string(&Workflows::RolloutPercentage),
Iden::to_string(&Workflows::ConditionJson),
Iden::to_string(&Workflows::TasksJson),
Iden::to_string(&Workflows::TagsJson),
Iden::to_string(&Workflows::LoopJson),
Iden::to_string(&Workflows::ContinueOnError),
Iden::to_string(&Workflows::CreatedAt),
Iden::to_string(&Workflows::UpdatedAt),
]
.to_vec();
assert_eq!(
workflows,
[
"workflow_id",
"version",
"name",
"description",
"priority",
"status",
"rollout_percentage",
"condition_json",
"tasks_json",
"tags_json",
"loop_json",
"continue_on_error",
"created_at",
"updated_at",
]
);
let channels: Vec<String> = [
Iden::to_string(&Channels::ChannelId),
Iden::to_string(&Channels::Version),
Iden::to_string(&Channels::Name),
Iden::to_string(&Channels::Description),
Iden::to_string(&Channels::ChannelType),
Iden::to_string(&Channels::Protocol),
Iden::to_string(&Channels::MethodsJson),
Iden::to_string(&Channels::RoutePattern),
Iden::to_string(&Channels::Topic),
Iden::to_string(&Channels::ConsumerGroup),
Iden::to_string(&Channels::TransportConfigJson),
Iden::to_string(&Channels::WorkflowId),
Iden::to_string(&Channels::ConfigJson),
Iden::to_string(&Channels::Status),
Iden::to_string(&Channels::Priority),
Iden::to_string(&Channels::TagsJson),
Iden::to_string(&Channels::CreatedAt),
Iden::to_string(&Channels::UpdatedAt),
]
.to_vec();
assert_eq!(
channels,
[
"channel_id",
"version",
"name",
"description",
"channel_type",
"protocol",
"methods_json",
"route_pattern",
"topic",
"consumer_group",
"transport_config_json",
"workflow_id",
"config_json",
"status",
"priority",
"tags_json",
"created_at",
"updated_at",
]
);
}
}