Skip to content

Meeting Types

Package meeting defines types for meeting lifecycle.

Meeting

Represents a live collaborative session.

type Meeting struct {
    // ID is the unique identifier for the meeting.
    ID string

    // Name is the human-readable meeting name.
    Name string

    // Status is the current meeting status.
    Status MeetingStatus

    // CreatedAt is when the meeting was created.
    CreatedAt time.Time

    // StartedAt is when the first participant joined.
    StartedAt *time.Time

    // EndedAt is when the meeting ended.
    EndedAt *time.Time

    // Metadata is arbitrary key-value data.
    Metadata map[string]string
}

MeetingStatus

type MeetingStatus string

const (
    StatusScheduled MeetingStatus = "scheduled"  // Created but not started
    StatusActive    MeetingStatus = "active"     // In progress
    StatusEnded     MeetingStatus = "ended"      // Completed
)

CreateRequest

Request to create a new meeting.

type CreateRequest struct {
    // Name is the meeting name (required).
    Name string

    // Metadata is optional key-value data.
    Metadata map[string]string

    // MaxParticipants limits the number of participants (0 = unlimited).
    MaxParticipants int

    // EmptyTimeout is the duration to wait before closing an empty meeting.
    EmptyTimeout time.Duration
}

Example Usage

import "github.com/plexusone/omnimeet-core/meeting"

// Create meeting
m, err := provider.CreateMeeting(ctx, meeting.CreateRequest{
    Name: "Team Standup",
    Metadata: map[string]string{
        "team": "engineering",
        "recurring": "true",
    },
    MaxParticipants: 10,
    EmptyTimeout:    5 * time.Minute,
})

// Check status
if m.Status == meeting.StatusActive {
    log.Printf("Meeting %s is active", m.Name)
}