/** * Promotional code request * * Represents a request to use a referral or promo code */ export interface CodeRequestProps { /** Unique code request ID */ code_request_id:string; /** Player ID who is using the code */ player_id:string; /** The referral or promo code being used */ referral_code:string; /** Timestamp when code was requested */ create_datetime:any; /** Optional reward option ID for the code */ reward_option_id?:string; /** Current status of the code request */ status:'requested' | 'fulfilled' | 'invalid' | 'verified' | 'closed'; /** Timestamp of last status update */ last_update_datetime: any; /** Optional ID of the player who referred this user */ referrer_id?:string; /** Whether pending deposit is required */ pending_deposit?:boolean; } /** * Player referral * * Tracks a referral relationship between a referrer and referred player */ export interface PlayerReferralProps { /** Unique player referral ID */ player_referral_id:string; /** Player ID who created the referral code */ referrer_id:string; /** Optional phone number that was referred */ referred_phone?:number; /** The referral code used */ referral_code:string; /** Quality score for the referral based on activity */ referral_quality_quotient?:number; /** Current status of the referral */ status:'pending' | 'closed' | 'inactive'; /** Associated promo ID */ promo_id: string; /** Optional company ID for white-label referrals */ company_id?:string; /** Timestamp when referral was created */ create_datetime?: any; /** Optional statistics about referrals from this company */ referral_stats?:CompanyReferralStatsProps; /** Optional description for the referral */ description?:string; /** Optional custom image for the referral code */ code_image?:string; /** Timestamp of last update */ last_update_datetime?:any; /** Optional populated promo details */ promo?:PromoProps; } /** * Reward option * * Defines a specific reward that can be granted to players */ export interface RewardOptionProps { /** Unique reward option ID */ reward_option_id: string; /** Type of reward (cash, promo, item, etc.) */ reward_type: string; /** Numeric value of the reward */ reward_value: number; /** Display name for the reward */ reward_name:string; /** Whether this reward option is available */ status: 'active' | 'inactive'; /** Type of market where reward can be used */ market_type: 'FOR_MONEY' | 'FREE' | 'PROMO'; /** Quality threshold for awarding (based on referral_quality_quotient) */ award_quotient: number; /** Timestamp when reward was created */ create_datetime: any; /** Timestamp of last update */ last_update_datetime: any; } /** * Company referral statistics * * Aggregated referral metrics for a specific company */ export interface CompanyReferralStatsProps { /** Company ID */ company_id:string; /** Total number of sign-ups */ sign_up_count:number; /** Number of verified accounts */ verified_count:number; /** Number of first-time deposits */ first_time_deposit_count:number; } /** * Code request statistics * * Statistics about a player's referral code usage */ export interface CodeRequestStatsProps { /** Number of friends who have verified */ friends_verified:number; /** Total amount earned from referrals */ total_earned:number; /** Number of friends pending verification */ friends_pending:number; /** Potential earnings from pending referrals */ potential_earnings:number; } /** * Promotional offer * * Defines a promotional campaign or code offer */ export interface PromoProps { /** Unique promo ID */ promo_id:string; /** Description of the promotional offer */ description:string; /** Type of promotional campaign */ type: 'referral_code' | 'promo_code' | 'promo_sweepstakes' | 'referral_sweepstakes'; /** Amount of the promotional value */ amount:number; /** Type of currency/value being offered */ amount_type:'FOR_MONEY'|'FREE'; /** Whether the promo is currently active */ status: 'active' | 'inactive'; /** How the promo expires - by quantity or time */ expire_type: 'quantity' | 'time'; /** Number of available redemptions remaining */ available_codes: number; /** When the promo expires (if expire_type is 'time') */ expire_datetime:any; /** Timestamp when promo was created */ create_datetime:any; }