Initial OpenECOMP policy/engine commit
[policy/engine.git] / ecomp-sdk-app / src / main / webapp / WEB-INF / fusion / orm / Fusion.hbm.xml
1 <?xml version="1.0"?>
2 <!--
3   ================================================================================
4   eCOMP Portal SDK
5   ================================================================================
6   Copyright (C) 2017 AT&T Intellectual Property
7   ================================================================================
8   Licensed under the Apache License, Version 2.0 (the "License");
9   you may not use this file except in compliance with the License.
10   You may obtain a copy of the License at
11   
12        http://www.apache.org/licenses/LICENSE-2.0
13   
14   Unless required by applicable law or agreed to in writing, software
15   distributed under the License is distributed on an "AS IS" BASIS,
16   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   See the License for the specific language governing permissions and
18   limitations under the License.
19   ================================================================================
20   -->
21
22 <!DOCTYPE hibernate-mapping PUBLIC
23         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
24         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
25
26 <hibernate-mapping package="org.openecomp.portalsdk.core.domain">
27
28      <!-- User class mapping details -->
29     <class name="User" table="FN_USER">
30         <id name="id" column="user_id" > 
31           <generator class="native">
32              <param name="sequence">seq_fn_user</param> 
33           </generator>
34         </id>
35
36         <property name="orgId"         column="org_id"/>
37         <property name="managerId"     column="manager_id"/>
38         <property name="firstName"     column="first_name"/>
39         <property name="middleInitial" column="middle_name"/>
40         <property name="lastName"      column="last_name"/>
41         <property name="phone"         column="phone"/>
42         <property name="fax"           column="fax"/>
43         <property name="cellular"      column="cellular"/>
44         <property name="email"         column="email"/>
45         <property name="addressId"     column="address_id"/>
46         <property name="alertMethodCd" column="alert_method_cd"/>
47
48         <property name="address1"      column="address_line_1"/>
49         <property name="address2"      column="address_line_2"/>
50         <property name="city"          column="city"/>
51         <property name="state"         column="state_cd"/>
52         <property name="zipCode"       column="zip_code"/>
53         <property name="country"       column="country_cd"/>
54
55         <property name="hrid"          column="hrid"/>
56         <property name="orgUserId"     column="org_user_id"/>
57         <property name="orgCode"       column="org_code"/>
58         <property name="loginId"       column="login_id"/>
59         <property name="loginPwd"      column="login_pwd"/>
60         <property name="lastLoginDate" column="last_login_date"  type="timestamp"/>
61
62         <property name="locationClli"  column="location_clli" />
63         <property name="orgManagerUserId" column="org_manager_userid" />
64         <property name="company"       column="company" />
65         <property name="department"    column="department" />
66         <property name="departmentName"         column="department_name" />
67         <property name="businessUnit"           column="business_unit" />
68         <property name="businessUnitName"   column="business_unit_name" />
69         <property name="jobTitle"               column="job_title" />
70         <property name="siloStatus"             column="silo_status" />
71         <property name="financialLocCode"   column="fin_loc_code" />
72
73         <property name="active"        column="active_yn"       type="yes_no"/>
74         <property name="internal"      column="is_internal_yn"  type="yes_no"/>
75
76         <property name="created"  type="timestamp" column="created_date"  />
77         <property name="modified" type="timestamp" column="modified_date" />
78
79         <property name="createdId"  column="created_id" />
80         <property name="modifiedId" column="modified_id" />
81                 <property name="timeZoneId" column="timezone" />
82                 
83         <set name="userApps" table="FN_USER_ROLE" lazy="false" sort="natural" inverse="true" cascade="all-delete-orphan">
84             <key column="user_id"/>
85             <one-to-many class="org.openecomp.portalsdk.core.domain.UserApp" />
86         </set>
87
88         <set name="pseudoRoles" table="FN_USER_PSEUDO_ROLE" lazy="false" sort="natural">
89             <key column="user_id"/>
90             <many-to-many column="pseudo_role_id" class="org.openecomp.portalsdk.core.domain.Role" />
91         </set>
92     </class>
93
94      <!-- Profile class mapping details;
95           dupe of User class, but fewer fields -->
96     <class name="Profile" table="FN_USER">
97         <id name="id" column="user_id" > 
98                         <generator class="increment"/>
99         </id>   
100         <property name="first_name"     column="first_name"/>
101         <property name="last_name"      column="last_name"/>
102         <property name="email"         column="email"/>
103         <property name="orgManagerUserId" column="org_manager_userid" />
104         <property name="active_yn"        column="active_yn"/>
105         <property name="orgUserId"         column="org_user_id"/>
106         </class>
107         
108         <class name="UserApp" table="fn_user_role">
109         <composite-id>
110             <key-property name="userId" type="long">
111                 <column name="user_id" precision="11" scale="0" />
112             </key-property>
113                 <key-many-to-one name="app" class="org.openecomp.portalsdk.core.domain.App" column="app_id" />
114                 <key-many-to-one name="role" class="org.openecomp.portalsdk.core.domain.Role" column="role_id" />
115         </composite-id>
116         <property name="priority" type="java.lang.Short">
117             <column name="priority" precision="4" scale="0" />
118         </property>
119     </class>
120
121     <!-- App class mapping details -->
122     <class name="App" table="fn_app">
123         <id name="id" column="app_id"/>
124         <property name="name" column="app_name"/>
125         <property name="appPassword" column="app_password"/>
126         <property name="username" column="app_username"/>
127                 <property name="imageUrl" column="app_image_url"/>
128                 <property name="description" column="app_description"/>
129                 <property name="notes" column="app_notes"/>
130                 <property name="url" column="app_url"/>
131                 <property name="alternateUrl" column="app_alternate_url"/>
132                 <property name="restEndpoint" column="app_rest_endpoint"/>
133                 <property name="mlAppName" column="ml_app_name"/>
134                 <property name="mlAppAdminId" column="ml_app_admin_id"/>
135                 <property name="motsId" column="mots_id"/>
136                 <property name="open" column="open"/>
137                 <property name="enabled" column="enabled"/>
138                 <property name="thumbnail" column="thumbnail" type="blob"/>
139                 <property name="uebKey" column="ueb_key"/>
140                 <property name="uebSecret" column="ueb_secret"/>
141                 <property name="uebTopicName" column="ueb_topic_name"/>
142     </class>
143
144
145         <!-- Audit Log class mapping details -->
146     <class name="AuditLog" table="fn_audit_log">
147         <id name="id" column="log_id">
148           <!-- <generator class="sequence">
149             <param name="sequence">seq_fn_audit_log</param>
150           </generator> -->
151           <generator class="native">
152                         <param name="sequence">seq_fn_audit_log</param>
153                   </generator>
154         </id>
155         <property name="activityCode"      column="activity_cd"/>
156         <property name="affectedRecordId"  column="affected_record_id"  />
157         <property name="comments"          column="comments"  />
158         <property name="createdId"         column="user_id" />
159     </class>
160     
161     <!-- User Role class mapping details -->
162     <class name="Role" table="FN_ROLE">
163         <id name="id" column="role_id">
164            <generator class="native">
165              <param name="sequence">seq_fn_role</param> 
166           </generator>
167         </id>
168
169         <property name="name"      column="role_name"/>
170         <property name="priority"  column="priority" />
171         <property name="active"    column="active_yn"  type="yes_no"/>
172
173         <set name="roleFunctions" table="FN_ROLE_FUNCTION" lazy="false" sort="natural">
174             <key column="role_id"/>
175             <many-to-many column="function_cd" class="org.openecomp.portalsdk.core.domain.RoleFunction"/>
176         </set>
177
178         <set name="childRoles" table="FN_ROLE_COMPOSITE" lazy="false" sort="natural">
179             <key column="parent_role_id"/>
180             <many-to-many column="child_role_id" class="org.openecomp.portalsdk.core.domain.Role"/>
181         </set>
182         
183         <set name="parentRoles" table="FN_ROLE_COMPOSITE" lazy="false" sort="natural">
184             <key column="child_role_id"/>
185             <many-to-many column="parent_role_id" class="org.openecomp.portalsdk.core.domain.Role"/>
186         </set>
187
188     </class>
189     
190  
191
192     <!-- User Role Function class mapping details -->
193     <class name="RoleFunction" table="FN_FUNCTION">
194         <id        name="code"  column="function_cd"   />
195         <property  name="name"  column="function_name" />
196     </class>
197     
198     <!-- Menu class mapping details -->
199     <class name="Menu" table="FN_MENU">
200         <id name="id" column="menu_id">
201           <generator class="native">
202              <param name="sequence">seq_fn_menu</param> 
203           </generator>
204         </id>
205
206          <!-- <property name="menuLevel"   column="level-1"/> -->
207          <property name="label"       column="label"/>
208          <property name="parentId"    column="parent_id"/>
209          <property name="action"      column="action"/>
210          <property name="functionCd"  column="function_cd"/>
211          <property name="sortOrder"   column="sort_order"/>
212          <property name="servlet"     column="servlet"/>
213          <property name="queryString" column="query_string"/>
214          <property name="externalUrl" column="external_url"/>
215          <property name="target"      column="target"/>
216          <property name="menuSetCode" column="menu_set_cd"/>
217          <property name="active"      column="active_yn"    type="yes_no"/>
218          <property name="separator"   column="separator_yn" type="yes_no"/>
219          <property name="imageSrc"    column="image_src" />
220     </class>
221
222     <class name="MenuData" table="FN_MENU">
223         <!--  <id       name="id"          column="menu_id"/> -->
224         <id name="id" column="menu_id">
225           <generator class="native">
226              <param name="sequence">seq_fn_menu</param> 
227           </generator>
228         </id>
229         <property name="label"       column="label"/>
230         <property name="action"      column="action"/>
231         <property name="functionCd"  column="function_cd"/>
232         <property name="sortOrder"   column="sort_order"/>
233         <property name="servlet"     column="servlet"/>
234         <property name="queryString" column="query_string"/>
235         <property name="externalUrl" column="external_url"/>
236         <property name="target"      column="target"/>
237         <property name="active"      column="active_yn"    type="yes_no"/>
238         <property name="separator"   column="separator_yn" type="yes_no"/>
239         <property name="imageSrc"    column="image_src" />
240         <property name="menuSetCode" column="menu_set_cd"  />
241
242         <many-to-one name="parentMenu" column="parent_id" class="MenuData"/>
243
244         <set name="childMenus" lazy="false" sort="natural" inverse="true" where="active_yn = 'Y'">
245             <key column="parent_id"/>
246             <one-to-many class="MenuData"/>
247         </set>
248     </class>
249     
250     <!-- Broadcast Message class mapping details -->
251     <class name="BroadcastMessage" table="fn_broadcast_message">
252         <id name="id" column="message_id">
253             <generator class="native">
254               <param name="sequence">seq_fn_broadcast_message</param>
255             </generator>
256         </id>
257         <property name="messageText" column="message_text"/>
258         <property name="locationId"  column="message_location_id"/>
259
260         <property name="startDate"   column="broadcast_start_date"  type="timestamp"/>
261         <property name="endDate"     column="broadcast_end_date"    type="timestamp"/>
262
263         <property name="sortOrder"   column="sort_order"/>
264         <property name="active"      column="active_yn"             type="yes_no"/>
265
266         <property name="siteCd"      column="broadcast_site_cd"    />
267     </class>
268     
269     <!-- State Lookup class mapping details -->
270     <class name="LuState" table="FN_LU_STATE">
271         <id       name="abbr"  column="state_cd" />
272         <property name="state"                   />
273     </class>
274     
275     <!-- Country Lookup class mapping details -->
276     <class name="LuCountry" table="FN_LU_COUNTRY">
277         <id       name="abbr"  column="country_cd" />
278         <property name="country"                   />
279         <property name="fullName" column="full_name" />
280         <property name="webphoneCountryLabel" column="fullwebphone_country_label_name" />
281     </class>
282     
283     <class name="LuTimeZone" table="FN_LU_TIMEZONE">
284         <id       name="timezoneId"  column="timezone_id" />
285         <property name="name" column="timezone_name" />
286         <property name="value" column="timezone_value" />
287     </class>
288
289
290     <!-- Lookup (id/value bean) class mapping details -->
291     <class name="Lookup">
292         <composite-id  name="nameValueId" class="org.openecomp.portalsdk.core.domain.support.NameValueId">
293           <key-property name="val"/>
294           <key-property name="lab" />
295         </composite-id>
296     </class>
297
298         <class name="UrlsAccessible" table="V_URL_ACCESS">
299       <composite-id  name="urlsAccessibleKey" class="org.openecomp.portalsdk.core.domain.UrlsAccessibleKey">
300         <key-property   name="url"      column="url"/>
301         <key-property   name="functionCd"       column="function_cd"/>
302       </composite-id>
303     </class>
304
305
306         <query name="ParentIdForLabelList">
307       select distinct md.parentMenu.id from MenuData as md where md.label = :paramLabel and md.label is not null
308     </query>
309     
310         <query name="IdForLabelList">
311       select distinct md.id from MenuData as md where md.label = :paramLabel
312     </query>    
313     
314         <query name="parentList">
315       select distinct md.id, md.label, md.parentMenu.id from MenuData as md where md.label is not null
316     </query>
317         
318         <query name="functionCDlistOld">
319       select distinct functionCd from MenuData 
320     </query>
321
322         <query name="functionCDlist">
323       select distinct code from RoleFunction 
324     </query>   
325      
326         <query name="menuData">
327       from MenuData where menuSetCode = :menu_set_cd and parentMenu is null
328     </query>
329         <query name="restrictedUrls">
330       FROM UrlsAccessible A where upper(A.urlsAccessibleKey.url) = upper(:current_url)
331     </query>
332
333     <query name="getUserNameById">
334       select firstName, lastName from User where id = :user_id
335     </query>
336
337     <query name="getUserEmail">
338       select email from User where id = :user_id
339     </query>
340
341     <query name="getAllUsers">
342       select id, firstName, lastName from User where active = true order by lastName, firstName
343     </query>
344         
345     <query name="getRoleNameById">
346       select name from Role where id = :role_id
347     </query>
348
349     <query name="getAllRoles">
350       select id, name from Role order by name
351     </query>    
352 </hibernate-mapping>