2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// {{{ License
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// This file is part of GNU social - https://www.gnu.org/software/social
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// GNU social is free software: you can redistribute it and/or modify
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// it under the terms of the GNU Affero General Public License as published by
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// the Free Software Foundation, either version 3 of the License, or
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// (at your option) any later version.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// GNU social is distributed in the hope that it will be useful,
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// but WITHOUT ANY WARRANTY; without even the implied warranty of
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// GNU Affero General Public License for more details.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// You should have received a copy of the GNU Affero General Public License
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// along with GNU social.  If not, see <http://www.gnu.org/licenses/>.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// }}}
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								namespace  App\Entity ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-12 00:39:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								use  App\Core\DB\DB ;  
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								use  App\Core\Entity ;  
						 
					
						
							
								
									
										
										
										
											2021-08-12 00:39:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								use  App\Core\Event ;  
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								use  DateTimeInterface ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Entity  for  relating  a  Link  to  a  post 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ category   DB 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package    GNUsocial 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author     Diogo  Peralta  Cordeiro  < mail @ diogo . site > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ copyright  2021  Free  Software  Foundation ,  Inc  http :// www . fsf . org 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ license    https :// www . gnu . org / licenses / agpl . html  GNU  AGPL  v3  or  later 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  NoteToLink  extends  Entity  
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // {{{ Autocode
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // @codeCoverageIgnoreStart
 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    private  int  $link_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    private  int  $note_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    private  \DateTimeInterface  $modified ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  function  setLinkId ( int  $link_id ) :  self 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> link_id  =  $link_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        return  $this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  function  getLinkId () :  int 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  $this -> link_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  function  setNoteId ( int  $note_id ) :  self 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> note_id  =  $note_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  function  getNoteId () :  int 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $this -> note_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  function  setModified ( DateTimeInterface  $modified ) :  self 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> modified  =  $modified ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  function  getModified () :  DateTimeInterface 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $this -> modified ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-14 13:40:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // @codeCoverageIgnoreEnd
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // }}} Autocode
 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-12 00:39:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     *  Create  an  instance  of  NoteToLink  or  fill  in  the 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-12 00:39:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     *  properties  of  $obj  with  the  associative  array  $args .  Doesn ' t 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  persist  the  result 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param  null | mixed  $obj 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  static  function  create ( array  $args ,  $obj  =  null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $link  =  DB :: find ( 'link' ,  [ 'id'  =>  $args [ 'link_id' ]]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $note  =  DB :: find ( 'note' ,  [ 'id'  =>  $args [ 'note_id' ]]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Event :: handle ( 'NewLinkFromNote' ,  [ $link ,  $note ]); 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-12 00:39:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $obj  =  new  self (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  parent :: create ( $args ,  $obj ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    public  static  function  schemaDef () :  array 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  [ 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            'name'    =>  'note_to_link' , 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            'fields'  =>  [ 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                'link_id'   =>  [ 'type'  =>  'int' ,  'foreign key'  =>  true ,  'target'  =>  'link.id' ,  'multiplicity'  =>  'one to one' ,  'name'  =>  'note_to_link_link_id_fkey' ,  'not null'  =>  true ,  'description'  =>  'id of link' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'note_id'   =>  [ 'type'  =>  'int' ,  'foreign key'  =>  true ,  'target'  =>  'Note.id' ,  'multiplicity'  =>  'one to one' ,  'name'  =>  'note_to_link_note_id_fkey' ,  'not null'  =>  true ,  'description'  =>  'id of the note it belongs to' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'modified'  =>  [ 'type'  =>  'timestamp' ,  'not null'  =>  true ,  'default'  =>  'CURRENT_TIMESTAMP' ,  'description'  =>  'date this record was modified' ], 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ], 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            'primary key'  =>  [ 'link_id' ,  'note_id' ], 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            'indexes'      =>  [ 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-13 20:09:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                'link_id_idx'  =>  [ 'link_id' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'note_id_idx'  =>  [ 'note_id' ], 
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 16:47:45 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}