db

package
v0.0.0-...-9c85da8 Latest Latest
Warning

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

Go to latest
Published: May 19, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewGormConnection

func NewGormConnection(config *config.Config) (*gorm.DB, error)

func ToDomain

func ToDomainList

func ToDomainList(models []*SubscriptionModel) []*domain.Subscription

Types

type Frequency

type Frequency string
const (
	FrequencyHourly Frequency = "HOURLY"
	FrequencyDaily  Frequency = "DAILY"
)

type GormRepository

type GormRepository struct {
	// contains filtered or unexported fields
}

func NewGormRepository

func NewGormRepository(db *gorm.DB) *GormRepository

func (*GormRepository) Confirm

func (r *GormRepository) Confirm(ctx context.Context, confirmationToken string) error

func (*GormRepository) Delete

func (r *GormRepository) Delete(ctx context.Context, id uuid.UUID) error

func (*GormRepository) EnsureSchema

func (r *GormRepository) EnsureSchema() error

func (*GormRepository) FindByConfirmationToken

func (r *GormRepository) FindByConfirmationToken(ctx context.Context, token string) (*domain.Subscription, error)

func (*GormRepository) FindByID

func (r *GormRepository) FindByID(ctx context.Context, id uuid.UUID) (*domain.Subscription, error)

func (*GormRepository) FindByUnsubscribeToken

func (r *GormRepository) FindByUnsubscribeToken(ctx context.Context, token string) (*domain.Subscription, error)

func (*GormRepository) GetConfirmedSubscriptions

func (r *GormRepository) GetConfirmedSubscriptions(ctx context.Context, frequency domain.Frequency) ([]domain.Subscriber, error)

func (*GormRepository) IsComfirmationTokenExists

func (r *GormRepository) IsComfirmationTokenExists(ctx context.Context, token string) (bool, error)

func (*GormRepository) IsSubscribed

func (r *GormRepository) IsSubscribed(ctx context.Context, email, city string) (bool, error)

func (*GormRepository) IsUnsubscribeTokenExists

func (r *GormRepository) IsUnsubscribeTokenExists(ctx context.Context, token string) (bool, error)

func (*GormRepository) Save

type SubscriptionModel

type SubscriptionModel struct {
	ID                uuid.UUID `gorm:"type:uuid;primary_key"`
	Email             string    `gorm:"uniqueIndex:idx_email_city"`
	City              string    `gorm:"uniqueIndex:idx_email_city"`
	Frequency         Frequency `gorm:"type:varchar(10);default:'DAILY'"`
	ConfirmationToken string    `gorm:"uniqueIndex;type:varchar(100)"`
	UnsubscribeToken  string    `gorm:"uniqueIndex;type:varchar(100)"`
	Confirmed         bool      `gorm:"default:false"`
	CreatedAt         time.Time
	ConfirmedAt       *time.Time
	LastSentAt        *time.Time
	DeletedAt         gorm.DeletedAt `gorm:"index"`
}

func (SubscriptionModel) TableName

func (SubscriptionModel) TableName() string

Jump to

Keyboard shortcuts

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