from django.utils.translation import gettext_lazy as _
from rest_framework import serializers

from common.serializers.fields import EncryptedField
from .base import OrgListField

__all__ = ['SlackSettingSerializer']


class SlackSettingSerializer(serializers.Serializer):
    PREFIX_TITLE = _('Slack')

    AUTH_SLACK = serializers.BooleanField(default=False, label=_('Slack'))
    SLACK_CLIENT_ID = serializers.CharField(max_length=256, required=True, label='Client ID')
    SLACK_CLIENT_SECRET = EncryptedField(max_length=256, required=False, label='Client Secret')
    SLACK_BOT_TOKEN = EncryptedField(max_length=256, required=False, label='Client bot Token')
    SLACK_RENAME_ATTRIBUTES = serializers.JSONField(
        required=False, label=_('User attribute'),
        help_text=_(
            'User attribute mapping, where the `key` is this system user attribute name and the '
            '`value` is the Slack service user attribute name'
        )
    )
    SLACK_ORG_IDS = OrgListField()
