// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: attachment.sql package db import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const createAttachment = `-- name: CreateAttachment :one INSERT INTO attachment (workspace_id, issue_id, comment_id, uploader_type, uploader_id, filename, url, content_type, size_bytes) VALUES ($1, $8, $9, $2, $3, $4, $5, $6, $7) RETURNING id, workspace_id, issue_id, comment_id, uploader_type, uploader_id, filename, url, content_type, size_bytes, created_at ` type CreateAttachmentParams struct { WorkspaceID pgtype.UUID `json:"workspace_id"` UploaderType string `json:"uploader_type"` UploaderID pgtype.UUID `json:"uploader_id"` Filename string `json:"filename"` Url string `json:"url"` ContentType string `json:"content_type"` SizeBytes int64 `json:"size_bytes"` IssueID pgtype.UUID `json:"issue_id"` CommentID pgtype.UUID `json:"comment_id"` } func (q *Queries) CreateAttachment(ctx context.Context, arg CreateAttachmentParams) (Attachment, error) { row := q.db.QueryRow(ctx, createAttachment, arg.WorkspaceID, arg.UploaderType, arg.UploaderID, arg.Filename, arg.Url, arg.ContentType, arg.SizeBytes, arg.IssueID, arg.CommentID, ) var i Attachment err := row.Scan( &i.ID, &i.WorkspaceID, &i.IssueID, &i.CommentID, &i.UploaderType, &i.UploaderID, &i.Filename, &i.Url, &i.ContentType, &i.SizeBytes, &i.CreatedAt, ) return i, err } const deleteAttachment = `-- name: DeleteAttachment :exec DELETE FROM attachment WHERE id = $1 AND workspace_id = $2 ` type DeleteAttachmentParams struct { ID pgtype.UUID `json:"id"` WorkspaceID pgtype.UUID `json:"workspace_id"` } func (q *Queries) DeleteAttachment(ctx context.Context, arg DeleteAttachmentParams) error { _, err := q.db.Exec(ctx, deleteAttachment, arg.ID, arg.WorkspaceID) return err } const getAttachment = `-- name: GetAttachment :one SELECT id, workspace_id, issue_id, comment_id, uploader_type, uploader_id, filename, url, content_type, size_bytes, created_at FROM attachment WHERE id = $1 AND workspace_id = $2 ` type GetAttachmentParams struct { ID pgtype.UUID `json:"id"` WorkspaceID pgtype.UUID `json:"workspace_id"` } func (q *Queries) GetAttachment(ctx context.Context, arg GetAttachmentParams) (Attachment, error) { row := q.db.QueryRow(ctx, getAttachment, arg.ID, arg.WorkspaceID) var i Attachment err := row.Scan( &i.ID, &i.WorkspaceID, &i.IssueID, &i.CommentID, &i.UploaderType, &i.UploaderID, &i.Filename, &i.Url, &i.ContentType, &i.SizeBytes, &i.CreatedAt, ) return i, err } const linkAttachmentsToComment = `-- name: LinkAttachmentsToComment :exec UPDATE attachment SET comment_id = $1 WHERE issue_id = $2 AND comment_id IS NULL AND id = ANY($3::uuid[]) ` type LinkAttachmentsToCommentParams struct { CommentID pgtype.UUID `json:"comment_id"` IssueID pgtype.UUID `json:"issue_id"` Column3 []pgtype.UUID `json:"column_3"` } func (q *Queries) LinkAttachmentsToComment(ctx context.Context, arg LinkAttachmentsToCommentParams) error { _, err := q.db.Exec(ctx, linkAttachmentsToComment, arg.CommentID, arg.IssueID, arg.Column3) return err } const listAttachmentURLsByCommentID = `-- name: ListAttachmentURLsByCommentID :many SELECT url FROM attachment WHERE comment_id = $1 ` func (q *Queries) ListAttachmentURLsByCommentID(ctx context.Context, commentID pgtype.UUID) ([]string, error) { rows, err := q.db.Query(ctx, listAttachmentURLsByCommentID, commentID) if err != nil { return nil, err } defer rows.Close() items := []string{} for rows.Next() { var url string if err := rows.Scan(&url); err != nil { return nil, err } items = append(items, url) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listAttachmentURLsByIssueOrComments = `-- name: ListAttachmentURLsByIssueOrComments :many SELECT a.url FROM attachment a WHERE a.issue_id = $1 OR a.comment_id IN (SELECT c.id FROM comment c WHERE c.issue_id = $1) ` func (q *Queries) ListAttachmentURLsByIssueOrComments(ctx context.Context, issueID pgtype.UUID) ([]string, error) { rows, err := q.db.Query(ctx, listAttachmentURLsByIssueOrComments, issueID) if err != nil { return nil, err } defer rows.Close() items := []string{} for rows.Next() { var url string if err := rows.Scan(&url); err != nil { return nil, err } items = append(items, url) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listAttachmentsByComment = `-- name: ListAttachmentsByComment :many SELECT id, workspace_id, issue_id, comment_id, uploader_type, uploader_id, filename, url, content_type, size_bytes, created_at FROM attachment WHERE comment_id = $1 AND workspace_id = $2 ORDER BY created_at ASC ` type ListAttachmentsByCommentParams struct { CommentID pgtype.UUID `json:"comment_id"` WorkspaceID pgtype.UUID `json:"workspace_id"` } func (q *Queries) ListAttachmentsByComment(ctx context.Context, arg ListAttachmentsByCommentParams) ([]Attachment, error) { rows, err := q.db.Query(ctx, listAttachmentsByComment, arg.CommentID, arg.WorkspaceID) if err != nil { return nil, err } defer rows.Close() items := []Attachment{} for rows.Next() { var i Attachment if err := rows.Scan( &i.ID, &i.WorkspaceID, &i.IssueID, &i.CommentID, &i.UploaderType, &i.UploaderID, &i.Filename, &i.Url, &i.ContentType, &i.SizeBytes, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listAttachmentsByCommentIDs = `-- name: ListAttachmentsByCommentIDs :many SELECT id, workspace_id, issue_id, comment_id, uploader_type, uploader_id, filename, url, content_type, size_bytes, created_at FROM attachment WHERE comment_id = ANY($1::uuid[]) ORDER BY created_at ASC ` func (q *Queries) ListAttachmentsByCommentIDs(ctx context.Context, dollar_1 []pgtype.UUID) ([]Attachment, error) { rows, err := q.db.Query(ctx, listAttachmentsByCommentIDs, dollar_1) if err != nil { return nil, err } defer rows.Close() items := []Attachment{} for rows.Next() { var i Attachment if err := rows.Scan( &i.ID, &i.WorkspaceID, &i.IssueID, &i.CommentID, &i.UploaderType, &i.UploaderID, &i.Filename, &i.Url, &i.ContentType, &i.SizeBytes, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listAttachmentsByIssue = `-- name: ListAttachmentsByIssue :many SELECT id, workspace_id, issue_id, comment_id, uploader_type, uploader_id, filename, url, content_type, size_bytes, created_at FROM attachment WHERE issue_id = $1 AND workspace_id = $2 ORDER BY created_at ASC ` type ListAttachmentsByIssueParams struct { IssueID pgtype.UUID `json:"issue_id"` WorkspaceID pgtype.UUID `json:"workspace_id"` } func (q *Queries) ListAttachmentsByIssue(ctx context.Context, arg ListAttachmentsByIssueParams) ([]Attachment, error) { rows, err := q.db.Query(ctx, listAttachmentsByIssue, arg.IssueID, arg.WorkspaceID) if err != nil { return nil, err } defer rows.Close() items := []Attachment{} for rows.Next() { var i Attachment if err := rows.Scan( &i.ID, &i.WorkspaceID, &i.IssueID, &i.CommentID, &i.UploaderType, &i.UploaderID, &i.Filename, &i.Url, &i.ContentType, &i.SizeBytes, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil }