fix: resolve all PHPCS violations and 300-line rule breaches
- Add @package Peptide_Repo_Core file docblocks to all PHP files
- Add @var docblocks to all public readonly DTO properties
- Add @param docs to sanitize_evidence_strength / sanitize_review_status
- Replace short ternary ?: with phpcs:ignore on each violating line
- Add phpcs:ignore for InterpolatedNotPrepared on ${table} SQL strings
- Add phpcs:ignore for GlobalVariablesOverride in uninstall.php and card.php
- Add translators comment to __ call with placeholder in related-posts-section
- Fix InlineComment.InvalidEndChar: add periods to all bare inline comments
- Expand single-line /** @return void */ docblocks with summaries
- SPLIT class-pr-core-seed-data.php (was 360 lines):
→ class-pr-core-seed-data.php (149 lines, orchestration only)
→ class-pr-core-seed-fixtures.php (254 lines, static fixture data)
- SPLIT class-pr-core-peptide-cpt.php (was 309 lines):
→ class-pr-core-peptide-cpt.php (224 lines, CPT + hooks + sanitizers)
→ class-pr-core-peptide-meta-schema.php (133 lines, meta field defs)
- SPLIT class-pr-core-settings.php (was 340 lines after docblock expansion):
→ class-pr-core-settings.php (264 lines, registration + sanitization)
→ class-pr-core-settings-renderer.php (124 lines, render methods)
- All includes/ PHP files now <= 300 lines
Agent-Session: claude-adopt-ci-20260616
This commit is contained in:
@@ -2,13 +2,16 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Seed data fixture for development and testing.
|
||||
* Seed data orchestrator for development and testing.
|
||||
*
|
||||
* What: Creates 3 peptide posts, 10 dosing rows, and 5 legal cells.
|
||||
* What: Creates 3 peptide posts, 10 dosing rows, and 5 legal cells using fixture data.
|
||||
* Who calls it: WP-CLI command or admin action (manual trigger only).
|
||||
* Dependencies: PR_Core_Peptide_CPT, PR_Core_Dosing_Repository, PR_Core_Legal_Repository.
|
||||
* Dependencies: PR_Core_Seed_Fixtures, PR_Core_Peptide_CPT, PR_Core_Dosing_Repository,
|
||||
* PR_Core_Legal_Repository.
|
||||
*
|
||||
* @see class-pr-core-seed-fixtures.php — Static fixture data arrays.
|
||||
* @see ARCHITECTURE.md — Seed data specification.
|
||||
* @package Peptide_Repo_Core
|
||||
*/
|
||||
class PR_Core_Seed_Data {
|
||||
|
||||
@@ -32,54 +35,14 @@ class PR_Core_Seed_Data {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create 3 canonical peptide posts.
|
||||
* Create 3 canonical peptide posts using fixture data from PR_Core_Seed_Fixtures.
|
||||
*
|
||||
* @return array<string, int> Map of slug => post ID.
|
||||
*/
|
||||
private static function seed_peptides(): array {
|
||||
$peptides = array(
|
||||
array(
|
||||
'title' => 'BPC-157',
|
||||
'slug' => 'bpc-157',
|
||||
'excerpt' => 'Body Protection Compound-157, a pentadecapeptide derived from human gastric juice.',
|
||||
'display_name' => 'BPC-157',
|
||||
'aliases' => '["Body Protection Compound-157","Bepecin","PL 14736","PL-10"]',
|
||||
'molecular_formula' => 'C62H98N16O22',
|
||||
'molecular_weight' => 1419.53,
|
||||
'cas_number' => '137525-51-0',
|
||||
'drugbank_id' => '',
|
||||
'chembl_id' => '',
|
||||
'evidence_strength' => 'observational',
|
||||
),
|
||||
array(
|
||||
'title' => 'Semaglutide',
|
||||
'slug' => 'semaglutide',
|
||||
'excerpt' => 'A GLP-1 receptor agonist approved for type 2 diabetes and chronic weight management.',
|
||||
'display_name' => 'Semaglutide',
|
||||
'aliases' => '["Ozempic","Wegovy","Rybelsus"]',
|
||||
'molecular_formula' => 'C187H291N45O59',
|
||||
'molecular_weight' => 4113.58,
|
||||
'cas_number' => '910463-68-2',
|
||||
'drugbank_id' => 'DB13928',
|
||||
'chembl_id' => 'CHEMBL3137309',
|
||||
'evidence_strength' => 'meta-analysis',
|
||||
),
|
||||
array(
|
||||
'title' => 'TB-500',
|
||||
'slug' => 'tb-500',
|
||||
'excerpt' => 'Thymosin Beta-4 fragment, a synthetic peptide used in tissue repair research.',
|
||||
'display_name' => 'TB-500',
|
||||
'aliases' => '["Thymosin Beta-4","Tβ4"]',
|
||||
'molecular_formula' => 'C212H350N56O78S',
|
||||
'molecular_weight' => 4963.44,
|
||||
'cas_number' => '77591-33-4',
|
||||
'drugbank_id' => '',
|
||||
'chembl_id' => '',
|
||||
'evidence_strength' => 'preclinical',
|
||||
),
|
||||
);
|
||||
$peptides = PR_Core_Seed_Fixtures::get_peptides();
|
||||
$ids = array();
|
||||
|
||||
$ids = array();
|
||||
foreach ( $peptides as $p ) {
|
||||
$existing = get_posts(
|
||||
array(
|
||||
@@ -110,7 +73,8 @@ class PR_Core_Seed_Data {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ( array( 'display_name', 'aliases', 'molecular_formula', 'molecular_weight', 'cas_number', 'drugbank_id', 'chembl_id', 'evidence_strength' ) as $key ) {
|
||||
$meta_keys = array( 'display_name', 'aliases', 'molecular_formula', 'molecular_weight', 'cas_number', 'drugbank_id', 'chembl_id', 'evidence_strength' );
|
||||
foreach ( $meta_keys as $key ) {
|
||||
update_post_meta( $post_id, $key, $p[ $key ] );
|
||||
}
|
||||
update_post_meta( $post_id, 'editorial_review_status', 'published' );
|
||||
@@ -123,154 +87,16 @@ class PR_Core_Seed_Data {
|
||||
}
|
||||
|
||||
/**
|
||||
* Seed 10 dosing rows across the 3 peptides.
|
||||
* Seed 10 dosing rows across the 3 peptides using fixture data.
|
||||
*
|
||||
* @param array<string, int> $peptide_ids Map of slug => post ID.
|
||||
* @return int Number of rows inserted.
|
||||
*/
|
||||
private static function seed_dosing_rows( array $peptide_ids ): int {
|
||||
$repo = new PR_Core_Dosing_Repository();
|
||||
$rows = array(
|
||||
// BPC-157 (4 rows).
|
||||
array(
|
||||
'peptide' => 'bpc-157',
|
||||
'dose_min' => 200,
|
||||
'dose_max' => 300,
|
||||
'dose_unit' => 'mcg',
|
||||
'route' => 'subq',
|
||||
'frequency' => 'twice daily',
|
||||
'population' => 'healthy',
|
||||
'evidence_strength' => 'observational',
|
||||
'study_title' => 'BPC 157 in wound healing review',
|
||||
'study_year' => 2021,
|
||||
'citation_pubmed_id' => '34537800',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'bpc-157',
|
||||
'dose_min' => 500,
|
||||
'dose_max' => 500,
|
||||
'dose_unit' => 'mcg',
|
||||
'route' => 'subq',
|
||||
'frequency' => 'daily',
|
||||
'population' => 'healthy',
|
||||
'evidence_strength' => 'case-series',
|
||||
'study_title' => 'Subcutaneous BPC-157 in tendon repair',
|
||||
'study_year' => 2019,
|
||||
'citation_pubmed_id' => '30915550',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'bpc-157',
|
||||
'dose_min' => 10,
|
||||
'dose_max' => 10,
|
||||
'dose_unit' => 'mcg',
|
||||
'route' => 'oral',
|
||||
'frequency' => 'daily',
|
||||
'population' => 'animal',
|
||||
'evidence_strength' => 'preclinical',
|
||||
'study_title' => 'Oral BPC-157 in rat gastric ulcer model',
|
||||
'study_year' => 2018,
|
||||
'citation_pubmed_id' => '29869189',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'bpc-157',
|
||||
'dose_min' => 250,
|
||||
'dose_max' => 750,
|
||||
'dose_unit' => 'mcg',
|
||||
'route' => 'im',
|
||||
'frequency' => 'daily',
|
||||
'population' => 'clinical',
|
||||
'evidence_strength' => 'case-series',
|
||||
'study_title' => 'Intramuscular BPC-157 for muscle injuries',
|
||||
'study_year' => 2020,
|
||||
'citation_pubmed_id' => '33312000',
|
||||
),
|
||||
// Semaglutide (4 rows).
|
||||
array(
|
||||
'peptide' => 'semaglutide',
|
||||
'dose_min' => 0.25,
|
||||
'dose_max' => 0.25,
|
||||
'dose_unit' => 'mg',
|
||||
'route' => 'subq',
|
||||
'frequency' => 'weekly',
|
||||
'population' => 'clinical',
|
||||
'evidence_strength' => 'rct-large',
|
||||
'study_title' => 'SUSTAIN 1: Semaglutide in T2DM',
|
||||
'study_year' => 2017,
|
||||
'citation_pubmed_id' => '28930514',
|
||||
'indication' => 'Type 2 diabetes — initiation dose',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'semaglutide',
|
||||
'dose_min' => 1.0,
|
||||
'dose_max' => 1.0,
|
||||
'dose_unit' => 'mg',
|
||||
'route' => 'subq',
|
||||
'frequency' => 'weekly',
|
||||
'population' => 'clinical',
|
||||
'evidence_strength' => 'rct-large',
|
||||
'study_title' => 'SUSTAIN 6: CV outcomes with semaglutide',
|
||||
'study_year' => 2016,
|
||||
'citation_pubmed_id' => '27633186',
|
||||
'indication' => 'Type 2 diabetes — maintenance',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'semaglutide',
|
||||
'dose_min' => 2.4,
|
||||
'dose_max' => 2.4,
|
||||
'dose_unit' => 'mg',
|
||||
'route' => 'subq',
|
||||
'frequency' => 'weekly',
|
||||
'population' => 'clinical',
|
||||
'evidence_strength' => 'rct-large',
|
||||
'study_title' => 'STEP 1: Semaglutide 2.4mg for obesity',
|
||||
'study_year' => 2021,
|
||||
'citation_pubmed_id' => '33567185',
|
||||
'indication' => 'Chronic weight management',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'semaglutide',
|
||||
'dose_min' => 14,
|
||||
'dose_max' => 14,
|
||||
'dose_unit' => 'mg',
|
||||
'route' => 'oral',
|
||||
'frequency' => 'daily',
|
||||
'population' => 'clinical',
|
||||
'evidence_strength' => 'rct-large',
|
||||
'study_title' => 'PIONEER 1: Oral semaglutide in T2DM',
|
||||
'study_year' => 2019,
|
||||
'citation_pubmed_id' => '30924169',
|
||||
'indication' => 'Type 2 diabetes — oral formulation',
|
||||
),
|
||||
// TB-500 (2 rows).
|
||||
array(
|
||||
'peptide' => 'tb-500',
|
||||
'dose_min' => 2,
|
||||
'dose_max' => 2.5,
|
||||
'dose_unit' => 'mg',
|
||||
'route' => 'subq',
|
||||
'frequency' => 'twice weekly',
|
||||
'population' => 'animal',
|
||||
'evidence_strength' => 'preclinical',
|
||||
'study_title' => 'Thymosin beta-4 promotes dermal healing in rats',
|
||||
'study_year' => 2007,
|
||||
'citation_pubmed_id' => '17584560',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'tb-500',
|
||||
'dose_min' => 5,
|
||||
'dose_max' => 5,
|
||||
'dose_unit' => 'mg',
|
||||
'route' => 'subq',
|
||||
'frequency' => 'weekly',
|
||||
'population' => 'animal',
|
||||
'evidence_strength' => 'preclinical',
|
||||
'study_title' => 'TB4 cardiac repair in murine MI model',
|
||||
'study_year' => 2012,
|
||||
'citation_pubmed_id' => '22561753',
|
||||
),
|
||||
);
|
||||
|
||||
$repo = new PR_Core_Dosing_Repository();
|
||||
$rows = PR_Core_Seed_Fixtures::get_dosing_rows();
|
||||
$count = 0;
|
||||
|
||||
foreach ( $rows as $row ) {
|
||||
$slug = $row['peptide'];
|
||||
unset( $row['peptide'] );
|
||||
@@ -281,7 +107,7 @@ class PR_Core_Seed_Data {
|
||||
|
||||
$row['peptide_id'] = $peptide_ids[ $slug ];
|
||||
$row['source'] = 'manual';
|
||||
$row['added_by'] = get_current_user_id() ?: 1;
|
||||
$row['added_by'] = get_current_user_id() !== 0 ? get_current_user_id() : 1;
|
||||
|
||||
if ( $repo->insert( $row ) > 0 ) {
|
||||
++$count;
|
||||
@@ -292,53 +118,16 @@ class PR_Core_Seed_Data {
|
||||
}
|
||||
|
||||
/**
|
||||
* Seed 5 legal cells across BPC-157 and Semaglutide.
|
||||
* Seed 5 legal cells across BPC-157 and Semaglutide using fixture data.
|
||||
*
|
||||
* @param array<string, int> $peptide_ids Map of slug => post ID.
|
||||
* @return int Number of cells inserted.
|
||||
*/
|
||||
private static function seed_legal_cells( array $peptide_ids ): int {
|
||||
$repo = new PR_Core_Legal_Repository();
|
||||
$cells = array(
|
||||
array(
|
||||
'peptide' => 'bpc-157',
|
||||
'country_code' => 'US',
|
||||
'status' => 'ruo',
|
||||
'regulatory_framework' => 'Not FDA-approved; available as Research Use Only',
|
||||
'notes' => 'Compounding pharmacies may dispense under FDA 503A/503B exemptions.',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'bpc-157',
|
||||
'country_code' => 'GB',
|
||||
'status' => 'unclear',
|
||||
'regulatory_framework' => 'Not listed by MHRA',
|
||||
'notes' => 'No specific scheduling; import for personal use is a grey area.',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'semaglutide',
|
||||
'country_code' => 'US',
|
||||
'status' => 'prescription',
|
||||
'regulatory_framework' => 'FDA-approved (Ozempic, Wegovy, Rybelsus)',
|
||||
'regulatory_text_url' => 'https://www.accessdata.fda.gov/drugsatfda_docs/label/2023/209637s020lbl.pdf',
|
||||
'notes' => 'Schedule IV not applicable; requires valid prescription.',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'semaglutide',
|
||||
'country_code' => 'GB',
|
||||
'status' => 'prescription',
|
||||
'regulatory_framework' => 'MHRA-approved (Ozempic, Wegovy)',
|
||||
'notes' => 'Available via NHS and private prescription.',
|
||||
),
|
||||
array(
|
||||
'peptide' => 'semaglutide',
|
||||
'country_code' => 'AU',
|
||||
'status' => 'prescription',
|
||||
'regulatory_framework' => 'TGA-approved (Ozempic)',
|
||||
'notes' => 'PBS-listed for type 2 diabetes; Wegovy approval pending as of 2025.',
|
||||
),
|
||||
);
|
||||
|
||||
$cells = PR_Core_Seed_Fixtures::get_legal_cells();
|
||||
$count = 0;
|
||||
|
||||
foreach ( $cells as $cell ) {
|
||||
$slug = $cell['peptide'];
|
||||
unset( $cell['peptide'] );
|
||||
@@ -348,7 +137,7 @@ class PR_Core_Seed_Data {
|
||||
}
|
||||
|
||||
$cell['peptide_id'] = $peptide_ids[ $slug ];
|
||||
$cell['reviewer_id'] = get_current_user_id() ?: 1;
|
||||
$cell['reviewer_id'] = get_current_user_id() !== 0 ? get_current_user_id() : 1;
|
||||
|
||||
if ( $repo->insert( $cell ) > 0 ) {
|
||||
++$count;
|
||||
|
||||
Reference in New Issue
Block a user