site-library/src/model/howto-model.ts
2025-03-23 14:02:44 +01:00

178 lines
3.1 KiB
TypeScript

export const ITEM_TYPE = 'howto'
////////////////////////////////
//
// Interfaces - Old
export interface IHowto {
_createdBy: string
mentions: any[]
_deleted: boolean
fileLink: string
slug: string
_modified: string
previousSlugs: string[]
_created: string
description: string
votedUsefulBy: string[]
creatorCountry: string
total_downloads: number
title: string
time: string
files: any[]
category: IOACategory
difficulty_level: string
_id: string
tags?: IOATag[]
total_views: number
_contentModifiedTimestamp: string
cover_image: Image
comments: any[]
moderatorFeedback: string
steps: Step[]
moderation: string
user?: User
}
export interface Tags {
[key: string]: boolean
}
export interface CoverImage {
name: string
downloadUrl: string
type: string
fullPath: string
updated: string
size: number
timeCreated: string
contentType: string
}
export interface Step {
title: string
text: string
images: Image[]
_animationKey: string
}
export interface Image {
updated: string
size: number
fullPath: string
timeCreated: string
name: string
downloadUrl: string
contentType: string
type: string
src: string,
alt: string
}
/// Taxonomy
export interface IOACategory {
_created: string
_id: string
_deleted: boolean
label: string
_modified: string
}
export interface IOATag {
categories: string[]
image: string
_created: string
_deleted: boolean
label: string
_createdBy: string
_modified: string
_id: string
}
export interface User {
_modified: string
_id: string
subType: string
moderation: string
_deleted: boolean
verified: boolean
type: string
location: Location
_created: string
geo: Geo
data: Data
detail: Detail
}
export interface Location {
lat: number
lng: number
}
export interface Geo {
latitude: number
lookupSource: string
longitude: number
localityLanguageRequested: string
continent: string
continentCode: string
countryName: string
countryCode: string
principalSubdivision: string
principalSubdivisionCode: string
city: string
locality: string
postcode: string
plusCode: string
localityInfo: LocalityInfo
}
export interface LocalityInfo {
administrative: Administrative[]
informative: Informative[]
}
export interface Administrative {
name: string
description: string
isoName?: string
order: number
adminLevel: number
isoCode?: string
wikidataId: string
geonameId: number
}
export interface Informative {
name: string
description: string
isoName?: string
order: number
isoCode?: string
wikidataId?: string
geonameId?: number
}
export interface Data {
urls: Url[]
description: string
services: Service[]
title: string
images: any[]
}
export interface Url {
name: string
url: string
}
export interface Service {
welding: boolean
assembling: boolean
machining: boolean
electronics: boolean
molds: boolean
}
export interface Detail {
services: any[]
urls: any[]
}