models

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: May 7, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultPasswordCost = 12
View Source
const TestingImage = "JPEG IMAGE"

Variables

View Source
var (
	True  = true
	False = false
)

Functions

This section is empty.

Types

type Device

type Device struct {
	Model
	User          User      `json:"user" gorm:"foreignKey:UserUUID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	UserUUID      uuid.UUID `json:"userUUID" gorm:"uniqueIndex:idx_unique_token;not null;"`
	FirebaseToken string    `json:"firebaseToken" gorm:"uniqueIndex:idx_unique_token;not null;"`
}

func RandomDevice

func RandomDevice(u *User) *Device

type Message

type Message struct {
	Model
	Sender        User      `json:"sender" gorm:"foreignKey:SenderUUID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	SenderUUID    uuid.UUID `json:"senderUUID" gorm:"not null;"`
	Recipient     User      `json:"recipient" gorm:"foreignKey:RecipientUUID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	RecipientUUID uuid.UUID `json:"recipientUUID" gorm:"not null;"`
	Title         string    `json:"title" gorm:"not null"`
	Body          string    `json:"body" gorm:"not null"`
}

func RandomMessage

func RandomMessage(sender, recipient *User) *Message

type MessageResponse

type MessageResponse struct {
	Model
	Message     Message   `json:"message" gorm:"foreignKey:MessageUUID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	MessageUUID uuid.UUID `json:"messageUUID" gorm:"not null;"`
	Success     bool      `json:"success" gorm:"not null"`
	FirebaseId  string    `json:"firebaseId" gorm:"not null"`
	Error       string    `json:"error" gorm:"not null"`
}

type Model

type Model struct {
	UUID      uuid.UUID  `json:"uuid" gorm:"primaryKey"`
	CreatedAt time.Time  `json:"-"`
	UpdatedAt time.Time  `json:"-"`
	DeletedAt *time.Time `json:"-" sql:"index"`
}

func (*Model) BeforeSave

func (m *Model) BeforeSave(tx *gorm.DB) error

type User

type User struct {
	Model
	Email               *string   `json:"email,omitempty" gorm:"unique;not null"`
	Password            *string   `json:"password,omitempty" gorm:"-"`
	PasswordHash        []byte    `json:"-" gorm:"not null;"`
	ProfilePicture      *string   `json:"profilePicture,omitempty" gorm:"-"`
	ProfilePictureBytes []byte    `json:"-" gorm:"not null"`
	Name                *string   `json:"name,omitempty" gorm:"not null"`
	PhoneNumber         *string   `json:"phoneNumber,omitempty" gorm:"unique;not null"`
	Job                 *string   `json:"job,omitempty" gorm:"not null"`
	Devices             []Device  `json:"devices,omitempty" gorm:"constraint:OnDelete:CASCADE;"`
	MessagesSent        []Message `json:"messagesSent,omitempty" gorm:"constraint:OnDelete:CASCADE;foreignKey:SenderUUID"`
	MessagesReceived    []Message `json:"messagesReceived,omitempty" gorm:"constraint:OnDelete:CASCADE;foreignKey:RecipientUUID"`
}

func RandomUser

func RandomUser() *User

func (*User) Authenticate

func (u *User) Authenticate(password string) bool

func (*User) BeforeCreate

func (u *User) BeforeCreate(tx *gorm.DB) error

func (*User) BeforeSave

func (u *User) BeforeSave(tx *gorm.DB) error

Jump to

Keyboard shortcuts

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