Skip to content

Commit a02deef

Browse files
committed
refactor(database-types): removed Primary Key annotations, added/removed fields, and modified data types in Group, User, Warning, ApprovedUser, Channel, and GroupRule interfaces.
1 parent 3c5da97 commit a02deef

1 file changed

Lines changed: 38 additions & 55 deletions

File tree

src/types/database/TablesTypes.ts

Lines changed: 38 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,58 @@
11
import { ChatPermissions } from 'grammy/types';
22

33
export interface Group {
4-
id: number; // Primary Key
4+
id: number;
55
group_id: number;
66
group_name: string;
7-
rules: string[]; // Array of rules
8-
black_list: string[]; // Array of blacklisted words or user IDs
9-
chat_permissions: ChatPermissions; // Permissions for the group
10-
approved_users: number[]; // Array of user IDs of approved users
11-
warnings: number; // Number of warnings for the group
12-
is_spam_time: boolean; // Whether the group is flagged for spam
7+
black_list: string[];
8+
chat_permissions: ChatPermissions;
9+
approved_users: number[];
10+
warnings: number;
11+
is_spam_time: boolean;
1312
members: number[];
13+
updated_at: Date;
14+
joined_at: Date;
1415
}
1516
export interface User {
16-
id: number; // Primary Key
17-
telegram_id: number; // Telegram user ID
18-
username: string | null; // Telegram username
17+
id: number;
18+
telegram_id: number;
19+
username: string | null;
1920
first_name: string;
20-
role: 'admin' | 'moderator' | 'user'; // Role of the user
21-
warnings: number; // Number of warnings the user has received
22-
approved_groups: number[]; // List of approved group IDs for the user
21+
created_at: Date;
22+
updated_at: Date;
23+
role: 'admin' | 'moderator' | 'user' | 'approved_user';
24+
warnings: number;
25+
approved_groups: number[];
2326
}
2427
export interface Warning {
25-
id: number; // Primary Key
26-
user_id: User['id']; // Foreign Key to User table
27-
group_id: Group['id']; // Foreign Key to Group table
28-
warned_at: string; // Date/Time when the warning was issued
29-
reason: string; // Reason for the warning
28+
id: number;
29+
user_id: User['id'];
30+
group_id: Group['id'];
31+
reason: string;
32+
warned_at: Date;
3033
}
3134
export interface ApprovedUser {
32-
id: number; // Primary Key
33-
user_id: User['id']; // Foreign Key to User table
34-
group_id: Group['id']; // Foreign Key to Group table
35-
username: string; // Username of the approved user
35+
id: number;
36+
user_id: User['id'];
37+
group_id: Group['id'];
38+
username: string;
3639
}
3740
export interface Channel {
38-
id: number; // Primary Key
39-
name: string; // Name of the channel
40-
channel_id: number; // Unique identifier for the channel
41-
admins: number[]; // List of admin user IDs
42-
}
43-
export interface GroupAdminPermissions {
44-
id: number; // Primary Key
45-
group_id: Group['id']; // Foreign Key to Group table
46-
user_id: User['id']; // Foreign Key to User table
47-
can_manage_approvals: boolean;
48-
can_manage_users: boolean;
49-
can_manage_blacklist: boolean;
50-
can_manage_rules: boolean;
51-
can_manage_pinning: boolean;
52-
can_manage_messages: boolean;
53-
can_manage_group_settings: boolean;
54-
can_view_group_stats: boolean;
55-
can_broadcast_message: boolean;
56-
can_view_admin_list: boolean;
57-
}
58-
export interface Blacklist {
59-
id: number; // Primary Key
60-
group_id: Group['id']; // Foreign Key to Group table
61-
blacklisted_word?: string; // Optional: blacklisted word
62-
blacklisted_user_id?: User['id']; // Optional: blacklisted user ID
41+
id: number;
42+
name: string;
43+
channel_id: number;
44+
admins: number[];
6345
}
6446
export interface GroupRule {
65-
id: number; // Primary Key
66-
group_id: Group['id']; // Foreign Key to Group table
67-
rule_text: string; // The rule text
68-
added_by: User['id']; // User ID of the admin who added the rule
47+
id: number;
48+
group_id: Group['id'];
49+
rule_text: string[];
50+
added_by: User['id'];
51+
added_at: Date;
6952
}
7053
export interface GroupMessageSettings {
71-
id: number; // Primary Key
72-
group_id: Group['id']; // Foreign Key to Group table
73-
is_locked: boolean; // Whether the group is locked
74-
welcome_message: string; // Welcome message for new users
54+
id: number;
55+
group_id: Group['id'];
56+
is_locked: boolean;
57+
welcome_message: string;
7558
}

0 commit comments

Comments
 (0)