using System;
using System.Collections.Generic;
namespace ECMJobRunner.Application.Common.Dtos
{
///
/// Data Transfer Object for CfgProfile entity
/// Used for querying and returning profile data
///
public class CfgProfileDto
{
///
/// Profile ID
///
public long Id { get; set; }
///
/// Active / Inactive switch
///
public bool Active { get; set; }
///
/// Profile name
///
public string ProfileName { get; set; } = null!;
///
/// Profile type: 0 = ADSync; 1 = GraphQL; 2 = SQL-Job; 3 = SQL and REST-Job
///
public byte TypeId { get; set; }
///
/// Schedule in Cron format
///
public string Schedule { get; set; } = null!;
///
/// Optional description
///
public string? Comment { get; set; }
///
/// Created by
///
public string AddedWho { get; set; } = null!;
///
/// Created at
///
public DateTime AddedWhen { get; set; }
///
/// Modified by
///
public string? ChangedWho { get; set; }
///
/// Modified at
///
public DateTime? ChangedWhen { get; set; }
///
/// SQL Jobs associated with this profile
///
public List? SqlJobs { get; set; }
}
///
/// Data Transfer Object for ProfileSqlJob entity
///
public class ProfileSqlJobDto
{
///
/// SQL Job ID
///
public long Id { get; set; }
///
/// Profile ID (foreign key)
///
public long ProfileId { get; set; }
///
/// Active / Inactive switch
///
public bool Active { get; set; }
///
/// Execution sequence order
///
public short Sequence { get; set; }
///
/// Job name
///
public string? Name { get; set; }
///
/// SQL query for pre-check validation
///
public string? SqlCheckQuery { get; set; }
///
/// Main SQL query to execute
///
public string? SqlMainQuery { get; set; }
///
/// API command to execute
///
public string? ApiCommand { get; set; }
///
/// Optional description
///
public string? Comment { get; set; }
}
}