// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: media.sql package sqlcgen import ( "context" "github.com/jackc/pgx/v5/pgtype" ) 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 deleteExpiredUploadParts = `-- name: DeleteExpiredUploadParts :many WITH doomed AS ( SELECT owner_user_id, file_id, part FROM upload_parts WHERE created_at < $1::timestamptz ORDER BY created_at ASC LIMIT $2::int ) DELETE FROM upload_parts p USING doomed d WHERE p.owner_user_id = d.owner_user_id AND p.file_id = d.file_id AND p.part = d.part RETURNING p.object_key ` type DeleteExpiredUploadPartsParams struct { Before pgtype.Timestamptz BatchLimit int32 } func (q *Queries) DeleteExpiredUploadParts(ctx context.Context, arg DeleteExpiredUploadPartsParams) ([]string, error) { rows, err := q.db.Query(ctx, deleteExpiredUploadParts, arg.Before, arg.BatchLimit) if err != nil { return nil, err } defer rows.Close() var items []string for rows.Next() { var object_key string if err := rows.Scan(&object_key); err != nil { return nil, err } items = append(items, object_key) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const deleteUploadParts = `-- name: DeleteUploadParts :many DELETE FROM upload_parts WHERE owner_user_id = $1::bigint AND file_id = $2::bigint RETURNING object_key ` type DeleteUploadPartsParams struct { OwnerUserID int64 FileID int64 } func (q *Queries) DeleteUploadParts(ctx context.Context, arg DeleteUploadPartsParams) ([]string, error) { rows, err := q.db.Query(ctx, deleteUploadParts, arg.OwnerUserID, arg.FileID) if err != nil { return nil, err } defer rows.Close() var items []string for rows.Next() { var object_key string if err := rows.Scan(&object_key); err != nil { return nil, err } items = append(items, object_key) } if err := rows.Err(); err != nil { return nil, err } return items, nil } 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 getUploadPartSlot = `-- name: GetUploadPartSlot :one SELECT COALESCE(( SELECT size FROM upload_parts WHERE owner_user_id = $1::bigint AND file_id = $2::bigint AND part = $3::int ), -1)::bigint AS existing_bytes, COALESCE(( SELECT object_key FROM upload_parts WHERE owner_user_id = $1::bigint AND file_id = $2::bigint AND part = $3::int ), '')::text AS object_key, ( SELECT COUNT(*)::int FROM upload_parts WHERE owner_user_id = $1::bigint AND file_id = $2::bigint )::int AS file_parts ` type GetUploadPartSlotParams struct { OwnerUserID int64 FileID int64 Part int32 } type GetUploadPartSlotRow struct { ExistingBytes int64 ObjectKey string FileParts int32 } func (q *Queries) GetUploadPartSlot(ctx context.Context, arg GetUploadPartSlotParams) (GetUploadPartSlotRow, error) { row := q.db.QueryRow(ctx, getUploadPartSlot, arg.OwnerUserID, arg.FileID, arg.Part) var i GetUploadPartSlotRow err := row.Scan(&i.ExistingBytes, &i.ObjectKey, &i.FileParts) return i, err } const getUploadPartUsage = `-- name: GetUploadPartUsage :one SELECT COALESCE(SUM(size), 0)::bigint AS bytes, COUNT(*)::int AS parts, COUNT(DISTINCT file_id)::int AS files FROM upload_parts WHERE owner_user_id = $1::bigint ` type GetUploadPartUsageRow struct { Bytes int64 Parts int32 Files int32 } func (q *Queries) GetUploadPartUsage(ctx context.Context, ownerUserID int64) (GetUploadPartUsageRow, error) { row := q.db.QueryRow(ctx, getUploadPartUsage, ownerUserID) var i GetUploadPartUsageRow err := row.Scan(&i.Bytes, &i.Parts, &i.Files) 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, backend, object_key, size, sha256 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 Backend string ObjectKey string Size int64 Sha256 []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.Backend, &i.ObjectKey, &i.Size, &i.Sha256, ); 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, backend, object_key, size, sha256) VALUES ( $1::bigint, $2::bigint, $3::int, $4::int, $5::boolean, $6::text, $7::text, $8::bigint, $9::bytea ) ON CONFLICT (owner_user_id, file_id, part) DO UPDATE SET total_parts = EXCLUDED.total_parts, is_big = EXCLUDED.is_big, backend = EXCLUDED.backend, object_key = EXCLUDED.object_key, size = EXCLUDED.size, sha256 = EXCLUDED.sha256, created_at = now() ` type SaveUploadPartParams struct { OwnerUserID int64 FileID int64 Part int32 TotalParts int32 IsBig bool Backend string ObjectKey string Size int64 Sha256 []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.Backend, arg.ObjectKey, arg.Size, arg.Sha256, ) return err }