using CsvHelper.Configuration.Attributes;

namespace PowderCoating.Application.DTOs.Import;

/// <summary>
/// DTO for importing customers from CSV files.
/// </summary>
public class CustomerImportDto
{
    [Name("CompanyName")]
    public string CompanyName { get; set; } = string.Empty;

    [Name("ContactFirstName")]
    public string? ContactFirstName { get; set; }

    [Name("ContactLastName")]
    public string? ContactLastName { get; set; }

    [Name("Email")]
    public string? Email { get; set; }

    [Name("Phone")]
    public string? Phone { get; set; }

    [Name("MobilePhone")]
    public string? MobilePhone { get; set; }

    [Name("Address")]
    public string? Address { get; set; }

    [Name("City")]
    public string? City { get; set; }

    [Name("State")]
    public string? State { get; set; }

    [Name("ZipCode")]
    public string? ZipCode { get; set; }

    [Name("Country")]
    public string? Country { get; set; }

    [Name("CustomerType")]
    public string? CustomerType { get; set; }

    [Name("PricingTierCode")]
    public string? PricingTierCode { get; set; }

    [Name("CreditLimit")]
    public decimal? CreditLimit { get; set; }

    [Name("PaymentTerms")]
    public string? PaymentTerms { get; set; }

    [Name("TaxExempt")]
    public bool? TaxExempt { get; set; }

    [Name("TaxId")]
    public string? TaxId { get; set; }

    [Name("IsActive")]
    public bool? IsActive { get; set; }

    [Name("Notes")]
    public string? Notes { get; set; }

    [Name("LeadSource")]
    public string? LeadSource { get; set; }

    [Name("ShipToAddress")]
    public string? ShipToAddress { get; set; }

    [Name("ShipToCity")]
    public string? ShipToCity { get; set; }

    [Name("ShipToState")]
    public string? ShipToState { get; set; }

    [Name("ShipToZipCode")]
    public string? ShipToZipCode { get; set; }

    [Name("ShipToCountry")]
    public string? ShipToCountry { get; set; }
}
