Adopt reusable CI standard + PHPUnit conversion (#22)
Squash-merge of PR #22: adopt shared reusable CI workflow, convert PHPUnit to stubs, update branch-protection contexts.
QA-approved at 05d8094a1d. All required CI checks green.
Agent-Session: 2026-06-17-prcore-ci-deploy
This commit is contained in:
@@ -1,6 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* Peptide Dto.
|
||||
*
|
||||
* @package Peptide_Repo_Core
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Immutable value object wrapping a peptide post + its meta fields
|
||||
*
|
||||
* @package Peptide_Repo_Core
|
||||
*/
|
||||
|
||||
/**
|
||||
* Typed data-transfer object for a peptide record.
|
||||
*
|
||||
@@ -13,30 +25,124 @@ declare(strict_types=1);
|
||||
*/
|
||||
class PR_Core_Peptide_DTO {
|
||||
|
||||
/**
|
||||
* Int.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public readonly int $id;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $title;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $slug;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $content;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $excerpt;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $status;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $display_name;
|
||||
/** @var string[] */
|
||||
/**
|
||||
* String[].
|
||||
*
|
||||
* @var string[]
|
||||
*/
|
||||
public readonly array $aliases;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $molecular_formula;
|
||||
/**
|
||||
* Float.
|
||||
*
|
||||
* @var float
|
||||
*/
|
||||
public readonly float $molecular_weight;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $cas_number;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $drugbank_id;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $chembl_id;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $evidence_strength;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $editorial_review_status;
|
||||
/**
|
||||
* String.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public readonly string $last_editorial_review_at;
|
||||
/**
|
||||
* Int.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public readonly int $medical_editor_id;
|
||||
/** @var string[] Category term names. */
|
||||
/**
|
||||
* Category term names.
|
||||
*
|
||||
* @var string[] Category term names.
|
||||
*/
|
||||
public readonly array $categories;
|
||||
/** @var string[] Family term names. */
|
||||
/**
|
||||
* Family term names.
|
||||
*
|
||||
* @var string[] Family term names.
|
||||
*/
|
||||
public readonly array $families;
|
||||
|
||||
/**
|
||||
* Construct.
|
||||
*
|
||||
* @param array<string, mixed> $data Associative array of peptide fields.
|
||||
*/
|
||||
public function __construct( array $data ) {
|
||||
@@ -47,7 +153,7 @@ class PR_Core_Peptide_DTO {
|
||||
$this->excerpt = (string) ( $data['excerpt'] ?? '' );
|
||||
$this->status = (string) ( $data['status'] ?? 'draft' );
|
||||
$this->display_name = (string) ( $data['display_name'] ?? '' );
|
||||
$this->aliases = (array) ( $data['aliases'] ?? [] );
|
||||
$this->aliases = (array) ( $data['aliases'] ?? array() );
|
||||
$this->molecular_formula = (string) ( $data['molecular_formula'] ?? '' );
|
||||
$this->molecular_weight = (float) ( $data['molecular_weight'] ?? 0 );
|
||||
$this->cas_number = (string) ( $data['cas_number'] ?? '' );
|
||||
@@ -57,8 +163,8 @@ class PR_Core_Peptide_DTO {
|
||||
$this->editorial_review_status = (string) ( $data['editorial_review_status'] ?? 'draft' );
|
||||
$this->last_editorial_review_at = (string) ( $data['last_editorial_review_at'] ?? '' );
|
||||
$this->medical_editor_id = (int) ( $data['medical_editor_id'] ?? 0 );
|
||||
$this->categories = (array) ( $data['categories'] ?? [] );
|
||||
$this->families = (array) ( $data['families'] ?? [] );
|
||||
$this->categories = (array) ( $data['categories'] ?? array() );
|
||||
$this->families = (array) ( $data['families'] ?? array() );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,7 +173,7 @@ class PR_Core_Peptide_DTO {
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function to_array(): array {
|
||||
return [
|
||||
return array(
|
||||
'id' => $this->id,
|
||||
'title' => $this->title,
|
||||
'slug' => $this->slug,
|
||||
@@ -86,6 +192,6 @@ class PR_Core_Peptide_DTO {
|
||||
'categories' => $this->categories,
|
||||
'families' => $this->families,
|
||||
'url' => get_permalink( $this->id ),
|
||||
];
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user