/* Options:
Date: 2025-04-16 13:55:21
SwiftVersion: 5.0
Version: 8.0
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://consumer-api.brovs.com

//BaseClass: 
//AddModelExtensions: True
//AddServiceStackTypes: True
IncludeTypes: ReferBusinessLinkUsedRequest.*
//ExcludeTypes: 
//ExcludeGenericBaseTypes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
//InitializeCollections: True
//TreatTypesAsStrings: 
//DefaultImports: Foundation,ServiceStack
*/

import Foundation
import ServiceStack

// @Route("/share/refer-business-link-used", "POST")
public class ReferBusinessLinkUsedRequest : IReturn, IPost, Codable
{
    public typealias Return = ReferBusinessLinkUsedResponse

    public var referBusinessToken:String

    required public init(){}
}

public class ReferBusinessLinkUsedResponse : Codable
{
    public var referringUser:ReferBusinessUser
    public var referredPlace:ReferredPlace
    public var state:ReferBusinessState

    required public init(){}
}

public class ReferBusinessUser : Codable
{
    public var firstName:String
    public var lastName:String
    public var profilePhotoUrl:String

    required public init(){}
}

public class ReferredPlace : Codable
{
    public var id:Int
    public var guid:String
    public var name:String
    public var logoUrl:String
    public var imageUrl:String

    required public init(){}
}

public enum ReferBusinessState : String, Codable
{
    case SignInToSee
    case Available
    case CanNotReferYourself
    case AlreadyClaimedByYou
    case AlreadyClaimedBySomeoneElse
    case Expired
}