model

package
v0.0.0-...-7fd5faa Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2021 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DB *gorm.DB

DB - gorm DB

Functions

func Migration

func Migration()

Migration does database migrations

func SetupDB

func SetupDB(DSN interface{})

SetupDB is database setup

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

func (*CartItem) BeforeCreate

func (cartitem *CartItem) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Catalog) BeforeCreate

func (catalog *Catalog) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

type ContextKey

type ContextKey string

ContextKey keys for contexts

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

func (*Currency) BeforeCreate

func (currency *Currency) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Dataset) BeforeCreate

func (dataset *Dataset) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Format) BeforeCreate

func (format *Format) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

type KetoPolicy

type KetoPolicy struct {
	ID          string   `json:"id"`
	Subjects    []string `json:"subjects"`
	Actions     []string `json:"actions"`
	Resources   []string `json:"resources"`
	Effect      string   `json:"effect"`
	Description string   `json:"description"`
}

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

func (*Medium) AfterFind

func (media *Medium) AfterFind(tx *gorm.DB) (err error)

AfterFind hook

func (*Medium) BeforeCreate

func (media *Medium) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Order) BeforeCreate

func (order *Order) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Payment) BeforeCreate

func (payment *Payment) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Plan) BeforeCreate

func (plan *Plan) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Product) BeforeCreate

func (product *Product) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

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

func (*Tag) BeforeCreate

func (tag *Tag) BeforeCreate(tx *gorm.DB) error

BeforeCreate hook

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL