-- ============================================================
-- BLOOM IRIS AGENCY — Database Schema & Seed Data
-- CodeIgniter 3 · MySQL / MariaDB
-- Generated from application/migrations/
-- ============================================================

SET FOREIGN_KEY_CHECKS = 0;
SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO';

-- ---------- Table: users ----------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(120) NOT NULL,
  `email` VARCHAR(160) NOT NULL,
  `password` VARCHAR(255) NOT NULL,
  `role` ENUM('super_admin','editor') NOT NULL DEFAULT 'editor',
  `avatar` VARCHAR(255) NULL,
  `phone` VARCHAR(30) NULL,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `last_login` DATETIME NULL,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: settings ----------
DROP TABLE IF EXISTS `settings`;
CREATE TABLE `settings` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `group` VARCHAR(60) NOT NULL DEFAULT 'general',
  `key` VARCHAR(100) NOT NULL,
  `value` TEXT NULL,
  `type` VARCHAR(30) NOT NULL DEFAULT 'text',
  `label` VARCHAR(160) NULL,
  PRIMARY KEY (`id`),
  KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: hero_slides ----------
DROP TABLE IF EXISTS `hero_slides`;
CREATE TABLE `hero_slides` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `media_type` ENUM('image','video','youtube') NOT NULL DEFAULT 'image',
  `image` VARCHAR(255) NULL COMMENT 'Image file OR video poster',
  `video_file` VARCHAR(255) NULL COMMENT 'Uploaded MP4',
  `youtube_id` VARCHAR(40) NULL COMMENT 'YouTube video ID',
  `eyebrow` VARCHAR(120) NULL,
  `heading` VARCHAR(200) NULL,
  `subheading` TEXT NULL,
  `cta1_label` VARCHAR(60) NULL,
  `cta1_url` VARCHAR(255) NULL,
  `cta2_label` VARCHAR(60) NULL,
  `cta2_url` VARCHAR(255) NULL,
  `overlay` TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'Dark overlay on/off',
  `sort_order` INT(5) NOT NULL DEFAULT 0,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: services ----------
DROP TABLE IF EXISTS `services`;
CREATE TABLE `services` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(160) NOT NULL,
  `title` VARCHAR(160) NOT NULL,
  `icon` VARCHAR(60) NULL COMMENT 'SVG icon key',
  `summary` TEXT NULL,
  `description` LONGTEXT NULL,
  `for_who` TEXT NULL,
  `image` VARCHAR(255) NULL,
  `process_steps` LONGTEXT NULL COMMENT 'JSON array',
  `cta_label` VARCHAR(60) NOT NULL DEFAULT 'Work With Us',
  `meta_title` VARCHAR(200) NULL,
  `meta_desc` VARCHAR(300) NULL,
  `sort_order` INT(5) NOT NULL DEFAULT 0,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`slug`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: portfolio ----------
DROP TABLE IF EXISTS `portfolio`;
CREATE TABLE `portfolio` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(180) NOT NULL,
  `title` VARCHAR(180) NOT NULL,
  `category` VARCHAR(60) NOT NULL,
  `brand` VARCHAR(120) NULL,
  `year` VARCHAR(4) NULL,
  `cover_image` VARCHAR(255) NULL,
  `excerpt` TEXT NULL,
  `cs_brief` TEXT NULL,
  `cs_concept` TEXT NULL,
  `cs_execution` TEXT NULL,
  `cs_results` TEXT NULL,
  `gallery` LONGTEXT NULL COMMENT 'JSON image array',
  `video_type` ENUM('none','file','youtube') NOT NULL DEFAULT 'none',
  `video_file` VARCHAR(255) NULL,
  `youtube_id` VARCHAR(40) NULL,
  `talent_ids` VARCHAR(255) NULL,
  `is_featured` TINYINT(1) NOT NULL DEFAULT 0,
  `meta_title` VARCHAR(200) NULL,
  `meta_desc` VARCHAR(300) NULL,
  `views` INT(8) NOT NULL DEFAULT 0,
  `sort_order` INT(5) NOT NULL DEFAULT 0,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`slug`),
  KEY (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: events ----------
DROP TABLE IF EXISTS `events`;
CREATE TABLE `events` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(180) NOT NULL,
  `title` VARCHAR(180) NOT NULL,
  `event_type` VARCHAR(60) NOT NULL,
  `cover_image` VARCHAR(255) NULL,
  `excerpt` TEXT NULL,
  `description` LONGTEXT NULL,
  `event_date` DATE NULL,
  `event_time` VARCHAR(60) NULL,
  `location` VARCHAR(200) NULL,
  `gallery` LONGTEXT NULL COMMENT 'JSON recap images',
  `partners` VARCHAR(255) NULL,
  `allow_rsvp` TINYINT(1) NOT NULL DEFAULT 1,
  `is_paid` TINYINT(1) NOT NULL DEFAULT 0,
  `ticket_price` DECIMAL(10,2) NOT NULL DEFAULT 0,
  `capacity` INT(6) NULL,
  `is_featured` TINYINT(1) NOT NULL DEFAULT 0,
  `meta_title` VARCHAR(200) NULL,
  `meta_desc` VARCHAR(300) NULL,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`slug`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: event_rsvps ----------
DROP TABLE IF EXISTS `event_rsvps`;
CREATE TABLE `event_rsvps` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `event_id` INT(11) UNSIGNED NOT NULL,
  `name` VARCHAR(120) NOT NULL,
  `email` VARCHAR(160) NOT NULL,
  `phone` VARCHAR(30) NULL,
  `guests` INT(3) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`event_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: talent ----------
DROP TABLE IF EXISTS `talent`;
CREATE TABLE `talent` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(160) NOT NULL,
  `name` VARCHAR(140) NOT NULL,
  `category` VARCHAR(60) NOT NULL,
  `tagline` VARCHAR(200) NULL,
  `bio` LONGTEXT NULL,
  `photo` VARCHAR(255) NULL,
  `cover_photo` VARCHAR(255) NULL,
  `gallery` LONGTEXT NULL COMMENT 'JSON portfolio images',
  `stats` LONGTEXT NULL COMMENT 'JSON measurements',
  `socials` LONGTEXT NULL COMMENT 'JSON social links',
  `location` VARCHAR(120) NULL,
  `availability` ENUM('available','booked','unavailable') NOT NULL DEFAULT 'available',
  `is_featured` TINYINT(1) NOT NULL DEFAULT 0,
  `sort_order` INT(5) NOT NULL DEFAULT 0,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`slug`),
  KEY (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: applications ----------
DROP TABLE IF EXISTS `applications`;
CREATE TABLE `applications` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(140) NOT NULL,
  `email` VARCHAR(160) NOT NULL,
  `phone` VARCHAR(30) NULL,
  `category` VARCHAR(60) NOT NULL,
  `location` VARCHAR(120) NULL,
  `instagram` VARCHAR(160) NULL,
  `followers` VARCHAR(60) NULL,
  `portfolio_url` VARCHAR(255) NULL,
  `bio` TEXT NULL,
  `photo` VARCHAR(255) NULL,
  `status` ENUM('pending','shortlisted','approved','rejected') NOT NULL DEFAULT 'pending',
  `admin_notes` TEXT NULL,
  `ip_address` VARCHAR(45) NULL,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: inquiries ----------
DROP TABLE IF EXISTS `inquiries`;
CREATE TABLE `inquiries` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `type` ENUM('contact','brand') NOT NULL DEFAULT 'contact',
  `name` VARCHAR(140) NOT NULL,
  `email` VARCHAR(160) NOT NULL,
  `phone` VARCHAR(30) NULL,
  `company` VARCHAR(160) NULL,
  `service_id` INT(11) NULL,
  `budget_range` VARCHAR(80) NULL,
  `timeline` VARCHAR(80) NULL,
  `subject` VARCHAR(200) NULL,
  `message` TEXT NULL,
  `brief_file` VARCHAR(255) NULL,
  `status` ENUM('new','reviewed','converted','closed') NOT NULL DEFAULT 'new',
  `admin_notes` TEXT NULL,
  `assigned_to` INT(11) NULL,
  `ip_address` VARCHAR(45) NULL,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`status`),
  KEY (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: subscribers ----------
DROP TABLE IF EXISTS `subscribers`;
CREATE TABLE `subscribers` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `email` VARCHAR(160) NOT NULL,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: partners ----------
DROP TABLE IF EXISTS `partners`;
CREATE TABLE `partners` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(160) NOT NULL,
  `logo` VARCHAR(255) NULL,
  `website` VARCHAR(255) NULL,
  `category` VARCHAR(60) NULL COMMENT 'client / partner / press',
  `is_featured` TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'Show in homepage slider',
  `sort_order` INT(5) NOT NULL DEFAULT 0,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: testimonials ----------
DROP TABLE IF EXISTS `testimonials`;
CREATE TABLE `testimonials` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `author_name` VARCHAR(140) NOT NULL,
  `author_role` VARCHAR(160) NULL,
  `source_type` ENUM('brand','talent') NOT NULL DEFAULT 'brand',
  `quote` TEXT NOT NULL,
  `photo` VARCHAR(255) NULL,
  `rating` TINYINT(1) NOT NULL DEFAULT 5,
  `video_type` ENUM('none','youtube') NOT NULL DEFAULT 'none',
  `youtube_id` VARCHAR(40) NULL,
  `is_featured` TINYINT(1) NOT NULL DEFAULT 1,
  `sort_order` INT(5) NOT NULL DEFAULT 0,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: team ----------
DROP TABLE IF EXISTS `team`;
CREATE TABLE `team` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(140) NOT NULL,
  `role` VARCHAR(160) NOT NULL,
  `bio` TEXT NULL,
  `photo` VARCHAR(255) NULL,
  `instagram` VARCHAR(200) NULL,
  `linkedin` VARCHAR(200) NULL,
  `is_founder` TINYINT(1) NOT NULL DEFAULT 0,
  `sort_order` INT(5) NOT NULL DEFAULT 0,
  `is_active` TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: blog ----------
DROP TABLE IF EXISTS `blog`;
CREATE TABLE `blog` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(200) NOT NULL,
  `title` VARCHAR(200) NOT NULL,
  `category` VARCHAR(80) NULL,
  `cover_image` VARCHAR(255) NULL,
  `excerpt` TEXT NULL,
  `body` LONGTEXT NULL,
  `author_id` INT(11) NULL,
  `status` ENUM('draft','published','scheduled') NOT NULL DEFAULT 'draft',
  `publish_at` DATETIME NULL,
  `meta_title` VARCHAR(200) NULL,
  `meta_desc` VARCHAR(300) NULL,
  `views` INT(8) NOT NULL DEFAULT 0,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`slug`),
  KEY (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: media ----------
DROP TABLE IF EXISTS `media`;
CREATE TABLE `media` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(200) NULL,
  `file_path` VARCHAR(255) NOT NULL,
  `thumb_path` VARCHAR(255) NULL,
  `file_type` ENUM('image','video','document') NOT NULL DEFAULT 'image',
  `folder` VARCHAR(80) NOT NULL DEFAULT 'general',
  `file_size` INT(11) NULL,
  `alt_text` VARCHAR(255) NULL,
  `uploaded_by` INT(11) NULL,
  `created_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`folder`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: pages ----------
DROP TABLE IF EXISTS `pages`;
CREATE TABLE `pages` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `slug` VARCHAR(120) NOT NULL,
  `title` VARCHAR(200) NOT NULL,
  `blocks` LONGTEXT NULL COMMENT 'JSON content blocks',
  `hero_image` VARCHAR(255) NULL,
  `meta_title` VARCHAR(200) NULL,
  `meta_desc` VARCHAR(300) NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`slug`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: event_tickets ----------
DROP TABLE IF EXISTS `event_tickets`;
CREATE TABLE `event_tickets` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `event_id` INT(11) UNSIGNED NOT NULL,
  `name` VARCHAR(140) NOT NULL,
  `email` VARCHAR(160) NOT NULL,
  `phone` VARCHAR(30) NULL,
  `quantity` INT(3) NOT NULL DEFAULT 1,
  `amount` DECIMAL(10,2) NOT NULL DEFAULT 0,
  `reference` VARCHAR(100) NULL,
  `ticket_code` VARCHAR(40) NULL,
  `payment_status` ENUM('pending','paid','failed') NOT NULL DEFAULT 'pending',
  `checked_in` TINYINT(1) NOT NULL DEFAULT 0,
  `created_at` DATETIME NULL,
  `updated_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`event_id`),
  KEY (`reference`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Table: activity_log ----------
DROP TABLE IF EXISTS `activity_log`;
CREATE TABLE `activity_log` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `user_id` INT(11) NULL,
  `action` VARCHAR(160) NOT NULL,
  `detail` TEXT NULL,
  `ip_address` VARCHAR(45) NULL,
  `created_at` DATETIME NULL,
  PRIMARY KEY (`id`),
  KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ---------- Seed data: users ----------
INSERT INTO `users` (`name`,`email`,`password`,`role`,`is_active`,`created_at`) VALUES ('Bloom Iris Admin','admin@bloomiris.com','$2y$10$3miJM6MtOnzVofXihZPPS.aMzyOI7XRfF8U8Mni6EVfvVIxeZHS/S','super_admin',1,'2026-05-26 11:08:21');

-- ---------- Seed data: settings ----------
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('general','site_name','Bloom Iris Agency','text','Site Name');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('general','tagline','Creative Agency · Talent · Events · Brand Collaborations','text','Tagline');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('general','maintenance_mode','0','bool','Coming Soon / Maintenance Mode');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('general','footer_text','Bloom Iris Agency — A creative universe of talent, campaigns and unforgettable experiences.','textarea','Footer Text');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('contact','email','hello@bloomiris.com','text','Public Email');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('contact','phone','+233 (0) 593 854 493','text','Phone');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('contact','whatsapp','233593854493','text','WhatsApp Number (intl, no +)');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('contact','whatsapp_message','Hello Bloom Iris, I would like to enquire about','text','WhatsApp Pre-filled Message');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('contact','address','Accra, Ghana','textarea','Office Address');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('contact','map_embed','','textarea','Google Map Embed URL');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('social','instagram','https://instagram.com/bloomirisagency','text','Instagram URL');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('social','facebook','','text','Facebook URL');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('social','tiktok','','text','TikTok URL');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('social','youtube','','text','YouTube URL');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('social','linkedin','','text','LinkedIn URL');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('social','instagram_handle','bloomirisagency','text','Instagram Handle (no @)');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('seo','meta_description','Bloom Iris Agency — a creative agency in fashion, lifestyle, talent management and brand collaborations.','textarea','Meta Description');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('seo','meta_keywords','creative agency, talent management, brand collaborations, fashion, Ghana','text','Meta Keywords');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('seo','google_analytics','','textarea','Google Analytics / Tag Code');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('stats','stat_campaigns','120','text','Campaigns Delivered');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('stats','stat_talent','85','text','Talent Represented');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('stats','stat_events','40','text','Events Hosted');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('stats','stat_brands','60','text','Brand Partners');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('home','hero_fallback_heading','Where Creative Vision Blooms','text','Hero Fallback Heading');
INSERT INTO `settings` (`group`,`key`,`value`,`type`,`label`) VALUES ('home','hero_fallback_sub','Talent. Campaigns. Experiences. We build creative universes for brands that dare to be unforgettable.','textarea','Hero Fallback Sub-text');

-- ---------- Seed data: hero_slides ----------
INSERT INTO `hero_slides` (`media_type`,`image`,`eyebrow`,`heading`,`subheading`,`cta1_label`,`cta1_url`,`cta2_label`,`cta2_url`,`overlay`,`sort_order`,`is_active`,`created_at`) VALUES ('image','hero/hero-1.jpg','CREATIVE AGENCY','Where Creative Vision Blooms','Talent. Campaigns. Experiences. We build creative universes for brands that dare to be unforgettable.','Work With Us','contact','Discover Our Work','portfolio',1,1,1,'2026-05-26 11:08:21');
INSERT INTO `hero_slides` (`media_type`,`youtube_id`,`image`,`eyebrow`,`heading`,`subheading`,`cta1_label`,`cta1_url`,`overlay`,`sort_order`,`is_active`,`created_at`) VALUES ('youtube','dQw4w9WgXcQ','hero/hero-2.jpg','CAMPAIGN REEL','Stories That Move Brands Forward','From editorial shoots to full brand activations — see the work in motion.','View Portfolio','portfolio',1,2,1,'2026-05-26 11:08:21');
INSERT INTO `hero_slides` (`media_type`,`image`,`eyebrow`,`heading`,`subheading`,`cta1_label`,`cta1_url`,`cta2_label`,`cta2_url`,`overlay`,`sort_order`,`is_active`,`created_at`) VALUES ('image','hero/hero-3.jpg','TALENT NETWORK','The Faces of Tomorrow','A curated roster of models, creatives and influencers ready for your next campaign.','Meet the Talent','talent','Join the Network','apply/talent',1,3,1,'2026-05-26 11:08:21');

-- ---------- Seed data: services ----------
INSERT INTO `services` (`slug`,`title`,`icon`,`summary`,`description`,`for_who`,`process_steps`,`cta_label`,`meta_title`,`meta_desc`,`sort_order`,`is_active`,`created_at`) VALUES ('talent-management','Talent Management & Representation','star','We discover, develop and represent exceptional creative talent.','We discover, develop and represent exceptional creative talent. Who it is for: brands seeking authentic faces, and talent seeking professional representation.','Who it is for: brands seeking authentic faces, and talent seeking professional representation.','[{"title":"Discovery","text":"We learn your brand, goals and creative ambitions."},{"title":"Concept","text":"We craft a creative direction and present the vision."},{"title":"Production","text":"We assemble talent, crew and resources to execute."},{"title":"Delivery","text":"We deliver polished assets and measure the impact."}]','Book a Consultation','Talent Management & Representation — Bloom Iris Agency','We discover, develop and represent exceptional creative talent.',1,1,'2026-05-26 11:08:21');
INSERT INTO `services` (`slug`,`title`,`icon`,`summary`,`description`,`for_who`,`process_steps`,`cta_label`,`meta_title`,`meta_desc`,`sort_order`,`is_active`,`created_at`) VALUES ('brand-collaborations','Brand Collaborations & Influencer Campaigns','handshake','Strategic partnerships that connect brands with the right creators and audiences.','Strategic partnerships that connect brands with the right creators and audiences. Who it is for: brands launching products, campaigns or seeking influencer reach.','Who it is for: brands launching products, campaigns or seeking influencer reach.','[{"title":"Discovery","text":"We learn your brand, goals and creative ambitions."},{"title":"Concept","text":"We craft a creative direction and present the vision."},{"title":"Production","text":"We assemble talent, crew and resources to execute."},{"title":"Delivery","text":"We deliver polished assets and measure the impact."}]','Book a Consultation','Brand Collaborations & Influencer Campaigns — Bloom Iris Agency','Strategic partnerships that connect brands with the right creators and audiences.',2,1,'2026-05-26 11:08:21');
INSERT INTO `services` (`slug`,`title`,`icon`,`summary`,`description`,`for_who`,`process_steps`,`cta_label`,`meta_title`,`meta_desc`,`sort_order`,`is_active`,`created_at`) VALUES ('creative-direction','Creative Direction & Styling','palette','End-to-end creative direction that gives every project a distinct, editorial identity.','End-to-end creative direction that gives every project a distinct, editorial identity. Who it is for: brands and talent needing a cohesive, elevated visual language.','Who it is for: brands and talent needing a cohesive, elevated visual language.','[{"title":"Discovery","text":"We learn your brand, goals and creative ambitions."},{"title":"Concept","text":"We craft a creative direction and present the vision."},{"title":"Production","text":"We assemble talent, crew and resources to execute."},{"title":"Delivery","text":"We deliver polished assets and measure the impact."}]','Book a Consultation','Creative Direction & Styling — Bloom Iris Agency','End-to-end creative direction that gives every project a distinct, editorial identity.',3,1,'2026-05-26 11:08:21');
INSERT INTO `services` (`slug`,`title`,`icon`,`summary`,`description`,`for_who`,`process_steps`,`cta_label`,`meta_title`,`meta_desc`,`sort_order`,`is_active`,`created_at`) VALUES ('event-production','Event Production & Coordination','calendar','Fashion events, activations and pop-ups produced from concept to final curtain.','Fashion events, activations and pop-ups produced from concept to final curtain. Who it is for: brands and organisers wanting memorable, well-run experiences.','Who it is for: brands and organisers wanting memorable, well-run experiences.','[{"title":"Discovery","text":"We learn your brand, goals and creative ambitions."},{"title":"Concept","text":"We craft a creative direction and present the vision."},{"title":"Production","text":"We assemble talent, crew and resources to execute."},{"title":"Delivery","text":"We deliver polished assets and measure the impact."}]','Book a Consultation','Event Production & Coordination — Bloom Iris Agency','Fashion events, activations and pop-ups produced from concept to final curtain.',4,1,'2026-05-26 11:08:21');
INSERT INTO `services` (`slug`,`title`,`icon`,`summary`,`description`,`for_who`,`process_steps`,`cta_label`,`meta_title`,`meta_desc`,`sort_order`,`is_active`,`created_at`) VALUES ('content-creation','Content Creation & Editorial Shoots','camera','High-impact editorial and campaign content built for modern platforms.','High-impact editorial and campaign content built for modern platforms. Who it is for: brands needing premium imagery, video and editorial content.','Who it is for: brands needing premium imagery, video and editorial content.','[{"title":"Discovery","text":"We learn your brand, goals and creative ambitions."},{"title":"Concept","text":"We craft a creative direction and present the vision."},{"title":"Production","text":"We assemble talent, crew and resources to execute."},{"title":"Delivery","text":"We deliver polished assets and measure the impact."}]','Book a Consultation','Content Creation & Editorial Shoots — Bloom Iris Agency','High-impact editorial and campaign content built for modern platforms.',5,1,'2026-05-26 11:08:21');
INSERT INTO `services` (`slug`,`title`,`icon`,`summary`,`description`,`for_who`,`process_steps`,`cta_label`,`meta_title`,`meta_desc`,`sort_order`,`is_active`,`created_at`) VALUES ('campaign-casting','Campaign Casting & Production Support','film','Casting and production support that puts the right people in front of the lens.','Casting and production support that puts the right people in front of the lens. Who it is for: agencies and brands running campaigns and productions.','Who it is for: agencies and brands running campaigns and productions.','[{"title":"Discovery","text":"We learn your brand, goals and creative ambitions."},{"title":"Concept","text":"We craft a creative direction and present the vision."},{"title":"Production","text":"We assemble talent, crew and resources to execute."},{"title":"Delivery","text":"We deliver polished assets and measure the impact."}]','Book a Consultation','Campaign Casting & Production Support — Bloom Iris Agency','Casting and production support that puts the right people in front of the lens.',6,1,'2026-05-26 11:08:21');

-- ---------- Seed data: portfolio ----------
INSERT INTO `portfolio` (`slug`,`title`,`category`,`brand`,`year`,`cover_image`,`excerpt`,`cs_brief`,`cs_concept`,`cs_execution`,`cs_results`,`gallery`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('aurora-fashion-week-campaign','Aurora Fashion Week Campaign','fashion-campaigns','Aurora Couture','2026','portfolio/aurora-fashion-week-campaign.jpg','A creative project delivered by Bloom Iris Agency.','The brand approached Bloom Iris with a clear ambition and a tight timeline.','We developed an editorial creative direction rooted in the brand identity.','Talent, styling, location and crew were assembled and the shoot executed.','The campaign delivered strong engagement and a refreshed brand presence.','[]',1,1,1,'2026-05-26 11:08:21');
INSERT INTO `portfolio` (`slug`,`title`,`category`,`brand`,`year`,`cover_image`,`excerpt`,`cs_brief`,`cs_concept`,`cs_execution`,`cs_results`,`gallery`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('velvet-bloom-editorial','Velvet Bloom Editorial','editorial-shoots','Velvet Studios','2026','portfolio/velvet-bloom-editorial.jpg','A creative project delivered by Bloom Iris Agency.','The brand approached Bloom Iris with a clear ambition and a tight timeline.','We developed an editorial creative direction rooted in the brand identity.','Talent, styling, location and crew were assembled and the shoot executed.','The campaign delivered strong engagement and a refreshed brand presence.','[]',1,2,1,'2026-05-26 11:08:21');
INSERT INTO `portfolio` (`slug`,`title`,`category`,`brand`,`year`,`cover_image`,`excerpt`,`cs_brief`,`cs_concept`,`cs_execution`,`cs_results`,`gallery`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('sunset-pop-up-activation','Sunset Pop-Up Activation','events-activations','Lumen Beverages','2025','portfolio/sunset-pop-up-activation.jpg','A creative project delivered by Bloom Iris Agency.','The brand approached Bloom Iris with a clear ambition and a tight timeline.','We developed an editorial creative direction rooted in the brand identity.','Talent, styling, location and crew were assembled and the shoot executed.','The campaign delivered strong engagement and a refreshed brand presence.','[]',1,3,1,'2026-05-26 11:08:21');
INSERT INTO `portfolio` (`slug`,`title`,`category`,`brand`,`year`,`cover_image`,`excerpt`,`cs_brief`,`cs_concept`,`cs_execution`,`cs_results`,`gallery`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('cityscape-brand-collaboration','Cityscape Brand Collaboration','brand-collaborations','Metro Apparel','2025','portfolio/cityscape-brand-collaboration.jpg','A creative project delivered by Bloom Iris Agency.','The brand approached Bloom Iris with a clear ambition and a tight timeline.','We developed an editorial creative direction rooted in the brand identity.','Talent, styling, location and crew were assembled and the shoot executed.','The campaign delivered strong engagement and a refreshed brand presence.','[]',0,4,1,'2026-05-26 11:08:21');
INSERT INTO `portfolio` (`slug`,`title`,`category`,`brand`,`year`,`cover_image`,`excerpt`,`cs_brief`,`cs_concept`,`cs_execution`,`cs_results`,`gallery`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('behind-the-lens-spring','Behind the Lens — Spring','behind-the-scenes','Bloom Iris','2026','portfolio/behind-the-lens-spring.jpg','A creative project delivered by Bloom Iris Agency.','The brand approached Bloom Iris with a clear ambition and a tight timeline.','We developed an editorial creative direction rooted in the brand identity.','Talent, styling, location and crew were assembled and the shoot executed.','The campaign delivered strong engagement and a refreshed brand presence.','[]',0,5,1,'2026-05-26 11:08:21');
INSERT INTO `portfolio` (`slug`,`title`,`category`,`brand`,`year`,`cover_image`,`excerpt`,`cs_brief`,`cs_concept`,`cs_execution`,`cs_results`,`gallery`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('motion-reel-iris-vol1','Motion Reel — Iris Vol.1','video-reels','Bloom Iris','2026','portfolio/motion-reel-iris-vol1.jpg','A creative project delivered by Bloom Iris Agency.','The brand approached Bloom Iris with a clear ambition and a tight timeline.','We developed an editorial creative direction rooted in the brand identity.','Talent, styling, location and crew were assembled and the shoot executed.','The campaign delivered strong engagement and a refreshed brand presence.','[]',0,6,1,'2026-05-26 11:08:21');

-- ---------- Seed data: events ----------
INSERT INTO `events` (`slug`,`title`,`event_type`,`cover_image`,`excerpt`,`description`,`event_date`,`event_time`,`location`,`allow_rsvp`,`is_paid`,`is_featured`,`is_active`,`created_at`) VALUES ('bloom-iris-spring-showcase','Bloom Iris Spring Showcase','fashion-event','events/spring-showcase.jpg','An evening celebrating the season\'s boldest creative work.','Join us for an unforgettable evening of fashion, talent and creative collaboration.','2026-07-10','6:00 PM','Accra, Ghana',1,0,1,1,'2026-05-26 11:08:21');
INSERT INTO `events` (`slug`,`title`,`event_type`,`cover_image`,`excerpt`,`description`,`event_date`,`event_time`,`location`,`allow_rsvp`,`is_paid`,`is_featured`,`is_active`,`created_at`) VALUES ('iris-pop-up-experience','Iris Pop-Up Experience','pop-up','events/pop-up.jpg','A curated pop-up bringing the Bloom Iris universe to life.','A limited pop-up experience featuring talent, styling and brand activations.','2026-04-26','12:00 PM','Accra, Ghana',0,0,0,1,'2026-05-26 11:08:21');

-- ---------- Seed data: talent ----------
INSERT INTO `talent` (`slug`,`name`,`category`,`tagline`,`bio`,`photo`,`gallery`,`stats`,`socials`,`location`,`availability`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('ama-serwaa','Ama Serwaa','model','Editorial & runway model','Editorial & runway model. Represented by Bloom Iris Agency.','talent/ama-serwaa.jpg','[]','[]','{"instagram":""}','Accra, Ghana','available',1,1,1,'2026-05-26 11:08:21');
INSERT INTO `talent` (`slug`,`name`,`category`,`tagline`,`bio`,`photo`,`gallery`,`stats`,`socials`,`location`,`availability`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('kojo-mensah','Kojo Mensah','model','Commercial & fashion model','Commercial & fashion model. Represented by Bloom Iris Agency.','talent/kojo-mensah.jpg','[]','[]','{"instagram":""}','Accra, Ghana','available',1,2,1,'2026-05-26 11:08:21');
INSERT INTO `talent` (`slug`,`name`,`category`,`tagline`,`bio`,`photo`,`gallery`,`stats`,`socials`,`location`,`availability`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('naa-adjeley','Naa Adjeley','influencer','Lifestyle & beauty creator','Lifestyle & beauty creator. Represented by Bloom Iris Agency.','talent/naa-adjeley.jpg','[]','[]','{"instagram":""}','Accra, Ghana','available',1,3,1,'2026-05-26 11:08:21');
INSERT INTO `talent` (`slug`,`name`,`category`,`tagline`,`bio`,`photo`,`gallery`,`stats`,`socials`,`location`,`availability`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('yaw-boateng','Yaw Boateng','photographer','Fashion & editorial photographer','Fashion & editorial photographer. Represented by Bloom Iris Agency.','talent/yaw-boateng.jpg','[]','[]','{"instagram":""}','Accra, Ghana','available',1,4,1,'2026-05-26 11:08:21');
INSERT INTO `talent` (`slug`,`name`,`category`,`tagline`,`bio`,`photo`,`gallery`,`stats`,`socials`,`location`,`availability`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('esi-quartey','Esi Quartey','stylist','Creative stylist & wardrobe lead','Creative stylist & wardrobe lead. Represented by Bloom Iris Agency.','talent/esi-quartey.jpg','[]','[]','{"instagram":""}','Accra, Ghana','available',0,5,1,'2026-05-26 11:08:21');
INSERT INTO `talent` (`slug`,`name`,`category`,`tagline`,`bio`,`photo`,`gallery`,`stats`,`socials`,`location`,`availability`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('akua-frimpong','Akua Frimpong','mua','Editorial makeup artist','Editorial makeup artist. Represented by Bloom Iris Agency.','talent/akua-frimpong.jpg','[]','[]','{"instagram":""}','Accra, Ghana','available',0,6,1,'2026-05-26 11:08:21');

-- ---------- Seed data: partners ----------
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Aurora Couture','partners/aurora-couture.png','client',1,1,1,'2026-05-26 11:08:21');
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Velvet Studios','partners/velvet-studios.png','client',1,2,1,'2026-05-26 11:08:21');
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Lumen Beverages','partners/lumen-beverages.png','client',1,3,1,'2026-05-26 11:08:21');
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Metro Apparel','partners/metro-apparel.png','client',1,4,1,'2026-05-26 11:08:21');
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Solace Beauty','partners/solace-beauty.png','client',1,5,1,'2026-05-26 11:08:21');
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Northwave Media','partners/northwave-media.png','client',1,6,1,'2026-05-26 11:08:21');
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Glow Cosmetics','partners/glow-cosmetics.png','client',1,7,1,'2026-05-26 11:08:21');
INSERT INTO `partners` (`name`,`logo`,`category`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Atelier Nine','partners/atelier-nine.png','client',1,8,1,'2026-05-26 11:08:21');

-- ---------- Seed data: testimonials ----------
INSERT INTO `testimonials` (`author_name`,`author_role`,`source_type`,`rating`,`quote`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Aurora Couture','Fashion Brand','brand',5,'Bloom Iris understood our vision instantly and delivered a campaign that elevated our entire brand.',1,1,1,'2026-05-26 11:08:21');
INSERT INTO `testimonials` (`author_name`,`author_role`,`source_type`,`rating`,`quote`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Naa Adjeley','Lifestyle Creator','talent',5,'Joining the Bloom Iris network opened doors I never imagined. They truly invest in their talent.',1,2,1,'2026-05-26 11:08:21');
INSERT INTO `testimonials` (`author_name`,`author_role`,`source_type`,`rating`,`quote`,`is_featured`,`sort_order`,`is_active`,`created_at`) VALUES ('Lumen Beverages','Marketing Lead','brand',5,'The activation they produced for us was flawless from concept to execution.',1,3,1,'2026-05-26 11:08:21');

-- ---------- Seed data: team ----------
INSERT INTO `team` (`name`,`role`,`bio`,`is_founder`,`sort_order`,`is_active`,`created_at`) VALUES ('Founder Name','Founder & Creative Director','The creative force behind Bloom Iris Agency.',1,1,1,'2026-05-26 11:08:21');
INSERT INTO `team` (`name`,`role`,`bio`,`is_founder`,`sort_order`,`is_active`,`created_at`) VALUES ('Team Member','Head of Talent','Leads talent discovery and representation.',0,2,1,'2026-05-26 11:08:21');

-- ---------- Seed data: blog ----------
INSERT INTO `blog` (`slug`,`title`,`category`,`excerpt`,`body`,`author_id`,`status`,`publish_at`,`created_at`) VALUES ('welcome-to-the-bloom-iris-journal','Welcome to the Bloom Iris Journal','Insights','Behind the scenes of the creative work, talent and ideas shaping Bloom Iris.','<p>This is the Bloom Iris Journal — a space for creative insights, campaign stories and behind-the-scenes moments.</p>',1,'published','2026-05-26 11:08:21','2026-05-26 11:08:21');

-- ---------- Seed data: pages ----------
INSERT INTO `pages` (`slug`,`title`,`blocks`,`meta_title`,`meta_desc`,`updated_at`) VALUES ('about','About Bloom Iris','{"origin":"Bloom Iris Agency was founded to give creative talent a true home and to give brands a creative partner that thinks differently. What began as a small collective has grown into a full creative agency spanning fashion, lifestyle, talent management and brand collaborations.","vision":"To be the definitive creative gateway for talent and brands \\u2014 a place where bold ideas bloom into unforgettable work.","mission":"We craft campaigns, manage talent and produce experiences that move brands forward and elevate the creatives we represent.","philosophy":"Editorial. Bold. Aspirational. Every project we touch is treated as a piece of the Bloom Iris creative universe.","difference":"We are not a brochure agency. We are an operational creative partner \\u2014 strategy, talent, production and delivery under one roof.","values":["Creativity without compromise","Talent-first representation","Editorial excellence","Genuine partnership"]}','About — Bloom Iris Agency','The story, vision and creative philosophy behind Bloom Iris Agency.','2026-05-26 11:08:21');

SET FOREIGN_KEY_CHECKS = 1;
