package FS::cdr::infinite;

use strict;
use vars qw( @ISA %info );
use FS::cdr qw(_cdr_date_parser_maker);

@ISA = qw(FS::cdr);

my $date_parser = _cdr_date_parser_maker('startdate');

%info = (
  'name'          => 'Infinite Conferencing',
  'weight'        => 520,
  'header'        => 1,
  'type'          => 'csv',
  'sep_char'      => ',',
  'import_fields' => [
    'uniqueid',       # A. billid
    skip(3),          # B-D. confid, invoicenum, acctgrpid
    skip(1),          # E. accountid ("Room Confirmation Number")
    'dst',            # was: skip(1), # F. billingcode ("Room Billingcode")
    skip(1),          # G. confname
    skip(1),          # H. participant_type
    skip(1),          # I. starttime_t - timezone is unreliable
    sub {             # J. startdate
      my ($cdr, $data, $conf, $param) = @_;
      $param->{'date_part'} = $data; # stash this and combine with the time
      '';
    },
    sub {             # K. starttime
      my ($cdr, $data, $conf, $param) = @_;
      my $datestring = delete($param->{'date_part'}) . ' ' . $data;
      &{ $date_parser }($cdr, $datestring);
    },
    sub { my($cdr, $data, $conf, $param) = @_;
          $cdr->duration($data * 60);
          $cdr->billsec( $data * 60);
    },                # L. minutes
    skip(1),          # M. dnis
    'src',            # N. ani
    skip(1),          # was: 'dst', # O. calltype
    skip(7),          # P-V. calltype_text, confstart_t, confstartdate, 
                      # confstarttime, confminutes, conflegs, ppm
    'upstream_price', # W. callcost
    skip(11),         # X-AH. confcost, rppm, rcallcost, rconfcost,
                      # auxdata[1..4], ldval, sysname, username
    'accountcode',    # AI. Chairperson Entry Code
    skip(1),          # AJ. Participant Entry Code
    'description',    # AK. contact name
  ],

);

sub skip { map {''} (1..$_[0]) }

1;
