diff --git a/apps/labrinth/migrations/20260825120000_ai-functionality-disclosure.sql b/apps/labrinth/migrations/20260825120000_ai-functionality-disclosure.sql new file mode 100644 index 0000000000..6347d0c4bb --- /dev/null +++ b/apps/labrinth/migrations/20260825120000_ai-functionality-disclosure.sql @@ -0,0 +1,24 @@ +INSERT INTO project_disclosures (project_id, type, metadata, updated_at, updated_by, set_by_moderator, deleted_at, lock_status) +SELECT + project_id, + 'ai_functionality', + '{"note":null}'::jsonb, + now(), + 0, + set_by_moderator, + deleted_at, + lock_status +FROM project_disclosures +WHERE type = 'ai_content' + AND metadata -> 'uses' ? 'functionality' +ON CONFLICT (project_id, type) DO NOTHING; + +DELETE FROM project_disclosures +WHERE type = 'ai_content' + AND metadata -> 'uses' ? 'functionality' + AND jsonb_array_length(metadata -> 'uses') = 1; + +UPDATE project_disclosures +SET metadata = jsonb_set(metadata, '{uses}', (metadata -> 'uses') - 'functionality') +WHERE type = 'ai_content' + AND metadata -> 'uses' ? 'functionality'; diff --git a/apps/labrinth/src/models/v3/disclosures.rs b/apps/labrinth/src/models/v3/disclosures.rs index 2c7e7b2a45..48da86e906 100644 --- a/apps/labrinth/src/models/v3/disclosures.rs +++ b/apps/labrinth/src/models/v3/disclosures.rs @@ -18,6 +18,9 @@ pub enum ProjectDisclosure { note: Option, uses: BTreeSet, }, + AiFunctionality { + note: Option, + }, Advertisements { note: Option, }, @@ -161,7 +164,6 @@ pub enum AiUsages { Code, Assets, Text, - Functionality, } #[derive(Debug, Clone, Serialize, Deserialize, ToSchema, IntoStaticStr)]