Documentation
¶
Overview ¶
internal/storage/sqlite.go
Index ¶
- func DeleteOldMessages(db *sql.DB, olderThan int64) (int64, error)
- func InitDB(path string) (*sql.DB, error)
- func OptimizeDatabase(db *sql.DB) error
- func SaveMessage(db *sql.DB, room, peerID, msgType string, content []byte, filename *string) error
- type DatabaseStats
- type PaginatedMessage
- type PaginatedResult
- type PeerInfo
- type RoomInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteOldMessages ¶
DeleteOldMessages removes messages older than the specified timestamp
func InitDB ¶
InitDB opens (or creates) the SQLite file at path, applies schema, and returns the *sql.DB.
func OptimizeDatabase ¶
OptimizeDatabase runs VACUUM and ANALYZE on the database
Types ¶
type DatabaseStats ¶
type DatabaseStats struct {
TotalMessages int64 `json:"total_messages"`
TotalRooms int64 `json:"total_rooms"`
TotalPeers int64 `json:"total_peers"`
DatabaseSize int64 `json:"database_size_bytes"`
}
DatabaseStats contains database statistics
func GetDatabaseStats ¶
func GetDatabaseStats(db *sql.DB) (*DatabaseStats, error)
GetDatabaseStats retrieves database statistics
type PaginatedMessage ¶
type PaginatedMessage struct {
ID int64 `json:"id"`
PeerID string `json:"peer_id"`
Text string `json:"text"`
MsgType string `json:"msg_type"`
Timestamp int64 `json:"timestamp"`
Filename string `json:"filename,omitempty"`
}
PaginatedMessage represents a message with metadata for pagination
func SearchMessages ¶
SearchMessages searches messages by text content
type PaginatedResult ¶
type PaginatedResult struct {
Messages []PaginatedMessage `json:"messages"`
Total int64 `json:"total"`
Page int `json:"page"`
PerPage int `json:"per_page"`
TotalPages int `json:"total_pages"`
HasMore bool `json:"has_more"`
}
PaginatedResult contains paginated messages with metadata
func GetMessagesPaginated ¶
func GetMessagesPaginated(db *sql.DB, room string, page, perPage int, since int64) (*PaginatedResult, error)
GetMessagesPaginated retrieves messages with pagination support
type PeerInfo ¶
type PeerInfo struct {
PeerID string `json:"peer_id"`
FirstSeen int64 `json:"first_seen"`
LastSeen int64 `json:"last_seen"`
MessageCount int64 `json:"message_count"`
}
PeerInfo contains peer metadata
func GetPeerInfo ¶
GetPeerInfo retrieves peer information
type RoomInfo ¶
type RoomInfo struct {
Name string `json:"name"`
CreatedAt int64 `json:"created_at"`
LastActive int64 `json:"last_active"`
MessageCount int64 `json:"message_count"`
PeerCount int64 `json:"peer_count"`
}
RoomInfo contains room metadata
func GetRoomInfo ¶
GetRoomInfo retrieves detailed room information