using System.ComponentModel.DataAnnotations;

namespace OnlineSalesAutoCrop.CoreAPI.Models.Requests.Integrations;

public class IntegrationEmployeeRequest
{
    [Required(ErrorMessage = "Employee vendor code is required.")]
    [StringLength(10, ErrorMessage = "Employee vendor code cannot exceed 10 characters.")]
    public string EmployeeVendorCode { get; set; } 

    [Required(ErrorMessage = "Employee vendor name is required.")]
    [StringLength(35, ErrorMessage = "Employee vendor name cannot exceed 35 characters.")]
    public string EmployeeVendorName { get; set; } 

    [Required(ErrorMessage = "Designation is required.")]
    [StringLength(4, ErrorMessage = "Designation cannot exceed 4 characters.")]
    public string Designation { get; set; } 

    [Required(ErrorMessage = "Designation description is required.")]
    [StringLength(30, ErrorMessage = "Designation description cannot exceed 30 characters.")]
    public string DesignationDescription { get; set; } 

    [Required(ErrorMessage = "Mobile number is required.")]
    [StringLength(31, ErrorMessage = "Mobile number cannot exceed 31 characters.")]
    [Phone(ErrorMessage = "Mobile number is not a valid phone number.")]
    public string MobileNo { get; set; } 

    [Required(ErrorMessage = "Email address is required.")]
    [StringLength(241, ErrorMessage = "Email address cannot exceed 241 characters.")]
    [EmailAddress(ErrorMessage = "Email address is not valid.")]
    public string Mail { get; set; } 

    [Required(ErrorMessage = "Company code is required.")]
    [StringLength(4, ErrorMessage = "Company code cannot exceed 4 characters.")]
    public string CompanyCode { get; set; } 

    [Required(ErrorMessage = "Company name is required.")]
    [StringLength(25, ErrorMessage = "Company name cannot exceed 25 characters.")]
    public string CompanyName { get; set; } 

    [Required(ErrorMessage = "Sales org is required.")]
    [StringLength(4, ErrorMessage = "Sales org cannot exceed 4 characters.")]
    public string SalesOrg { get; set; } 

    [Required(ErrorMessage = "Sales org description is required.")]
    [StringLength(40, ErrorMessage = "Sales org description cannot exceed 40 characters.")]
    public string SalesOrgDescription { get; set; } 

    [Required(ErrorMessage = "Distribution channel is required.")]
    [StringLength(2, ErrorMessage = "Distribution channel cannot exceed 2 characters.")]
    public string DistChannel { get; set; } 

    [Required(ErrorMessage = "Distribution channel description is required.")]
    [StringLength(20, ErrorMessage = "Distribution channel description cannot exceed 20 characters.")]
    public string DistChannelDescription { get; set; } 

    [Required(ErrorMessage = "Division is required.")]
    [StringLength(2, ErrorMessage = "Division cannot exceed 2 characters.")]
    public string Division { get; set; } 

    [Required(ErrorMessage = "Division description is required.")]
    [StringLength(20, ErrorMessage = "Division description cannot exceed 20 characters.")]
    public string DivisionDescription { get; set; } 

    [Required(ErrorMessage = "Region/Area code is required.")]
    [StringLength(3, ErrorMessage = "Region/Area code cannot exceed 3 characters.")]
    public string RegionAreaCode { get; set; } 

    [Required(ErrorMessage = "Region/Area description is required.")]
    [StringLength(40, ErrorMessage = "Region/Area description cannot exceed 40 characters.")]
    public string RegionAreaDescription { get; set; } 

    [Required(ErrorMessage = "Area-AV/Sales unit code is required.")]
    [StringLength(10, ErrorMessage = "Area-AV/Sales unit code cannot exceed 10 characters.")]
    public string AreaAVSalesUnitCode { get; set; } 

    [Required(ErrorMessage = "Area-AV/Sales unit description is required.")]
    [StringLength(40, ErrorMessage = "Area-AV/Sales unit description cannot exceed 40 characters.")]
    public string AreaAVSalesUnitDescription { get; set; } 

    [Required(ErrorMessage = "Territory is required.")]
    [StringLength(3, ErrorMessage = "Territory cannot exceed 3 characters.")]
    public string Territory { get; set; } 

    [Required(ErrorMessage = "Territory description is required.")]
    [StringLength(20, ErrorMessage = "Territory description cannot exceed 20 characters.")]
    public string TerritoryDescription { get; set; } 

    [Required(ErrorMessage = "Plant is required.")]
    [StringLength(4, ErrorMessage = "Plant cannot exceed 4 characters.")]
    public string Plant { get; set; } 

    [Required(ErrorMessage = "Plant description is required.")]
    [StringLength(30, ErrorMessage = "Plant description cannot exceed 30 characters.")]
    public string PlantDescription { get; set; } 

    [Required(ErrorMessage = "Status is required.")]
    [StringLength(1, ErrorMessage = "Status cannot exceed 1 character.")]
    public string Status { get; set; } 

    [Required(ErrorMessage = "Status description is required.")]
    [StringLength(30, ErrorMessage = "Status description cannot exceed 30 characters.")]
    public string StatusDescription { get; set; } 
}

public class EmployeeIntegrationByComapanyRequest
{
    [Required(ErrorMessage = "Employee vendor code is required.")]
    [StringLength(10, ErrorMessage = "Employee vendor code cannot exceed 10 characters.")]
    public string EmployeeVendorCode { get; set; }

    [Required(ErrorMessage = "Company code is required.")]
    [StringLength(4, ErrorMessage = "Company code cannot exceed 4 characters.")]
    public string CompanyCode { get; set; }

}
