Documentation ¶
Index ¶
- Variables
- func Migration()
- func SetupDB(DSN interface{})
- type Base
- type CartItem
- type Catalog
- type ContextKey
- type Currency
- type Dataset
- type DatasetFormat
- type Format
- type KetoPolicy
- type Medium
- type Membership
- type Order
- type OrgWithRole
- type Organisation
- type OrganisationUser
- type Payment
- type Plan
- type Product
- type Tag
Constants ¶
This section is empty.
Variables ¶
View Source
var DB *gorm.DB
DB - gorm DB
Functions ¶
Types ¶
type Base ¶
type Base struct { ID uint `gorm:"primary_key" json:"id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt *gorm.DeletedAt `sql:"index" json:"deleted_at" swaggertype:"primitive,string"` CreatedByID uint `gorm:"column:created_by_id" json:"created_by_id"` UpdatedByID uint `gorm:"column:updated_by_id" json:"updated_by_id"` }
Base with id, created_at, updated_at & deleted_at
type CartItem ¶
type CartItem struct { Base Status string `gorm:"column:status" json:"status" validate:"required"` UserID uint `gorm:"column:user_id" json:"user_id" validate:"required"` ProductID uint `gorm:"column:product_id" json:"product_id" validate:"required"` Product *Product `gorm:"foreignKey:product_id" json:"product"` MembershipID *uint `gorm:"column:membership_id;default:NULL" json:"membership_id"` Membership *Membership `gorm:"foreignKey:membership_id" json:"membership"` }
CartItem model
type Catalog ¶
type Catalog struct { Base Title string `gorm:"column:title" json:"title"` Description string `gorm:"column:description" json:"description"` FeaturedMediumID *uint `gorm:"column:featured_medium_id;default:NULL" json:"featured_medium_id"` FeaturedMedium *Medium `gorm:"foreignKey:featured_medium_id" json:"featured_medium"` PublishedDate time.Time `gorm:"column:published_date" json:"published_date"` Plans []Plan `gorm:"many2many:plan_catalog;" json:"plans"` Products []Product `gorm:"many2many:catalog_product;" json:"products"` }
Catalog model
type Currency ¶
type Currency struct { Base IsoCode string `gorm:"column:iso_code" json:"iso_code" validate:"required"` Name string `gorm:"column:name" json:"name" validate:"required"` }
Currency model
type Dataset ¶
type Dataset struct { Base Title string `gorm:"column:title" json:"title"` Description string `gorm:"column:description" json:"description"` Source string `gorm:"column:source" json:"source"` Frequency string `gorm:"column:frequency" json:"frequency"` TemporalCoverage string `gorm:"column:temporal_coverage" json:"temporal_coverage"` Granularity string `gorm:"column:granularity" json:"granularity"` ContactName string `gorm:"column:contact_name" json:"contact_name"` ContactEmail string `gorm:"column:contact_email" json:"contact_email"` License string `gorm:"column:license" json:"license"` DataStandard string `gorm:"column:data_standard" json:"data_standard"` SampleURL string `gorm:"column:sample_url" json:"sample_url"` RelatedArticles postgres.Jsonb `gorm:"column:related_articles" json:"related_articles" swaggertype:"primitive,string"` TimeSaved int `gorm:"column:time_saved" json:"time_saved"` Price int `gorm:"column:price" json:"price" validate:"required"` CurrencyID uint `gorm:"column:currency_id" json:"currency_id" validate:"required"` Currency *Currency `gorm:"foreignkey:currency_id" json:"currency"` FeaturedMediumID *uint `gorm:"column:featured_medium_id;default:NULL" json:"featured_medium_id"` FeaturedMedium *Medium `gorm:"foreignKey:featured_medium_id" json:"featured_medium"` Products []Product `gorm:"many2many:product_dataset;" json:"products"` Tags []Tag `gorm:"many2many:dataset_tag;" json:"tags"` }
Dataset model
type DatasetFormat ¶
type DatasetFormat struct { Base FormatID uint `gorm:"column:format_id" json:"format_id"` Format Format `gorm:"foreignKey:format_id" json:"format"` DatasetID uint `gorm:"column:dataset_id" json:"dataset_id"` URL string `gorm:"column:url" json:"url"` }
DatasetFormat model
func (*DatasetFormat) BeforeCreate ¶
func (df *DatasetFormat) BeforeCreate(tx *gorm.DB) error
BeforeCreate hook
type Format ¶
type Format struct { Base Name string `gorm:"column:name" json:"name"` Description string `gorm:"column:description" json:"description" ` IsDefault bool `gorm:"column:is_default" json:"is_default" ` }
Format model
type KetoPolicy ¶
type Medium ¶
type Medium struct { Base Name string `gorm:"column:name" json:"name"` Slug string `gorm:"column:slug" json:"slug"` Type string `gorm:"column:type" json:"type"` Title string `gorm:"column:title" json:"title"` Description string `gorm:"column:description" json:"description"` Caption string `gorm:"column:caption" json:"caption"` AltText string `gorm:"column:alt_text" json:"alt_text"` FileSize int `gorm:"column:file_size" json:"file_size"` URL postgres.Jsonb `gorm:"column:url" json:"url" swaggertype:"primitive,string"` Dimensions string `gorm:"column:dimensions" json:"dimensions"` }
Medium model
type Membership ¶
type Membership struct { Base Status string `gorm:"column:status" json:"status" validate:"required"` UserID uint `gorm:"column:user_id" json:"user_id" validate:"required"` PaymentID *uint `gorm:"column:payment_id" json:"payment_id" sql:"DEFAULT:NULL"` Payment *Payment `gorm:"foreignKey:payment_id" json:"payment"` PlanID uint `gorm:"column:plan_id" json:"plan_id" validate:"required"` Plan Plan `gorm:"foreignKey:plan_id" json:"plan"` RazorpayOrderID string `gorm:"column:razorpay_order_id" json:"razorpay_order_id" sql:"DEFAULT:NULL"` }
Membership model
func (*Membership) BeforeCreate ¶
func (membership *Membership) BeforeCreate(tx *gorm.DB) error
BeforeCreate hook
type Order ¶
type Order struct { Base UserID uint `gorm:"column:user_id" json:"user_id" validate:"required"` Status string `gorm:"column:status" json:"status" validate:"required"` PaymentID *uint `gorm:"column:payment_id" json:"payment_id" sql:"DEFAULT:NULL"` Payment *Payment `gorm:"foreignKey:payment_id" json:"payment"` RazorpayOrderID string `gorm:"column:razorpay_order_id" json:"razorpay_order_id" sql:"DEFAULT:NULL"` Products []Product `gorm:"many2many:order_item;" json:"products"` }
Order model
type OrgWithRole ¶
type OrgWithRole struct { Organisation Permission OrganisationUser `json:"permission"` }
OrgWithRole model definition
type Organisation ¶
type Organisation struct { Base Title string `json:"title"` Slug string `json:"slug"` Description string `json:"description"` FeaturedMediumID *uint `json:"featured_medium_id"` Medium *Medium `json:"medium"` }
Organisation model definition
type OrganisationUser ¶
type OrganisationUser struct { Base UserID uint `json:"user_id"` OrganisationID uint `json:"organisation_id"` Role string `json:"role"` }
OrganisationUser model definition
type Payment ¶
type Payment struct { Base Amount int `gorm:"column:amount" json:"amount" validate:"required"` Gateway string `gorm:"column:gateway" json:"gateway" validate:"required"` CurrencyID uint `gorm:"column:currency_id" json:"currency_id" validate:"required"` Currency Currency `gorm:"foreignKey:currency_id" json:"currency"` Status string `gorm:"column:status" json:"status" validate:"required"` RazorpayPaymentID string `gorm:"column:razorpay_payment_id" json:"razorpay_payment_id"` RazorpaySignature string `gorm:"column:razorpay_signature" json:"razorpay_signature"` }
Payment model
type Plan ¶
type Plan struct { Base Name string `gorm:"column:name" json:"name" validate:"required"` Description string `gorm:"column:description" json:"description"` Price int `gorm:"column:price" json:"price" validate:"required"` CurrencyID uint `gorm:"column:currency_id" json:"currency_id" validate:"required"` Currency *Currency `gorm:"foreignKey:currency_id" json:"currency"` Duration uint `gorm:"column:duration" json:"duration" validate:"required"` Status string `gorm:"column:status" json:"status" validate:"required"` AllProducts bool `gorm:"column:all_products" json:"all_products"` Catalogs []Catalog `gorm:"many2many:plan_catalog" json:"catalogs"` }
Plan model
type Product ¶
type Product struct { Base Title string `gorm:"column:title" json:"title" validate:"required"` Slug string `gorm:"column:slug" json:"slug" validate:"required"` Price int `gorm:"column:price" json:"price" validate:"required"` Status string `gorm:"column:status" json:"status" validate:"required"` FeaturedMediumID *uint `gorm:"column:featured_medium_id;default:NULL" json:"featured_medium_id"` FeaturedMedium *Medium `gorm:"foreignKey:featured_medium_id" json:"featured_medium"` CurrencyID uint `gorm:"column:currency_id" json:"currency_id" validate:"required"` Currency *Currency `gorm:"foreignKey:currency_id" json:"currency"` Catalogs []Catalog `gorm:"many2many:catalog_product;" json:"catalogs"` Tags []Tag `gorm:"many2many:product_tag;" json:"tags"` Datasets []Dataset `gorm:"many2many:product_dataset;" json:"datasets"` Orders []Order `gorm:"many2many:order_item;" json:"orders"` }
Product model
type Tag ¶
type Tag struct { Base Title string `gorm:"column:title" json:"title" validate:"required"` Slug string `gorm:"column:slug" json:"slug" validate:"required"` Products []Product `gorm:"many2many:product_tag;" json:"products"` Datasets []Dataset `gorm:"many2many:dataset_tag;" json:"datasets"` }
Tag model
Click to show internal directories.
Click to hide internal directories.