Skip to content

Commit 1a34b38

Browse files
committed
feat(types): added import, changed types for chat_permissions, username, and members, and updated foreign key types to use table interfaces.
1 parent 3048b58 commit 1a34b38

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

src/types/database/TablesTypes.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
1+
import { ChatPermissions } from 'grammy/types';
2+
13
export interface Group {
24
id: number; // Primary Key
35
group_id: number;
46
group_name: string;
57
rules: string[]; // Array of rules
6-
added_by_id: number;
78
black_list: string[]; // Array of blacklisted words or user IDs
8-
chat_permissions: Record<string, boolean>; // Permissions for the group
9-
updated_at: string; // Date/Time of the last update (ISO 8601 string)
10-
joined_at: string; // Date/Time when the group was joined
9+
chat_permissions: ChatPermissions; // Permissions for the group
1110
approved_users: number[]; // Array of user IDs of approved users
1211
warnings: number; // Number of warnings for the group
1312
is_spam_time: boolean; // Whether the group is flagged for spam
14-
members: number; // Number of members in the group
13+
members: number[];
1514
}
1615
export interface User {
1716
id: number; // Primary Key
1817
telegram_id: number; // Telegram user ID
19-
username: string; // Telegram username
18+
username: string | null; // Telegram username
19+
first_name: string;
2020
role: 'admin' | 'moderator' | 'user'; // Role of the user
2121
warnings: number; // Number of warnings the user has received
2222
approved_groups: number[]; // List of approved group IDs for the user
2323
}
2424
export interface Warning {
2525
id: number; // Primary Key
26-
user_id: number; // Foreign Key to User table
27-
group_id: number; // Foreign Key to Group table
26+
user_id: User['id']; // Foreign Key to User table
27+
group_id: Group['id']; // Foreign Key to Group table
2828
warned_at: string; // Date/Time when the warning was issued
2929
reason: string; // Reason for the warning
3030
}
3131
export interface ApprovedUser {
3232
id: number; // Primary Key
33-
user_id: number; // Foreign Key to User table
34-
group_id: number; // Foreign Key to Group table
33+
user_id: User['id']; // Foreign Key to User table
34+
group_id: Group['id']; // Foreign Key to Group table
3535
username: string; // Username of the approved user
3636
}
3737
export interface Channel {
@@ -42,8 +42,8 @@ export interface Channel {
4242
}
4343
export interface GroupAdminPermissions {
4444
id: number; // Primary Key
45-
group_id: number; // Foreign Key to Group table
46-
user_id: number; // Foreign Key to User table
45+
group_id: Group['id']; // Foreign Key to Group table
46+
user_id: User['id']; // Foreign Key to User table
4747
can_manage_approvals: boolean;
4848
can_manage_users: boolean;
4949
can_manage_blacklist: boolean;
@@ -57,19 +57,19 @@ export interface GroupAdminPermissions {
5757
}
5858
export interface Blacklist {
5959
id: number; // Primary Key
60-
group_id: number; // Foreign Key to Group table
60+
group_id: Group['id']; // Foreign Key to Group table
6161
blacklisted_word?: string; // Optional: blacklisted word
62-
blacklisted_user_id?: number; // Optional: blacklisted user ID
62+
blacklisted_user_id?: User['id']; // Optional: blacklisted user ID
6363
}
6464
export interface GroupRule {
6565
id: number; // Primary Key
66-
group_id: number; // Foreign Key to Group table
66+
group_id: Group['id']; // Foreign Key to Group table
6767
rule_text: string; // The rule text
68-
added_by: number; // User ID of the admin who added the rule
68+
added_by: User['id']; // User ID of the admin who added the rule
6969
}
7070
export interface GroupMessageSettings {
7171
id: number; // Primary Key
72-
group_id: number; // Foreign Key to Group table
72+
group_id: Group['id']; // Foreign Key to Group table
7373
is_locked: boolean; // Whether the group is locked
7474
welcome_message: string; // Welcome message for new users
7575
}

0 commit comments

Comments
 (0)