import java.time.LocalDate;

// Keanggotaan: identitas anggota tidak berubah setelah pendaftaran.
public record Anggota(String id, String nama, String email, LocalDate terdaftar) {

    public Anggota {
        if (id == null || !id.matches("A-\\d{3}")) {
            throw new IllegalArgumentException(
                    "id harus berformat A-NNN, diterima: " + id);
        }
        if (nama == null || nama.isBlank()) {
            throw new IllegalArgumentException("nama wajib diisi");
        }
        if (email == null || !email.contains("@")) {
            throw new IllegalArgumentException(
                    "email harus memuat karakter '@', diterima: " + email);
        }
        nama = nama.trim();
        email = email.trim();
    }
}
