draft grpc

This commit is contained in:
2026-03-13 02:17:18 +00:00
parent ea2edbb9e0
commit 91e5e3542b
116 changed files with 44505 additions and 558 deletions

View File

@@ -4,22 +4,26 @@
package model
import (
"github.com/lib/pq"
)
const TableNamePlan = "plan"
// Plan mapped from table <plan>
type Plan struct {
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:"-"`
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 pq.StringArray `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