feat: enhance job and user models with additional fields

- Added VideoID, UserID, and TimeLimit fields to the job model.
- Removed unused referral fields from the user model.
- Updated job creation and update logic to handle new fields.
- Refactored job service to work with updated job model.
- Replaced cache interface with Redis adapter in service layer.
- Introduced a Dead Letter Queue (DLQ) for failed jobs in Redis.
- Updated gRPC server to accommodate changes in job handling.
- Removed obsolete cache package and related files.
This commit is contained in:
2026-03-26 00:33:45 +07:00
parent dfd999e058
commit bb7f7b0bb3
19 changed files with 270 additions and 329 deletions

View File

@@ -45,6 +45,9 @@ func newJob(db *gorm.DB, opts ...gen.DOOption) job {
_job.CreatedAt = field.NewTime(tableName, "created_at")
_job.UpdatedAt = field.NewTime(tableName, "updated_at")
_job.Version = field.NewInt64(tableName, "version")
_job.VideoID = field.NewString(tableName, "video_id")
_job.UserID = field.NewString(tableName, "user_id")
_job.TimeLimit = field.NewInt64(tableName, "time_limit")
_job.fillFieldMap()
@@ -72,6 +75,9 @@ type job struct {
CreatedAt field.Time
UpdatedAt field.Time
Version field.Int64
VideoID field.String
UserID field.String
TimeLimit field.Int64
fieldMap map[string]field.Expr
}
@@ -105,6 +111,9 @@ func (j *job) updateTableName(table string) *job {
j.CreatedAt = field.NewTime(table, "created_at")
j.UpdatedAt = field.NewTime(table, "updated_at")
j.Version = field.NewInt64(table, "version")
j.VideoID = field.NewString(table, "video_id")
j.UserID = field.NewString(table, "user_id")
j.TimeLimit = field.NewInt64(table, "time_limit")
j.fillFieldMap()
@@ -129,7 +138,7 @@ func (j *job) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
}
func (j *job) fillFieldMap() {
j.fieldMap = make(map[string]field.Expr, 17)
j.fieldMap = make(map[string]field.Expr, 20)
j.fieldMap["id"] = j.ID
j.fieldMap["status"] = j.Status
j.fieldMap["priority"] = j.Priority
@@ -147,6 +156,9 @@ func (j *job) fillFieldMap() {
j.fieldMap["created_at"] = j.CreatedAt
j.fieldMap["updated_at"] = j.UpdatedAt
j.fieldMap["version"] = j.Version
j.fieldMap["video_id"] = j.VideoID
j.fieldMap["user_id"] = j.UserID
j.fieldMap["time_limit"] = j.TimeLimit
}
func (j job) clone(db *gorm.DB) job {

View File

@@ -37,12 +37,6 @@ func newUser(db *gorm.DB, opts ...gen.DOOption) user {
_user.GoogleID = field.NewString(tableName, "google_id")
_user.StorageUsed = field.NewInt64(tableName, "storage_used")
_user.PlanID = field.NewString(tableName, "plan_id")
_user.ReferredByUserID = field.NewString(tableName, "referred_by_user_id")
_user.ReferralEligible = field.NewBool(tableName, "referral_eligible")
_user.ReferralRewardBps = field.NewInt32(tableName, "referral_reward_bps")
_user.ReferralRewardGrantedAt = field.NewTime(tableName, "referral_reward_granted_at")
_user.ReferralRewardPaymentID = field.NewString(tableName, "referral_reward_payment_id")
_user.ReferralRewardAmount = field.NewFloat64(tableName, "referral_reward_amount")
_user.CreatedAt = field.NewTime(tableName, "created_at")
_user.UpdatedAt = field.NewTime(tableName, "updated_at")
_user.Version = field.NewInt64(tableName, "version")
@@ -64,18 +58,12 @@ type user struct {
Avatar field.String
Role field.String
GoogleID field.String
StorageUsed field.Int64
PlanID field.String
ReferredByUserID field.String
ReferralEligible field.Bool
ReferralRewardBps field.Int32
ReferralRewardGrantedAt field.Time
ReferralRewardPaymentID field.String
ReferralRewardAmount field.Float64
CreatedAt field.Time
UpdatedAt field.Time
Version field.Int64
TelegramID field.String
StorageUsed field.Int64
PlanID field.String
CreatedAt field.Time
UpdatedAt field.Time
Version field.Int64
TelegramID field.String
fieldMap map[string]field.Expr
}
@@ -101,12 +89,6 @@ func (u *user) updateTableName(table string) *user {
u.GoogleID = field.NewString(table, "google_id")
u.StorageUsed = field.NewInt64(table, "storage_used")
u.PlanID = field.NewString(table, "plan_id")
u.ReferredByUserID = field.NewString(table, "referred_by_user_id")
u.ReferralEligible = field.NewBool(table, "referral_eligible")
u.ReferralRewardBps = field.NewInt32(table, "referral_reward_bps")
u.ReferralRewardGrantedAt = field.NewTime(table, "referral_reward_granted_at")
u.ReferralRewardPaymentID = field.NewString(table, "referral_reward_payment_id")
u.ReferralRewardAmount = field.NewFloat64(table, "referral_reward_amount")
u.CreatedAt = field.NewTime(table, "created_at")
u.UpdatedAt = field.NewTime(table, "updated_at")
u.Version = field.NewInt64(table, "version")
@@ -135,7 +117,7 @@ func (u *user) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
}
func (u *user) fillFieldMap() {
u.fieldMap = make(map[string]field.Expr, 19)
u.fieldMap = make(map[string]field.Expr, 13)
u.fieldMap["id"] = u.ID
u.fieldMap["email"] = u.Email
u.fieldMap["password"] = u.Password
@@ -145,12 +127,6 @@ func (u *user) fillFieldMap() {
u.fieldMap["google_id"] = u.GoogleID
u.fieldMap["storage_used"] = u.StorageUsed
u.fieldMap["plan_id"] = u.PlanID
u.fieldMap["referred_by_user_id"] = u.ReferredByUserID
u.fieldMap["referral_eligible"] = u.ReferralEligible
u.fieldMap["referral_reward_bps"] = u.ReferralRewardBps
u.fieldMap["referral_reward_granted_at"] = u.ReferralRewardGrantedAt
u.fieldMap["referral_reward_payment_id"] = u.ReferralRewardPaymentID
u.fieldMap["referral_reward_amount"] = u.ReferralRewardAmount
u.fieldMap["created_at"] = u.CreatedAt
u.fieldMap["updated_at"] = u.UpdatedAt
u.fieldMap["version"] = u.Version