using System.ComponentModel.DataAnnotations; namespace ROLAC.API.DTOs.Payee; public class Payee1099ListItemDto { public int Id { get; set; } public string LegalName { get; set; } = ""; public string? DisplayName { get; set; } public int? MemberId { get; set; } public string? MemberName { get; set; } public string TaxClassification { get; set; } = ""; public bool Is1099Tracked { get; set; } public string? TinType { get; set; } public string? TinLast4 { get; set; } public string W9Status { get; set; } = ""; public bool IsActive { get; set; } } public class Payee1099Dto : Payee1099ListItemDto { public string? AddressLine1 { get; set; } public string? AddressLine2 { get; set; } public string? City { get; set; } public string? State { get; set; } public string? Zip { get; set; } public string? Email { get; set; } public string? Phone { get; set; } public string? W9ReceivedDate { get; set; } public bool HasW9Document { get; set; } public string? Notes { get; set; } } public class SavePayee1099Request { [Required, MaxLength(200)] public string LegalName { get; set; } = ""; [MaxLength(200)] public string? DisplayName { get; set; } public int? MemberId { get; set; } [Required, MaxLength(40)] public string TaxClassification { get; set; } = "Individual"; public bool Is1099Tracked { get; set; } = true; [MaxLength(10)] public string? TinType { get; set; } /// Plain TIN; null = leave unchanged on update. Encrypted server-side. public string? Tin { get; set; } [MaxLength(100)] public string? AddressLine1 { get; set; } [MaxLength(100)] public string? AddressLine2 { get; set; } [MaxLength(60)] public string? City { get; set; } [MaxLength(2)] public string? State { get; set; } [MaxLength(10)] public string? Zip { get; set; } [MaxLength(120)] public string? Email { get; set; } [MaxLength(40)] public string? Phone { get; set; } [MaxLength(20)] public string W9Status { get; set; } = "Missing"; public DateOnly? W9ReceivedDate { get; set; } public bool IsActive { get; set; } = true; public string? Notes { get; set; } }