delete colum privilegeID bigint from quiz_privilege_usage

This commit is contained in:
pasha1coil 2025-06-23 14:05:01 +03:00 committed by skeris
parent ecf079fa1e
commit b191bb2ca0
6 changed files with 59 additions and 74 deletions

@ -1478,16 +1478,16 @@ UPDATE quiz_utm set deleted = true where id = $1;
-- name: GetQuizPrivilegeUsage :one -- name: GetQuizPrivilegeUsage :one
SELECT * FROM quiz_privilege_usage SELECT * FROM quiz_privilege_usage
WHERE quiz_id = $1 AND privilege_id = $2 AND privilege_id_str = $3 LIMIT 1; WHERE quiz_id = $1 AND privilege_id = $2 LIMIT 1;
-- name: InsertQuizPrivilegeUsage :one -- name: InsertQuizPrivilegeUsage :one
INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, privilege_id_str, used_count) INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, used_count)
VALUES ($1, $2, $3, 1) RETURNING *; VALUES ($1, $2, 1) RETURNING *;
-- name: IncrementQuizPrivilegeUsage :exec -- name: IncrementQuizPrivilegeUsage :exec
UPDATE quiz_privilege_usage SET used_count = used_count + 1, updated_at = CURRENT_TIMESTAMP UPDATE quiz_privilege_usage SET used_count = used_count + 1, updated_at = CURRENT_TIMESTAMP
WHERE quiz_id = $1 AND privilege_id = $2 AND privilege_id_str = $3; WHERE quiz_id = $1 AND privilege_id = $2;
-- name: ResetQuizPrivilegeUsageCount :exec -- name: ResetQuizPrivilegeUsageCount :exec
UPDATE quiz_privilege_usage SET used_count = 0, updated_at = CURRENT_TIMESTAMP UPDATE quiz_privilege_usage SET used_count = 0, updated_at = CURRENT_TIMESTAMP
WHERE quiz_id = $1 AND privilege_id = $2 AND privilege_id_str = $3; WHERE quiz_id = $1 AND privilege_id = $2;

@ -1,11 +1,10 @@
CREATE TABLE quiz_privilege_usage ( CREATE TABLE quiz_privilege_usage (
id bigserial UNIQUE NOT NULL PRIMARY KEY, id bigserial UNIQUE NOT NULL PRIMARY KEY,
quiz_id BIGINT NOT NULL REFERENCES quiz(id) ON DELETE CASCADE, quiz_id BIGINT NOT NULL REFERENCES quiz(id) ON DELETE CASCADE,
privilege_id BIGINT NOT NULL REFERENCES privilege(id) ON DELETE CASCADE, privilege_id VARCHAR(50) NOT NULL,
privilege_id_str VARCHAR(50) NOT NULL,
used_count INT NOT NULL DEFAULT 0, used_count INT NOT NULL DEFAULT 0,
created_at TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP updated_at TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP
); );
CREATE UNIQUE INDEX idx_quiz_privilege_unique ON quiz_privilege_usage (quiz_id, privilege_id, privilege_id_str); CREATE UNIQUE INDEX idx_quiz_privilege_unique ON quiz_privilege_usage (quiz_id, privilege_id);

@ -262,8 +262,7 @@ type Quiz struct {
type QuizPrivilegeUsage struct { type QuizPrivilegeUsage struct {
ID int64 `db:"id" json:"id"` ID int64 `db:"id" json:"id"`
QuizID int64 `db:"quiz_id" json:"quiz_id"` QuizID int64 `db:"quiz_id" json:"quiz_id"`
PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` PrivilegeID string `db:"privilege_id" json:"privilege_id"`
PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"`
UsedCount int32 `db:"used_count" json:"used_count"` UsedCount int32 `db:"used_count" json:"used_count"`
CreatedAt time.Time `db:"created_at" json:"created_at"` CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"`

@ -3451,24 +3451,22 @@ func (q *Queries) GetQuizHistory(ctx context.Context, arg GetQuizHistoryParams)
} }
const getQuizPrivilegeUsage = `-- name: GetQuizPrivilegeUsage :one const getQuizPrivilegeUsage = `-- name: GetQuizPrivilegeUsage :one
SELECT id, quiz_id, privilege_id, privilege_id_str, used_count, created_at, updated_at FROM quiz_privilege_usage SELECT id, quiz_id, privilege_id, used_count, created_at, updated_at FROM quiz_privilege_usage
WHERE quiz_id = $1 AND privilege_id = $2 AND privilege_id_str = $3 LIMIT 1 WHERE quiz_id = $1 AND privilege_id = $2 LIMIT 1
` `
type GetQuizPrivilegeUsageParams struct { type GetQuizPrivilegeUsageParams struct {
QuizID int64 `db:"quiz_id" json:"quiz_id"` QuizID int64 `db:"quiz_id" json:"quiz_id"`
PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` PrivilegeID string `db:"privilege_id" json:"privilege_id"`
PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"`
} }
func (q *Queries) GetQuizPrivilegeUsage(ctx context.Context, arg GetQuizPrivilegeUsageParams) (QuizPrivilegeUsage, error) { func (q *Queries) GetQuizPrivilegeUsage(ctx context.Context, arg GetQuizPrivilegeUsageParams) (QuizPrivilegeUsage, error) {
row := q.db.QueryRowContext(ctx, getQuizPrivilegeUsage, arg.QuizID, arg.PrivilegeID, arg.PrivilegeIDStr) row := q.db.QueryRowContext(ctx, getQuizPrivilegeUsage, arg.QuizID, arg.PrivilegeID)
var i QuizPrivilegeUsage var i QuizPrivilegeUsage
err := row.Scan( err := row.Scan(
&i.ID, &i.ID,
&i.QuizID, &i.QuizID,
&i.PrivilegeID, &i.PrivilegeID,
&i.PrivilegeIDStr,
&i.UsedCount, &i.UsedCount,
&i.CreatedAt, &i.CreatedAt,
&i.UpdatedAt, &i.UpdatedAt,
@ -4400,17 +4398,16 @@ func (q *Queries) GettingBitrixUsersTrueResults(ctx context.Context) ([]GettingB
const incrementQuizPrivilegeUsage = `-- name: IncrementQuizPrivilegeUsage :exec const incrementQuizPrivilegeUsage = `-- name: IncrementQuizPrivilegeUsage :exec
UPDATE quiz_privilege_usage SET used_count = used_count + 1, updated_at = CURRENT_TIMESTAMP UPDATE quiz_privilege_usage SET used_count = used_count + 1, updated_at = CURRENT_TIMESTAMP
WHERE quiz_id = $1 AND privilege_id = $2 AND privilege_id_str = $3 WHERE quiz_id = $1 AND privilege_id = $2
` `
type IncrementQuizPrivilegeUsageParams struct { type IncrementQuizPrivilegeUsageParams struct {
QuizID int64 `db:"quiz_id" json:"quiz_id"` QuizID int64 `db:"quiz_id" json:"quiz_id"`
PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` PrivilegeID string `db:"privilege_id" json:"privilege_id"`
PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"`
} }
func (q *Queries) IncrementQuizPrivilegeUsage(ctx context.Context, arg IncrementQuizPrivilegeUsageParams) error { func (q *Queries) IncrementQuizPrivilegeUsage(ctx context.Context, arg IncrementQuizPrivilegeUsageParams) error {
_, err := q.db.ExecContext(ctx, incrementQuizPrivilegeUsage, arg.QuizID, arg.PrivilegeID, arg.PrivilegeIDStr) _, err := q.db.ExecContext(ctx, incrementQuizPrivilegeUsage, arg.QuizID, arg.PrivilegeID)
return err return err
} }
@ -4697,24 +4694,22 @@ func (q *Queries) InsertQuiz(ctx context.Context, arg InsertQuizParams) (InsertQ
} }
const insertQuizPrivilegeUsage = `-- name: InsertQuizPrivilegeUsage :one const insertQuizPrivilegeUsage = `-- name: InsertQuizPrivilegeUsage :one
INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, privilege_id_str, used_count) INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, used_count)
VALUES ($1, $2, $3, 1) RETURNING id, quiz_id, privilege_id, privilege_id_str, used_count, created_at, updated_at VALUES ($1, $2, 1) RETURNING id, quiz_id, privilege_id, used_count, created_at, updated_at
` `
type InsertQuizPrivilegeUsageParams struct { type InsertQuizPrivilegeUsageParams struct {
QuizID int64 `db:"quiz_id" json:"quiz_id"` QuizID int64 `db:"quiz_id" json:"quiz_id"`
PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` PrivilegeID string `db:"privilege_id" json:"privilege_id"`
PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"`
} }
func (q *Queries) InsertQuizPrivilegeUsage(ctx context.Context, arg InsertQuizPrivilegeUsageParams) (QuizPrivilegeUsage, error) { func (q *Queries) InsertQuizPrivilegeUsage(ctx context.Context, arg InsertQuizPrivilegeUsageParams) (QuizPrivilegeUsage, error) {
row := q.db.QueryRowContext(ctx, insertQuizPrivilegeUsage, arg.QuizID, arg.PrivilegeID, arg.PrivilegeIDStr) row := q.db.QueryRowContext(ctx, insertQuizPrivilegeUsage, arg.QuizID, arg.PrivilegeID)
var i QuizPrivilegeUsage var i QuizPrivilegeUsage
err := row.Scan( err := row.Scan(
&i.ID, &i.ID,
&i.QuizID, &i.QuizID,
&i.PrivilegeID, &i.PrivilegeID,
&i.PrivilegeIDStr,
&i.UsedCount, &i.UsedCount,
&i.CreatedAt, &i.CreatedAt,
&i.UpdatedAt, &i.UpdatedAt,
@ -4965,17 +4960,16 @@ func (q *Queries) QuizCopyQid(ctx context.Context, arg QuizCopyQidParams) (QuizC
const resetQuizPrivilegeUsageCount = `-- name: ResetQuizPrivilegeUsageCount :exec const resetQuizPrivilegeUsageCount = `-- name: ResetQuizPrivilegeUsageCount :exec
UPDATE quiz_privilege_usage SET used_count = 0, updated_at = CURRENT_TIMESTAMP UPDATE quiz_privilege_usage SET used_count = 0, updated_at = CURRENT_TIMESTAMP
WHERE quiz_id = $1 AND privilege_id = $2 AND privilege_id_str = $3 WHERE quiz_id = $1 AND privilege_id = $2
` `
type ResetQuizPrivilegeUsageCountParams struct { type ResetQuizPrivilegeUsageCountParams struct {
QuizID int64 `db:"quiz_id" json:"quiz_id"` QuizID int64 `db:"quiz_id" json:"quiz_id"`
PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` PrivilegeID string `db:"privilege_id" json:"privilege_id"`
PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"`
} }
func (q *Queries) ResetQuizPrivilegeUsageCount(ctx context.Context, arg ResetQuizPrivilegeUsageCountParams) error { func (q *Queries) ResetQuizPrivilegeUsageCount(ctx context.Context, arg ResetQuizPrivilegeUsageCountParams) error {
_, err := q.db.ExecContext(ctx, resetQuizPrivilegeUsageCount, arg.QuizID, arg.PrivilegeID, arg.PrivilegeIDStr) _, err := q.db.ExecContext(ctx, resetQuizPrivilegeUsageCount, arg.QuizID, arg.PrivilegeID)
return err return err
} }

@ -363,8 +363,7 @@ type QuizUTM struct {
type QuizUsagePrivilege struct { type QuizUsagePrivilege struct {
ID int64 `json:"id"` ID int64 `json:"id"`
QuizID int64 `json:"quiz_id"` QuizID int64 `json:"quiz_id"`
PrivilegeID int64 `json:"privilege_id"` PrivilegeID string `json:"privilege_id"`
PrivilegeIDStr string `json:"privilege_id_str"`
UsedCount int32 `json:"used_count"` UsedCount int32 `json:"used_count"`
CreatedAt time.Time `json:"created_at"` CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"` UpdatedAt time.Time `json:"updated_at"`

@ -810,11 +810,10 @@ func (r *QuizRepository) GetAllQuizUtms(ctx context.Context, quizID int64) ([]mo
return result, nil return result, nil
} }
func (r *QuizRepository) GetQuizPrivilegeUsage(ctx context.Context, quizID int64, privilegeID int64, privilegeIDStr string) (*model.QuizUsagePrivilege, error) { func (r *QuizRepository) GetQuizPrivilegeUsage(ctx context.Context, quizID int64, privilegeID string) (*model.QuizUsagePrivilege, error) {
usage, err := r.queries.GetQuizPrivilegeUsage(ctx, sqlcgen.GetQuizPrivilegeUsageParams{ usage, err := r.queries.GetQuizPrivilegeUsage(ctx, sqlcgen.GetQuizPrivilegeUsageParams{
QuizID: quizID, QuizID: quizID,
PrivilegeID: privilegeID, PrivilegeID: privilegeID,
PrivilegeIDStr: privilegeIDStr,
}) })
if err != nil { if err != nil {
if errors.Is(err, sql.ErrNoRows) { if errors.Is(err, sql.ErrNoRows) {
@ -826,17 +825,15 @@ func (r *QuizRepository) GetQuizPrivilegeUsage(ctx context.Context, quizID int64
ID: usage.ID, ID: usage.ID,
QuizID: usage.QuizID, QuizID: usage.QuizID,
PrivilegeID: usage.PrivilegeID, PrivilegeID: usage.PrivilegeID,
PrivilegeIDStr: usage.PrivilegeIDStr,
CreatedAt: usage.CreatedAt, CreatedAt: usage.CreatedAt,
UpdatedAt: usage.UpdatedAt, UpdatedAt: usage.UpdatedAt,
}, nil }, nil
} }
func (r *QuizRepository) InsertQuizPrivilegeUsage(ctx context.Context, quizID int64, privilegeID int64, privilegeIDStr string) (*model.QuizUsagePrivilege, error) { func (r *QuizRepository) InsertQuizPrivilegeUsage(ctx context.Context, quizID int64, privilegeID string) (*model.QuizUsagePrivilege, error) {
usage, err := r.queries.InsertQuizPrivilegeUsage(ctx, sqlcgen.InsertQuizPrivilegeUsageParams{ usage, err := r.queries.InsertQuizPrivilegeUsage(ctx, sqlcgen.InsertQuizPrivilegeUsageParams{
QuizID: quizID, QuizID: quizID,
PrivilegeID: privilegeID, PrivilegeID: privilegeID,
PrivilegeIDStr: privilegeIDStr,
}) })
if err != nil { if err != nil {
return nil, err return nil, err
@ -845,24 +842,21 @@ func (r *QuizRepository) InsertQuizPrivilegeUsage(ctx context.Context, quizID in
ID: usage.ID, ID: usage.ID,
QuizID: usage.QuizID, QuizID: usage.QuizID,
PrivilegeID: usage.PrivilegeID, PrivilegeID: usage.PrivilegeID,
PrivilegeIDStr: usage.PrivilegeIDStr,
CreatedAt: usage.CreatedAt, CreatedAt: usage.CreatedAt,
UpdatedAt: usage.UpdatedAt, UpdatedAt: usage.UpdatedAt,
}, nil }, nil
} }
func (r *QuizRepository) IncrementQuizPrivilegeUsage(ctx context.Context, quizID int64, privilegeID int64, privilegeIDStr string) error { func (r *QuizRepository) IncrementQuizPrivilegeUsage(ctx context.Context, quizID int64, privilegeID string) error {
return r.queries.IncrementQuizPrivilegeUsage(ctx, sqlcgen.IncrementQuizPrivilegeUsageParams{ return r.queries.IncrementQuizPrivilegeUsage(ctx, sqlcgen.IncrementQuizPrivilegeUsageParams{
QuizID: quizID, QuizID: quizID,
PrivilegeID: privilegeID, PrivilegeID: privilegeID,
PrivilegeIDStr: privilegeIDStr,
}) })
} }
func (r *QuizRepository) ResetQuizPrivilegeUsageCount(ctx context.Context, quizID int64, privilegeID int64, privilegeIDStr string) error { func (r *QuizRepository) ResetQuizPrivilegeUsageCount(ctx context.Context, quizID int64, privilegeID string) error {
return r.queries.ResetQuizPrivilegeUsageCount(ctx, sqlcgen.ResetQuizPrivilegeUsageCountParams{ return r.queries.ResetQuizPrivilegeUsageCount(ctx, sqlcgen.ResetQuizPrivilegeUsageCountParams{
QuizID: quizID, QuizID: quizID,
PrivilegeID: privilegeID, PrivilegeID: privilegeID,
PrivilegeIDStr: privilegeIDStr,
}) })
} }