Configuration de la Base de Données
Supposons que nous utilisons MySQL pour la base de données. La table policies contient les informations sur les polices d’assurance, et la table clients contient les informations sur les clients.
Structure de la Base de Données (SQL)
CREATE TABLE clients (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(15)
);
CREATE TABLE policies (
id INT AUTO_INCREMENT PRIMARY KEY,
client_id INT,
policy_number VARCHAR(50) NOT NULL,
coverage_amount DECIMAL(10, 2) NOT NULL,
risk_level VARCHAR(20),
start_date DATE,
end_date DATE,
FOREIGN KEY (client_id) REFERENCES clients(id)
);
Code PHP
Connexion à la Base de Données
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "insurance_db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
Classe Client
<?php
class Client {
private $conn;
private $table_name = "clients";
public $id;
public $name;
public $email;
public $phone;
public function __construct($db) {
$this->conn = $db;
}
public function create() {
$query = "INSERT INTO " . $this->table_name . " (name, email, phone) VALUES (?, ?, ?)";
$stmt = $this->conn->prepare($query);
$stmt->bind_param("sss", $this->name, $this->email, $this->phone);
return $stmt->execute();
}
public function read() {
$query = "SELECT * FROM " . $this->table_name;
$result = $this->conn->query($query);
return $result;
}
}
?>
Classe Policy
<?php
class Policy {
private $conn;
private $table_name = "policies";
public $id;
public $client_id;
public $policy_number;
public $coverage_amount;
public $risk_level;
public $start_date;
public $end_date;
public function __construct($db) {
$this->conn = $db;
}
public function create() {
$query = "INSERT INTO " . $this->table_name . " (client_id, policy_number, coverage_amount, risk_level, start_date, end_date) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $this->conn->prepare($query);
$stmt->bind_param("isdsss", $this->client_id, $this->policy_number, $this->coverage_amount, $this->risk_level, $this->start_date, $this->end_date);
return $stmt->execute();
}
public function read() {
$query = "SELECT * FROM " . $this->table_name;
$result = $this->conn->query($query);
return $result;
}
public function evaluateRisk() {
// Simplistic risk evaluation based on coverage amount
if ($this->coverage_amount < 50000) {
$this->risk_level = 'Low';
} elseif ($this->coverage_amount < 100000) {
$this->risk_level = 'Medium';
} else {
$this->risk_level = 'High';
}
}
}
?>
Créer un Nouveau Client et une Nouvelle Police
<?php
include 'config.php';
include 'Client.php';
include 'Policy.php';
$client = new Client($conn);
$client->name = "John Doe";
$client->email = "john@example.com";
$client->phone = "123456789";
$client->create();
$policy = new Policy($conn);
$policy->client_id = $conn->insert_id; // Last inserted client ID
$policy->policy_number = "POL123456";
$policy->coverage_amount = 75000;
$policy->start_date = date('Y-m-d');
$policy->end_date = date('Y-m-d', strtotime('+1 year'));
$policy->evaluateRisk();
$policy->create();
?>
Afficher les Clients et les Polices
<?php
include 'config.php';
include 'Client.php';
include 'Policy.php';
$client = new Client($conn);
$clients = $client->read();
echo "<h2>Clients</h2>";
while ($row = $clients->fetch_assoc()) {
echo "ID: " . $row['id'] . " - Name: " . $row['name'] . " - Email: " . $row['email'] . "<br>";
}
$policy = new Policy($conn);
$policies = $policy->read();
echo "<h2>Policies</h2>";
while ($row = $policies->fetch_assoc()) {
echo "Policy Number: " . $row['policy_number'] . " - Coverage: " . $row['coverage_amount'] . " - Risk Level: " . $row['risk_level'] . "<br>";
}
?>
Envoi de Notifications (Email)
<?php
function sendNotification($email, $subject, $body) {
$headers = 'From: no-reply@example.com' . "\r\n" .
'Reply-To: no-reply@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if (mail($email, $subject, $body, $headers)) {
echo "Email sent successfully to $email";
} else {
echo "Failed to send email to $email";
}
}
// Example usage
$clientEmail = "john@example.com";
$subject = "Policy Renewal Reminder";
$body = "Dear John, your policy POL123456 is due for renewal on " . date('Y-m-d', strtotime('+1 year')) . ".";
sendNotification($clientEmail, $subject, $body);
?>
Conclusion
Ce code PHP constitue une base pour un système complexe de gestion des risques en assurances, permettant de gérer les clients, les polices d’assurance, d’évaluer les risques et de notifier les clients. Des fonctionnalités supplémentaires peuvent être ajoutées, telles que l’intégration de systèmes de paiement, des analyses de données plus avancées, et une interface utilisateur améliorée.