#!/usr/bin/perl

# $ENV{DBIC_TRACE}=1;
use JSON;
use strict;
use Data::Show;
use Mojo::Template;
my $basepath = '/home/sites/clm.dmadelivers.com/www/clmapp/';
use lib "/home/sites/clm.dmadelivers.com/www/clmapp/lib";
$ENV{MOJO_TEMPLATE_DEBUG}=1;
use CLMApp::Schema;
CLMApp::Schema->load_components(qw/
    TableNames
/);
my $dbix = CLMApp::Schema->connect("dbi:mysql:host=rds1.dmadelivers.com;db=dmaclm", 'dmaclm', '3lUz1OV2!',{unsafe=>1,RaiseError=>0,PrintError=>1});

my $modules;
my $tables;

my $sources;
my $schema = $dbix;
# show $schema->sources;
my @controllers;
for my $source_name ($schema->sources) {
push(@controllers, $source_name);	
	# next unless $source_name =~ /TabSeries/;

#	show $source_name;
	my $result_source = $schema->source($source_name);
	$sources->{$source_name}->{table} = $source_name;
	$sources->{$source_name}->{pk} = $result_source->_primaries ? $result_source->_primaries->[0] : ""; 
    for my $column_name ($result_source->columns) {
        my $cinfo = $result_source->column_info($column_name);
        $sources->{$source_name}->{pk} ||= $column_name;
        $cinfo->{column_name} = $column_name;
        push(@{ $sources->{$source_name}->{columns} }, $cinfo);
        push(@{ $sources->{$source_name}->{column_order} }, $column_name);
    }
}
# show sort(@controllers);

foreach my $o (keys %$sources){
	next if $o =~ /minion/i;
	my @cols;
	my %cols;
	my $s = $sources->{$o};
	foreach my $c (@{$s->{columns}}){
		if( ($c->{data_type} eq 'text' ||  $c->{data_type} eq 'varchar') && $c->{column_name} ne 'body'  && $c->{column_name} ne 'customwarehousename' ){
			my $literal = 'UPPER(' . $c->{column_name} . ')';
			$cols{ $c->{column_name} } = \$literal;
		}
	}
	@cols = keys %cols;
	if(scalar(@cols)){
		show %cols;
		$dbix->resultset($o)->update(\%cols);
		# my $stmt = qq/UPDATE $o SET / . join(",", @cols);
		# show $stmt;		
	}

}


# my $app = 'OEApp';

# my $mt = Mojo::Template->new(vars => 1);
# my $cnt = 0;
# foreach my $table (keys %$sources){
# 	my $tb = $sources->{$table};
# 	my $module = $table; $module =~ s/^tab//i; # $module =~ s/[a-z]//g;
# 	my $title = $module; $title =~ s/[a-z0-9]+(?=[A-Z])\K/ /gx;
# 	my $controller = $module;
# 	$module = lc($module);
# 	my $lcapp = lc($app);
# }

1;
