-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
77 lines (69 loc) · 1.3 KB
/
types.ts
File metadata and controls
77 lines (69 loc) · 1.3 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
export enum UserRole {
ADMIN = 'ADMIN',
OWNER = 'OWNER',
MANAGER = 'MANAGER',
TENANT = 'TENANT'
}
export enum PropertyType {
HOTEL = 'Hotel',
HOSTEL = 'Hostel',
PG = 'PG',
APARTMENT = 'Apartment',
HOME = 'Home',
FLAT = 'Flat'
}
export interface Amenity {
id: string;
name: string;
icon: string;
}
export interface Room {
id: string;
number: string;
type: string;
capacity: number;
availableBeds: number;
pricePerMonth: number;
isOccupied: boolean;
}
export interface Property {
id: string;
name: string;
type: PropertyType;
address: string;
city: string;
price: number;
description: string;
imageUrl: string;
amenities: string[];
ownerId: string;
rooms?: Room[];
rating: number;
reviewsCount: number;
}
export interface Booking {
id: string;
propertyId: string;
tenantId: string;
checkIn: string;
checkOut?: string;
status: 'pending' | 'active' | 'completed' | 'cancelled';
rentAmount: number;
}
export interface Complaint {
id: string;
propertyId: string;
tenantId: string;
title: string;
description: string;
status: 'pending' | 'in-progress' | 'resolved';
createdAt: string;
priority: 'low' | 'medium' | 'high';
}
export interface User {
id: string;
name: string;
email: string;
role: UserRole;
avatar?: string;
}