Files
eko/internal/data/messages.sql.go
Kyren223 f793203e04 Added session duration metrics with device analytics along with device
analytics metrics in the DB to aggregate and DeviceID abuse prevention
2025-07-19 18:32:12 +03:00

192 lines
3.9 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: messages.sql
package data
import (
"context"
"github.com/kyren223/eko/pkg/snowflake"
)
const createMessage = `-- name: CreateMessage :one
INSERT INTO messages (
id, content, sender_id, frequency_id, receiver_id, ping
) VALUES (
?, ?, ?, ?, ?, ?
)
RETURNING id, sender_id, content, edited, frequency_id, receiver_id, ping
`
type CreateMessageParams struct {
ID snowflake.ID
Content string
SenderID snowflake.ID
FrequencyID *snowflake.ID
ReceiverID *snowflake.ID
Ping *snowflake.ID
}
func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessageParams) (Message, error) {
row := q.db.QueryRowContext(ctx, createMessage,
arg.ID,
arg.Content,
arg.SenderID,
arg.FrequencyID,
arg.ReceiverID,
arg.Ping,
)
var i Message
err := row.Scan(
&i.ID,
&i.SenderID,
&i.Content,
&i.Edited,
&i.FrequencyID,
&i.ReceiverID,
&i.Ping,
)
return i, err
}
const deleteMessage = `-- name: DeleteMessage :exec
DELETE FROM messages
WHERE id = ?
`
func (q *Queries) DeleteMessage(ctx context.Context, id snowflake.ID) error {
_, err := q.db.ExecContext(ctx, deleteMessage, id)
return err
}
const editMessage = `-- name: EditMessage :one
UPDATE messages SET
edited = true,
content = ?
WHERE id = ?
RETURNING id, sender_id, content, edited, frequency_id, receiver_id, ping
`
type EditMessageParams struct {
Content string
ID snowflake.ID
}
func (q *Queries) EditMessage(ctx context.Context, arg EditMessageParams) (Message, error) {
row := q.db.QueryRowContext(ctx, editMessage, arg.Content, arg.ID)
var i Message
err := row.Scan(
&i.ID,
&i.SenderID,
&i.Content,
&i.Edited,
&i.FrequencyID,
&i.ReceiverID,
&i.Ping,
)
return i, err
}
const getDirectMessages = `-- name: GetDirectMessages :many
SELECT id, sender_id, content, edited, frequency_id, receiver_id, ping FROM messages
WHERE
(sender_id = ?1 AND receiver_id = ?2) OR
(sender_id = ?2 AND receiver_id = ?1)
ORDER BY id
`
type GetDirectMessagesParams struct {
User1 snowflake.ID
User2 *snowflake.ID
}
func (q *Queries) GetDirectMessages(ctx context.Context, arg GetDirectMessagesParams) ([]Message, error) {
rows, err := q.db.QueryContext(ctx, getDirectMessages, arg.User1, arg.User2)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Message
for rows.Next() {
var i Message
if err := rows.Scan(
&i.ID,
&i.SenderID,
&i.Content,
&i.Edited,
&i.FrequencyID,
&i.ReceiverID,
&i.Ping,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getFrequencyMessages = `-- name: GetFrequencyMessages :many
SELECT id, sender_id, content, edited, frequency_id, receiver_id, ping FROM messages
WHERE frequency_id = ?
ORDER BY id
`
func (q *Queries) GetFrequencyMessages(ctx context.Context, frequencyID *snowflake.ID) ([]Message, error) {
rows, err := q.db.QueryContext(ctx, getFrequencyMessages, frequencyID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Message
for rows.Next() {
var i Message
if err := rows.Scan(
&i.ID,
&i.SenderID,
&i.Content,
&i.Edited,
&i.FrequencyID,
&i.ReceiverID,
&i.Ping,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getMessageById = `-- name: GetMessageById :one
SELECT id, sender_id, content, edited, frequency_id, receiver_id, ping FROM messages
WHERE id = ?
`
func (q *Queries) GetMessageById(ctx context.Context, id snowflake.ID) (Message, error) {
row := q.db.QueryRowContext(ctx, getMessageById, id)
var i Message
err := row.Scan(
&i.ID,
&i.SenderID,
&i.Content,
&i.Edited,
&i.FrequencyID,
&i.ReceiverID,
&i.Ping,
)
return i, err
}