diff --git a/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts b/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts
index 861244b..846df5d 100644
--- a/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts
+++ b/frontend/src/lib/post/adapter/gateway/postInfoResponseDto.ts
@@ -4,6 +4,7 @@ import z from 'zod';
export const PostInfoResponseSchema = z.object({
id: z.int32(),
+ semantic_id: z.string(),
title: z.string(),
description: z.string(),
preview_image_url: z.url(),
@@ -13,6 +14,7 @@ export const PostInfoResponseSchema = z.object({
export class PostInfoResponseDto {
readonly id: number;
+ readonly semanticId: string;
readonly title: string;
readonly description: string;
readonly previewImageUrl: URL;
@@ -21,6 +23,7 @@ export class PostInfoResponseDto {
private constructor(props: {
id: number;
+ semanticId: string;
title: string;
description: string;
previewImageUrl: URL;
@@ -28,6 +31,7 @@ export class PostInfoResponseDto {
publishedTime: Date | null;
}) {
this.id = props.id;
+ this.semanticId = props.semanticId;
this.title = props.title;
this.description = props.description;
this.previewImageUrl = props.previewImageUrl;
@@ -45,6 +49,7 @@ export class PostInfoResponseDto {
return new PostInfoResponseDto({
id: parsedJson.id,
+ semanticId: parsedJson.semantic_id,
title: parsedJson.title,
description: parsedJson.description,
previewImageUrl: new URL(parsedJson.preview_image_url),
@@ -56,6 +61,7 @@ export class PostInfoResponseDto {
toEntity(): PostInfo {
return new PostInfo({
id: this.id,
+ semanticId: this.semanticId,
title: this.title,
description: this.description,
previewImageUrl: this.previewImageUrl,
diff --git a/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts b/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts
index 7fcfcbd..5045165 100644
--- a/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts
+++ b/frontend/src/lib/post/adapter/presenter/postInfoViewModel.ts
@@ -6,6 +6,7 @@ import type { PostInfo } from '$lib/post/domain/entity/postInfo';
export class PostInfoViewModel {
readonly id: number;
+ readonly semanticId: string;
readonly title: string;
readonly description: string;
readonly previewImageUrl: URL;
@@ -14,6 +15,7 @@ export class PostInfoViewModel {
private constructor(props: {
id: number;
+ semanticId: string;
title: string;
description: string;
previewImageUrl: URL;
@@ -21,6 +23,7 @@ export class PostInfoViewModel {
publishedTime: Date | null;
}) {
this.id = props.id;
+ this.semanticId = props.semanticId;
this.title = props.title;
this.description = props.description;
this.previewImageUrl = props.previewImageUrl;
@@ -31,6 +34,7 @@ export class PostInfoViewModel {
static fromEntity(postInfo: PostInfo): PostInfoViewModel {
return new PostInfoViewModel({
id: postInfo.id,
+ semanticId: postInfo.semanticId,
title: postInfo.title,
description: postInfo.description,
previewImageUrl: postInfo.previewImageUrl,
@@ -47,6 +51,7 @@ export class PostInfoViewModel {
return new PostInfoViewModel({
id: props.id,
+ semanticId: props.semanticId,
title: props.title,
description: props.description,
previewImageUrl: new URL(props.previewImageUrl),
@@ -66,6 +71,7 @@ export class PostInfoViewModel {
dehydrate(): DehydratedPostInfoProps {
return {
id: this.id,
+ semanticId: this.semanticId,
title: this.title,
description: this.description,
previewImageUrl: this.previewImageUrl.href,
@@ -77,6 +83,7 @@ export class PostInfoViewModel {
export interface DehydratedPostInfoProps {
id: number;
+ semanticId: string;
title: string;
description: string;
previewImageUrl: string;
diff --git a/frontend/src/lib/post/domain/entity/postInfo.ts b/frontend/src/lib/post/domain/entity/postInfo.ts
index 002c788..9da7344 100644
--- a/frontend/src/lib/post/domain/entity/postInfo.ts
+++ b/frontend/src/lib/post/domain/entity/postInfo.ts
@@ -2,6 +2,7 @@ import type { Label } from '$lib/post/domain/entity/label';
export class PostInfo {
readonly id: number;
+ readonly semanticId: string;
readonly title: string;
readonly description: string;
readonly previewImageUrl: URL;
@@ -10,6 +11,7 @@ export class PostInfo {
constructor(props: {
id: number;
+ semanticId: string;
title: string;
description: string;
previewImageUrl: URL;
@@ -17,6 +19,7 @@ export class PostInfo {
publishedTime: Date | null;
}) {
this.id = props.id;
+ this.semanticId = props.semanticId;
this.title = props.title;
this.description = props.description;
this.previewImageUrl = props.previewImageUrl;
diff --git a/frontend/src/lib/post/framework/ui/PostPreview.svelte b/frontend/src/lib/post/framework/ui/PostPreview.svelte
index 7a22e4b..050d3e1 100644
--- a/frontend/src/lib/post/framework/ui/PostPreview.svelte
+++ b/frontend/src/lib/post/framework/ui/PostPreview.svelte
@@ -17,7 +17,7 @@
}
-
+