Files
CutList/CutList.Web/DTOs/JobDtos.cs
AJ Isaacs 17f16901ef feat: Add full REST API with controllers, DTOs, and service layer
Add controllers for suppliers, stock items, jobs, cutting tools, and
packing. Refactor MaterialsController to use MaterialService with
dimension-aware CRUD, search, and bulk operations. Extract DTOs into
dedicated files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 16:53:53 -05:00

112 lines
3.1 KiB
C#

namespace CutList.Web.DTOs;
public class JobDto
{
public int Id { get; set; }
public string JobNumber { get; set; } = string.Empty;
public string? Name { get; set; }
public string? Customer { get; set; }
public int? CuttingToolId { get; set; }
public string? CuttingToolName { get; set; }
public string? Notes { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime? UpdatedAt { get; set; }
public int PartCount { get; set; }
public int StockCount { get; set; }
}
public class JobDetailDto : JobDto
{
public List<JobPartDto> Parts { get; set; } = new();
public List<JobStockDto> Stock { get; set; } = new();
}
public class CreateJobDto
{
public string? Name { get; set; }
public string? Customer { get; set; }
public int? CuttingToolId { get; set; }
public string? Notes { get; set; }
}
public class UpdateJobDto
{
public string? Name { get; set; }
public string? Customer { get; set; }
public int? CuttingToolId { get; set; }
public string? Notes { get; set; }
}
public class JobPartDto
{
public int Id { get; set; }
public int JobId { get; set; }
public int MaterialId { get; set; }
public string MaterialName { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public decimal LengthInches { get; set; }
public string LengthFormatted { get; set; } = string.Empty;
public int Quantity { get; set; }
public int SortOrder { get; set; }
}
public class CreateJobPartDto
{
public int MaterialId { get; set; }
public string Name { get; set; } = string.Empty;
public string Length { get; set; } = string.Empty;
public int Quantity { get; set; } = 1;
}
public class UpdateJobPartDto
{
public int? MaterialId { get; set; }
public string? Name { get; set; }
public string? Length { get; set; }
public int? Quantity { get; set; }
}
public class JobStockDto
{
public int Id { get; set; }
public int JobId { get; set; }
public int MaterialId { get; set; }
public string MaterialName { get; set; } = string.Empty;
public int? StockItemId { get; set; }
public decimal LengthInches { get; set; }
public string LengthFormatted { get; set; } = string.Empty;
public int Quantity { get; set; }
public bool IsCustomLength { get; set; }
public int Priority { get; set; }
public int SortOrder { get; set; }
}
public class CreateJobStockDto
{
public int MaterialId { get; set; }
public int? StockItemId { get; set; }
public string Length { get; set; } = string.Empty;
public int Quantity { get; set; } = 1;
public bool IsCustomLength { get; set; }
public int Priority { get; set; } = 10;
}
public class UpdateJobStockDto
{
public int? StockItemId { get; set; }
public string? Length { get; set; }
public int? Quantity { get; set; }
public bool? IsCustomLength { get; set; }
public int? Priority { get; set; }
}
public class QuickCreateJobDto
{
public string? Customer { get; set; }
}
public class PackJobRequestDto
{
public decimal? KerfOverride { get; set; }
}