public with sharing class CA_Constants { //Accounts Rightholder public static final String ACCOUNT_RIGHTSHOLDER_PRIMARY = 'Primary'; public static final String ACCOUNT_RIGHTSHOLDER_RELATED = 'Related'; //Permission Sets public static final String PS_CA = 'Content_Acquisition_Edit_All'; public static final String PS_LATIN = 'ContentAcquisitionEditAllLatin'; public static final String PS_US_RCA = 'Content_Acquisition_Edit_All_SME_US_RCA'; public static final String PS_US_COLUMBIA = 'ContentAcquisitionEditAllSMEUSColumbia'; public static final List PERMISSION_SETS = new List{ PS_CA, PS_LATIN, PS_US_COLUMBIA, PS_US_RCA }; public static final String PS_BYPASS_VRS = 'CA_Bypass_Validation_Rules'; //Record Types public static final String RECORD_TYPE_CA = 'Content_Acquisition'; //Lead Stages public static final String LEAD_STAGE_NEW = 'New'; public static final String LEAD_STAGE_EXPLORING = 'Exploring'; public static final String LEAD_STAGE_PITCHING = 'Pitching'; public static final String LEAD_STAGE_COLD = 'Cold'; public static final Map STAGE_TO_ACCUMULATED_FIELD = new Map{ LEAD_STAGE_NEW => 'Days_In_New_Stage_Accum__c', LEAD_STAGE_EXPLORING => 'Days_In_Exploring_Stage_Accum__c', LEAD_STAGE_PITCHING => 'Days_In_Pitching_Stage_Accum__c', LEAD_STAGE_COLD => 'Days_In_Cold_Stage_Accum__c' }; //Opportunity Record Types public static final String OPP_RECORD_TYPE_CA = 'Content_Acquisition'; public static final String OPP_RECORD_TYPE_CA_RCA = 'Content_Acquisition_SME_US_RCA'; public static final String OPP_RECORD_TYPE_CA_LATIN = 'ContentAcquisitionLatin'; public static final String OPP_RECORD_TYPE_CA_US_COLUMBIA = 'ContentAcquisitionSMEUSColumbia'; public static final List OPP_RECORD_TYPES = new List{ OPP_RECORD_TYPE_CA, OPP_RECORD_TYPE_CA_LATIN, OPP_RECORD_TYPE_CA_RCA, OPP_RECORD_TYPE_CA_US_COLUMBIA }; //Opportunity Buckets public static final String OPPORTUNITY_BUCKET_NEW_DEAL = 'New Deal'; public static final String OPPORTUNITY_BUCKET_AMENDMENT = 'Amendment'; //Opportunity Stages public static final String OPPORTUNITY_STAGE_COLD = 'Cold'; public static final String OPPORTUNITY_STAGE_NEGOTIATING = 'Negotiating'; public static final String OPPORTUNITY_STAGE_TERMS_ACCEPTED = 'Terms accepted by Label'; public static final String OPPORTUNITY_STAGE_REQUEST_ADVANCE_MODEL = 'Request Advance Model'; public static final String OPPORTUNITY_STAGE_ADV_READY_FOR_APPROVAL = 'Advance Ready for Approval'; public static final String OPPORTUNITY_STAGE_ADV_AND_TERMS_APPROVED = 'Advance and Terms Approved'; public static final String OPPORTUNITY_STAGE_READY_FOR_DRAFTING = 'Ready for Drafting'; public static final String OPPORTUNITY_STAGE_IN_DRAFT = 'In Draft'; public static final String OPPORTUNITY_STAGE_SIGNED = 'Signed'; public static final String OPPORTUNITY_STAGE_ACTIVE_IN_OA = 'Active in OA'; public static final String OPPORTUNITY_STAGE_QC_COMPLETE = 'QC Complete'; public static final String OPPORTUNITY_STAGE_COMPLETE = 'Complete'; public static final String OPPORTUNITY_STAGE_INACTIVE = 'Inactive'; public static final List OPPORTUNITY_STAGE_LIST = new List{ OPPORTUNITY_STAGE_COLD, OPPORTUNITY_STAGE_NEGOTIATING, OPPORTUNITY_STAGE_TERMS_ACCEPTED, OPPORTUNITY_STAGE_REQUEST_ADVANCE_MODEL, OPPORTUNITY_STAGE_ADV_READY_FOR_APPROVAL, OPPORTUNITY_STAGE_ADV_AND_TERMS_APPROVED, OPPORTUNITY_STAGE_READY_FOR_DRAFTING, OPPORTUNITY_STAGE_IN_DRAFT, OPPORTUNITY_STAGE_SIGNED, OPPORTUNITY_STAGE_ACTIVE_IN_OA, OPPORTUNITY_STAGE_QC_COMPLETE, OPPORTUNITY_STAGE_COMPLETE }; //Opportunity Deal Types public static final String OPPORTUNITY_DEAL_TYPE_STANDALONE_ADM_AGREEMENT = 'Standalone Publishing Administration Agreement'; //Apex Validation Rules public static final String VR_ERROR_MSG_REQUIRED_FIELDS_BY_STAGE = 'This field is required to move {0} Opportunities to {1} and beyond.'; public static final String VR_ERROR_MSG_ADV_REQUIRED_AND_STAGE = 'When updating Advance Required? field to Yes, please save the record first ' + 'and then move the Opportunity to the new stage.'; public static final String VR_ERROR_MSG_MORE_THAN_ONE_ACTIVE_OPP_BY_ACCOUNT = 'The related account has another active Opportunity. ' + 'Accounts can only have one active Opportunity.'; public static final String VR_ERROR_MSG_LABEL_ID_MUST_BE_UNIQUE = 'The Label ID you entered is already associated with another Account ({0}).'; //Fields Mapping between Objects public final static Map ACCOUNT_OPP_MAPPING = new Map{ 'CA_Additional_Label_IDs__c' => 'CA_Additional_Label_ID__c', 'CA_Closer__c' => 'CA_Closer__c', 'CA_CompanyFullAddress__City__s' => 'CA_CompanyFullAddress__City__s', 'CA_CompanyFullAddress__CountryCode__s' => 'CA_CompanyFullAddress__CountryCode__s', 'CA_CompanyFullAddress__PostalCode__s' => 'CA_CompanyFullAddress__PostalCode__s', 'CA_CompanyFullAddress__StateCode__s' => 'CA_CompanyFullAddress__StateCode__s', 'CA_CompanyFullAddress__Street__s' => 'CA_CompanyFullAddress__Street__s', 'CA_Company_Individual_Country__c' => 'CA_Company_Individual_Country__c', 'CA_Currency__c' => 'CA_Currency__c', 'CA_Current_Distributor__c' => 'CA_Current_Distributor__c', 'CA_Current_or_expected_annual_revenue__c' => 'CA_Current_or_expected_annual_revenue__c', 'CA_Day_to_Day_Contact_Email__c' => 'CA_Day_to_Day_Contact_Email__c', 'CA_Day_to_Day_Contact_Name__c' => 'CA_Day_to_Day_Contact_Name__c', 'CA_Main_Focus_Territory__c' => 'CA_Main_Focus_Territory__c', 'CA_Genre__c' => 'CA_Genre__c', 'CA_Label_Artist_Description__c' => 'CA_Label_Artist_Description__c', 'CA_MA_Label_ID__c' => 'CA_MA_Label_ID__c', 'CA_MA_Label_Priority__c' => 'CA_MA_Label_Priority__c', 'CA_Orchard_Contracting_Entity__c' => 'CA_Orchard_Contracting_Entity__c', 'CA_Principal__c' => 'CA_CompanyPrincipal1__c', 'CA_RelationshipTeamLead__c' => 'CA_RelationshipTeamLead__c', 'CA_Status_Notes__c' => 'CA_Status_Notes__c', 'FullLegalName__c' => 'FullLegalName__c' }; public final static Map ACCOUNT_LEAD_MAPPING = new Map{ 'CA_Account_Name__c' => 'CA_Lead_Name__c', 'CA_Closer__c' => 'CA_Closer__c', 'CA_Company_Individual_Country__c' => 'CA_Company_Individual_Country__c', 'CA_Day_to_Day_Contact_Email__c' => 'CA_Day_to_Day_Contact_Email__c', 'CA_Day_to_Day_Contact_Name__c' => 'CA_Day_to_Day_Contact_Name__c', 'CA_Currency__c' => 'CA_Currency__c', 'CA_Genre__c' => 'CA_Genre__c', 'CA_Current_or_expected_annual_revenue__c' => 'CA_Current_or_expected_annual_revenue__c', 'CA_Label_Artist_Description__c' => 'CA_Label_Artist_Description__c' }; //Visibility Dependencies public static final List FIELD_VISIBILITY_DEPENDENCIES = new List{ new FieldVisibilityDependency( 'AdvanceRequired__c', 'Yes', new List{ 'AdvanceApprove__c', 'Analyst__c', 'CA_Advance_Payment_Breakdown__c', 'CA_DealTerm__c', 'CA_IRR__c', 'CA_Last_Twelve_Months_Revenue__c', 'CA_Projected_first_year_release_revenue__c', 'CA_Projected_first_year_total_revenue__c', 'CA_Total_Advance_Amount__c', 'Gross_profit_for_term__c', 'Gross_revenue_for_term__c', 'Notes__c', 'TimeToRecoup__c', 'UnrecoupedBalance__c', 'CA_Needs_SL_Approval__c', 'CA_TotalSpendAmount_USD__c' } ) }; public static final FieldVisibilityDependency LEAD_PITCH_SUPPORT_FIELD_VISIBILITY_DEPENDENCY = new FieldVisibilityDependency( 'CA_Request_Pitch_Support__c', true, new List{ 'CA_Details_about_the_label__c', 'CA_Catalog_info__c', 'CA_What_are_the_pitch_focus_areas__c', 'CA_Artist_info__c', 'CA_Focus_markets__c', 'CA_Proposed_Pitch_Date__c', 'CA_Areas_of_improvement__c', 'CA_Assets_needed_for_pitched_services__c', 'CA_Who_is_attending_the_pitch__c', 'CA_Audience_eng_rollout_on_socials__c', 'CA_Visibility_issues_on_DSPs__c', 'CA_Monetization_issues_on_UGC__c', 'CA_Is_the_client_s_catalog_optimized__c', 'CA_Closer_feedback_on_prev_meetings__c' } ); //Service Tracker public static final String SERVICE_AVAILABILITY_TYPE_AVAILABLE_IN = 'Available In'; public static final String MASTER_RIGHT_ROYALTY_SHARE = 'RoyaltyShare'; public static final Set SERVICE_FIELDS_TO_PRESERVE_ON_UNAVAILABLE_CLEAR = new Set{ 'Id', 'Opportunity__c', 'Master_Right__c', 'Account_Id__c', 'Right__c', 'CurrencyIsoCode' }; //Fields API Names public static final String RELATIONSHIP_TEAM_LEAD_FIELD = 'CA_RelationshipTeamLead__c'; }