package com.social.media.interfaces.web.dto.company;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

/**
 * Request DTO for creating a new company
 */
public record CreateCompanyRequest(
    @NotBlank(message = "Company name is required")
    @Size(min = 2, max = 100, message = "Company name must be between 2 and 100 characters")
    String name,
    
    @NotBlank(message = "CNPJ is required")
    @Pattern(regexp = "\\d{2}\\.\\d{3}\\.\\d{3}/\\d{4}-\\d{2}", message = "CNPJ must be in format XX.XXX.XXX/XXXX-XX")
    String cnpj,
    
    @NotBlank(message = "Email is required")
    @Email(message = "Email must be valid")
    String email,
    
    @Pattern(regexp = "\\(\\d{2}\\)\\s\\d{4,5}-\\d{4}", message = "Phone must be in format (XX) XXXX-XXXX or (XX) XXXXX-XXXX")
    String phone,
    
    String website,
    
    @NotBlank(message = "Activity sector is required")
    String activitySector,
    
    @NotBlank(message = "Plan is required")
    String plan,
    
    // Address fields
    String addressStreet,
    String addressNumber,
    String addressComplement,
    String addressNeighborhood,
    String addressCity,
    String addressState,
    String addressZipCode,
    String addressCountry
) {}
