26 lines
557 B
Go
26 lines
557 B
Go
|
package repository
|
||
|
|
||
|
import (
|
||
|
"codeword/internal/models"
|
||
|
"context"
|
||
|
"go.mongodb.org/mongo-driver/mongo"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
type PromoCodeRepository struct {
|
||
|
mdb *mongo.Collection
|
||
|
}
|
||
|
|
||
|
func NewPromoCodeRepository(mdb *mongo.Collection) *PromoCodeRepository {
|
||
|
return &PromoCodeRepository{mdb: mdb}
|
||
|
}
|
||
|
|
||
|
func (r *PromoCodeRepository) CreatePromoCode(ctx context.Context, promoCode *models.PromoCode) (*models.PromoCode, error) {
|
||
|
promoCode.CreatedAt = time.Now()
|
||
|
_, err := r.mdb.InsertOne(ctx, promoCode)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return promoCode, nil
|
||
|
}
|