import sys, os
import argparse
import pandas as pd
import shutil

parser = argparse.ArgumentParser()
parser.add_argument("-P","--f_PERISCOPE", default='20251209.targets.PERISCOPE.csv', help='Persicope targets file')
parser.add_argument("-B","--f_BASE", default='targets.csv', help='BASE targets file')
parser.add_argument("-PROD_OW","--PROD_OW", action='store_true', default=False, help='Really overwrite targets')
args = parser.parse_args()


PROD_OW = args.PROD_OW

p = pd.read_csv( args.f_PERISCOPE   )
b = pd.read_csv( args.f_BASE   )

print(f'read ({args.f_PERISCOPE}) ({len(p)})')
print(f'read ({args.f_BASE}) ({len(b)})')

if len(b)*len(p)==0:
    print('Zero size input file..  EXIT')
    exit(0)

### Backup the BASE file to targets.BASE.csv and HHMMSS.YYMMDD.targets.BASE.csv
destination_path = "path/to/your/destination_directory/" # or "path/to/your/destination_file.txt"
backup_f_BASE = args.f_BASE.replace('.','.BASE.')

try:
    shutil.copy(args.f_BASE, backup_f_BASE)
    print(f"File {args.f_BASE} copied to {backup_f_BASE}")
except FileNotFoundError:
    print(f"ERR No ({args.f_BASE}) found --> EXIT")
    exit(0)


### Combine the two files into one sheet
print('\n----PERISCOPE')
print(p.head())
print('\n----BASE')
print(b.head())

merg_cols=['ric', 'targetposition']
comb = pd.merge(b[merg_cols], p[merg_cols], on='ric', how='outer', suffixes=('_p', '_b')).fillna(0)
comb['targetposition'] = comb['targetposition_p'] + comb['targetposition_b'] 
comb.drop(['targetposition_p', 'targetposition_b'], axis=1, inplace=True)



for c in p.columns:
    if c in merg_cols:  continue
    comb[c] = b[c].values[0]
    
fn_o = 'comb.csv'    
comb.to_csv(fn_o, index=False)
print(f'wrote ({fn_o}) ({len(comb)})')    
    
print('\n-----comb:')
print(comb.head())


if PROD_OW:
    print(f'\n\nPROD_OW{PROD_OW} ---> overwrite({args.f_BASE})')
    fn_o = args.f_BASE
    comb.to_csv(fn_o, index=False)
    print(f'wrote ({fn_o}) ({len(comb)})')
 
    
