29 lines
1 KiB
MySQL
29 lines
1 KiB
MySQL
|
|
CREATE TABLE IF NOT EXISTS teams_meetings (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
graph_event_id VARCHAR(500) NOT NULL,
|
||
|
|
user_email VARCHAR(255) NOT NULL,
|
||
|
|
subject VARCHAR(500),
|
||
|
|
start_time TIMESTAMPTZ,
|
||
|
|
end_time TIMESTAMPTZ,
|
||
|
|
duration_minutes INTEGER,
|
||
|
|
is_online_meeting BOOLEAN DEFAULT false,
|
||
|
|
attendee_count INTEGER DEFAULT 0,
|
||
|
|
client_attendee_count INTEGER DEFAULT 0,
|
||
|
|
has_client_attendees BOOLEAN DEFAULT false,
|
||
|
|
synced_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
UNIQUE(user_email, graph_event_id)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS teams_meeting_attendees (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
meeting_id INTEGER NOT NULL REFERENCES teams_meetings(id) ON DELETE CASCADE,
|
||
|
|
attendee_email VARCHAR(255),
|
||
|
|
attendee_name VARCHAR(255),
|
||
|
|
matched_contact_id BIGINT REFERENCES contacts(id),
|
||
|
|
matched_company_id BIGINT REFERENCES companies(id),
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_teams_meetings_user_email_time ON teams_meetings(user_email, start_time);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_teams_meeting_attendees_meeting_id ON teams_meeting_attendees(meeting_id);
|