search/app/types/index.d.ts

65 lines
1.3 KiB
TypeScript
Executable File

import type { AvatarProps } from '@nuxt/ui'
export type UserStatus = 'subscribed' | 'unsubscribed' | 'bounced'
export type SaleStatus = 'paid' | 'failed' | 'refunded'
export interface User {
id: number
name: string
email: string
avatar?: AvatarProps
status: UserStatus
location: string
}
export interface SearchFiles {
youtube?: string
video?: string
audio?: string
booklet?: string
simple?: string
}
export interface MatchPosition { start: number, length: number }
export interface SearchHit {
_id: string | number
id?: string | number
title: string
slug?: string
date?: number | string
isodate?: string
activity?: string
conference?: string
place?: string
city?: string
state?: string
country?: string
body?: string
thumbnail?: string
type?: string
files?: SearchFiles
unread?: boolean
_formatted?: Record<string, unknown>
_matchesPosition?: Record<string, MatchPosition[]>
[key: string]: unknown
}
// Backwards-compatible alias used by InboxList / InboxActivity
export type Activity = SearchHit
export interface Member {
name: string
username: string
role: 'member' | 'owner'
avatar: AvatarProps
}
export interface Notification {
id: number
unread?: boolean
sender: User
body: string
date: string
}