import { Modal } from '@tidbcloud/uikit'
import { observer } from 'mobx-react'

import { SharedTiDB } from 'dbaas/screens/NextGen/shared/model/shared-tidb-state'
import {
  Nextgenv1beta2AuditLogSetting,
  V1beta2CloudProviderInfo
} from 'dbaas/services/api-clients/v2025/tidb-management/v1beta2/interface'

import StoredConfig from './StoreConfig'

interface AuditLogEnableModalProps {
  opened: boolean
  tidb: SharedTiDB
  orgId: string
  config?: Nextgenv1beta2AuditLogSetting
  cloudProviderInfo?: V1beta2CloudProviderInfo
  onClose: () => void
  onCancel?: () => void
}

const AuditLogEditModal = observer(
  ({ opened, tidb, orgId, config, cloudProviderInfo, onClose }: AuditLogEnableModalProps) => {
    return (
      <Modal
        title={config ? 'Database Audit Log Storage Configuration' : 'Enable Database Audit Logging'}
        opened={opened}
        onClose={onClose}
        size={800}
        centered
        trapFocus={false}
        closeOnClickOutside={false}
      >
        <StoredConfig
          tidb={tidb}
          opened={opened}
          orgId={orgId}
          onClose={onClose}
          config={config}
          cloudProviderInfo={cloudProviderInfo}
        />
      </Modal>
    )
  }
)

export default AuditLogEditModal
