Skip to content
Snippets Groups Projects
GroupMember.swift 912 B
Newer Older
Bruno Muniz's avatar
Bruno Muniz committed
import Foundation

public struct GroupMember {
    public enum Request {
        case all
        case strangers
        case fromGroup(Data)
        case withUserId(Data)
    }

    public enum Status: Int64, Codable {
        case usernameSet
        case pendingUsername
    }

    public var id: Int64?
    public var userId: Data
    public var groupId: Data
    public var status: Status
    public var username: String
    public var photo: Data?

    public init(
        id: Int64? = nil,
        userId: Data,
        groupId: Data,
        status: Status,
        username: String,
        photo: Data? = nil
    ) {
        self.id = id
        self.userId = userId
        self.groupId = groupId
        self.username = username
        self.status = status
        self.photo = photo
    }
}

extension GroupMember: Codable {}
extension GroupMember: Hashable {}
extension GroupMember: Equatable {}