Add dependency to pictures in publications.

This commit is contained in:
Florian THIERRY
2024-03-14 09:55:51 +01:00
parent 5c5304ff98
commit adc3cdf9a3
16 changed files with 62 additions and 40 deletions

View File

@@ -24,13 +24,13 @@ public class AuthorEntity {
private UUID id;
@Column(nullable = false)
private String name;
// private String image;
// private String pictureId;
public AuthorEntity(Author author) {
this(
author.id(),
author.name()
// author.image()
// author.pictureId()
);
}

View File

@@ -5,6 +5,7 @@ import java.util.UUID;
import org.codiki.domain.publication.model.Publication;
import org.codiki.infrastructure.category.model.CategoryEntity;
import org.codiki.infrastructure.picture.model.PictureEntity;
import static jakarta.persistence.FetchType.LAZY;
import jakarta.persistence.Column;
@@ -36,10 +37,11 @@ public class PublicationEntity {
@Column(nullable = false)
private String description;
@Column(nullable = false)
private String image;
@Column(nullable = false)
private ZonedDateTime creationDate;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "picture_id")
private PictureEntity picture;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "author_id")
private AuthorEntity author;
@ManyToOne(fetch = LAZY)
@@ -53,8 +55,8 @@ public class PublicationEntity {
publication.title(),
publication.text(),
publication.description(),
publication.image(),
publication.creationDate(),
new PictureEntity(publication.picture()),
new AuthorEntity(publication.author()),
new CategoryEntity(publication.category())
);
@@ -67,8 +69,7 @@ public class PublicationEntity {
title,
text,
description,
image,
creationDate,
creationDate, picture.toDomain(),
author.toDomain(),
category.toDomain()
);

View File

@@ -31,24 +31,27 @@ CREATE TABLE IF NOT EXISTS category (
);
CREATE INDEX category_parent_category_id_idx ON category (parent_category_id);
CREATE TABLE IF NOT EXISTS picture (
id UUID NOT NULL,
CONSTRAINT picture_pk PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS publication (
id UUID NOT NULL,
key VARCHAR(10) NOT NULL,
title VARCHAR NOT NULL,
text VARCHAR NOT NULL,
description VARCHAR NOT NULL,
image VARCHAR NOT NULL,
creation_date TIMESTAMP NOT NULL,
picture_id UUID NOT NULL,
author_id UUID NOT NULL,
category_id UUID NOT NULL,
CONSTRAINT publication_pk PRIMARY KEY (id),
CONSTRAINT publication_picture_id_fk FOREIGN KEY (picture_id) REFERENCES picture (id),
CONSTRAINT publication_author_id_fk FOREIGN KEY (author_id) REFERENCES "user" (id),
CONSTRAINT publication_category_id_fk FOREIGN KEY (category_id) REFERENCES category (id)
);
CREATE INDEX publication_picture_id_idx ON publication (picture_id);
CREATE INDEX publication_author_id_idx ON publication (author_id);
CREATE INDEX publication_category_id_idx ON publication (category_id);
CREATE TABLE IF NOT EXISTS picture (
id UUID NOT NULL,
CONSTRAINT picture_pk PRIMARY KEY (id)
);