feat: ftime logic for usertitle is changed

This commit is contained in:
Iron_Felix 2025-12-06 05:18:23 +03:00
parent 5acc53ec9d
commit 00894f4526
12 changed files with 113 additions and 35 deletions

View file

@ -170,17 +170,4 @@ EXECUTE FUNCTION update_title_rating();
CREATE TRIGGER trg_notify_new_signal
AFTER INSERT ON signals
FOR EACH ROW
EXECUTE FUNCTION notify_new_signal();
CREATE OR REPLACE FUNCTION set_ctime()
RETURNS TRIGGER AS $$
BEGIN
NEW.ctime = now();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER set_ctime_on_update
BEFORE UPDATE ON usertitles
FOR EACH ROW
EXECUTE FUNCTION set_ctime();
EXECUTE FUNCTION notify_new_signal();

View file

@ -9,6 +9,8 @@ import (
"context"
"encoding/json"
"time"
"github.com/jackc/pgx/v5/pgtype"
)
const createImage = `-- name: CreateImage :one
@ -394,23 +396,25 @@ func (q *Queries) InsertTitleTags(ctx context.Context, arg InsertTitleTagsParams
}
const insertUserTitle = `-- name: InsertUserTitle :one
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
INSERT INTO usertitles (user_id, title_id, status, rate, review_id, ctime)
VALUES (
$1::bigint,
$2::bigint,
$3::usertitle_status_t,
$4::int,
$5::bigint
$5::bigint,
$6::timestamptz
)
RETURNING user_id, title_id, status, rate, review_id, ctime
`
type InsertUserTitleParams struct {
UserID int64 `json:"user_id"`
TitleID int64 `json:"title_id"`
Status UsertitleStatusT `json:"status"`
Rate *int32 `json:"rate"`
ReviewID *int64 `json:"review_id"`
UserID int64 `json:"user_id"`
TitleID int64 `json:"title_id"`
Status UsertitleStatusT `json:"status"`
Rate *int32 `json:"rate"`
ReviewID *int64 `json:"review_id"`
Ftime pgtype.Timestamptz `json:"ftime"`
}
func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams) (Usertitle, error) {
@ -420,6 +424,7 @@ func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams
arg.Status,
arg.Rate,
arg.ReviewID,
arg.Ftime,
)
var i Usertitle
err := row.Scan(
@ -1017,18 +1022,20 @@ const updateUserTitle = `-- name: UpdateUserTitle :one
UPDATE usertitles
SET
status = COALESCE($1::usertitle_status_t, status),
rate = COALESCE($2::int, rate)
rate = COALESCE($2::int, rate),
ctime = COALESCE($3::timestamptz, ctime)
WHERE
user_id = $3
AND title_id = $4
user_id = $4
AND title_id = $5
RETURNING user_id, title_id, status, rate, review_id, ctime
`
type UpdateUserTitleParams struct {
Status *UsertitleStatusT `json:"status"`
Rate *int32 `json:"rate"`
UserID int64 `json:"user_id"`
TitleID int64 `json:"title_id"`
Status *UsertitleStatusT `json:"status"`
Rate *int32 `json:"rate"`
Ftime pgtype.Timestamptz `json:"ftime"`
UserID int64 `json:"user_id"`
TitleID int64 `json:"title_id"`
}
// Fails with sql.ErrNoRows if (user_id, title_id) not found
@ -1036,6 +1043,7 @@ func (q *Queries) UpdateUserTitle(ctx context.Context, arg UpdateUserTitleParams
row := q.db.QueryRow(ctx, updateUserTitle,
arg.Status,
arg.Rate,
arg.Ftime,
arg.UserID,
arg.TitleID,
)