summaryrefslogtreecommitdiff
path: root/apps/web/src/types
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2025-07-22 11:41:58 +0200
committerMaze Winther <mazewinther@gmail.com>2025-07-22 11:41:58 +0200
commitfb5dca9f9d02a8e01a5189c4a8cf864d7a343b7e (patch)
tree3b2755097baa487e4447a973890be9f59f7d2689 /apps/web/src/types
parentc783062121a4a31ec6ee20c4ca52fd47f4fbdab7 (diff)
parenta5f7b477e65e5acba56b8761cd9cd3074cdb41ac (diff)
downloadopencut-fb5dca9f9d02a8e01a5189c4a8cf864d7a343b7e.tar.gz
Merge branch 'main' into staging
Diffstat (limited to 'apps/web/src/types')
-rw-r--r--apps/web/src/types/post.ts93
1 files changed, 93 insertions, 0 deletions
diff --git a/apps/web/src/types/post.ts b/apps/web/src/types/post.ts
new file mode 100644
index 00000000..c3436847
--- /dev/null
+++ b/apps/web/src/types/post.ts
@@ -0,0 +1,93 @@
+export type Post = {
+ id: string;
+ slug: string;
+ title: string;
+ content: string;
+ description: string;
+ coverImage: string;
+ publishedAt: Date;
+ updatedAt: Date;
+ authors: {
+ id: string;
+ name: string;
+ image: string;
+ }[];
+ category: {
+ id: string;
+ slug: string;
+ name: string;
+ };
+ tags: {
+ id: string;
+ slug: string;
+ name: string;
+ }[];
+ attribution: {
+ author: string;
+ url: string;
+ } | null;
+ };
+
+ export type Pagination = {
+ limit: number;
+ currpage: number;
+ nextPage: number | null;
+ prevPage: number | null;
+ totalItems: number;
+ totalPages: number;
+ };
+
+ export type MarblePostList = {
+ posts: Post[];
+ pagination: Pagination;
+ };
+
+ export type MarblePost = {
+ post: Post;
+ };
+
+ export type Tag = {
+ id: string;
+ name: string;
+ slug: string;
+ };
+
+ export type MarbleTag = {
+ tag: Tag;
+ };
+
+ export type MarbleTagList = {
+ tags: Tag[];
+ pagination: Pagination;
+ };
+
+ export type Category = {
+ id: string;
+ name: string;
+ slug: string;
+ };
+
+ export type MarbleCategory = {
+ category: Category;
+ };
+
+ export type MarbleCategoryList = {
+ categories: Category[];
+ pagination: Pagination;
+ };
+
+ export type Author = {
+ id: string;
+ name: string;
+ image: string;
+ };
+
+ export type MarbleAuthor = {
+ author: Author;
+ };
+
+ export type MarbleAuthorList = {
+ authors: Author[];
+ pagination: Pagination;
+ };
+ \ No newline at end of file