156 lines
5.5 KiB
PHP
156 lines
5.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
return [
|
|
'featured_limit' => 3,
|
|
'invites' => [
|
|
'expires_after_days' => (int) env('COLLECTIONS_INVITES_EXPIRE_AFTER_DAYS', 7),
|
|
],
|
|
'submissions' => [
|
|
'max_per_hour' => (int) env('COLLECTIONS_SUBMISSIONS_MAX_PER_HOUR', 8),
|
|
'duplicate_cooldown_minutes' => (int) env('COLLECTIONS_SUBMISSIONS_DUPLICATE_COOLDOWN_MINUTES', 15),
|
|
],
|
|
'editorial' => [
|
|
'system_owner_username' => env('COLLECTIONS_EDITORIAL_SYSTEM_OWNER_USERNAME'),
|
|
'system_owner_label' => env('COLLECTIONS_EDITORIAL_SYSTEM_OWNER_LABEL', 'Skinbase Editorial'),
|
|
],
|
|
'smart_rules' => [
|
|
'max_rules' => 8,
|
|
'preview_limit' => 12,
|
|
'allowed_match' => ['all', 'any'],
|
|
'allowed_sort' => ['newest', 'oldest', 'popular'],
|
|
'allowed_fields' => ['tags', 'category', 'subcategory', 'medium', 'style', 'color', 'ai_tag', 'created_at', 'is_featured', 'is_mature'],
|
|
'style_terms' => [
|
|
'abstract',
|
|
'anime',
|
|
'cartoon',
|
|
'cel shaded',
|
|
'cinematic',
|
|
'comic style',
|
|
'concept art',
|
|
'digital art',
|
|
'digital painting',
|
|
'fantasy art',
|
|
'illustration',
|
|
'low poly',
|
|
'matte painting',
|
|
'minimalist',
|
|
'oil painting',
|
|
'painterly',
|
|
'photorealistic',
|
|
'pixel art',
|
|
'realism',
|
|
'retro',
|
|
'sci fi',
|
|
'sketch',
|
|
'surreal',
|
|
'vector art',
|
|
'watercolor',
|
|
'3d render',
|
|
],
|
|
'color_terms' => [
|
|
'black and white',
|
|
'blue tones',
|
|
'cool colors',
|
|
'cyan tones',
|
|
'earth tones',
|
|
'gold tones',
|
|
'green tones',
|
|
'monochrome',
|
|
'neon colors',
|
|
'orange tones',
|
|
'pastel colors',
|
|
'pink tones',
|
|
'purple tones',
|
|
'red tones',
|
|
'teal tones',
|
|
'vibrant colors',
|
|
'warm colors',
|
|
'yellow tones',
|
|
],
|
|
],
|
|
'discovery' => [
|
|
'featured_limit' => 18,
|
|
'featured_cache_seconds' => 120,
|
|
],
|
|
'recommendations' => [
|
|
'related_limit' => 6,
|
|
],
|
|
'v5' => [
|
|
'health' => [
|
|
'stale_after_days' => (int) env('COLLECTIONS_V5_STALE_AFTER_DAYS', 90),
|
|
'low_engagement_after_days' => (int) env('COLLECTIONS_V5_LOW_ENGAGEMENT_AFTER_DAYS', 14),
|
|
],
|
|
'queue' => [
|
|
'name' => env('COLLECTIONS_V5_QUEUE', 'collections'),
|
|
'health_batch_size' => (int) env('COLLECTIONS_V5_HEALTH_BATCH_SIZE', 40),
|
|
'recommendation_batch_size' => (int) env('COLLECTIONS_V5_RECOMMENDATION_BATCH_SIZE', 40),
|
|
'duplicate_batch_size' => (int) env('COLLECTIONS_V5_DUPLICATE_BATCH_SIZE', 30),
|
|
'health_stale_after_hours' => (int) env('COLLECTIONS_V5_HEALTH_STALE_AFTER_HOURS', 24),
|
|
'recommendation_stale_after_hours' => (int) env('COLLECTIONS_V5_RECOMMENDATION_STALE_AFTER_HOURS', 12),
|
|
'duplicate_stale_after_hours' => (int) env('COLLECTIONS_V5_DUPLICATE_STALE_AFTER_HOURS', 24),
|
|
],
|
|
'search' => [
|
|
'public_per_page' => (int) env('COLLECTIONS_V5_PUBLIC_SEARCH_PER_PAGE', 18),
|
|
'owner_per_page' => (int) env('COLLECTIONS_V5_OWNER_SEARCH_PER_PAGE', 20),
|
|
],
|
|
],
|
|
'ai' => [
|
|
'enabled' => true,
|
|
'max_candidate_artworks' => 36,
|
|
],
|
|
'layout_modules' => [
|
|
'intro_block' => [
|
|
'label' => 'Intro Block',
|
|
'description' => 'Show the subtitle, curator summary, and smart context in the hero area.',
|
|
'default_slot' => 'full',
|
|
'slots' => ['full'],
|
|
'locked' => false,
|
|
],
|
|
'featured_artworks' => [
|
|
'label' => 'Featured Artworks Block',
|
|
'description' => 'Spotlight a compact highlights strip ahead of the main artwork grid.',
|
|
'default_slot' => 'main',
|
|
'slots' => ['full', 'main'],
|
|
],
|
|
'artwork_grid' => [
|
|
'label' => 'Artwork Grid',
|
|
'description' => 'Primary artwork gallery for the collection.',
|
|
'default_slot' => 'full',
|
|
'slots' => ['full', 'main'],
|
|
'locked' => true,
|
|
],
|
|
'editorial_note' => [
|
|
'label' => 'Editorial Note',
|
|
'description' => 'Premium context block for staff picks and campaign notes.',
|
|
'default_slot' => 'full',
|
|
'slots' => ['full', 'main', 'sidebar'],
|
|
],
|
|
'collaborators' => [
|
|
'label' => 'Contributor Block',
|
|
'description' => 'Show the curation team on the page.',
|
|
'default_slot' => 'sidebar',
|
|
'slots' => ['main', 'sidebar'],
|
|
],
|
|
'submissions' => [
|
|
'label' => 'Submission CTA',
|
|
'description' => 'Highlight community submission controls when enabled.',
|
|
'default_slot' => 'sidebar',
|
|
'slots' => ['main', 'sidebar'],
|
|
],
|
|
'discussion' => [
|
|
'label' => 'Discussion Block',
|
|
'description' => 'Render lightweight collection discussion.',
|
|
'default_slot' => 'main',
|
|
'slots' => ['main', 'sidebar'],
|
|
],
|
|
'related_collections' => [
|
|
'label' => 'Related Collections',
|
|
'description' => 'Surface collection recommendations.',
|
|
'default_slot' => 'main',
|
|
'slots' => ['main', 'sidebar'],
|
|
],
|
|
],
|
|
];
|