/
models.ts
56 lines (49 loc) · 966 Bytes
/
models.ts
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
54
55
56
export const DEFAULT_PICTURE_URL = '/assets/default-profile-pic.svg';
export interface Profile {
name?: string;
picture?: string;
}
export enum MessageType {
TEXT = <any>'text',
LOCATION = <any>'location',
PICTURE = <any>'picture'
}
export interface Chat {
_id?: string;
title?: string;
picture?: string;
lastMessage?: Message;
memberIds?: string[];
}
export interface Message {
_id?: string;
chatId?: string;
senderId?: string;
content?: string;
createdAt?: Date;
type?: MessageType
ownership?: string;
}
export interface User extends Meteor.User {
profile?: Profile;
}
export interface Location {
lat: number;
lng: number;
zoom: number;
}
export interface Picture {
_id?: string;
complete?: boolean;
extension?: string;
name?: string;
progress?: number;
size?: number;
store?: string;
token?: string;
type?: string;
uploadedAt?: Date;
uploading?: boolean;
url?: string;
userId?: string;
}