update automic

This commit is contained in:
2026-01-22 17:03:07 +07:00
parent 4c85eb34f8
commit acd0be8fa1
8 changed files with 74 additions and 54 deletions

View File

@@ -12,16 +12,17 @@ const TableNamePayment = "payment"
// Payment mapped from table <payment>
type Payment struct {
ID string `gorm:"column:id;primaryKey;default:gen_random_uuid()" json:"id"`
UserID string `gorm:"column:user_id;not null" json:"user_id"`
PlanID string `gorm:"column:plan_id" json:"plan_id"`
Amount float64 `gorm:"column:amount;not null" json:"amount"`
Currency string `gorm:"column:currency;not null;default:USD" json:"currency"`
Status string `gorm:"column:status;not null;default:PENDING" json:"status"`
Provider string `gorm:"column:provider;not null;default:STRIPE" json:"provider"`
TransactionID string `gorm:"column:transaction_id" json:"transaction_id"`
CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;not null" json:"updated_at"`
ID string `gorm:"column:id;type:uuid;primaryKey;default:gen_random_uuid()" json:"id"`
UserID string `gorm:"column:user_id;type:uuid;not null" json:"user_id"`
PlanID *string `gorm:"column:plan_id;type:uuid" json:"plan_id"`
Amount float64 `gorm:"column:amount;type:numeric(65,30);not null" json:"amount"`
Currency *string `gorm:"column:currency;type:text;not null;default:USD" json:"currency"`
Status *string `gorm:"column:status;type:character varying(20);not null;default:PENDING" json:"status"`
Provider *string `gorm:"column:provider;type:character varying(20);not null;default:STRIPE" json:"provider"`
TransactionID *string `gorm:"column:transaction_id;type:text" json:"transaction_id"`
CreatedAt *time.Time `gorm:"column:created_at;type:timestamp(3) without time zone;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp(3) without time zone;not null" json:"updated_at"`
Version *int64 `gorm:"column:version;type:bigint;not null;default:1;version" json:"-"`
}
// TableName Payment's table name

View File

@@ -8,17 +8,18 @@ const TableNamePlan = "plan"
// Plan mapped from table <plan>
type Plan struct {
ID string `gorm:"column:id;primaryKey;default:gen_random_uuid()" json:"id"`
Name string `gorm:"column:name;not null" json:"name"`
Description string `gorm:"column:description" json:"description"`
Price float64 `gorm:"column:price;not null" json:"price"`
Cycle string `gorm:"column:cycle;not null" json:"cycle"`
StorageLimit int64 `gorm:"column:storage_limit;not null" json:"storage_limit"`
UploadLimit int32 `gorm:"column:upload_limit;not null" json:"upload_limit"`
DurationLimit int32 `gorm:"column:duration_limit;not null" json:"duration_limit"`
QualityLimit string `gorm:"column:quality_limit;not null" json:"quality_limit"`
Features string `gorm:"column:features" json:"features"`
IsActive bool `gorm:"column:is_active;not null;default:true" json:"is_active"`
ID string `gorm:"column:id;type:uuid;primaryKey;default:gen_random_uuid()" json:"id"`
Name string `gorm:"column:name;type:text;not null" json:"name"`
Description *string `gorm:"column:description;type:text" json:"description"`
Price float64 `gorm:"column:price;type:numeric(65,30);not null" json:"price"`
Cycle string `gorm:"column:cycle;type:character varying(20);not null" json:"cycle"`
StorageLimit int64 `gorm:"column:storage_limit;type:bigint;not null" json:"storage_limit"`
UploadLimit int32 `gorm:"column:upload_limit;type:integer;not null" json:"upload_limit"`
DurationLimit int32 `gorm:"column:duration_limit;type:integer;not null" json:"duration_limit"`
QualityLimit string `gorm:"column:quality_limit;type:text;not null" json:"quality_limit"`
Features *string `gorm:"column:features;type:text[]" json:"features"`
IsActive *bool `gorm:"column:is_active;type:boolean;not null;default:true" json:"is_active"`
Version *int64 `gorm:"column:version;type:bigint;not null;default:1;version" json:"-"`
}
// TableName Plan's table name

View File

@@ -12,17 +12,18 @@ const TableNameUser = "user"
// User mapped from table <user>
type User struct {
ID string `gorm:"column:id;primaryKey;default:gen_random_uuid()" json:"id"`
Email string `gorm:"column:email;not null" json:"email"`
Password string `gorm:"column:password" json:"-"`
Username string `gorm:"column:username" json:"username"`
Avatar string `gorm:"column:avatar" json:"avatar"`
Role string `gorm:"column:role;not null;default:USER" json:"role"`
GoogleID string `gorm:"column:google_id" json:"google_id"`
StorageUsed int64 `gorm:"column:storage_used;not null" json:"storage_used"`
PlanID string `gorm:"column:plan_id" json:"plan_id"`
CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;not null" json:"updated_at"`
ID string `gorm:"column:id;type:uuid;primaryKey;default:gen_random_uuid()" json:"id"`
Email string `gorm:"column:email;type:text;not null;uniqueIndex:user_email_key,priority:1" json:"email"`
Password *string `gorm:"column:password;type:text" json:"-"`
Username *string `gorm:"column:username;type:text" json:"username"`
Avatar *string `gorm:"column:avatar;type:text" json:"avatar"`
Role *string `gorm:"column:role;type:character varying(20);not null;default:USER" json:"role"`
GoogleID *string `gorm:"column:google_id;type:text;uniqueIndex:user_google_id_key,priority:1" json:"google_id"`
StorageUsed int64 `gorm:"column:storage_used;type:bigint;not null" json:"storage_used"`
PlanID *string `gorm:"column:plan_id;type:uuid" json:"plan_id"`
CreatedAt *time.Time `gorm:"column:created_at;type:timestamp(3) without time zone;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp(3) without time zone;not null" json:"updated_at"`
Version *int64 `gorm:"column:version;type:bigint;not null;default:1;version" json:"-"`
}
// TableName User's table name

View File

@@ -12,24 +12,25 @@ const TableNameVideo = "video"
// Video mapped from table <video>
type Video struct {
ID string `gorm:"column:id;primaryKey;default:gen_random_uuid()" json:"id"`
Name string `gorm:"column:name;not null" json:"name"`
Title string `gorm:"column:title;not null" json:"title"`
Description string `gorm:"column:description" json:"description"`
URL string `gorm:"column:url;not null" json:"url"`
Thumbnail string `gorm:"column:thumbnail" json:"thumbnail"`
HlsToken string `gorm:"column:hls_token" json:"hls_token"`
HlsPath string `gorm:"column:hls_path" json:"hls_path"`
Duration int32 `gorm:"column:duration;not null" json:"duration"`
Size int64 `gorm:"column:size;not null" json:"size"`
StorageType string `gorm:"column:storage_type;not null;default:tiktok_avatar" json:"storage_type"`
Format string `gorm:"column:format;not null" json:"format"`
Status string `gorm:"column:status;not null;default:PUBLIC" json:"status"`
ProcessingStatus string `gorm:"column:processing_status;not null;default:PENDING" json:"processing_status"`
Views int32 `gorm:"column:views;not null" json:"views"`
UserID string `gorm:"column:user_id;not null" json:"user_id"`
CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;not null" json:"updated_at"`
ID string `gorm:"column:id;type:uuid;primaryKey;default:gen_random_uuid()" json:"id"`
Name string `gorm:"column:name;type:text;not null" json:"name"`
Title string `gorm:"column:title;type:text;not null" json:"title"`
Description *string `gorm:"column:description;type:text" json:"description"`
URL string `gorm:"column:url;type:text;not null" json:"url"`
Thumbnail *string `gorm:"column:thumbnail;type:text" json:"thumbnail"`
HlsToken *string `gorm:"column:hls_token;type:text" json:"hls_token"`
HlsPath *string `gorm:"column:hls_path;type:text" json:"hls_path"`
Duration int32 `gorm:"column:duration;type:integer;not null" json:"duration"`
Size int64 `gorm:"column:size;type:bigint;not null" json:"size"`
StorageType *string `gorm:"column:storage_type;type:character varying(20);not null;default:tiktok_avatar" json:"storage_type"`
Format string `gorm:"column:format;type:text;not null" json:"format"`
Status *string `gorm:"column:status;type:character varying(20);not null;default:PUBLIC" json:"status"`
ProcessingStatus *string `gorm:"column:processing_status;type:character varying(20);not null;default:PENDING" json:"processing_status"`
Views int32 `gorm:"column:views;type:integer;not null" json:"views"`
UserID string `gorm:"column:user_id;type:uuid;not null" json:"user_id"`
CreatedAt *time.Time `gorm:"column:created_at;type:timestamp(3) without time zone;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp(3) without time zone;not null" json:"updated_at"`
Version *int64 `gorm:"column:version;type:bigint;not null;default:1;version" json:"-"`
}
// TableName Video's table name