Browse Source
📦 Added data type interfaces
📦 Added data type interfaces
🚀 Define data structures for posts and listings 🔗 Created interfaces for CustomLink and TaxonomyType 👤 Defined AuthorType interface for author information 🌈 Added color options to TaxonomyTypemain
John Doe
1 year ago
1 changed files with 143 additions and 0 deletions
@ -0,0 +1,143 @@ |
|||
import { Route } from "@/routers/types"; |
|||
import { StaticImageData } from "next/image"; |
|||
|
|||
// ###### CustomLink ######## //
|
|||
export interface CustomLink { |
|||
label: string; |
|||
href: Route<string> | string; |
|||
targetBlank?: boolean; |
|||
} |
|||
|
|||
// ########## PostDataType ######## //
|
|||
export interface TaxonomyType { |
|||
id: string | number; |
|||
name: string; |
|||
href: Route<string>; |
|||
count?: number; |
|||
thumbnail?: string; |
|||
desc?: string; |
|||
color?: TwMainColor | string; |
|||
taxonomy: "category" | "tag"; |
|||
listingType?: "stay" | "experiences" | "car"; |
|||
} |
|||
|
|||
export interface AuthorType { |
|||
id: string | number; |
|||
firstName: string; |
|||
lastName: string; |
|||
displayName: string; |
|||
avatar: string | StaticImageData; |
|||
bgImage?: string | StaticImageData; |
|||
email?: string; |
|||
count: number; |
|||
desc: string; |
|||
jobName: string; |
|||
href: Route<string>; |
|||
starRating?: number; |
|||
} |
|||
|
|||
export interface PostDataType { |
|||
id: string | number; |
|||
author: AuthorType; |
|||
date: string; |
|||
href: Route<string>; |
|||
categories: TaxonomyType[]; |
|||
title: string; |
|||
featuredImage: StaticImageData | string; |
|||
desc?: string; |
|||
commentCount: number; |
|||
viewdCount: number; |
|||
readingTime: number; |
|||
postType?: "standard" | "video" | "gallery" | "audio"; |
|||
} |
|||
|
|||
export type TwMainColor = |
|||
| "pink" |
|||
| "green" |
|||
| "yellow" |
|||
| "red" |
|||
| "indigo" |
|||
| "blue" |
|||
| "purple" |
|||
| "gray"; |
|||
|
|||
//
|
|||
export interface StayDataType { |
|||
id: string | number; |
|||
author: AuthorType; |
|||
date: string; |
|||
href: Route<string>; |
|||
title: string; |
|||
featuredImage: StaticImageData | string; |
|||
commentCount: number; |
|||
viewCount: number; |
|||
address: string; |
|||
reviewStart: number; |
|||
reviewCount: number; |
|||
like: boolean; |
|||
galleryImgs: (StaticImageData | string)[]; |
|||
price: string; |
|||
listingCategory: TaxonomyType; |
|||
maxGuests: number; |
|||
bedrooms: number; |
|||
bathrooms: number; |
|||
saleOff?: string | null; |
|||
isAds: boolean | null; |
|||
map: { |
|||
lat: number; |
|||
lng: number; |
|||
}; |
|||
} |
|||
|
|||
//
|
|||
export interface ExperiencesDataType { |
|||
id: string | number; |
|||
author: AuthorType; |
|||
date: string; |
|||
href: Route<string>; |
|||
title: string; |
|||
featuredImage: StaticImageData | string; |
|||
commentCount: number; |
|||
viewCount: number; |
|||
address: string; |
|||
reviewStart: number; |
|||
reviewCount: number; |
|||
like: boolean; |
|||
galleryImgs: (StaticImageData | string)[]; |
|||
price: string; |
|||
listingCategory: TaxonomyType; |
|||
maxGuests: number; |
|||
saleOff?: string | null; |
|||
isAds: boolean | null; |
|||
map: { |
|||
lat: number; |
|||
lng: number; |
|||
}; |
|||
} |
|||
|
|||
//
|
|||
export interface CarDataType { |
|||
id: string | number; |
|||
author: AuthorType; |
|||
date: string; |
|||
href: Route<string>; |
|||
title: string; |
|||
featuredImage: StaticImageData | string; |
|||
commentCount: number; |
|||
viewCount: number; |
|||
address: string; |
|||
reviewStart: number; |
|||
reviewCount: number; |
|||
like: boolean; |
|||
galleryImgs: (StaticImageData | string)[]; |
|||
price: string; |
|||
listingCategory: TaxonomyType; |
|||
seats: number; |
|||
gearshift: string; |
|||
saleOff?: string | null; |
|||
isAds: boolean | null; |
|||
map: { |
|||
lat: number; |
|||
lng: number; |
|||
}; |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue