CREATE TABLE `user_program` (
  `id_user_program` char(36) NOT NULL,
  `id_user` char(36) DEFAULT NULL,
  `id_program` char(36) DEFAULT NULL,
  `id_role` char(36) DEFAULT NULL,
  `is_primary` tinyint(1) DEFAULT '0',
  `status` varchar(20) DEFAULT 'active',
  `joined_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id_user_program`),
  UNIQUE KEY `uq_user_program` (`id_user`,`id_program`),
  KEY `idx_id_program` (`id_program`),
  KEY `idx_user_program_role` (`id_role`),
  CONSTRAINT `user_program_ibfk_1` FOREIGN KEY (`id_user`) REFERENCES `user` (`id_user`),
  CONSTRAINT `user_program_ibfk_2` FOREIGN KEY (`id_program`) REFERENCES `program` (`id_program`),
  CONSTRAINT `user_program_ibfk_3` FOREIGN KEY (`id_role`) REFERENCES `role` (`id_role`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
