HouseholdModel.java
package com.hwhub.backend.domain.model;
import java.util.Objects;
import lombok.Getter;
@Getter
public class HouseholdModel {
private Long householdId;
private String name;
private Long ownerUserId;
/**
* 全プロパティを引数に取るコンストラクタ。
*
* @param householdId 世帯ID
* @param name 世帯名
* @param ownerUserId 世帯所有者
*/
private HouseholdModel(Long householdId, String name, Long ownerUserId) {
this.householdId = householdId;
this.name = name;
this.ownerUserId = ownerUserId;
}
/**
* 再構築・永続化用。infrastructure層からのみ呼び出されることを想定。
*
* @param householdId 世帯ID
* @param name 世帯名
* @param ownerUserId 世帯所有者
* @return インスタンスを返す。
*/
public static HouseholdModel reconstruct(Long householdId, String name, Long ownerUserId) {
return new HouseholdModel(householdId, name, ownerUserId);
}
/**
* 新規追加時のファクトリメソッド。
*
* @param name 世帯名
* @param ownerUserId 世帯所有者
* @return インスタンスを返す。
*/
public static HouseholdModel create(String name, Long ownerUserId) {
return new HouseholdModel(null, name, ownerUserId);
}
public boolean isOwner(Long userId) {
return Objects.equals(this.ownerUserId, userId);
}
public void changeName(String name) {
this.name = name;
}
public void changeOwner(Long newOwnerUserId) {
this.ownerUserId = newOwnerUserId;
}
}