chore: add minimal implementations for all portfolio API endpoints

This commit is contained in:
2025-08-25 23:04:20 +02:00
parent df24350bd3
commit 7f12034174
100 changed files with 2048 additions and 7 deletions

View File

@@ -0,0 +1,13 @@
package com.pablotj.portfolio.domain.about;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class About {
private final AboutId id;
private final String title;
private final String description;
private final String url;
}

View File

@@ -0,0 +1,7 @@
package com.pablotj.portfolio.domain.about;
public record AboutId(Long value) {
public AboutId {
if (value != null && value < 0) throw new IllegalArgumentException("AboutId must be positive");
}
}

View File

@@ -0,0 +1,15 @@
package com.pablotj.portfolio.domain.about.port;
import com.pablotj.portfolio.domain.about.About;
import com.pablotj.portfolio.domain.about.AboutId;
import java.util.List;
import java.util.Optional;
public interface AboutRepositoryPort {
About save(About p);
Optional<About> findById(AboutId id);
List<About> findAll();
}

View File

@@ -0,0 +1,13 @@
package com.pablotj.portfolio.domain.certification;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Certification {
private final CertificationId id;
private final String title;
private final String description;
private final String url;
}

View File

@@ -0,0 +1,7 @@
package com.pablotj.portfolio.domain.certification;
public record CertificationId(Long value) {
public CertificationId {
if (value != null && value < 0) throw new IllegalArgumentException("CertificationId must be positive");
}
}

View File

@@ -0,0 +1,14 @@
package com.pablotj.portfolio.domain.certification.port;
import com.pablotj.portfolio.domain.certification.Certification;
import com.pablotj.portfolio.domain.certification.CertificationId;
import java.util.List;
import java.util.Optional;
public interface CertificationRepositoryPort {
Certification save(Certification p);
Optional<Certification> findById(CertificationId id);
List<Certification> findAll();
}

View File

@@ -0,0 +1,13 @@
package com.pablotj.portfolio.domain.contact;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Contact {
private final ContactId id;
private final String title;
private final String description;
private final String url;
}

View File

@@ -0,0 +1,7 @@
package com.pablotj.portfolio.domain.contact;
public record ContactId(Long value) {
public ContactId {
if (value != null && value < 0) throw new IllegalArgumentException("ContactId must be positive");
}
}

View File

@@ -0,0 +1,14 @@
package com.pablotj.portfolio.domain.contact.port;
import com.pablotj.portfolio.domain.contact.Contact;
import com.pablotj.portfolio.domain.contact.ContactId;
import java.util.List;
import java.util.Optional;
public interface ContactRepositoryPort {
Contact save(Contact p);
Optional<Contact> findById(ContactId id);
List<Contact> findAll();
}

View File

@@ -0,0 +1,13 @@
package com.pablotj.portfolio.domain.education;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Education {
private final EducationId id;
private final String title;
private final String description;
private final String url;
}

View File

@@ -0,0 +1,7 @@
package com.pablotj.portfolio.domain.education;
public record EducationId(Long value) {
public EducationId {
if (value != null && value < 0) throw new IllegalArgumentException("EducationId must be positive");
}
}

View File

@@ -0,0 +1,14 @@
package com.pablotj.portfolio.domain.education.port;
import com.pablotj.portfolio.domain.education.Education;
import com.pablotj.portfolio.domain.education.EducationId;
import java.util.List;
import java.util.Optional;
public interface EducationRepositoryPort {
Education save(Education p);
Optional<Education> findById(EducationId id);
List<Education> findAll();
}

View File

@@ -0,0 +1,13 @@
package com.pablotj.portfolio.domain.experience;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Experience {
private final ExperienceId id;
private final String title;
private final String description;
private final String url;
}

View File

@@ -0,0 +1,7 @@
package com.pablotj.portfolio.domain.experience;
public record ExperienceId(Long value) {
public ExperienceId {
if (value != null && value < 0) throw new IllegalArgumentException("ExperienceId must be positive");
}
}

View File

@@ -0,0 +1,14 @@
package com.pablotj.portfolio.domain.experience.port;
import com.pablotj.portfolio.domain.experience.Experience;
import com.pablotj.portfolio.domain.experience.ExperienceId;
import java.util.List;
import java.util.Optional;
public interface ExperienceRepositoryPort {
Experience save(Experience p);
Optional<Experience> findById(ExperienceId id);
List<Experience> findAll();
}

View File

@@ -0,0 +1,13 @@
package com.pablotj.portfolio.domain.home;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Home {
private final HomeId id;
private final String title;
private final String description;
private final String url;
}

View File

@@ -0,0 +1,7 @@
package com.pablotj.portfolio.domain.home;
public record HomeId(Long value) {
public HomeId {
if (value != null && value < 0) throw new IllegalArgumentException("HomeId must be positive");
}
}

View File

@@ -0,0 +1,14 @@
package com.pablotj.portfolio.domain.home.port;
import com.pablotj.portfolio.domain.home.Home;
import com.pablotj.portfolio.domain.home.HomeId;
import java.util.List;
import java.util.Optional;
public interface HomeRepositoryPort {
Home save(Home p);
Optional<Home> findById(HomeId id);
List<Home> findAll();
}

View File

@@ -0,0 +1,13 @@
package com.pablotj.portfolio.domain.skill;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Skill {
private final SkillId id;
private final String title;
private final String description;
private final String url;
}

View File

@@ -0,0 +1,7 @@
package com.pablotj.portfolio.domain.skill;
public record SkillId(Long value) {
public SkillId {
if (value != null && value < 0) throw new IllegalArgumentException("SkillId must be positive");
}
}

View File

@@ -0,0 +1,14 @@
package com.pablotj.portfolio.domain.skill.port;
import com.pablotj.portfolio.domain.skill.Skill;
import com.pablotj.portfolio.domain.skill.SkillId;
import java.util.List;
import java.util.Optional;
public interface SkillRepositoryPort {
Skill save(Skill p);
Optional<Skill> findById(SkillId id);
List<Skill> findAll();
}