The campaign object represents the live campaigns configured in the Nami Control Center that are available to the device after all campaign filtering and ordering rules are applied.

@objc public class NamiCampaign : NSObject, Codable, Identifiable {
    public var id: String { rule }
    public var rule: String
    public var segment: String
    public var paywall : String
    public var type: NamiCampaignRuleType = .unknown
    public var value: String?
}
class NamiCampaign(
     val paywall: String,
     val segment: String,
     val type: NamiCampaignRuleType,
     val value: String?
)
class NamiCampaign {
  final String paywall;
  final String segment;
  final NamiCampaignRuleType type;
  final String? value;
}
export type NamiCampaign = {
  id: string;
  rule: string;
  segment: string;
  paywall: string;
  type: NamiCampaignRuleType;
  value?: string | null;
};
public class NamiCampaign
    {
        /// <summary> iOS only </summary>
        public string Id { get; private set; }

        /// <summary> iOS only </summary>
        public string Rule { get; private set; }

        public string Paywall { get; private set; }

        public string Segment { get; private set; }

        /// <summary> Android only </summary>
        public NamiCampaignRuleType Type { get; private set; }

        public string Value { get; private set; }
    }