diff --git a/dal/db_query/queries.sql b/dal/db_query/queries.sql index 4ba9c3f..0a4cfa6 100644 --- a/dal/db_query/queries.sql +++ b/dal/db_query/queries.sql @@ -1478,16 +1478,16 @@ UPDATE quiz_utm set deleted = true where id = $1; -- name: GetQuizPrivilegeUsage :one 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 -INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, privilege_id_str, used_count) -VALUES ($1, $2, $3, 1) RETURNING *; +INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, used_count) +VALUES ($1, $2, 1) RETURNING *; -- name: IncrementQuizPrivilegeUsage :exec 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 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; \ No newline at end of file +WHERE quiz_id = $1 AND privilege_id = $2; \ No newline at end of file diff --git a/dal/schema/000026_init.up.sql b/dal/schema/000026_init.up.sql index f7658d7..cc91ba5 100644 --- a/dal/schema/000026_init.up.sql +++ b/dal/schema/000026_init.up.sql @@ -1,11 +1,10 @@ CREATE TABLE quiz_privilege_usage ( id bigserial UNIQUE NOT NULL PRIMARY KEY, quiz_id BIGINT NOT NULL REFERENCES quiz(id) ON DELETE CASCADE, - privilege_id BIGINT NOT NULL REFERENCES privilege(id) ON DELETE CASCADE, - privilege_id_str VARCHAR(50) NOT NULL, + privilege_id VARCHAR(50) NOT NULL, used_count INT NOT NULL DEFAULT 0, created_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); \ No newline at end of file +CREATE UNIQUE INDEX idx_quiz_privilege_unique ON quiz_privilege_usage (quiz_id, privilege_id); \ No newline at end of file diff --git a/dal/sqlcgen/models.go b/dal/sqlcgen/models.go index baef9b4..c266b2c 100644 --- a/dal/sqlcgen/models.go +++ b/dal/sqlcgen/models.go @@ -260,13 +260,12 @@ type Quiz struct { } type QuizPrivilegeUsage struct { - ID int64 `db:"id" json:"id"` - QuizID int64 `db:"quiz_id" json:"quiz_id"` - PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` - PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"` - UsedCount int32 `db:"used_count" json:"used_count"` - CreatedAt time.Time `db:"created_at" json:"created_at"` - UpdatedAt time.Time `db:"updated_at" json:"updated_at"` + ID int64 `db:"id" json:"id"` + QuizID int64 `db:"quiz_id" json:"quiz_id"` + PrivilegeID string `db:"privilege_id" json:"privilege_id"` + UsedCount int32 `db:"used_count" json:"used_count"` + CreatedAt time.Time `db:"created_at" json:"created_at"` + UpdatedAt time.Time `db:"updated_at" json:"updated_at"` } type QuizUtm struct { diff --git a/dal/sqlcgen/queries.sql.go b/dal/sqlcgen/queries.sql.go index 58e7efb..24ed495 100644 --- a/dal/sqlcgen/queries.sql.go +++ b/dal/sqlcgen/queries.sql.go @@ -3451,24 +3451,22 @@ func (q *Queries) GetQuizHistory(ctx context.Context, arg GetQuizHistoryParams) } const getQuizPrivilegeUsage = `-- name: GetQuizPrivilegeUsage :one -SELECT id, quiz_id, privilege_id, privilege_id_str, 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 +SELECT id, quiz_id, privilege_id, used_count, created_at, updated_at FROM quiz_privilege_usage +WHERE quiz_id = $1 AND privilege_id = $2 LIMIT 1 ` type GetQuizPrivilegeUsageParams struct { - QuizID int64 `db:"quiz_id" json:"quiz_id"` - PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` - PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"` + QuizID int64 `db:"quiz_id" json:"quiz_id"` + PrivilegeID string `db:"privilege_id" json:"privilege_id"` } 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 err := row.Scan( &i.ID, &i.QuizID, &i.PrivilegeID, - &i.PrivilegeIDStr, &i.UsedCount, &i.CreatedAt, &i.UpdatedAt, @@ -4400,17 +4398,16 @@ func (q *Queries) GettingBitrixUsersTrueResults(ctx context.Context) ([]GettingB const incrementQuizPrivilegeUsage = `-- name: IncrementQuizPrivilegeUsage :exec 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 { - QuizID int64 `db:"quiz_id" json:"quiz_id"` - PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` - PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"` + QuizID int64 `db:"quiz_id" json:"quiz_id"` + PrivilegeID string `db:"privilege_id" json:"privilege_id"` } 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 } @@ -4697,24 +4694,22 @@ func (q *Queries) InsertQuiz(ctx context.Context, arg InsertQuizParams) (InsertQ } const insertQuizPrivilegeUsage = `-- name: InsertQuizPrivilegeUsage :one -INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, privilege_id_str, used_count) -VALUES ($1, $2, $3, 1) RETURNING id, quiz_id, privilege_id, privilege_id_str, used_count, created_at, updated_at +INSERT INTO quiz_privilege_usage (quiz_id, privilege_id, used_count) +VALUES ($1, $2, 1) RETURNING id, quiz_id, privilege_id, used_count, created_at, updated_at ` type InsertQuizPrivilegeUsageParams struct { - QuizID int64 `db:"quiz_id" json:"quiz_id"` - PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` - PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"` + QuizID int64 `db:"quiz_id" json:"quiz_id"` + PrivilegeID string `db:"privilege_id" json:"privilege_id"` } 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 err := row.Scan( &i.ID, &i.QuizID, &i.PrivilegeID, - &i.PrivilegeIDStr, &i.UsedCount, &i.CreatedAt, &i.UpdatedAt, @@ -4965,17 +4960,16 @@ func (q *Queries) QuizCopyQid(ctx context.Context, arg QuizCopyQidParams) (QuizC const resetQuizPrivilegeUsageCount = `-- name: ResetQuizPrivilegeUsageCount :exec 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 { - QuizID int64 `db:"quiz_id" json:"quiz_id"` - PrivilegeID int64 `db:"privilege_id" json:"privilege_id"` - PrivilegeIDStr string `db:"privilege_id_str" json:"privilege_id_str"` + QuizID int64 `db:"quiz_id" json:"quiz_id"` + PrivilegeID string `db:"privilege_id" json:"privilege_id"` } 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 } diff --git a/model/model.go b/model/model.go index 6341522..8507167 100644 --- a/model/model.go +++ b/model/model.go @@ -361,11 +361,10 @@ type QuizUTM struct { } type QuizUsagePrivilege struct { - ID int64 `json:"id"` - QuizID int64 `json:"quiz_id"` - PrivilegeID int64 `json:"privilege_id"` - PrivilegeIDStr string `json:"privilege_id_str"` - UsedCount int32 `json:"used_count"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` + ID int64 `json:"id"` + QuizID int64 `json:"quiz_id"` + PrivilegeID string `json:"privilege_id"` + UsedCount int32 `json:"used_count"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` } diff --git a/repository/quiz/quiz.go b/repository/quiz/quiz.go index f8d6f9b..c9e656f 100644 --- a/repository/quiz/quiz.go +++ b/repository/quiz/quiz.go @@ -810,11 +810,10 @@ func (r *QuizRepository) GetAllQuizUtms(ctx context.Context, quizID int64) ([]mo 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{ - QuizID: quizID, - PrivilegeID: privilegeID, - PrivilegeIDStr: privilegeIDStr, + QuizID: quizID, + PrivilegeID: privilegeID, }) if err != nil { if errors.Is(err, sql.ErrNoRows) { @@ -823,46 +822,41 @@ func (r *QuizRepository) GetQuizPrivilegeUsage(ctx context.Context, quizID int64 return nil, err } return &model.QuizUsagePrivilege{ - ID: usage.ID, - QuizID: usage.QuizID, - PrivilegeID: usage.PrivilegeID, - PrivilegeIDStr: usage.PrivilegeIDStr, - CreatedAt: usage.CreatedAt, - UpdatedAt: usage.UpdatedAt, + ID: usage.ID, + QuizID: usage.QuizID, + PrivilegeID: usage.PrivilegeID, + CreatedAt: usage.CreatedAt, + UpdatedAt: usage.UpdatedAt, }, 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{ - QuizID: quizID, - PrivilegeID: privilegeID, - PrivilegeIDStr: privilegeIDStr, + QuizID: quizID, + PrivilegeID: privilegeID, }) if err != nil { return nil, err } return &model.QuizUsagePrivilege{ - ID: usage.ID, - QuizID: usage.QuizID, - PrivilegeID: usage.PrivilegeID, - PrivilegeIDStr: usage.PrivilegeIDStr, - CreatedAt: usage.CreatedAt, - UpdatedAt: usage.UpdatedAt, + ID: usage.ID, + QuizID: usage.QuizID, + PrivilegeID: usage.PrivilegeID, + CreatedAt: usage.CreatedAt, + UpdatedAt: usage.UpdatedAt, }, 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{ - QuizID: quizID, - PrivilegeID: privilegeID, - PrivilegeIDStr: privilegeIDStr, + QuizID: quizID, + PrivilegeID: privilegeID, }) } -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{ - QuizID: quizID, - PrivilegeID: privilegeID, - PrivilegeIDStr: privilegeIDStr, + QuizID: quizID, + PrivilegeID: privilegeID, }) }