adds notifications

This commit is contained in:
Christian Beutel
2024-12-21 03:24:36 +01:00
parent 034f6873c1
commit 9140b523da
39 changed files with 1613 additions and 142 deletions

View File

@@ -0,0 +1,26 @@
import type { UserAnonymous } from "./user";
enum NotificationType {
trailCreate = "trail_create",
trailShare = "trail_share",
listCreate = "list_create",
listShare = "list_share",
newFollower = "new_follower",
trailComment = "trail_comment"
};
interface Notification {
id: string;
type: NotificationType;
metadata?: Record<string, any>;
seen: boolean;
recipient: string
author: string
created: string;
expand: {
recipient: UserAnonymous;
author: UserAnonymous;
}
}
export { type Notification, NotificationType }

View File

@@ -1,26 +1,28 @@
import type { NotificationType } from "./notification";
class Settings {
id?: string;
unit?: "metric" | "imperial";
language?: "en" | "de" | "fr" | "hu"| "it" | "nl" | "pl" | "pt" | "zh";
language?: "en" | "de" | "fr" | "hu" | "it" | "nl" | "pl" | "pt" | "zh";
mapFocus?: "trails" | "location";
location?: { name: string, lat: number, lon: number };
category?: string;
tilesets?: {name: string, url: string}[]
terrain?: { terrain: string, hillshading: string};
tilesets?: { name: string, url: string }[]
terrain?: { terrain: string, hillshading: string };
user?: string;
privacy?: {account: "public" | "private", trails: "public" | "private", lists: "public" | "private"}
privacy?: { account: "public" | "private", trails: "public" | "private", lists: "public" | "private" }
notifications?: Record<NotificationType, { web: boolean, email: boolean }>
constructor(
unit: "metric" | "imperial",
language: "en" | "de" | "fr" | "hu"| "it" | "nl" | "pl" | "pt" | "zh",
language: "en" | "de" | "fr" | "hu" | "it" | "nl" | "pl" | "pt" | "zh",
mapFocus: "trails" | "location",
user: string,
params?: {
location?: { name: string, lat: number, lon: number }
category?: string
tilesets?: {name: string, url: string}[]
terrain?: { terrain: string, hillshading: string};
tilesets?: { name: string, url: string }[]
terrain?: { terrain: string, hillshading: string };
}
) {
this.unit = unit;