Task 1.2 - Entités JPA fondamentales
- Création de BaseEntity avec audit trail et soft delete - Création de l'entité User avec Quarkus Security JPA - Création de l'entité Client avec informations d'entreprise - Création de l'entité Coach avec informations professionnelles - Relations JPA one-to-one entre User-Client et User-Coach - Migrations Flyway V1, V2, V3 pour les tables - Données de test dans import.sql - Compilation réussie du module d'implémentation
This commit is contained in:
86
src/main/resources/db/migration/V1__Create_users_table.sql
Normal file
86
src/main/resources/db/migration/V1__Create_users_table.sql
Normal file
@@ -0,0 +1,86 @@
|
||||
-- Migration V1: Création de la table users
|
||||
-- Auteur: GBCM Development Team
|
||||
-- Date: 2024-01-25
|
||||
-- Description: Table principale des utilisateurs avec audit trail et soft delete
|
||||
|
||||
CREATE TABLE users (
|
||||
-- Identifiant unique
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
|
||||
-- Informations personnelles
|
||||
first_name VARCHAR(50) NOT NULL,
|
||||
last_name VARCHAR(50) NOT NULL,
|
||||
email VARCHAR(255) NOT NULL UNIQUE,
|
||||
phone VARCHAR(20),
|
||||
|
||||
-- Authentification
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
role VARCHAR(20) NOT NULL CHECK (role IN ('ADMIN', 'MANAGER', 'COACH', 'CLIENT', 'PROSPECT')),
|
||||
active BOOLEAN NOT NULL DEFAULT true,
|
||||
|
||||
-- Sécurité et connexion
|
||||
last_login_at TIMESTAMP,
|
||||
last_login_ip VARCHAR(45),
|
||||
failed_login_attempts INTEGER NOT NULL DEFAULT 0,
|
||||
locked_until TIMESTAMP,
|
||||
|
||||
-- Réinitialisation de mot de passe
|
||||
password_reset_token VARCHAR(255),
|
||||
password_reset_expires_at TIMESTAMP,
|
||||
|
||||
-- Audit trail
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
created_by VARCHAR(100),
|
||||
updated_by VARCHAR(100),
|
||||
|
||||
-- Soft delete
|
||||
deleted BOOLEAN NOT NULL DEFAULT false,
|
||||
deleted_at TIMESTAMP,
|
||||
deleted_by VARCHAR(100)
|
||||
);
|
||||
|
||||
-- Index pour les performances
|
||||
CREATE INDEX idx_users_email ON users(email);
|
||||
CREATE INDEX idx_users_role ON users(role);
|
||||
CREATE INDEX idx_users_active ON users(active);
|
||||
CREATE INDEX idx_users_deleted ON users(deleted);
|
||||
CREATE INDEX idx_users_password_reset_token ON users(password_reset_token);
|
||||
|
||||
-- Trigger pour mettre à jour updated_at automatiquement
|
||||
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.updated_at = CURRENT_TIMESTAMP;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ language 'plpgsql';
|
||||
|
||||
CREATE TRIGGER update_users_updated_at
|
||||
BEFORE UPDATE ON users
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_updated_at_column();
|
||||
|
||||
-- Commentaires sur la table et les colonnes
|
||||
COMMENT ON TABLE users IS 'Table des utilisateurs de la plateforme GBCM';
|
||||
COMMENT ON COLUMN users.id IS 'Identifiant unique de l''utilisateur';
|
||||
COMMENT ON COLUMN users.first_name IS 'Prénom de l''utilisateur';
|
||||
COMMENT ON COLUMN users.last_name IS 'Nom de famille de l''utilisateur';
|
||||
COMMENT ON COLUMN users.email IS 'Adresse email unique utilisée pour l''authentification';
|
||||
COMMENT ON COLUMN users.phone IS 'Numéro de téléphone de l''utilisateur';
|
||||
COMMENT ON COLUMN users.password_hash IS 'Hash du mot de passe pour l''authentification';
|
||||
COMMENT ON COLUMN users.role IS 'Rôle de l''utilisateur dans le système';
|
||||
COMMENT ON COLUMN users.active IS 'Statut d''activation du compte';
|
||||
COMMENT ON COLUMN users.last_login_at IS 'Date et heure de la dernière connexion';
|
||||
COMMENT ON COLUMN users.last_login_ip IS 'Adresse IP de la dernière connexion';
|
||||
COMMENT ON COLUMN users.failed_login_attempts IS 'Nombre de tentatives de connexion échouées consécutives';
|
||||
COMMENT ON COLUMN users.locked_until IS 'Date jusqu''à laquelle le compte est verrouillé';
|
||||
COMMENT ON COLUMN users.password_reset_token IS 'Token pour la réinitialisation du mot de passe';
|
||||
COMMENT ON COLUMN users.password_reset_expires_at IS 'Date d''expiration du token de réinitialisation';
|
||||
COMMENT ON COLUMN users.created_at IS 'Date et heure de création de l''enregistrement';
|
||||
COMMENT ON COLUMN users.updated_at IS 'Date et heure de dernière mise à jour';
|
||||
COMMENT ON COLUMN users.created_by IS 'Utilisateur qui a créé l''enregistrement';
|
||||
COMMENT ON COLUMN users.updated_by IS 'Utilisateur qui a effectué la dernière mise à jour';
|
||||
COMMENT ON COLUMN users.deleted IS 'Indicateur de suppression logique';
|
||||
COMMENT ON COLUMN users.deleted_at IS 'Date et heure de suppression logique';
|
||||
COMMENT ON COLUMN users.deleted_by IS 'Utilisateur qui a effectué la suppression logique';
|
||||
98
src/main/resources/db/migration/V2__Create_clients_table.sql
Normal file
98
src/main/resources/db/migration/V2__Create_clients_table.sql
Normal file
@@ -0,0 +1,98 @@
|
||||
-- Migration V2: Création de la table clients
|
||||
-- Auteur: GBCM Development Team
|
||||
-- Date: 2024-01-25
|
||||
-- Description: Table des clients avec informations d'entreprise et relation avec users
|
||||
|
||||
CREATE TABLE clients (
|
||||
-- Identifiant unique
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
|
||||
-- Relation avec l'utilisateur (one-to-one)
|
||||
user_id BIGINT NOT NULL UNIQUE,
|
||||
|
||||
-- Informations de l'entreprise
|
||||
company_name VARCHAR(200) NOT NULL,
|
||||
industry VARCHAR(100),
|
||||
company_size INTEGER,
|
||||
annual_revenue DECIMAL(15,2),
|
||||
|
||||
-- Adresse de l'entreprise
|
||||
address_line1 VARCHAR(255),
|
||||
address_line2 VARCHAR(255),
|
||||
city VARCHAR(100),
|
||||
state VARCHAR(100),
|
||||
postal_code VARCHAR(20),
|
||||
country VARCHAR(100),
|
||||
website VARCHAR(255),
|
||||
|
||||
-- Statut et informations client
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'PROSPECT' CHECK (status IN ('PROSPECT', 'ACTIVE', 'INACTIVE', 'FORMER')),
|
||||
converted_at TIMESTAMP,
|
||||
primary_service_type VARCHAR(30) CHECK (primary_service_type IN ('strategic_workshop', 'one_on_one_coaching', 'on_demand_coaching', 'special_project')),
|
||||
|
||||
-- Informations financières
|
||||
total_contract_value DECIMAL(15,2) NOT NULL DEFAULT 0.00,
|
||||
relationship_start_date DATE,
|
||||
|
||||
-- Informations additionnelles
|
||||
notes TEXT,
|
||||
acquisition_source VARCHAR(100),
|
||||
|
||||
-- Audit trail
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
created_by VARCHAR(100),
|
||||
updated_by VARCHAR(100),
|
||||
|
||||
-- Soft delete
|
||||
deleted BOOLEAN NOT NULL DEFAULT false,
|
||||
deleted_at TIMESTAMP,
|
||||
deleted_by VARCHAR(100),
|
||||
|
||||
-- Contraintes
|
||||
CONSTRAINT fk_clients_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE RESTRICT
|
||||
);
|
||||
|
||||
-- Index pour les performances
|
||||
CREATE INDEX idx_clients_user_id ON clients(user_id);
|
||||
CREATE INDEX idx_clients_company ON clients(company_name);
|
||||
CREATE INDEX idx_clients_status ON clients(status);
|
||||
CREATE INDEX idx_clients_deleted ON clients(deleted);
|
||||
CREATE INDEX idx_clients_industry ON clients(industry);
|
||||
CREATE INDEX idx_clients_primary_service_type ON clients(primary_service_type);
|
||||
|
||||
-- Trigger pour mettre à jour updated_at automatiquement
|
||||
CREATE TRIGGER update_clients_updated_at
|
||||
BEFORE UPDATE ON clients
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_updated_at_column();
|
||||
|
||||
-- Commentaires sur la table et les colonnes
|
||||
COMMENT ON TABLE clients IS 'Table des clients de la plateforme GBCM';
|
||||
COMMENT ON COLUMN clients.id IS 'Identifiant unique du client';
|
||||
COMMENT ON COLUMN clients.user_id IS 'Référence vers l''utilisateur associé';
|
||||
COMMENT ON COLUMN clients.company_name IS 'Nom de l''entreprise du client';
|
||||
COMMENT ON COLUMN clients.industry IS 'Secteur d''activité de l''entreprise';
|
||||
COMMENT ON COLUMN clients.company_size IS 'Nombre d''employés de l''entreprise';
|
||||
COMMENT ON COLUMN clients.annual_revenue IS 'Chiffre d''affaires annuel de l''entreprise';
|
||||
COMMENT ON COLUMN clients.address_line1 IS 'Première ligne de l''adresse';
|
||||
COMMENT ON COLUMN clients.address_line2 IS 'Deuxième ligne de l''adresse';
|
||||
COMMENT ON COLUMN clients.city IS 'Ville de l''entreprise';
|
||||
COMMENT ON COLUMN clients.state IS 'État/Province de l''entreprise';
|
||||
COMMENT ON COLUMN clients.postal_code IS 'Code postal de l''entreprise';
|
||||
COMMENT ON COLUMN clients.country IS 'Pays de l''entreprise';
|
||||
COMMENT ON COLUMN clients.website IS 'Site web de l''entreprise';
|
||||
COMMENT ON COLUMN clients.status IS 'Statut du client (PROSPECT, ACTIVE, INACTIVE, FORMER)';
|
||||
COMMENT ON COLUMN clients.converted_at IS 'Date de conversion de prospect à client';
|
||||
COMMENT ON COLUMN clients.primary_service_type IS 'Type de service principal du client';
|
||||
COMMENT ON COLUMN clients.total_contract_value IS 'Valeur totale des contrats du client';
|
||||
COMMENT ON COLUMN clients.relationship_start_date IS 'Date de début de la relation client';
|
||||
COMMENT ON COLUMN clients.notes IS 'Notes internes sur le client';
|
||||
COMMENT ON COLUMN clients.acquisition_source IS 'Source d''acquisition du client';
|
||||
COMMENT ON COLUMN clients.created_at IS 'Date et heure de création de l''enregistrement';
|
||||
COMMENT ON COLUMN clients.updated_at IS 'Date et heure de dernière mise à jour';
|
||||
COMMENT ON COLUMN clients.created_by IS 'Utilisateur qui a créé l''enregistrement';
|
||||
COMMENT ON COLUMN clients.updated_by IS 'Utilisateur qui a effectué la dernière mise à jour';
|
||||
COMMENT ON COLUMN clients.deleted IS 'Indicateur de suppression logique';
|
||||
COMMENT ON COLUMN clients.deleted_at IS 'Date et heure de suppression logique';
|
||||
COMMENT ON COLUMN clients.deleted_by IS 'Utilisateur qui a effectué la suppression logique';
|
||||
121
src/main/resources/db/migration/V3__Create_coaches_table.sql
Normal file
121
src/main/resources/db/migration/V3__Create_coaches_table.sql
Normal file
@@ -0,0 +1,121 @@
|
||||
-- Migration V3: Création de la table coaches et coach_service_types
|
||||
-- Auteur: GBCM Development Team
|
||||
-- Date: 2024-01-25
|
||||
-- Description: Table des coaches avec informations professionnelles et types de services
|
||||
|
||||
CREATE TABLE coaches (
|
||||
-- Identifiant unique
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
|
||||
-- Relation avec l'utilisateur (one-to-one)
|
||||
user_id BIGINT NOT NULL UNIQUE,
|
||||
|
||||
-- Informations professionnelles
|
||||
specialization VARCHAR(100) NOT NULL,
|
||||
bio TEXT,
|
||||
years_of_experience INTEGER,
|
||||
certifications TEXT,
|
||||
languages VARCHAR(255),
|
||||
hourly_rate DECIMAL(10,2),
|
||||
|
||||
-- Statut et disponibilité
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE' CHECK (status IN ('ACTIVE', 'INACTIVE', 'ON_LEAVE', 'TERMINATED')),
|
||||
available_for_booking BOOLEAN NOT NULL DEFAULT true,
|
||||
|
||||
-- Horaires de travail
|
||||
working_hours_start TIME,
|
||||
working_hours_end TIME,
|
||||
working_days VARCHAR(100),
|
||||
timezone VARCHAR(50),
|
||||
|
||||
-- Dates d'activité
|
||||
start_date DATE,
|
||||
end_date DATE,
|
||||
|
||||
-- Statistiques
|
||||
average_rating DECIMAL(3,2),
|
||||
total_ratings INTEGER NOT NULL DEFAULT 0,
|
||||
total_sessions INTEGER NOT NULL DEFAULT 0,
|
||||
total_revenue DECIMAL(15,2) NOT NULL DEFAULT 0.00,
|
||||
|
||||
-- Notes internes
|
||||
notes TEXT,
|
||||
|
||||
-- Audit trail
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
created_by VARCHAR(100),
|
||||
updated_by VARCHAR(100),
|
||||
|
||||
-- Soft delete
|
||||
deleted BOOLEAN NOT NULL DEFAULT false,
|
||||
deleted_at TIMESTAMP,
|
||||
deleted_by VARCHAR(100),
|
||||
|
||||
-- Contraintes
|
||||
CONSTRAINT fk_coaches_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE RESTRICT,
|
||||
CONSTRAINT chk_coaches_rating_range CHECK (average_rating IS NULL OR (average_rating >= 0 AND average_rating <= 5))
|
||||
);
|
||||
|
||||
-- Table de liaison pour les types de services offerts par le coach
|
||||
CREATE TABLE coach_service_types (
|
||||
coach_id BIGINT NOT NULL,
|
||||
service_type VARCHAR(30) NOT NULL CHECK (service_type IN ('strategic_workshop', 'one_on_one_coaching', 'on_demand_coaching', 'special_project')),
|
||||
|
||||
PRIMARY KEY (coach_id, service_type),
|
||||
CONSTRAINT fk_coach_service_types_coach_id FOREIGN KEY (coach_id) REFERENCES coaches(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Index pour les performances
|
||||
CREATE INDEX idx_coaches_user_id ON coaches(user_id);
|
||||
CREATE INDEX idx_coaches_status ON coaches(status);
|
||||
CREATE INDEX idx_coaches_specialization ON coaches(specialization);
|
||||
CREATE INDEX idx_coaches_deleted ON coaches(deleted);
|
||||
CREATE INDEX idx_coaches_available_for_booking ON coaches(available_for_booking);
|
||||
CREATE INDEX idx_coaches_average_rating ON coaches(average_rating);
|
||||
CREATE INDEX idx_coaches_hourly_rate ON coaches(hourly_rate);
|
||||
|
||||
-- Index pour la table de liaison
|
||||
CREATE INDEX idx_coach_service_types_service_type ON coach_service_types(service_type);
|
||||
|
||||
-- Trigger pour mettre à jour updated_at automatiquement
|
||||
CREATE TRIGGER update_coaches_updated_at
|
||||
BEFORE UPDATE ON coaches
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION update_updated_at_column();
|
||||
|
||||
-- Commentaires sur la table coaches
|
||||
COMMENT ON TABLE coaches IS 'Table des coaches de la plateforme GBCM';
|
||||
COMMENT ON COLUMN coaches.id IS 'Identifiant unique du coach';
|
||||
COMMENT ON COLUMN coaches.user_id IS 'Référence vers l''utilisateur associé';
|
||||
COMMENT ON COLUMN coaches.specialization IS 'Spécialisation principale du coach';
|
||||
COMMENT ON COLUMN coaches.bio IS 'Biographie professionnelle du coach';
|
||||
COMMENT ON COLUMN coaches.years_of_experience IS 'Années d''expérience du coach';
|
||||
COMMENT ON COLUMN coaches.certifications IS 'Certifications du coach';
|
||||
COMMENT ON COLUMN coaches.languages IS 'Langues parlées par le coach';
|
||||
COMMENT ON COLUMN coaches.hourly_rate IS 'Tarif horaire du coach';
|
||||
COMMENT ON COLUMN coaches.status IS 'Statut du coach (ACTIVE, INACTIVE, ON_LEAVE, TERMINATED)';
|
||||
COMMENT ON COLUMN coaches.available_for_booking IS 'Disponibilité pour les réservations';
|
||||
COMMENT ON COLUMN coaches.working_hours_start IS 'Heure de début des heures de travail';
|
||||
COMMENT ON COLUMN coaches.working_hours_end IS 'Heure de fin des heures de travail';
|
||||
COMMENT ON COLUMN coaches.working_days IS 'Jours de travail du coach';
|
||||
COMMENT ON COLUMN coaches.timezone IS 'Fuseau horaire du coach';
|
||||
COMMENT ON COLUMN coaches.start_date IS 'Date de début d''activité comme coach';
|
||||
COMMENT ON COLUMN coaches.end_date IS 'Date de fin d''activité comme coach';
|
||||
COMMENT ON COLUMN coaches.average_rating IS 'Note moyenne du coach';
|
||||
COMMENT ON COLUMN coaches.total_ratings IS 'Nombre total d''évaluations reçues';
|
||||
COMMENT ON COLUMN coaches.total_sessions IS 'Nombre total de sessions effectuées';
|
||||
COMMENT ON COLUMN coaches.total_revenue IS 'Revenus totaux générés';
|
||||
COMMENT ON COLUMN coaches.notes IS 'Notes internes sur le coach';
|
||||
COMMENT ON COLUMN coaches.created_at IS 'Date et heure de création de l''enregistrement';
|
||||
COMMENT ON COLUMN coaches.updated_at IS 'Date et heure de dernière mise à jour';
|
||||
COMMENT ON COLUMN coaches.created_by IS 'Utilisateur qui a créé l''enregistrement';
|
||||
COMMENT ON COLUMN coaches.updated_by IS 'Utilisateur qui a effectué la dernière mise à jour';
|
||||
COMMENT ON COLUMN coaches.deleted IS 'Indicateur de suppression logique';
|
||||
COMMENT ON COLUMN coaches.deleted_at IS 'Date et heure de suppression logique';
|
||||
COMMENT ON COLUMN coaches.deleted_by IS 'Utilisateur qui a effectué la suppression logique';
|
||||
|
||||
-- Commentaires sur la table coach_service_types
|
||||
COMMENT ON TABLE coach_service_types IS 'Table de liaison entre coaches et types de services';
|
||||
COMMENT ON COLUMN coach_service_types.coach_id IS 'Référence vers le coach';
|
||||
COMMENT ON COLUMN coach_service_types.service_type IS 'Type de service offert par le coach';
|
||||
38
src/main/resources/import.sql
Normal file
38
src/main/resources/import.sql
Normal file
@@ -0,0 +1,38 @@
|
||||
-- Données de test pour le développement GBCM
|
||||
-- Ce fichier est chargé automatiquement en mode développement
|
||||
|
||||
-- Insertion des utilisateurs de test
|
||||
-- Mot de passe pour tous: "password123" (hash BCrypt)
|
||||
INSERT INTO users (first_name, last_name, email, password_hash, role, active, created_by) VALUES
|
||||
('Admin', 'System', 'admin@gbcm.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'ADMIN', true, 'system'),
|
||||
('John', 'Manager', 'manager@gbcm.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'MANAGER', true, 'system'),
|
||||
('Sarah', 'Coach', 'sarah.coach@gbcm.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'COACH', true, 'system'),
|
||||
('Michael', 'Expert', 'michael.expert@gbcm.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'COACH', true, 'system'),
|
||||
('Emily', 'Johnson', 'emily.johnson@techcorp.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'CLIENT', true, 'system'),
|
||||
('David', 'Smith', 'david.smith@innovate.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'CLIENT', true, 'system'),
|
||||
('Lisa', 'Brown', 'lisa.brown@startup.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'PROSPECT', true, 'system'),
|
||||
('Robert', 'Wilson', 'robert.wilson@enterprise.com', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9P8jW9TjnOvQF9G', 'PROSPECT', true, 'system');
|
||||
|
||||
-- Insertion des coaches
|
||||
INSERT INTO coaches (user_id, specialization, bio, years_of_experience, certifications, languages, hourly_rate, status, available_for_booking, working_hours_start, working_hours_end, working_days, timezone, start_date, average_rating, total_ratings, total_sessions, total_revenue, created_by) VALUES
|
||||
(3, 'Strategic Planning', 'Expert en planification stratégique avec plus de 10 ans d''expérience dans le conseil aux PME. Spécialisée dans la transformation digitale et l''optimisation des processus.', 10, 'Certified Management Consultant (CMC), PMP, Lean Six Sigma Black Belt', 'English, French, Spanish', 125.00, 'ACTIVE', true, '09:00:00', '17:00:00', 'MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY', 'America/New_York', '2020-01-15', 4.8, 45, 120, 15000.00, 'system'),
|
||||
(4, 'Business Development', 'Coach expérimenté en développement commercial et leadership. Aide les entrepreneurs à développer leurs compétences managériales et à faire croître leur entreprise.', 8, 'Certified Business Coach (CBC), MBA, Dale Carnegie Leadership Training', 'English, French', 100.00, 'ACTIVE', true, '08:00:00', '18:00:00', 'MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY', 'America/New_York', '2021-03-01', 4.9, 38, 95, 9500.00, 'system');
|
||||
|
||||
-- Insertion des types de services pour les coaches
|
||||
INSERT INTO coach_service_types (coach_id, service_type) VALUES
|
||||
(1, 'strategic_workshop'),
|
||||
(1, 'one_on_one_coaching'),
|
||||
(1, 'special_project'),
|
||||
(2, 'one_on_one_coaching'),
|
||||
(2, 'on_demand_coaching'),
|
||||
(2, 'special_project');
|
||||
|
||||
-- Insertion des clients
|
||||
INSERT INTO clients (user_id, company_name, industry, company_size, annual_revenue, address_line1, city, state, postal_code, country, website, status, converted_at, primary_service_type, total_contract_value, relationship_start_date, acquisition_source, created_by) VALUES
|
||||
(5, 'TechCorp Solutions', 'Technology', 50, 2500000.00, '123 Tech Street', 'Atlanta', 'GA', '30309', 'USA', 'https://techcorp.com', 'ACTIVE', '2023-06-15 10:30:00', 'strategic_workshop', 4000.00, '2023-06-15', 'Website', 'system'),
|
||||
(6, 'Innovate Inc', 'Consulting', 25, 1200000.00, '456 Innovation Ave', 'Atlanta', 'GA', '30308', 'USA', 'https://innovate.com', 'ACTIVE', '2023-08-20 14:15:00', 'one_on_one_coaching', 2500.00, '2023-08-20', 'Referral', 'system');
|
||||
|
||||
-- Insertion des prospects
|
||||
INSERT INTO clients (user_id, company_name, industry, company_size, annual_revenue, address_line1, city, state, postal_code, country, website, status, acquisition_source, created_by) VALUES
|
||||
(7, 'StartupCo', 'E-commerce', 10, 500000.00, '789 Startup Blvd', 'Atlanta', 'GA', '30307', 'USA', 'https://startupco.com', 'PROSPECT', 'LinkedIn', 'system'),
|
||||
(8, 'Enterprise Corp', 'Manufacturing', 200, 15000000.00, '321 Enterprise Way', 'Atlanta', 'GA', '30306', 'USA', 'https://enterprise.com', 'PROSPECT', 'Trade Show', 'system');
|
||||
Reference in New Issue
Block a user