# SharingProduct

```swift
struct SharingProduct
```

One product card on the sharing page.

**Conforms to** `Swift.Equatable`, `Swift.Hashable`, `Swift.Sendable`

Defined in: [Sources/FrakSDK/Sharing/SharingRequest.swift:33](https://github.com/frak-id/wallet/blob/35995d05c807efe1e0d6319fdede3ad363124d1e/sdk/ios/Sources/FrakSDK/Sharing/SharingRequest.swift#L33)

## Initializers

### init(title:link:imageURL:utmContent:details:)

```swift
init(
    title: String,
    link: String,
    imageURL: String? = nil,
    utmContent: String? = nil,
    details: ProductDetails? = nil
)
```

## Properties

### details

```swift
let details: ProductDetails?
```

Scope fields a campaign's `productScope` can target. Composed rather than flattened
so `bestReward(products:)` can take scope-only products with no `title` at all.

### imageURL

```swift
let imageURL: String?
```

### link

```swift
let link: String
```

### title

```swift
let title: String
```

### utmContent

```swift
let utmContent: String?
```

Highest-priority source for `utm_content`.

## Operators

### !=(_:_:)

```swift
static func != (lhs: Self, rhs: Self) -> Bool
```

Returns a Boolean value indicating whether two values are not equal.

Inequality is the inverse of equality. For any values `a` and `b`, `a != b`
implies that `a == b` is `false`.

This is the default implementation of the not-equal-to operator (`!=`)
for any type that conforms to `Equatable`.

- Parameters:
  - lhs: A value to compare.
  - rhs: Another value to compare.