Preskoči na sadržaj

Flow: Profile Management (Registered User)

Actor

Registered user managing their default ticketing profile (own information with OIB) and optional saved profiles for family members, friends, and colleagues to streamline ticket purchases

Preconditions

  • User has active HNS account
  • User is logged into HNS mobile app
  • User may or may not have completed default profile (prompted during first ticket purchase if incomplete)

Flow Steps

Part 1: Default Profile Management (User's Own Ticketing Profile)

  1. Access Profile Management

    • User opens HNS mobile app
    • Navigates to Account/Settings section
    • Selects "Ticketing Profiles" option
    • System displays two sections:
      • "My Ticketing Profile" (default profile section at top)
      • "Saved Profiles" (list of saved profiles for others below)
  2. View Default Profile

  3. Default profile section displays (some fields prefilled from HNS user profile):
    • Profile card with label "My Ticketing Profile" or "Default Profile"
    • Full name
    • Date of birth
    • Nationality flag and text (e.g., "🇭🇷 Croatian")
    • OIB (required, only OIB holders can purchase tickets)
    • Email address (required)
    • Phone number
    • "Edit" button
    • Badge: "Used for all ticket purchases"
  4. If default profile incomplete:

    • Warning banner: "Complete your ticketing profile to purchase tickets"
    • "Complete Profile" button prominently displayed
  5. Edit Default Profile

    • User taps "Edit" button on default profile
    • Edit form displayed with pre-filled fields:
      • Full Name (editable, prefilled from user profile)
      • Date of Birth (editable, prefilled from user profile)
      • Nationality (read-only once entered)
      • OIB (read-only once entered with "Cannot change OIB" note)
      • Email (read-only)
      • Phone Number (required, prefilled from user profile)
    • User taps "Save Changes"
    • System validates and updates default profile
    • Message for read only fields: Contact customer support to change eg OIB, date of birth, or email.
    • Success message: "Your ticketing profile has been updated"
    • User returned to Ticketing Profiles screen
  6. Complete Default Profile (First Time)

    • If default profile incomplete, user taps "Complete Profile"
    • OR system prompts during first ticket purchase
    • Form displayed with fields:
      • Full Name (required, text input)
      • Date of Birth (required, date picker, DD.MM.YYYY format)
      • Nationality (required, dropdown: Croatian / Other with country selector)
      • OIB (required, 11 digits, numeric input, OIB checksum validation)
      • Email (required, email format validation)
      • Phone Number (required, phone format validation)
    • Validation:
      • Date of Birth: valid date, user must be 18+ for default profile (primary buyer requirement)
      • OIB: 11 digits, checksum validation for Croatians
      • OIB Global Uniqueness: OIB in default profile must be globally unique across all users. Two different users cannot have the same OIB in their default profile. This prevents duplicate buyer registrations.
      • Email: valid format
      • Phone: valid format
      • Note: Blacklist is NOT checked during profile creation - only during ticket purchase. A blacklisted OIB can create a profile, but will be blocked when attempting to purchase tickets.
    • User completes all required fields and taps "Save Profile"
    • System validates, encrypts sensitive data, creates default profile
    • Success message: "Your ticketing profile is complete. You can now purchase tickets!"
    • User returned to Ticketing Profiles screen or continues with ticket purchase

Part 2: Saved Profiles Management (Family, Friends, Others)

  1. View Saved Profiles

    • Below default profile section, "Saved Profiles" section displays
    • List of all saved profiles in card format
    • Each profile shows:
      • Full name (e.g., "Ana Kovač")
      • Date of birth (e.g., "15.03.2010")
      • Age indicator if minor (e.g., "Age: 15 - Minor")
      • Nationality flag and text (e.g., "🇭🇷 Croatian" or "🇩🇪 German")
      • Masked OIB/passport (e.g., "OIB: **34" or "Passport: ****789")
      • Relationship label if set (e.g., "Daughter")
    • Actions available: Edit, Delete
    • Profile count displayed (e.g., "3 of 10 saved profiles")
    • "Add New Profile" button prominently displayed
  2. Create New Saved Profile

    • User taps "Add New Profile" button
    • Info banner displayed: "Email Required: Tickets will be delivered to HNS app linked to the email address you provide. It is best for everyone to have a ticket on their mobile phone and for each person to enter their email address. For those people who do not have an email address or who do not have mobile phones on which they can download the application, you need to enter the email address of someone who will enter the stadium with that person and then have a ticket for themselves and for that person."
    • Form displayed with fields:
    • Full Name (required, text input)
    • Date of Birth (required, date picker, DD.MM.YYYY format)
    • Nationality (required, dropdown: Croatian / Other with country selector)
    • OIB (required if Croatian, 11 digits, numeric input)
    • Passport Number (required if foreign, alphanumeric input)
    • Email (required, by default same as user email, email format validation)
    • Phone Number (optional, phone format validation)
    • Relationship (optional, dropdown: Family Member, Spouse, Child, Friend, Colleague, Other)
    • Validation:
      • Date of Birth: valid date (can be minor for saved profiles - used to identify minors during purchase)
      • OIB: 11 digits, checksum validation for Croatians
      • Email: required, valid format
      • Phone: valid format if provided
      • Duplicate check: system checks if OIB/passport already exists in user's saved profiles or default profile
      • Note on OIB Uniqueness: Unlike the default profile which requires globally unique OIB, saved profiles only require OIB to be unique within the user's own profiles. The same person (OIB) can be saved as a profile by multiple users (e.g., a child saved by both parents).
  3. Save Saved Profile

    • User completes required fields and taps "Save Profile"
    • System validates all inputs:
      • Required fields completed
      • OIB checksum valid (for Croatians)
      • No duplicate OIB/passport in user's profiles
      • Total profiles < 10 (system limit)
    • System encrypts sensitive data (OIB, passport number)
    • Profile saved to user's account with timestamp
    • Success message displayed: "Profile saved successfully"
    • User returned to Ticketing Profiles screen showing new profile with masked OIB/passport
  4. Edit Existing Saved Profile

    • User selects profile from list and taps "Edit" action
    • System opens edit form pre-filled with current profile data
    • User can modify any fields
    • Validation applied same as profile creation
    • User taps "Save Changes"
    • System validates and updates profile with new timestamp
    • Success message: "Profile updated successfully"
    • User returned to profile list with updated information
  5. Delete Saved Profile

    • User selects profile from list and taps "Delete" action
    • System displays confirmation dialog:
      • "Are you sure you want to delete [Full Name]'s profile?"
      • "This action cannot be undone."
      • Buttons: "Cancel" / "Delete"
    • User confirms deletion
    • System removes profile from database
    • Success message: "Profile deleted successfully"
    • Profile list updates immediately
  6. Use Profiles During Ticket Purchase

    • Saved profiles can be used during ticket checkout to quickly fill in ticket holder information
    • For complete details on how profiles are used during purchase, see Flow: Standard Ticket Purchase Step 5 "Enter Ticket Holder Information"
    • Key points:
      • Ticket 1 (Primary Buyer) always uses the logged-in user's default profile - cannot be changed
      • Additional tickets (2-4) can use saved profiles or manual entry
      • System validates all profiles for OIB format and duplicates

Part 3: Loyalty Status

  1. View Loyalty Status
    • Below the "Saved Profiles" section, "My Loyalty Status" section displays
    • Section only visible if user has attended at least one match (has loyalty points)
    • Section displays:
      • Header: "My Loyalty Status"
      • Points display: "🏆 [X] Loyalty Points" (e.g., "🏆 27 Loyalty Points")
      • Info message: "For each match, HNS determines early access eligibility and ticket allocation based on loyalty points."
      • Link button: "View Points History"
    • Important: Do NOT display specific tier info (e.g., "4 tickets") - HNS determines allocation per match
    • User taps "View Points History"
    • System navigates to Loyalty Points History screen

Alternative Flows

A1: Profile Creation - Duplicate OIB Detected

  • User attempts to save profile with OIB that already exists in their saved profiles
  • System displays error message: "A profile with this OIB already exists in your saved profiles"
  • Form remains open with entered data
  • User can:
    • Modify OIB if entered incorrectly
    • Cancel profile creation
    • View existing profile with same OIB

A2: Profile Creation - Invalid OIB Checksum

  • User enters Croatian OIB with invalid checksum
  • System displays error: "Invalid OIB. Please check the number and try again"
  • Field highlighted in red with inline error message
  • User corrects OIB or cancels profile creation

A3: Default Profile - OIB Already Registered (Global Uniqueness)

  • User attempts to complete default profile with an OIB that is already used by another user's default profile
  • System displays error message: "This OIB is already registered with another account. If you think this is a mistake, please contact customer support."
  • Field highlighted in red with inline error message
  • User can:
    • Verify and re-enter OIB if entered incorrectly
    • Contact customer support to resolve (e.g., identity theft, previous account)
    • Cancel profile completion
  • Note: This validation only applies to the default profile (buyer's own OIB). Saved profiles do not require global OIB uniqueness - only uniqueness within the user's own saved profiles.

A4: Profile Creation - Maximum Limit Reached

  • User attempts to create profile when already at 10 profile limit
  • "Add New Profile" button disabled or shows warning
  • Message displayed: "Maximum 10 profiles allowed. Delete an existing profile to add a new one"
  • User must delete existing profile before creating new one

A5: Profile Creation - Validation Failure

  • User submits form with missing required fields or invalid data
  • System highlights fields with errors
  • Inline error messages displayed:
    • "Full name is required"
    • "Please select nationality"
    • "OIB is required for Croatian nationals"
    • "Invalid email format"
  • Form remains open for corrections
  • User corrects errors and resubmits

A6: Profile Selection During Purchase - Blacklist Hit

  • User selects saved profile during checkout
  • System performs blacklist check on selected profile's OIB
  • OIB found on blacklist
  • System displays error: "HNS is prevented from selling a ticket to this person pursuant to applicable law. For all information regarding this restriction, please contact MUP (Ministry of Interior)."
  • User cannot proceed with selected profile
  • User can:
    • Select different profile
    • Enter new details for that ticket
    • Cancel purchase

A7: Profile Selection During Purchase - No Profiles Available

  • User navigates to ticket holder details during checkout
  • User has no saved profiles in account
  • System only displays "Enter New Details" option for manual input
  • Suggestion message: "Save profiles in Account Settings for faster checkout next time"
  • User enters details manually for this purchase

A8: Mixed Profile Selection and Manual Entry

  • User purchasing 4 tickets
  • Ticket 1: Always uses default profile (primary buyer)
  • Ticket 2: Selects from saved profiles
  • Ticket 3: Selects from saved profiles
  • Ticket 4: Chooses "Enter New Details" for manual entry
  • System accepts mixed input methods for additional tickets (2-4)
  • All ticket holder data validated (saved profiles + manual entry)
  • System performs blacklist check on all 4 OIBs
  • User proceeds to payment

A9: Delete Profile - Profile Recently Used

  • User attempts to delete profile that was recently used in past purchases
  • System allows deletion (profiles are copies at purchase time)
  • Confirmation dialog includes note: "Deleting this profile will not affect past purchases"
  • User confirms deletion
  • Profile deleted from saved profiles
  • Past ticket purchases remain unaffected

A10: Edit Profile - Critical Field Change

  • User edits profile and changes OIB or passport number
  • System treats as significant change requiring re-validation
  • Full OIB checksum validation performed
  • Duplicate check against other saved profiles
  • Change logged in audit trail
  • Updated profile saved with new timestamp

A11: Apple SSO Hidden Email Issue

  • User registered via Apple SSO with "Hide My Email" option
  • User has a masked/relay email address (e.g., abc123@privaterelay.appleid.com)
  • This creates issues for:
    • Receiving tickets via quota email invitations
    • Email-based ticket assignment from other buyers
  • Solution: Allow Different Email in Default Ticketing Profile
    • For SSO users, system allows the Default Ticketing Profile email to be different from the registered account email
    • System detects SSO user with masked email during profile management
    • In "My Ticketing Profile" (Default Profile) section, system displays banner: "Your account uses a masked email address. Update your ticketing profile email to receive tickets from others."
    • User edits Default Ticketing Profile
    • User enters real email address in the Email field (different from SSO masked email)
    • System sends verification email to provided address
    • User clicks verification link in email
    • System confirms verification and saves real email in Default Ticketing Profile
    • Result:
      • Default Ticketing Profile now has real email for ticket-related communications
      • Original Apple SSO masked email remains for account authentication/login
      • Quota invitations and ticket assignments use the Default Profile email
    • Success message: "Email verified. Your ticketing profile now uses [email] for receiving tickets."
  • Note: Masked email users can still purchase tickets themselves; only receiving from others is affected

A12: Minor Ticket Holder - No Email Assignment

  • During ticket purchase, user selects a minor (under 18) as ticket holder
  • System detects ticket holder is a minor based on date of birth
  • Email assignment options are restricted:
    • "Assign to Email" option is disabled for this ticket
    • Info message: "Tickets for minors cannot be transferred. Minor must enter with accompanying adult."
  • Ticket remains on buyer's app
  • At stadium entry, minor and accompanying adult must enter together using adult's device

Post-Flow Actions

Audit Trail:

  • All profile operations logged:
    • Profile created: timestamp, user_id, profile_id
    • Profile updated: timestamp, user_id, profile_id, fields_changed
    • Profile deleted: timestamp, user_id, profile_id
    • Profile selected in purchase: timestamp, user_id, profile_id, order_id

Data Privacy:

  • Profile data encrypted at rest in database
  • OIB/passport numbers masked in all UI displays
  • Profile data only accessible to owning user account
  • Profile data deleted if user account deleted (GDPR compliance)
  • Profile data retained as long as account active

Last Updated: January 2026