// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.20.0 // source: locations.sql package db import ( "context" "database/sql" ) const createLocation = `-- name: CreateLocation :exec INSERT INTO locations( address, name, submitted_by, regency_id, google_maps_link ) values ( $1, $2, $3, $4, $5 ) ` type CreateLocationParams struct { Address string `json:"address"` Name string `json:"name"` SubmittedBy int32 `json:"submitted_by"` RegencyID int16 `json:"regency_id"` GoogleMapsLink sql.NullString `json:"google_maps_link"` } func (q *Queries) CreateLocation(ctx context.Context, arg CreateLocationParams) error { _, err := q.db.ExecContext(ctx, createLocation, arg.Address, arg.Name, arg.SubmittedBy, arg.RegencyID, arg.GoogleMapsLink, ) return err } const getListLocations = `-- name: GetListLocations :many SELECT id, address, name, google_maps_link, location_type, submitted_by, total_visited, thumbnail, regency_id, is_deleted, created_at, updated_at, approved_by, approved_at FROM locations ` func (q *Queries) GetListLocations(ctx context.Context) ([]Location, error) { rows, err := q.db.QueryContext(ctx, getListLocations) if err != nil { return nil, err } defer rows.Close() items := []Location{} for rows.Next() { var i Location if err := rows.Scan( &i.ID, &i.Address, &i.Name, &i.GoogleMapsLink, &i.LocationType, &i.SubmittedBy, &i.TotalVisited, &i.Thumbnail, &i.RegencyID, &i.IsDeleted, &i.CreatedAt, &i.UpdatedAt, &i.ApprovedBy, &i.ApprovedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getListRecentLocationsWithRatings = `-- name: GetListRecentLocationsWithRatings :many SELECT l.id, name, thumbnail, COALESCE(re.regency_name, '') as regency_name, COALESCE(pr.province_name, '') as province_name, (SELECT COALESCE(SUM(score), 0) from reviews re where re.is_from_critic = true and re.location_id = l.id) as critic_score, (SELECT COUNT(id) from reviews re where re.is_from_critic = true and re.location_id = l.id) as critic_count, (SELECT COALESCE(SUM(score), 0) from reviews re where re.is_from_critic = false and re.location_id = l.id) as user_score, (SELECT COUNT(id) from reviews re where re.is_from_critic = false and re.location_id = l.id) as user_count FROM locations l JOIN regencies re on re.id = l.regency_id JOIN provinces pr on re.province_id = pr.id WHERE approved_by IS NOT NULL ORDER BY l.created_at ASC LIMIT $1 ` type GetListRecentLocationsWithRatingsRow struct { ID int32 `json:"id"` Name string `json:"name"` Thumbnail sql.NullString `json:"thumbnail"` RegencyName string `json:"regency_name"` ProvinceName string `json:"province_name"` CriticScore interface{} `json:"critic_score"` CriticCount int64 `json:"critic_count"` UserScore interface{} `json:"user_score"` UserCount int64 `json:"user_count"` } func (q *Queries) GetListRecentLocationsWithRatings(ctx context.Context, limit int32) ([]GetListRecentLocationsWithRatingsRow, error) { rows, err := q.db.QueryContext(ctx, getListRecentLocationsWithRatings, limit) if err != nil { return nil, err } defer rows.Close() items := []GetListRecentLocationsWithRatingsRow{} for rows.Next() { var i GetListRecentLocationsWithRatingsRow if err := rows.Scan( &i.ID, &i.Name, &i.Thumbnail, &i.RegencyName, &i.ProvinceName, &i.CriticScore, &i.CriticCount, &i.UserScore, &i.UserCount, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getLocationTag = `-- name: GetLocationTag :many SELECT name FROM tags WHERE tags_type = 'location' AND target_id = $1 AND approved_by IS NOT NULL ` func (q *Queries) GetLocationTag(ctx context.Context, targetID int32) ([]string, error) { rows, err := q.db.QueryContext(ctx, getLocationTag, targetID) if err != nil { return nil, err } defer rows.Close() items := []string{} for rows.Next() { var name string if err := rows.Scan(&name); err != nil { return nil, err } items = append(items, name) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil }