AccountRequest.java
package cz.vsb.crm.dto;
import cz.vsb.crm.model.Account;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import java.time.LocalDate;
public record AccountRequest(
@NotBlank @Size(max = 255) String companyName,
@Size(max = 255) String industry,
@Size(max = 2000) String address,
@Size(max = 50)
@Pattern(regexp = "^$|^[+]?[0-9\\s\\-()]{6,20}$", message = "must be a valid phone number")
String phone,
@Email @Size(max = 255) String email,
@Size(max = 100) String type,
@Size(max = 255) String contactName,
@Email @Size(max = 255) String contactEmail,
@Size(max = 50)
@Pattern(regexp = "^$|^[+]?[0-9\\s\\-()]{6,20}$", message = "must be a valid phone number")
String contactPhone,
@Size(max = 255) String contactPosition,
LocalDate deactivatedAt) {
public Account toEntity() {
Account account = new Account();
applyTo(account);
return account;
}
public void applyTo(Account account) {
account.setCompanyName(companyName);
account.setIndustry(industry);
account.setAddress(address);
account.setPhone(phone);
account.setEmail(email);
account.setType(type);
account.setContactName(contactName);
account.setContactEmail(contactEmail);
account.setContactPhone(contactPhone);
account.setContactPosition(contactPosition);
account.setDeactivatedAt(deactivatedAt);
}
}