package com.loremind.domain.lorecontext;

import lombok.Builder;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * Entité de domaine représentant un Univers de jeu (Lore).
 * Conteneur global pour organiser la connaissance d'un monde.
 * C'est une entité pure du domaine, sans dépendance technique (pas de JPA).
 */
@Data
@Builder
public class Lore {

    private String id;
    private String name;
    private String description;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
    private int nodeCount;
    private int pageCount;

    // Méthodes métier pour gérer les métriques
    public void incrementNodeCount() {
        this.nodeCount++;
        this.updatedAt = LocalDateTime.now();
    }

    public void decrementNodeCount() {
        if (this.nodeCount > 0) {
            this.nodeCount--;
            this.updatedAt = LocalDateTime.now();
        }
    }

    public void incrementPageCount() {
        this.pageCount++;
        this.updatedAt = LocalDateTime.now();
    }

    public void decrementPageCount() {
        if (this.pageCount > 0) {
            this.pageCount--;
            this.updatedAt = LocalDateTime.now();
        }
    }
}
