aboutsummaryrefslogtreecommitdiff
path: root/fe/src/types.ts
blob: e06e789dfe57f9af51fd8582bc486a7bd0794ab5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import type { Invalidator, Subscriber, Unsubscriber, Updater } from "svelte/store";

export interface Preference {
  id: number;
  color: string;
  size_id: number;
  user_id: number;
}

export interface Size {
  size: number;
  unit: string;
}

export interface User {
  id: number;
  name: string;
  uuid: string;
}

export interface Statistic {
  user_id: number;
  date: string;
  quantity: number;
}

export type Nullable<T> = T | null;

export interface User {
    uuid: string;
    username: string;
}

export interface TokenStore {
    subscribe: (run: Subscriber<Nullable<string>>, invalidate?: Invalidator<Nullable<string>>) => Unsubscriber,
    authenticate: (newToken: string) => void,
    unauthenticate: () => void
}


export interface UserStore {
    subscribe: (run: Subscriber<Nullable<User>>, invalidate?: Invalidator<Nullable<User>>) => Unsubscriber,
    setUser: (user: User) => void,
    reset: () => void
}

export interface PreferenceStore {
    set: (this: void, value: Preference) => void;
    subscribe: (this: void, run: Subscriber<Nullable<Preference>>, invalidate?: Invalidator<Nullable<Preference>>) => Unsubscriber;
    reset: () => void;
    update: (this: void, updater: Updater<Nullable<Preference>>) => void;
    setPreference: (user: Preference) => void;
}