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

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

__all__ = ['DingTalkSettingSerializer']


class DingTalkSettingSerializer(serializers.Serializer):
    PREFIX_TITLE = _('DingTalk')

    DINGTALK_AGENTID = serializers.CharField(max_length=256, required=True, label='Agent ID')
    DINGTALK_APPKEY = serializers.CharField(max_length=256, required=True, label='App Key')
    DINGTALK_APPSECRET = EncryptedField(max_length=256, required=False, label='App Secret')
    AUTH_DINGTALK = serializers.BooleanField(default=False, label=_('Dingtalk'))
    DINGTALK_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 DingTalk service user attribute name'
        )
    )
    DINGTALK_ORG_IDS = OrgListField()
