use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Globals qw(bignum find_descr flag_names);
use Dbase::Help qw(Do DoFn);
use Fehler qw(problem warnung);
use Loader qw(log_update);

sub delete_zone($;$) {
	my ( $dom, $kn ) = @_;

	defined( my $flag_dnszone = find_descr( domainflags => dnszone => 1 ) )
	  or return problem('Flag "dnszone" nicht gefunden.');
	$flag_dnszone = bignum(1) << $flag_dnszone;

	defined( my $flags_alt =
		  DoFn("SELECT flags FROM domainkunde WHERE id = $dom") )
	  or return problem("Domain #$dom nicht gefunden!");
	return warnung('Für diese Domain haben wir gar keine DNS-Zone.')
	  unless $flags_alt & $flag_dnszone;

	( my $flags_neu = $flags_alt ) &= ~$flag_dnszone;

	Do(<<_);
	UPDATE domainkunde
	SET    flags = $flags_neu
	WHERE  id = $dom AND flags & $flag_dnszone
_
	log_update(
		domainkunde =>
		  id        => $dom,
		undef,
		flags => undef,
		scalar flag_names( $flags_neu, domainflags => $flags_alt )
	);
	$dom;
}

1;
