1154 lines
26 KiB
Go
1154 lines
26 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: media.sql
|
|
|
|
package sqlcgen
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
const addProfilePhoto = `-- name: AddProfilePhoto :exec
|
|
|
|
INSERT INTO profile_photos (owner_peer_type, owner_peer_id, photo_id, date, active, sort_order)
|
|
VALUES (
|
|
$1::text,
|
|
$2::bigint,
|
|
$3::bigint,
|
|
$4::int,
|
|
true,
|
|
$5::bigint
|
|
)
|
|
ON CONFLICT (owner_peer_type, owner_peer_id, photo_id) DO UPDATE SET
|
|
date = EXCLUDED.date,
|
|
active = true,
|
|
sort_order = EXCLUDED.sort_order
|
|
`
|
|
|
|
type AddProfilePhotoParams struct {
|
|
OwnerPeerType string
|
|
OwnerPeerID int64
|
|
PhotoID int64
|
|
Date int32
|
|
SortOrder int64
|
|
}
|
|
|
|
// profile_photos --------------------------------------------------------------
|
|
func (q *Queries) AddProfilePhoto(ctx context.Context, arg AddProfilePhotoParams) error {
|
|
_, err := q.db.Exec(ctx, addProfilePhoto,
|
|
arg.OwnerPeerType,
|
|
arg.OwnerPeerID,
|
|
arg.PhotoID,
|
|
arg.Date,
|
|
arg.SortOrder,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const countAvailableReactions = `-- name: CountAvailableReactions :one
|
|
SELECT count(*)::int AS total FROM available_reactions
|
|
`
|
|
|
|
func (q *Queries) CountAvailableReactions(ctx context.Context) (int32, error) {
|
|
row := q.db.QueryRow(ctx, countAvailableReactions)
|
|
var total int32
|
|
err := row.Scan(&total)
|
|
return total, err
|
|
}
|
|
|
|
const countProfilePhotos = `-- name: CountProfilePhotos :one
|
|
SELECT count(*)::int AS total
|
|
FROM profile_photos
|
|
WHERE owner_peer_type = $1::text
|
|
AND owner_peer_id = $2::bigint
|
|
AND active
|
|
`
|
|
|
|
type CountProfilePhotosParams struct {
|
|
OwnerPeerType string
|
|
OwnerPeerID int64
|
|
}
|
|
|
|
func (q *Queries) CountProfilePhotos(ctx context.Context, arg CountProfilePhotosParams) (int32, error) {
|
|
row := q.db.QueryRow(ctx, countProfilePhotos, arg.OwnerPeerType, arg.OwnerPeerID)
|
|
var total int32
|
|
err := row.Scan(&total)
|
|
return total, err
|
|
}
|
|
|
|
const countStickerSets = `-- name: CountStickerSets :one
|
|
SELECT count(*)::int AS total FROM sticker_sets
|
|
`
|
|
|
|
func (q *Queries) CountStickerSets(ctx context.Context) (int32, error) {
|
|
row := q.db.QueryRow(ctx, countStickerSets)
|
|
var total int32
|
|
err := row.Scan(&total)
|
|
return total, err
|
|
}
|
|
|
|
const currentProfilePhoto = `-- name: CurrentProfilePhoto :one
|
|
SELECT photo_id
|
|
FROM profile_photos
|
|
WHERE owner_peer_type = $1::text
|
|
AND owner_peer_id = $2::bigint
|
|
AND active
|
|
ORDER BY sort_order DESC
|
|
LIMIT 1
|
|
`
|
|
|
|
type CurrentProfilePhotoParams struct {
|
|
OwnerPeerType string
|
|
OwnerPeerID int64
|
|
}
|
|
|
|
func (q *Queries) CurrentProfilePhoto(ctx context.Context, arg CurrentProfilePhotoParams) (int64, error) {
|
|
row := q.db.QueryRow(ctx, currentProfilePhoto, arg.OwnerPeerType, arg.OwnerPeerID)
|
|
var photo_id int64
|
|
err := row.Scan(&photo_id)
|
|
return photo_id, err
|
|
}
|
|
|
|
const currentProfilePhotosForOwners = `-- name: CurrentProfilePhotosForOwners :many
|
|
SELECT DISTINCT ON (pp.owner_peer_id)
|
|
pp.owner_peer_id,
|
|
pp.photo_id,
|
|
ph.dc_id,
|
|
ph.sizes::text AS sizes_json
|
|
FROM profile_photos pp
|
|
JOIN photos ph ON ph.id = pp.photo_id
|
|
WHERE pp.owner_peer_type = $1::text
|
|
AND pp.owner_peer_id = ANY($2::bigint[])
|
|
AND pp.active
|
|
ORDER BY pp.owner_peer_id, pp.sort_order DESC
|
|
`
|
|
|
|
type CurrentProfilePhotosForOwnersParams struct {
|
|
OwnerPeerType string
|
|
OwnerIds []int64
|
|
}
|
|
|
|
type CurrentProfilePhotosForOwnersRow struct {
|
|
OwnerPeerID int64
|
|
PhotoID int64
|
|
DcID int32
|
|
SizesJson string
|
|
}
|
|
|
|
func (q *Queries) CurrentProfilePhotosForOwners(ctx context.Context, arg CurrentProfilePhotosForOwnersParams) ([]CurrentProfilePhotosForOwnersRow, error) {
|
|
rows, err := q.db.Query(ctx, currentProfilePhotosForOwners, arg.OwnerPeerType, arg.OwnerIds)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []CurrentProfilePhotosForOwnersRow
|
|
for rows.Next() {
|
|
var i CurrentProfilePhotosForOwnersRow
|
|
if err := rows.Scan(
|
|
&i.OwnerPeerID,
|
|
&i.PhotoID,
|
|
&i.DcID,
|
|
&i.SizesJson,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const deactivateProfilePhotos = `-- name: DeactivateProfilePhotos :many
|
|
UPDATE profile_photos
|
|
SET active = false
|
|
WHERE owner_peer_type = $1::text
|
|
AND owner_peer_id = $2::bigint
|
|
AND photo_id = ANY($3::bigint[])
|
|
AND active
|
|
RETURNING photo_id
|
|
`
|
|
|
|
type DeactivateProfilePhotosParams struct {
|
|
OwnerPeerType string
|
|
OwnerPeerID int64
|
|
PhotoIds []int64
|
|
}
|
|
|
|
func (q *Queries) DeactivateProfilePhotos(ctx context.Context, arg DeactivateProfilePhotosParams) ([]int64, error) {
|
|
rows, err := q.db.Query(ctx, deactivateProfilePhotos, arg.OwnerPeerType, arg.OwnerPeerID, arg.PhotoIds)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []int64
|
|
for rows.Next() {
|
|
var photo_id int64
|
|
if err := rows.Scan(&photo_id); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, photo_id)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const deleteUploadParts = `-- name: DeleteUploadParts :exec
|
|
DELETE FROM upload_parts
|
|
WHERE owner_user_id = $1::bigint
|
|
AND file_id = $2::bigint
|
|
`
|
|
|
|
type DeleteUploadPartsParams struct {
|
|
OwnerUserID int64
|
|
FileID int64
|
|
}
|
|
|
|
func (q *Queries) DeleteUploadParts(ctx context.Context, arg DeleteUploadPartsParams) error {
|
|
_, err := q.db.Exec(ctx, deleteUploadParts, arg.OwnerUserID, arg.FileID)
|
|
return err
|
|
}
|
|
|
|
const getDocument = `-- name: GetDocument :one
|
|
SELECT id, access_hash, file_reference, date, mime_type, size, dc_id,
|
|
attributes::text AS attributes_json,
|
|
thumbs::text AS thumbs_json
|
|
FROM documents
|
|
WHERE id = $1::bigint
|
|
`
|
|
|
|
type GetDocumentRow struct {
|
|
ID int64
|
|
AccessHash int64
|
|
FileReference []byte
|
|
Date int32
|
|
MimeType string
|
|
Size int64
|
|
DcID int32
|
|
AttributesJson string
|
|
ThumbsJson string
|
|
}
|
|
|
|
func (q *Queries) GetDocument(ctx context.Context, id int64) (GetDocumentRow, error) {
|
|
row := q.db.QueryRow(ctx, getDocument, id)
|
|
var i GetDocumentRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.AccessHash,
|
|
&i.FileReference,
|
|
&i.Date,
|
|
&i.MimeType,
|
|
&i.Size,
|
|
&i.DcID,
|
|
&i.AttributesJson,
|
|
&i.ThumbsJson,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getDocuments = `-- name: GetDocuments :many
|
|
SELECT id, access_hash, file_reference, date, mime_type, size, dc_id,
|
|
attributes::text AS attributes_json,
|
|
thumbs::text AS thumbs_json
|
|
FROM documents
|
|
WHERE id = ANY($1::bigint[])
|
|
`
|
|
|
|
type GetDocumentsRow struct {
|
|
ID int64
|
|
AccessHash int64
|
|
FileReference []byte
|
|
Date int32
|
|
MimeType string
|
|
Size int64
|
|
DcID int32
|
|
AttributesJson string
|
|
ThumbsJson string
|
|
}
|
|
|
|
func (q *Queries) GetDocuments(ctx context.Context, ids []int64) ([]GetDocumentsRow, error) {
|
|
rows, err := q.db.Query(ctx, getDocuments, ids)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []GetDocumentsRow
|
|
for rows.Next() {
|
|
var i GetDocumentsRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.AccessHash,
|
|
&i.FileReference,
|
|
&i.Date,
|
|
&i.MimeType,
|
|
&i.Size,
|
|
&i.DcID,
|
|
&i.AttributesJson,
|
|
&i.ThumbsJson,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const getFileBlob = `-- name: GetFileBlob :one
|
|
SELECT location_key, backend, object_key, size, sha256, mime_type
|
|
FROM file_blobs
|
|
WHERE location_key = $1::text
|
|
`
|
|
|
|
type GetFileBlobRow struct {
|
|
LocationKey string
|
|
Backend string
|
|
ObjectKey string
|
|
Size int64
|
|
Sha256 []byte
|
|
MimeType string
|
|
}
|
|
|
|
func (q *Queries) GetFileBlob(ctx context.Context, locationKey string) (GetFileBlobRow, error) {
|
|
row := q.db.QueryRow(ctx, getFileBlob, locationKey)
|
|
var i GetFileBlobRow
|
|
err := row.Scan(
|
|
&i.LocationKey,
|
|
&i.Backend,
|
|
&i.ObjectKey,
|
|
&i.Size,
|
|
&i.Sha256,
|
|
&i.MimeType,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getPhoto = `-- name: GetPhoto :one
|
|
SELECT id, access_hash, file_reference, date, dc_id, has_stickers,
|
|
sizes::text AS sizes_json
|
|
FROM photos
|
|
WHERE id = $1::bigint
|
|
`
|
|
|
|
type GetPhotoRow struct {
|
|
ID int64
|
|
AccessHash int64
|
|
FileReference []byte
|
|
Date int32
|
|
DcID int32
|
|
HasStickers bool
|
|
SizesJson string
|
|
}
|
|
|
|
func (q *Queries) GetPhoto(ctx context.Context, id int64) (GetPhotoRow, error) {
|
|
row := q.db.QueryRow(ctx, getPhoto, id)
|
|
var i GetPhotoRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.AccessHash,
|
|
&i.FileReference,
|
|
&i.Date,
|
|
&i.DcID,
|
|
&i.HasStickers,
|
|
&i.SizesJson,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getStickerSetByID = `-- name: GetStickerSetByID :one
|
|
SELECT
|
|
id, access_hash, short_name, title, count, hash, set_kind,
|
|
official, animated, videos, emojis, masks, installed, archived, installed_date,
|
|
thumb_document_id, thumbs::text AS thumbs_json, thumb_dc_id, thumb_version,
|
|
document_ids::text AS document_ids_json, packs::text AS packs_json, sort_order, system_key
|
|
FROM sticker_sets
|
|
WHERE id = $1::bigint
|
|
`
|
|
|
|
type GetStickerSetByIDRow struct {
|
|
ID int64
|
|
AccessHash int64
|
|
ShortName string
|
|
Title string
|
|
Count int32
|
|
Hash int32
|
|
SetKind string
|
|
Official bool
|
|
Animated bool
|
|
Videos bool
|
|
Emojis bool
|
|
Masks bool
|
|
Installed bool
|
|
Archived bool
|
|
InstalledDate int32
|
|
ThumbDocumentID int64
|
|
ThumbsJson string
|
|
ThumbDcID int32
|
|
ThumbVersion int32
|
|
DocumentIdsJson string
|
|
PacksJson string
|
|
SortOrder int32
|
|
SystemKey string
|
|
}
|
|
|
|
func (q *Queries) GetStickerSetByID(ctx context.Context, id int64) (GetStickerSetByIDRow, error) {
|
|
row := q.db.QueryRow(ctx, getStickerSetByID, id)
|
|
var i GetStickerSetByIDRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.AccessHash,
|
|
&i.ShortName,
|
|
&i.Title,
|
|
&i.Count,
|
|
&i.Hash,
|
|
&i.SetKind,
|
|
&i.Official,
|
|
&i.Animated,
|
|
&i.Videos,
|
|
&i.Emojis,
|
|
&i.Masks,
|
|
&i.Installed,
|
|
&i.Archived,
|
|
&i.InstalledDate,
|
|
&i.ThumbDocumentID,
|
|
&i.ThumbsJson,
|
|
&i.ThumbDcID,
|
|
&i.ThumbVersion,
|
|
&i.DocumentIdsJson,
|
|
&i.PacksJson,
|
|
&i.SortOrder,
|
|
&i.SystemKey,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getStickerSetByShortName = `-- name: GetStickerSetByShortName :one
|
|
SELECT
|
|
id, access_hash, short_name, title, count, hash, set_kind,
|
|
official, animated, videos, emojis, masks, installed, archived, installed_date,
|
|
thumb_document_id, thumbs::text AS thumbs_json, thumb_dc_id, thumb_version,
|
|
document_ids::text AS document_ids_json, packs::text AS packs_json, sort_order, system_key
|
|
FROM sticker_sets
|
|
WHERE short_name = $1::text
|
|
`
|
|
|
|
type GetStickerSetByShortNameRow struct {
|
|
ID int64
|
|
AccessHash int64
|
|
ShortName string
|
|
Title string
|
|
Count int32
|
|
Hash int32
|
|
SetKind string
|
|
Official bool
|
|
Animated bool
|
|
Videos bool
|
|
Emojis bool
|
|
Masks bool
|
|
Installed bool
|
|
Archived bool
|
|
InstalledDate int32
|
|
ThumbDocumentID int64
|
|
ThumbsJson string
|
|
ThumbDcID int32
|
|
ThumbVersion int32
|
|
DocumentIdsJson string
|
|
PacksJson string
|
|
SortOrder int32
|
|
SystemKey string
|
|
}
|
|
|
|
func (q *Queries) GetStickerSetByShortName(ctx context.Context, shortName string) (GetStickerSetByShortNameRow, error) {
|
|
row := q.db.QueryRow(ctx, getStickerSetByShortName, shortName)
|
|
var i GetStickerSetByShortNameRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.AccessHash,
|
|
&i.ShortName,
|
|
&i.Title,
|
|
&i.Count,
|
|
&i.Hash,
|
|
&i.SetKind,
|
|
&i.Official,
|
|
&i.Animated,
|
|
&i.Videos,
|
|
&i.Emojis,
|
|
&i.Masks,
|
|
&i.Installed,
|
|
&i.Archived,
|
|
&i.InstalledDate,
|
|
&i.ThumbDocumentID,
|
|
&i.ThumbsJson,
|
|
&i.ThumbDcID,
|
|
&i.ThumbVersion,
|
|
&i.DocumentIdsJson,
|
|
&i.PacksJson,
|
|
&i.SortOrder,
|
|
&i.SystemKey,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getStickerSetBySystemKey = `-- name: GetStickerSetBySystemKey :one
|
|
SELECT
|
|
id, access_hash, short_name, title, count, hash, set_kind,
|
|
official, animated, videos, emojis, masks, installed, archived, installed_date,
|
|
thumb_document_id, thumbs::text AS thumbs_json, thumb_dc_id, thumb_version,
|
|
document_ids::text AS document_ids_json, packs::text AS packs_json, sort_order, system_key
|
|
FROM sticker_sets
|
|
WHERE system_key = $1::text
|
|
`
|
|
|
|
type GetStickerSetBySystemKeyRow struct {
|
|
ID int64
|
|
AccessHash int64
|
|
ShortName string
|
|
Title string
|
|
Count int32
|
|
Hash int32
|
|
SetKind string
|
|
Official bool
|
|
Animated bool
|
|
Videos bool
|
|
Emojis bool
|
|
Masks bool
|
|
Installed bool
|
|
Archived bool
|
|
InstalledDate int32
|
|
ThumbDocumentID int64
|
|
ThumbsJson string
|
|
ThumbDcID int32
|
|
ThumbVersion int32
|
|
DocumentIdsJson string
|
|
PacksJson string
|
|
SortOrder int32
|
|
SystemKey string
|
|
}
|
|
|
|
func (q *Queries) GetStickerSetBySystemKey(ctx context.Context, systemKey string) (GetStickerSetBySystemKeyRow, error) {
|
|
row := q.db.QueryRow(ctx, getStickerSetBySystemKey, systemKey)
|
|
var i GetStickerSetBySystemKeyRow
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.AccessHash,
|
|
&i.ShortName,
|
|
&i.Title,
|
|
&i.Count,
|
|
&i.Hash,
|
|
&i.SetKind,
|
|
&i.Official,
|
|
&i.Animated,
|
|
&i.Videos,
|
|
&i.Emojis,
|
|
&i.Masks,
|
|
&i.Installed,
|
|
&i.Archived,
|
|
&i.InstalledDate,
|
|
&i.ThumbDocumentID,
|
|
&i.ThumbsJson,
|
|
&i.ThumbDcID,
|
|
&i.ThumbVersion,
|
|
&i.DocumentIdsJson,
|
|
&i.PacksJson,
|
|
&i.SortOrder,
|
|
&i.SystemKey,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const listAvailableReactions = `-- name: ListAvailableReactions :many
|
|
SELECT
|
|
reaction, title, inactive, premium,
|
|
static_icon_id, appear_animation_id, select_animation_id,
|
|
activate_animation_id, effect_animation_id, around_animation_id, center_icon_id, sort_order
|
|
FROM available_reactions
|
|
ORDER BY sort_order ASC, reaction ASC
|
|
`
|
|
|
|
func (q *Queries) ListAvailableReactions(ctx context.Context) ([]AvailableReaction, error) {
|
|
rows, err := q.db.Query(ctx, listAvailableReactions)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []AvailableReaction
|
|
for rows.Next() {
|
|
var i AvailableReaction
|
|
if err := rows.Scan(
|
|
&i.Reaction,
|
|
&i.Title,
|
|
&i.Inactive,
|
|
&i.Premium,
|
|
&i.StaticIconID,
|
|
&i.AppearAnimationID,
|
|
&i.SelectAnimationID,
|
|
&i.ActivateAnimationID,
|
|
&i.EffectAnimationID,
|
|
&i.AroundAnimationID,
|
|
&i.CenterIconID,
|
|
&i.SortOrder,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listProfilePhotos = `-- name: ListProfilePhotos :many
|
|
SELECT photo_id
|
|
FROM profile_photos
|
|
WHERE owner_peer_type = $1::text
|
|
AND owner_peer_id = $2::bigint
|
|
AND active
|
|
AND ($3::bigint <= 0 OR photo_id < $3::bigint)
|
|
ORDER BY sort_order DESC
|
|
OFFSET $4::int
|
|
LIMIT $5::int
|
|
`
|
|
|
|
type ListProfilePhotosParams struct {
|
|
OwnerPeerType string
|
|
OwnerPeerID int64
|
|
MaxID int64
|
|
OffsetCount int32
|
|
LimitCount int32
|
|
}
|
|
|
|
func (q *Queries) ListProfilePhotos(ctx context.Context, arg ListProfilePhotosParams) ([]int64, error) {
|
|
rows, err := q.db.Query(ctx, listProfilePhotos,
|
|
arg.OwnerPeerType,
|
|
arg.OwnerPeerID,
|
|
arg.MaxID,
|
|
arg.OffsetCount,
|
|
arg.LimitCount,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []int64
|
|
for rows.Next() {
|
|
var photo_id int64
|
|
if err := rows.Scan(&photo_id); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, photo_id)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listStickerSetsByKind = `-- name: ListStickerSetsByKind :many
|
|
SELECT
|
|
id, access_hash, short_name, title, count, hash, set_kind,
|
|
official, animated, videos, emojis, masks, installed, archived, installed_date,
|
|
thumb_document_id, thumbs::text AS thumbs_json, thumb_dc_id, thumb_version,
|
|
document_ids::text AS document_ids_json, packs::text AS packs_json, sort_order, system_key
|
|
FROM sticker_sets
|
|
WHERE set_kind = $1::text
|
|
ORDER BY sort_order ASC, id ASC
|
|
`
|
|
|
|
type ListStickerSetsByKindRow struct {
|
|
ID int64
|
|
AccessHash int64
|
|
ShortName string
|
|
Title string
|
|
Count int32
|
|
Hash int32
|
|
SetKind string
|
|
Official bool
|
|
Animated bool
|
|
Videos bool
|
|
Emojis bool
|
|
Masks bool
|
|
Installed bool
|
|
Archived bool
|
|
InstalledDate int32
|
|
ThumbDocumentID int64
|
|
ThumbsJson string
|
|
ThumbDcID int32
|
|
ThumbVersion int32
|
|
DocumentIdsJson string
|
|
PacksJson string
|
|
SortOrder int32
|
|
SystemKey string
|
|
}
|
|
|
|
func (q *Queries) ListStickerSetsByKind(ctx context.Context, setKind string) ([]ListStickerSetsByKindRow, error) {
|
|
rows, err := q.db.Query(ctx, listStickerSetsByKind, setKind)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []ListStickerSetsByKindRow
|
|
for rows.Next() {
|
|
var i ListStickerSetsByKindRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.AccessHash,
|
|
&i.ShortName,
|
|
&i.Title,
|
|
&i.Count,
|
|
&i.Hash,
|
|
&i.SetKind,
|
|
&i.Official,
|
|
&i.Animated,
|
|
&i.Videos,
|
|
&i.Emojis,
|
|
&i.Masks,
|
|
&i.Installed,
|
|
&i.Archived,
|
|
&i.InstalledDate,
|
|
&i.ThumbDocumentID,
|
|
&i.ThumbsJson,
|
|
&i.ThumbDcID,
|
|
&i.ThumbVersion,
|
|
&i.DocumentIdsJson,
|
|
&i.PacksJson,
|
|
&i.SortOrder,
|
|
&i.SystemKey,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listUploadParts = `-- name: ListUploadParts :many
|
|
SELECT part, total_parts, is_big, bytes
|
|
FROM upload_parts
|
|
WHERE owner_user_id = $1::bigint
|
|
AND file_id = $2::bigint
|
|
ORDER BY part ASC
|
|
`
|
|
|
|
type ListUploadPartsParams struct {
|
|
OwnerUserID int64
|
|
FileID int64
|
|
}
|
|
|
|
type ListUploadPartsRow struct {
|
|
Part int32
|
|
TotalParts int32
|
|
IsBig bool
|
|
Bytes []byte
|
|
}
|
|
|
|
func (q *Queries) ListUploadParts(ctx context.Context, arg ListUploadPartsParams) ([]ListUploadPartsRow, error) {
|
|
rows, err := q.db.Query(ctx, listUploadParts, arg.OwnerUserID, arg.FileID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []ListUploadPartsRow
|
|
for rows.Next() {
|
|
var i ListUploadPartsRow
|
|
if err := rows.Scan(
|
|
&i.Part,
|
|
&i.TotalParts,
|
|
&i.IsBig,
|
|
&i.Bytes,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const nextProfilePhotoOrder = `-- name: NextProfilePhotoOrder :one
|
|
SELECT COALESCE(MAX(sort_order), 0)::bigint AS max_order
|
|
FROM profile_photos
|
|
WHERE owner_peer_type = $1::text
|
|
AND owner_peer_id = $2::bigint
|
|
`
|
|
|
|
type NextProfilePhotoOrderParams struct {
|
|
OwnerPeerType string
|
|
OwnerPeerID int64
|
|
}
|
|
|
|
func (q *Queries) NextProfilePhotoOrder(ctx context.Context, arg NextProfilePhotoOrderParams) (int64, error) {
|
|
row := q.db.QueryRow(ctx, nextProfilePhotoOrder, arg.OwnerPeerType, arg.OwnerPeerID)
|
|
var max_order int64
|
|
err := row.Scan(&max_order)
|
|
return max_order, err
|
|
}
|
|
|
|
const putAvailableReaction = `-- name: PutAvailableReaction :exec
|
|
|
|
INSERT INTO available_reactions (
|
|
reaction, title, inactive, premium,
|
|
static_icon_id, appear_animation_id, select_animation_id,
|
|
activate_animation_id, effect_animation_id, around_animation_id, center_icon_id, sort_order
|
|
) VALUES (
|
|
$1::text,
|
|
$2::text,
|
|
$3::boolean,
|
|
$4::boolean,
|
|
$5::bigint,
|
|
$6::bigint,
|
|
$7::bigint,
|
|
$8::bigint,
|
|
$9::bigint,
|
|
$10::bigint,
|
|
$11::bigint,
|
|
$12::int
|
|
)
|
|
ON CONFLICT (reaction) DO UPDATE SET
|
|
title = EXCLUDED.title,
|
|
inactive = EXCLUDED.inactive,
|
|
premium = EXCLUDED.premium,
|
|
static_icon_id = EXCLUDED.static_icon_id,
|
|
appear_animation_id = EXCLUDED.appear_animation_id,
|
|
select_animation_id = EXCLUDED.select_animation_id,
|
|
activate_animation_id = EXCLUDED.activate_animation_id,
|
|
effect_animation_id = EXCLUDED.effect_animation_id,
|
|
around_animation_id = EXCLUDED.around_animation_id,
|
|
center_icon_id = EXCLUDED.center_icon_id,
|
|
sort_order = EXCLUDED.sort_order
|
|
`
|
|
|
|
type PutAvailableReactionParams struct {
|
|
Reaction string
|
|
Title string
|
|
Inactive bool
|
|
Premium bool
|
|
StaticIconID int64
|
|
AppearAnimationID int64
|
|
SelectAnimationID int64
|
|
ActivateAnimationID int64
|
|
EffectAnimationID int64
|
|
AroundAnimationID int64
|
|
CenterIconID int64
|
|
SortOrder int32
|
|
}
|
|
|
|
// available_reactions ---------------------------------------------------------
|
|
func (q *Queries) PutAvailableReaction(ctx context.Context, arg PutAvailableReactionParams) error {
|
|
_, err := q.db.Exec(ctx, putAvailableReaction,
|
|
arg.Reaction,
|
|
arg.Title,
|
|
arg.Inactive,
|
|
arg.Premium,
|
|
arg.StaticIconID,
|
|
arg.AppearAnimationID,
|
|
arg.SelectAnimationID,
|
|
arg.ActivateAnimationID,
|
|
arg.EffectAnimationID,
|
|
arg.AroundAnimationID,
|
|
arg.CenterIconID,
|
|
arg.SortOrder,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const putDocument = `-- name: PutDocument :exec
|
|
|
|
INSERT INTO documents (id, access_hash, file_reference, date, mime_type, size, dc_id, attributes, thumbs)
|
|
VALUES (
|
|
$1::bigint,
|
|
$2::bigint,
|
|
$3::bytea,
|
|
$4::int,
|
|
$5::text,
|
|
$6::bigint,
|
|
$7::int,
|
|
$8::jsonb,
|
|
$9::jsonb
|
|
)
|
|
ON CONFLICT (id) DO UPDATE SET
|
|
access_hash = EXCLUDED.access_hash,
|
|
file_reference = EXCLUDED.file_reference,
|
|
date = EXCLUDED.date,
|
|
mime_type = EXCLUDED.mime_type,
|
|
size = EXCLUDED.size,
|
|
dc_id = EXCLUDED.dc_id,
|
|
attributes = EXCLUDED.attributes,
|
|
thumbs = EXCLUDED.thumbs
|
|
`
|
|
|
|
type PutDocumentParams struct {
|
|
ID int64
|
|
AccessHash int64
|
|
FileReference []byte
|
|
Date int32
|
|
MimeType string
|
|
Size int64
|
|
DcID int32
|
|
AttributesJson []byte
|
|
ThumbsJson []byte
|
|
}
|
|
|
|
// documents -------------------------------------------------------------------
|
|
func (q *Queries) PutDocument(ctx context.Context, arg PutDocumentParams) error {
|
|
_, err := q.db.Exec(ctx, putDocument,
|
|
arg.ID,
|
|
arg.AccessHash,
|
|
arg.FileReference,
|
|
arg.Date,
|
|
arg.MimeType,
|
|
arg.Size,
|
|
arg.DcID,
|
|
arg.AttributesJson,
|
|
arg.ThumbsJson,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const putFileBlob = `-- name: PutFileBlob :exec
|
|
|
|
INSERT INTO file_blobs (location_key, backend, object_key, size, sha256, mime_type)
|
|
VALUES (
|
|
$1::text,
|
|
$2::text,
|
|
$3::text,
|
|
$4::bigint,
|
|
$5::bytea,
|
|
$6::text
|
|
)
|
|
ON CONFLICT (location_key) DO UPDATE SET
|
|
backend = EXCLUDED.backend,
|
|
object_key = EXCLUDED.object_key,
|
|
size = EXCLUDED.size,
|
|
sha256 = EXCLUDED.sha256,
|
|
mime_type = EXCLUDED.mime_type
|
|
`
|
|
|
|
type PutFileBlobParams struct {
|
|
LocationKey string
|
|
Backend string
|
|
ObjectKey string
|
|
Size int64
|
|
Sha256 []byte
|
|
MimeType string
|
|
}
|
|
|
|
// file_blobs ------------------------------------------------------------------
|
|
func (q *Queries) PutFileBlob(ctx context.Context, arg PutFileBlobParams) error {
|
|
_, err := q.db.Exec(ctx, putFileBlob,
|
|
arg.LocationKey,
|
|
arg.Backend,
|
|
arg.ObjectKey,
|
|
arg.Size,
|
|
arg.Sha256,
|
|
arg.MimeType,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const putPhoto = `-- name: PutPhoto :exec
|
|
|
|
INSERT INTO photos (id, access_hash, file_reference, date, dc_id, has_stickers, sizes)
|
|
VALUES (
|
|
$1::bigint,
|
|
$2::bigint,
|
|
$3::bytea,
|
|
$4::int,
|
|
$5::int,
|
|
$6::boolean,
|
|
$7::jsonb
|
|
)
|
|
ON CONFLICT (id) DO UPDATE SET
|
|
access_hash = EXCLUDED.access_hash,
|
|
file_reference = EXCLUDED.file_reference,
|
|
date = EXCLUDED.date,
|
|
dc_id = EXCLUDED.dc_id,
|
|
has_stickers = EXCLUDED.has_stickers,
|
|
sizes = EXCLUDED.sizes
|
|
`
|
|
|
|
type PutPhotoParams struct {
|
|
ID int64
|
|
AccessHash int64
|
|
FileReference []byte
|
|
Date int32
|
|
DcID int32
|
|
HasStickers bool
|
|
SizesJson []byte
|
|
}
|
|
|
|
// photos ----------------------------------------------------------------------
|
|
func (q *Queries) PutPhoto(ctx context.Context, arg PutPhotoParams) error {
|
|
_, err := q.db.Exec(ctx, putPhoto,
|
|
arg.ID,
|
|
arg.AccessHash,
|
|
arg.FileReference,
|
|
arg.Date,
|
|
arg.DcID,
|
|
arg.HasStickers,
|
|
arg.SizesJson,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const putStickerSet = `-- name: PutStickerSet :exec
|
|
|
|
INSERT INTO sticker_sets (
|
|
id, access_hash, short_name, title, count, hash, set_kind,
|
|
official, animated, videos, emojis, masks, installed, archived, installed_date,
|
|
thumb_document_id, thumbs, thumb_dc_id, thumb_version, document_ids, packs, sort_order, system_key
|
|
) VALUES (
|
|
$1::bigint,
|
|
$2::bigint,
|
|
$3::text,
|
|
$4::text,
|
|
$5::int,
|
|
$6::int,
|
|
$7::text,
|
|
$8::boolean,
|
|
$9::boolean,
|
|
$10::boolean,
|
|
$11::boolean,
|
|
$12::boolean,
|
|
$13::boolean,
|
|
$14::boolean,
|
|
$15::int,
|
|
$16::bigint,
|
|
$17::jsonb,
|
|
$18::int,
|
|
$19::int,
|
|
$20::jsonb,
|
|
$21::jsonb,
|
|
$22::int,
|
|
$23::text
|
|
)
|
|
ON CONFLICT (id) DO UPDATE SET
|
|
access_hash = EXCLUDED.access_hash,
|
|
short_name = EXCLUDED.short_name,
|
|
title = EXCLUDED.title,
|
|
count = EXCLUDED.count,
|
|
hash = EXCLUDED.hash,
|
|
set_kind = EXCLUDED.set_kind,
|
|
official = EXCLUDED.official,
|
|
animated = EXCLUDED.animated,
|
|
videos = EXCLUDED.videos,
|
|
emojis = EXCLUDED.emojis,
|
|
masks = EXCLUDED.masks,
|
|
installed = EXCLUDED.installed,
|
|
archived = EXCLUDED.archived,
|
|
installed_date = EXCLUDED.installed_date,
|
|
thumb_document_id = EXCLUDED.thumb_document_id,
|
|
thumbs = EXCLUDED.thumbs,
|
|
thumb_dc_id = EXCLUDED.thumb_dc_id,
|
|
thumb_version = EXCLUDED.thumb_version,
|
|
document_ids = EXCLUDED.document_ids,
|
|
packs = EXCLUDED.packs,
|
|
sort_order = EXCLUDED.sort_order,
|
|
system_key = EXCLUDED.system_key
|
|
`
|
|
|
|
type PutStickerSetParams struct {
|
|
ID int64
|
|
AccessHash int64
|
|
ShortName string
|
|
Title string
|
|
Count int32
|
|
Hash int32
|
|
SetKind string
|
|
Official bool
|
|
Animated bool
|
|
Videos bool
|
|
Emojis bool
|
|
Masks bool
|
|
Installed bool
|
|
Archived bool
|
|
InstalledDate int32
|
|
ThumbDocumentID int64
|
|
ThumbsJson []byte
|
|
ThumbDcID int32
|
|
ThumbVersion int32
|
|
DocumentIdsJson []byte
|
|
PacksJson []byte
|
|
SortOrder int32
|
|
SystemKey string
|
|
}
|
|
|
|
// sticker_sets ----------------------------------------------------------------
|
|
func (q *Queries) PutStickerSet(ctx context.Context, arg PutStickerSetParams) error {
|
|
_, err := q.db.Exec(ctx, putStickerSet,
|
|
arg.ID,
|
|
arg.AccessHash,
|
|
arg.ShortName,
|
|
arg.Title,
|
|
arg.Count,
|
|
arg.Hash,
|
|
arg.SetKind,
|
|
arg.Official,
|
|
arg.Animated,
|
|
arg.Videos,
|
|
arg.Emojis,
|
|
arg.Masks,
|
|
arg.Installed,
|
|
arg.Archived,
|
|
arg.InstalledDate,
|
|
arg.ThumbDocumentID,
|
|
arg.ThumbsJson,
|
|
arg.ThumbDcID,
|
|
arg.ThumbVersion,
|
|
arg.DocumentIdsJson,
|
|
arg.PacksJson,
|
|
arg.SortOrder,
|
|
arg.SystemKey,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const saveUploadPart = `-- name: SaveUploadPart :exec
|
|
|
|
INSERT INTO upload_parts (owner_user_id, file_id, part, total_parts, is_big, bytes)
|
|
VALUES (
|
|
$1::bigint,
|
|
$2::bigint,
|
|
$3::int,
|
|
$4::int,
|
|
$5::boolean,
|
|
$6::bytea
|
|
)
|
|
ON CONFLICT (owner_user_id, file_id, part) DO UPDATE SET
|
|
total_parts = EXCLUDED.total_parts,
|
|
is_big = EXCLUDED.is_big,
|
|
bytes = EXCLUDED.bytes
|
|
`
|
|
|
|
type SaveUploadPartParams struct {
|
|
OwnerUserID int64
|
|
FileID int64
|
|
Part int32
|
|
TotalParts int32
|
|
IsBig bool
|
|
Bytes []byte
|
|
}
|
|
|
|
// upload_parts ----------------------------------------------------------------
|
|
func (q *Queries) SaveUploadPart(ctx context.Context, arg SaveUploadPartParams) error {
|
|
_, err := q.db.Exec(ctx, saveUploadPart,
|
|
arg.OwnerUserID,
|
|
arg.FileID,
|
|
arg.Part,
|
|
arg.TotalParts,
|
|
arg.IsBig,
|
|
arg.Bytes,
|
|
)
|
|
return err
|
|
}
|