package ru.yandex.galois.clients.yt.model

import ru.yandex.inside.yt.kosher.impl.ytree.`object`.FieldsBindingStrategy
import ru.yandex.inside.yt.kosher.impl.ytree.`object`.NullSerializationStrategy
import ru.yandex.inside.yt.kosher.impl.ytree.`object`.annotation.YTreeField
import ru.yandex.inside.yt.kosher.impl.ytree.`object`.annotation.YTreeObject
import ru.yandex.misc.lang.number.UnsignedLong

@YTreeObject(nullSerializationStrategy = NullSerializationStrategy.SERIALIZE_NULL_TO_EMPTY,
    bindingStrategy = FieldsBindingStrategy.ANNOTATED_ONLY)
data class YtAbcServiceMember(
    @YTreeField(key = "id")
    val id: Long,
    @YTreeField(key = "person_id")
    val personId: Long,
    @YTreeField(key = "person_login")
    val personLogin: String,
    @YTreeField(key = "service_id")
    val serviceId: Long,
    @YTreeField(key = "service_slug")
    val serviceSlug: String,
    @YTreeField(key = "role_id")
    val roleId: Long,
    @YTreeField(key = "role_code")
    val roleCode: String,
    @YTreeField(key = "role_scope_id")
    val roleScopeId: Long,
    @YTreeField(key = "role_scope_slug")
    val roleScopeSlug: String,
    @YTreeField(key ="created_at")
    val createdAt: UnsignedLong,
    @YTreeField(key ="modified_at")
    val modifiedAt: UnsignedLong)
