// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.

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      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
func (*Plan) TableName() string {
	return TableNamePlan
}
