import java.net.URL;
import java.sql.*;

/**
 * class UserDAO
 * stores and retrieves objects of type User
 *
 * @author Jim
 * @version 1.0
 */
public class BookingDAO
{
    private static Connection theConn;

     /**
     * Stores a new User object to the database
     *
     * @param user the User object to be stored
     */
    public static void storeNew(Booking booking)
    {
         try {
             // connection to an ACCESS MDB
             theConn = getConnection();

             Statement stmt;
             String sql;

             sql =
                "INSERT INTO Bookings(tourID,username,adults ,children,status) "+
                "VALUES(" +
                booking.getTour().getTourID() + ",'" +
                booking.getUser().getUsername() + "'," +
                booking.getAdults() + "," +
                booking.getChildren() + ",'" +
                booking.getStatus() + "')";

             System.out.println("Query: " + sql);   // for debugging SQL statement

             stmt = theConn.createStatement();
             int rowsAffected = stmt.executeUpdate(sql);

             System.out.println(rowsAffected + " row(s) inserted");   // to check whether insert was successful

             stmt.close();

             PackageDAO.storeUpdated(booking.getTour().getHolidayPackage());

         }
         catch (Exception e) {
             System.out.println("COULD NOT STORE: " + e.toString());
             //e.printStackTrace();
         }
         finally {
             try {
                 if (theConn != null) theConn.close();
                }
             catch (Exception e) {
             }
        }
    }


     /**
      * Gets a Connection object to the database
      *
      * @return the Connection object
      */
     private static Connection getConnection() throws Exception {
        Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
        //String URL = "jdbc:odbc:gcutours";
        //Connection c = DriverManager.getConnection(URL, null, null);
        Connection c = DriverManager.getConnection(
            "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};" +
            "DBQ=c:/Users/student/My Documents/databases/gcutours_app.mdb"
        );
        return c;
    }
}
