namespace SeaHaven.Services.DTOs { public class ContactDTO { public int Id { get; set; } public string? FirstName { get; set; } public string? LastName { get; set; } public string? Email { get; set; } public string? Phone { get; set; } public string? Mobile { get; set; } public string? Title { get; set; } public string? Type { get; set; } public int? AccountId { get; set; } public string? AccountName { get; set; } public DateTime? CreatedDate { get; set; } public string? CreatedBy { get; set; } public DateTime? ModifiedDate { get; set; } public string? ModifiedBy { get; set; } } public class CreateContactDTO { public required string FirstName { get; set; } public required string LastName { get; set; } public required string Email { get; set; } public string? Phone { get; set; } public string? Mobile { get; set; } public string? Title { get; set; } public string? Type { get; set; } public int? AccountId { get; set; } } public class UpdateContactDTO { public string? FirstName { get; set; } public string? LastName { get; set; } public string? Email { get; set; } public string? Phone { get; set; } public string? Mobile { get; set; } public string? Title { get; set; } public string? Type { get; set; } public int? AccountId { get; set; } } public class PagedResult { public IEnumerable Items { get; set; } = new List(); public int TotalCount { get; set; } public int Page { get; set; } public int PageSize { get; set; } /// /// Page numbering base for / . /// Default 1 (classic APIs). Work-order advanced search sets 0. /// public int PageBase { get; set; } = 1; public int TotalPages => PageSize <= 0 ? 0 : (int)Math.Ceiling(TotalCount / (double)PageSize); public bool HasPrevious => PageBase <= 0 ? Page > 0 : Page > 1; public bool HasNext => PageBase <= 0 ? Page + 1 < TotalPages : Page < TotalPages; } }