Yimaru-BackEnd/gen/db/referal.sql.go

255 lines
6.5 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: referal.sql
package dbgen
import (
"context"
)
const CreateReferralCode = `-- name: CreateReferralCode :one
INSERT INTO referral_codes (
referral_code,
referrer_id,
company_id,
number_of_referrals,
reward_amount
)
VALUES ($1, $2, $3, $4, $5)
RETURNING id, referral_code, referrer_id, company_id, is_active, number_of_referrals, reward_amount, created_at, updated_at
`
type CreateReferralCodeParams struct {
ReferralCode string `json:"referral_code"`
ReferrerID int64 `json:"referrer_id"`
CompanyID int64 `json:"company_id"`
NumberOfReferrals int64 `json:"number_of_referrals"`
RewardAmount int64 `json:"reward_amount"`
}
func (q *Queries) CreateReferralCode(ctx context.Context, arg CreateReferralCodeParams) (ReferralCode, error) {
row := q.db.QueryRow(ctx, CreateReferralCode,
arg.ReferralCode,
arg.ReferrerID,
arg.CompanyID,
arg.NumberOfReferrals,
arg.RewardAmount,
)
var i ReferralCode
err := row.Scan(
&i.ID,
&i.ReferralCode,
&i.ReferrerID,
&i.CompanyID,
&i.IsActive,
&i.NumberOfReferrals,
&i.RewardAmount,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const CreateUserReferral = `-- name: CreateUserReferral :one
INSERT INTO user_referrals (referred_id, referral_code_id)
VALUES ($1, $2)
RETURNING id, referred_id, referral_code_id, created_at
`
type CreateUserReferralParams struct {
ReferredID int64 `json:"referred_id"`
ReferralCodeID int64 `json:"referral_code_id"`
}
func (q *Queries) CreateUserReferral(ctx context.Context, arg CreateUserReferralParams) (UserReferral, error) {
row := q.db.QueryRow(ctx, CreateUserReferral, arg.ReferredID, arg.ReferralCodeID)
var i UserReferral
err := row.Scan(
&i.ID,
&i.ReferredID,
&i.ReferralCodeID,
&i.CreatedAt,
)
return i, err
}
const GetReferralCode = `-- name: GetReferralCode :one
SELECT id, referral_code, referrer_id, company_id, is_active, number_of_referrals, reward_amount, created_at, updated_at
FROM referral_codes
WHERE referral_code = $1
`
func (q *Queries) GetReferralCode(ctx context.Context, referralCode string) (ReferralCode, error) {
row := q.db.QueryRow(ctx, GetReferralCode, referralCode)
var i ReferralCode
err := row.Scan(
&i.ID,
&i.ReferralCode,
&i.ReferrerID,
&i.CompanyID,
&i.IsActive,
&i.NumberOfReferrals,
&i.RewardAmount,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const GetReferralCodeByUser = `-- name: GetReferralCodeByUser :many
SELECt id, referral_code, referrer_id, company_id, is_active, number_of_referrals, reward_amount, created_at, updated_at
FROM referral_codes
WHERE referrer_id = $1
`
func (q *Queries) GetReferralCodeByUser(ctx context.Context, referrerID int64) ([]ReferralCode, error) {
rows, err := q.db.Query(ctx, GetReferralCodeByUser, referrerID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ReferralCode
for rows.Next() {
var i ReferralCode
if err := rows.Scan(
&i.ID,
&i.ReferralCode,
&i.ReferrerID,
&i.CompanyID,
&i.IsActive,
&i.NumberOfReferrals,
&i.RewardAmount,
&i.CreatedAt,
&i.UpdatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const GetReferralStats = `-- name: GetReferralStats :one
SELECT COUNT(*) AS total_referrals,
SUM(reward_amount) AS total_reward_earned
FROM user_referrals
JOIN referral_codes ON referral_codes.id == referral_code_id
WHERE referrer_id = $1
AND company_id = $2
`
type GetReferralStatsParams struct {
ReferrerID int64 `json:"referrer_id"`
CompanyID int64 `json:"company_id"`
}
type GetReferralStatsRow struct {
TotalReferrals int64 `json:"total_referrals"`
TotalRewardEarned int64 `json:"total_reward_earned"`
}
func (q *Queries) GetReferralStats(ctx context.Context, arg GetReferralStatsParams) (GetReferralStatsRow, error) {
row := q.db.QueryRow(ctx, GetReferralStats, arg.ReferrerID, arg.CompanyID)
var i GetReferralStatsRow
err := row.Scan(&i.TotalReferrals, &i.TotalRewardEarned)
return i, err
}
const GetUserReferral = `-- name: GetUserReferral :one
SELECT id, referred_id, referral_code_id, created_at
FROM user_referrals
WHERE referred_id = $1
`
func (q *Queries) GetUserReferral(ctx context.Context, referredID int64) (UserReferral, error) {
row := q.db.QueryRow(ctx, GetUserReferral, referredID)
var i UserReferral
err := row.Scan(
&i.ID,
&i.ReferredID,
&i.ReferralCodeID,
&i.CreatedAt,
)
return i, err
}
const GetUserReferralsByCode = `-- name: GetUserReferralsByCode :many
SELECT user_referrals.id, user_referrals.referred_id, user_referrals.referral_code_id, user_referrals.created_at
FROM user_referrals
JOIN referral_codes ON referral_codes.id == referral_code_id
WHERE referral_code = $1
`
func (q *Queries) GetUserReferralsByCode(ctx context.Context, referralCode string) ([]UserReferral, error) {
rows, err := q.db.Query(ctx, GetUserReferralsByCode, referralCode)
if err != nil {
return nil, err
}
defer rows.Close()
var items []UserReferral
for rows.Next() {
var i UserReferral
if err := rows.Scan(
&i.ID,
&i.ReferredID,
&i.ReferralCodeID,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const GetUserReferralsCount = `-- name: GetUserReferralsCount :one
SELECT COUNT(*)
FROM user_referrals
JOIN referral_codes ON referral_codes.id == referral_code_id
WHERE referrer_id = $1
`
func (q *Queries) GetUserReferralsCount(ctx context.Context, referrerID int64) (int64, error) {
row := q.db.QueryRow(ctx, GetUserReferralsCount, referrerID)
var count int64
err := row.Scan(&count)
return count, err
}
const UpdateReferralCode = `-- name: UpdateReferralCode :exec
UPDATE referral_codes
SET is_active = $2,
referral_code = $3,
number_of_referrals = $4,
reward_amount = $5,
updated_at = CURRENT_TIMESTAMP
WHERE id = $1
`
type UpdateReferralCodeParams struct {
ID int64 `json:"id"`
IsActive bool `json:"is_active"`
ReferralCode string `json:"referral_code"`
NumberOfReferrals int64 `json:"number_of_referrals"`
RewardAmount int64 `json:"reward_amount"`
}
func (q *Queries) UpdateReferralCode(ctx context.Context, arg UpdateReferralCodeParams) error {
_, err := q.db.Exec(ctx, UpdateReferralCode,
arg.ID,
arg.IsActive,
arg.ReferralCode,
arg.NumberOfReferrals,
arg.RewardAmount,
)
return err
}