namespace TaxBaik.Application.DTOs;

using System.ComponentModel.DataAnnotations;

public class ClientDto
{
    public int Id { get; set; }
    public string Name { get; set; } = null!;
    public string? CompanyName { get; set; }
    public string? Phone { get; set; }
    public string? Email { get; set; }
    public string? ServiceType { get; set; }
    public string? TaxType { get; set; }
    public string Status { get; set; } = "active";
    public string? Source { get; set; }
    public string? Memo { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime UpdatedAt { get; set; }
}

public class CreateClientDto
{
    [Required(ErrorMessage = "고객명을 입력하세요.")]
    [StringLength(100, ErrorMessage = "고객명은 최대 100자까지 입력 가능합니다.")]
    public string Name { get; set; } = null!;

    [StringLength(100, ErrorMessage = "회사명은 최대 100자까지 입력 가능합니다.")]
    public string? CompanyName { get; set; }

    [StringLength(20, ErrorMessage = "전화번호는 최대 20자까지 입력 가능합니다.")]
    public string? Phone { get; set; }

    [EmailAddress(ErrorMessage = "올바른 이메일 형식이 아닙니다.")]
    public string? Email { get; set; }

    [StringLength(50, ErrorMessage = "서비스 유형은 최대 50자까지 입력 가능합니다.")]
    public string? ServiceType { get; set; }

    [StringLength(50, ErrorMessage = "세금 유형은 최대 50자까지 입력 가능합니다.")]
    public string? TaxType { get; set; }

    [Required(ErrorMessage = "상태를 선택하세요.")]
    public string Status { get; set; } = "active";

    [StringLength(50, ErrorMessage = "유입 경로는 최대 50자까지 입력 가능합니다.")]
    public string? Source { get; set; }

    [StringLength(1000, ErrorMessage = "메모는 최대 1000자까지 입력 가능합니다.")]
    public string? Memo { get; set; }
}
