Yimaru-BackEnd/gen/db/activity_logs.sql.go

184 lines
4.8 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: activity_logs.sql
package dbgen
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const CreateActivityLog = `-- name: CreateActivityLog :one
INSERT INTO activity_logs (
actor_id, actor_role, action, resource_type, resource_id,
message, metadata, ip_address, user_agent
) VALUES (
$1, $2,
$3, $4, $5,
$6, COALESCE($7, '{}'::jsonb),
$8, $9
)
RETURNING id, actor_id, actor_role, action, resource_type, resource_id, message, metadata, ip_address, user_agent, created_at
`
type CreateActivityLogParams struct {
ActorID pgtype.Int8 `json:"actor_id"`
ActorRole pgtype.Text `json:"actor_role"`
Action string `json:"action"`
ResourceType string `json:"resource_type"`
ResourceID pgtype.Int8 `json:"resource_id"`
Message pgtype.Text `json:"message"`
Metadata interface{} `json:"metadata"`
IpAddress pgtype.Text `json:"ip_address"`
UserAgent pgtype.Text `json:"user_agent"`
}
func (q *Queries) CreateActivityLog(ctx context.Context, arg CreateActivityLogParams) (ActivityLog, error) {
row := q.db.QueryRow(ctx, CreateActivityLog,
arg.ActorID,
arg.ActorRole,
arg.Action,
arg.ResourceType,
arg.ResourceID,
arg.Message,
arg.Metadata,
arg.IpAddress,
arg.UserAgent,
)
var i ActivityLog
err := row.Scan(
&i.ID,
&i.ActorID,
&i.ActorRole,
&i.Action,
&i.ResourceType,
&i.ResourceID,
&i.Message,
&i.Metadata,
&i.IpAddress,
&i.UserAgent,
&i.CreatedAt,
)
return i, err
}
const GetActivityLogByID = `-- name: GetActivityLogByID :one
SELECT id, actor_id, actor_role, action, resource_type, resource_id, message, metadata, ip_address, user_agent, created_at FROM activity_logs WHERE id = $1
`
func (q *Queries) GetActivityLogByID(ctx context.Context, id int64) (ActivityLog, error) {
row := q.db.QueryRow(ctx, GetActivityLogByID, id)
var i ActivityLog
err := row.Scan(
&i.ID,
&i.ActorID,
&i.ActorRole,
&i.Action,
&i.ResourceType,
&i.ResourceID,
&i.Message,
&i.Metadata,
&i.IpAddress,
&i.UserAgent,
&i.CreatedAt,
)
return i, err
}
const ListActivityLogs = `-- name: ListActivityLogs :many
SELECT
COUNT(*) OVER() AS total_count,
al.id,
al.actor_id,
al.actor_role,
al.action,
al.resource_type,
al.resource_id,
al.message,
al.metadata,
al.ip_address,
al.user_agent,
al.created_at
FROM activity_logs al
WHERE
($1::bigint IS NULL OR al.actor_id = $1)
AND ($2::text IS NULL OR al.action = $2)
AND ($3::text IS NULL OR al.resource_type = $3)
AND ($4::bigint IS NULL OR al.resource_id = $4)
AND ($5::timestamptz IS NULL OR al.created_at >= $5)
AND ($6::timestamptz IS NULL OR al.created_at <= $6)
ORDER BY al.created_at DESC
LIMIT $8 OFFSET $7
`
type ListActivityLogsParams struct {
FilterActorID pgtype.Int8 `json:"filter_actor_id"`
FilterAction pgtype.Text `json:"filter_action"`
FilterResourceType pgtype.Text `json:"filter_resource_type"`
FilterResourceID pgtype.Int8 `json:"filter_resource_id"`
FilterAfter pgtype.Timestamptz `json:"filter_after"`
FilterBefore pgtype.Timestamptz `json:"filter_before"`
LogOffset int32 `json:"log_offset"`
LogLimit int32 `json:"log_limit"`
}
type ListActivityLogsRow struct {
TotalCount int64 `json:"total_count"`
ID int64 `json:"id"`
ActorID pgtype.Int8 `json:"actor_id"`
ActorRole pgtype.Text `json:"actor_role"`
Action string `json:"action"`
ResourceType string `json:"resource_type"`
ResourceID pgtype.Int8 `json:"resource_id"`
Message pgtype.Text `json:"message"`
Metadata []byte `json:"metadata"`
IpAddress pgtype.Text `json:"ip_address"`
UserAgent pgtype.Text `json:"user_agent"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
func (q *Queries) ListActivityLogs(ctx context.Context, arg ListActivityLogsParams) ([]ListActivityLogsRow, error) {
rows, err := q.db.Query(ctx, ListActivityLogs,
arg.FilterActorID,
arg.FilterAction,
arg.FilterResourceType,
arg.FilterResourceID,
arg.FilterAfter,
arg.FilterBefore,
arg.LogOffset,
arg.LogLimit,
)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListActivityLogsRow
for rows.Next() {
var i ListActivityLogsRow
if err := rows.Scan(
&i.TotalCount,
&i.ID,
&i.ActorID,
&i.ActorRole,
&i.Action,
&i.ResourceType,
&i.ResourceID,
&i.Message,
&i.Metadata,
&i.IpAddress,
&i.UserAgent,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}