package de.oaa.xxx.aufgaben.entity;

import de.oaa.xxx.aufgaben.Toy;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;

import java.util.UUID;

@Entity
@Table(name = "toy")
public class ToyEntity {

    @Id
    @Column
    private UUID toyId;
    @Column
    private String name;
    @Column
    private String beschreibung;
    @ManyToOne
    @JoinColumn(name = "gruppeId")
    private AufgabenGruppeEntity aufgabenGruppe;

    public UUID getToyId() { return toyId; }
    public void setToyId(UUID toyId) { this.toyId = toyId; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public String getBeschreibung() { return beschreibung; }
    public void setBeschreibung(String beschreibung) { this.beschreibung = beschreibung; }

    public AufgabenGruppeEntity getAufgabenGruppe() { return aufgabenGruppe; }
    public void setAufgabenGruppe(AufgabenGruppeEntity aufgabenGruppe) { this.aufgabenGruppe = aufgabenGruppe; }

    public Toy toToy() {
        Toy toy = new Toy();
        toy.setBeschreibung(beschreibung);
        toy.setName(name);
        toy.setGruppeId(aufgabenGruppe.getGruppenId());
        toy.setToyId(toyId);
        return toy;
    }

    public static ToyEntity create(Toy toy, AufgabenGruppeEntity aufgabenGruppeEntity) {
        ToyEntity entity = new ToyEntity();
        entity.setAufgabenGruppe(aufgabenGruppeEntity);
        entity.setBeschreibung(toy.getBeschreibung());
        entity.setName(toy.getName());
        entity.setToyId(UUID.randomUUID());
        return entity;
    }
}
