Refactor DocumentSignaturesTab to DocumentSignaturesPage + fix count bug

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-01-27 15:46:59 +04:00
parent fb09bed247
commit 7c721e5ff7
42 changed files with 2661 additions and 1361 deletions

View File

@@ -51,6 +51,7 @@ type (
DocumentVersionSignaturesWithPeople []*DocumentVersionSignatureWithPeople
)
func (pvs DocumentVersionSignature) CursorKey(orderBy DocumentVersionSignatureOrderField) page.CursorKey {
switch orderBy {
case DocumentVersionSignatureOrderFieldCreatedAt:
@@ -447,3 +448,36 @@ SELECT EXISTS (
return signed, nil
}
func (dvs *DocumentVersionSignatures) CountByDocumentVersionID(
ctx context.Context,
conn pg.Conn,
scope Scoper,
documentVersionID gid.GID,
filter *DocumentVersionSignatureFilter,
) (int, error) {
q := `
SELECT
COUNT(id)
FROM
document_version_signatures
WHERE
%s
AND document_version_id = @document_version_id
AND %s
`
q = fmt.Sprintf(q, scope.SQLFragment(), filter.SQLFragment())
args := pgx.NamedArgs{"document_version_id": documentVersionID}
maps.Copy(args, scope.SQLArguments())
maps.Copy(args, filter.SQLArguments())
row := conn.QueryRow(ctx, q, args)
var count int
if err := row.Scan(&count); err != nil {
return 0, fmt.Errorf("cannot scan count: %w", err)
}
return count, nil
}