package pg import ( "gerald/internal/models" "gorm.io/gorm" ) type Feedback struct { db *gorm.DB } func NewFeedback(db *gorm.DB) *Feedback { return &Feedback{ db: db, } } func (t *Feedback) Create(ticket *models.Feedback) error { return t.db.Create(ticket).Error } func (t *Feedback) GetBySessionID(sessionID string) ([]*models.Feedback, error) { var tickets []*models.Feedback res := t.db. Where("session_uuid = ?", sessionID). Find(&tickets) if res.Error != nil { return nil, res.Error } return tickets, nil } func (t *Feedback) GetByUUID(uuid string) (*models.Feedback, error) { var ticket models.Feedback res := t.db. Preload("Upvote"). Where("uuid = ?", uuid). First(&ticket) if res.Error != nil { return nil, res.Error } return &ticket, nil } func (t *Feedback) GetByProjectID(projectID models.FeedbackType) ([]*models.Feedback, error) { var tickets []*models.Feedback res := t.db. Where("project_id = ?", projectID). Where("type = ?", models.FeedbackTypeFeature). Find(&tickets) if res.Error != nil { return nil, res.Error } return tickets, nil } func (t *Feedback) CreateUpvote(upvote *models.Upvote) error { return t.db.Create(upvote).Error }