diff options
| author | Melodi <62381002+Melodi17@users.noreply.github.com> | 2026-09-13 13:22:20 +1000 |
|---|---|---|
| committer | Melodi <62381002+Melodi17@users.noreply.github.com> | 2026-09-13 13:22:20 +1000 |
| commit | df0737e55afeb5c01eb39909605970d1d3a73ffc (patch) | |
| tree | 09823eaa310c60eefd2420dc305acae45c81900f /src/marlin.web/Models | |
| parent | ee69ce25b2fba871920260028bb10c2d6b62b26f (diff) | |
refactor: cleanup; feat: connection to agent
Diffstat (limited to 'src/marlin.web/Models')
| -rw-r--r-- | src/marlin.web/Models/Agent.cs | 17 | ||||
| -rw-r--r-- | src/marlin.web/Models/Job.cs | 48 | ||||
| -rw-r--r-- | src/marlin.web/Models/SecretKind.cs | 7 | ||||
| -rw-r--r-- | src/marlin.web/Models/VersionControlSource.cs | 15 | ||||
| -rw-r--r-- | src/marlin.web/Models/VersionControlledBlob.cs | 15 | ||||
| -rw-r--r-- | src/marlin.web/Models/VersionControlledBranch.cs | 14 | ||||
| -rw-r--r-- | src/marlin.web/Models/VersionControlledCommit.cs | 17 | ||||
| -rw-r--r-- | src/marlin.web/Models/WorkflowSnapshot.cs | 14 |
8 files changed, 147 insertions, 0 deletions
diff --git a/src/marlin.web/Models/Agent.cs b/src/marlin.web/Models/Agent.cs new file mode 100644 index 0000000..1faea9d --- /dev/null +++ b/src/marlin.web/Models/Agent.cs @@ -0,0 +1,17 @@ +namespace marlin.web.Models; + +using core.models; + +public class Agent +{ + public Guid Id { get; set; } + public string AuthToken { get; set; } + + public string Name { get; set; } + public int MaxConcurrentJobs { get; set; } + public DateTime LastSeen { get; set; } + + public CapabilitySet Capabilities { get; set; } + + public ICollection<Job> Jobs { get; set; } +}
\ No newline at end of file diff --git a/src/marlin.web/Models/Job.cs b/src/marlin.web/Models/Job.cs new file mode 100644 index 0000000..bd60773 --- /dev/null +++ b/src/marlin.web/Models/Job.cs @@ -0,0 +1,48 @@ +namespace marlin.web.Models; + +public class Job +{ + public Guid Id { get; set; } + + public Guid SourceId { get; set; } + public VersionControlSource Source { get; set; } + + public Guid BranchId { get; set; } + public VersionControlledBranch Branch { get; set; } + + public Guid CommitId { get; set; } + public VersionControlledCommit Commit { get; set; } + + public string CreatedReason { get; set; } + public DateTime CreatedAt { get; set; } + public JobStatus Status { get; set; } + public ICollection<JobStatusUpdate> StatusUpdates { get; set; } + + public Guid? AgentId { get; set; } + public Agent? Agent { get; set; } + + public string? ClaimToken { get; set; } + + public string Recipe { get; set; } + // plan +} + +public class JobStatusUpdate +{ + public Guid Id { get; set; } + + public Guid JobId { get; set; } + public Job Job { get; set; } + + public DateTime At { get; set; } + public JobStatus Status { get; set; } +} + +public enum JobStatus +{ + Pending, + Active, + Cancelled, + Success, + Failed +}
\ No newline at end of file diff --git a/src/marlin.web/Models/SecretKind.cs b/src/marlin.web/Models/SecretKind.cs new file mode 100644 index 0000000..02652d5 --- /dev/null +++ b/src/marlin.web/Models/SecretKind.cs @@ -0,0 +1,7 @@ +namespace marlin.web.Models; + +public static class SecretKind +{ + public const string HTTPToken = "http-token"; + public const string SSHKey = "ssh-key"; +}
\ No newline at end of file diff --git a/src/marlin.web/Models/VersionControlSource.cs b/src/marlin.web/Models/VersionControlSource.cs new file mode 100644 index 0000000..270df12 --- /dev/null +++ b/src/marlin.web/Models/VersionControlSource.cs @@ -0,0 +1,15 @@ +namespace marlin.web.Models; + +public class VersionControlSource +{ + public Guid Id { get; set; } + + public string UpstreamUrl { get; set; } + public string MainBranch { get; set; } + public string BranchFilter { get; set; } + public int MinPollingInterval { get; set; } + + public Guid? AccessSecretId { get; set; } + + public ICollection<VersionControlledBranch> Branches { get; set; } +}
\ No newline at end of file diff --git a/src/marlin.web/Models/VersionControlledBlob.cs b/src/marlin.web/Models/VersionControlledBlob.cs new file mode 100644 index 0000000..5b9017f --- /dev/null +++ b/src/marlin.web/Models/VersionControlledBlob.cs @@ -0,0 +1,15 @@ +namespace marlin.web.Models; + +public class VersionControlledBlob +{ + public Guid Id { get; set; } + + public Guid SourceId { get; set; } + public VersionControlSource Source { get; set; } + + public Guid CommitId { get; set; } + public VersionControlledCommit Commit { get; set; } + + public string Path { get; set; } + public byte[] Content { get; set; } +}
\ No newline at end of file diff --git a/src/marlin.web/Models/VersionControlledBranch.cs b/src/marlin.web/Models/VersionControlledBranch.cs new file mode 100644 index 0000000..a2973f7 --- /dev/null +++ b/src/marlin.web/Models/VersionControlledBranch.cs @@ -0,0 +1,14 @@ +namespace marlin.web.Models; + +public class VersionControlledBranch +{ + public Guid Id { get; set; } + + public Guid SourceId { get; set; } + public VersionControlSource Source { get; set; } + + public Guid CommitId { get; set; } + public VersionControlledCommit Commit { get; set; } + + public string Name { get; set; } +}
\ No newline at end of file diff --git a/src/marlin.web/Models/VersionControlledCommit.cs b/src/marlin.web/Models/VersionControlledCommit.cs new file mode 100644 index 0000000..9062156 --- /dev/null +++ b/src/marlin.web/Models/VersionControlledCommit.cs @@ -0,0 +1,17 @@ +namespace marlin.web.Models; + +public class VersionControlledCommit +{ + public Guid Id { get; set; } + + public Guid SourceId { get; set; } + public VersionControlSource Source { get; set; } + public bool BlobsFetched { get; set; } + public bool WorkflowScanned { get; set; } + + public string Hash { get; set; } + + public ICollection<VersionControlledBranch> Branches { get; set; } + public ICollection<VersionControlledBlob> Blobs { get; set; } + public WorkflowSnapshot? WorkflowSnapshot { get; set; } +}
\ No newline at end of file diff --git a/src/marlin.web/Models/WorkflowSnapshot.cs b/src/marlin.web/Models/WorkflowSnapshot.cs new file mode 100644 index 0000000..2ea7bce --- /dev/null +++ b/src/marlin.web/Models/WorkflowSnapshot.cs @@ -0,0 +1,14 @@ +namespace marlin.web.Models; + +using marlin.core.models.meta; + +public class WorkflowSnapshot +{ + public Guid Id { get; set; } + + public Guid CommitId { get; set; } + public VersionControlledCommit Commit { get; set; } + + public DateTime ScannedAt { get; set; } + public Workflow Workflow { get; set; } +} |
