@goweekdays/layer-common 1.5.11 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @goweekdays/layer-common
2
2
 
3
+ ## 1.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4e782d6: Job profile initial release
8
+
9
+ ## 1.5.12
10
+
11
+ ### Patch Changes
12
+
13
+ - 7573c5e: Refactor and extend job applications composable
14
+
3
15
  ## 1.5.11
4
16
 
5
17
  ### Patch Changes
@@ -0,0 +1,180 @@
1
+ # Privacy Policy – GoWeekdays Job
2
+
3
+ **Effective Date:** [Insert Date]
4
+
5
+ GoWeekdays Job is a service operated by GoWeekdays Solutions OPC ("GoWeekdays", "we", "us", or "our"). This Privacy Policy explains how we collect, use, disclose, store, and protect personal data of individuals who create a job profile or otherwise use the GoWeekdays Job platform.
6
+
7
+ By creating a job profile or using GoWeekdays Job, you acknowledge that you have read, understood, and agreed to the practices described in this Privacy Policy.
8
+
9
+ ---
10
+
11
+ ## 1. Scope of This Policy
12
+
13
+ This Privacy Policy applies to:
14
+
15
+ - Individuals who create or maintain a job seeker profile on GoWeekdays Job
16
+ - Individuals who interact with employers through the platform
17
+ - All personal data collected through web, mobile, or related GoWeekdays Job services
18
+
19
+ This policy should be read together with any applicable Terms of Service.
20
+
21
+ ---
22
+
23
+ ## 2. Information We Collect
24
+
25
+ We collect personal data that you voluntarily provide when creating and maintaining a job profile, including but not limited to the following categories:
26
+
27
+ ### 2.1 Personal and Contact Information
28
+
29
+ - First name and last name
30
+ - Professional headline
31
+ - Email address and email verification status
32
+ - Contact number and contact visibility preference
33
+ - Citizenship (optional)
34
+
35
+ ### 2.2 Location and Mobility Information
36
+
37
+ - Country
38
+ - City / State
39
+ - Street address and postal code (optional)
40
+ - Willingness to relocate
41
+
42
+ ### 2.3 Professional Summary
43
+
44
+ - Profile summary
45
+ - Additional profile details
46
+
47
+ ### 2.4 Work Experience
48
+
49
+ - Job titles and company names
50
+ - Employment locations
51
+ - Employment start and end dates
52
+ - Current employment status
53
+ - Role descriptions and additional details
54
+
55
+ ### 2.5 Education
56
+
57
+ - Level of education
58
+ - Field of study
59
+ - School name and location
60
+ - Enrollment status
61
+ - Start and end dates
62
+ - Additional details
63
+
64
+ ### 2.6 Skills and Qualifications
65
+
66
+ - Skills
67
+ - Certifications and licenses
68
+ - Awards and recognitions
69
+ - Professional groups or organizations
70
+ - Languages and proficiency levels
71
+
72
+ ### 2.7 Additional Professional Information (Optional)
73
+
74
+ - Military service information
75
+ - Patents
76
+ - Publications
77
+ - External links (e.g., portfolio, personal website)
78
+
79
+ ### 2.8 System and Metadata
80
+
81
+ - Profile creation, update, and deletion timestamps
82
+ - Internal identifiers linked to your user account
83
+
84
+ ---
85
+
86
+ ## 3. How We Use Your Information
87
+
88
+ We use collected information for legitimate business and operational purposes, including to:
89
+
90
+ - Create and maintain your job seeker profile
91
+ - Display your profile to potential employers
92
+ - Match your profile with relevant job opportunities
93
+ - Enable communication between job seekers and employers
94
+ - Improve platform features, algorithms, analytics, and user experience
95
+ - Monitor platform usage and prevent misuse or fraud
96
+ - Comply with legal and regulatory obligations
97
+
98
+ ---
99
+
100
+ ## 4. Sharing and Disclosure of Information
101
+
102
+ By creating a job profile, you expressly consent to the sharing of your job profile information with:
103
+
104
+ - Employers and hiring organizations registered on GoWeekdays Job
105
+ - Authorized hiring partners using the platform for recruitment purposes
106
+
107
+ We do not sell personal data to third parties. Information is shared strictly for employment, recruitment, and platform-related purposes.
108
+
109
+ ---
110
+
111
+ ## 5. Data Visibility and User Control
112
+
113
+ - You are responsible for the accuracy and completeness of your job profile.
114
+ - You may update, modify, or remove profile information at any time.
115
+ - Certain contact details will only be visible to employers if you enable visibility settings.
116
+ - Deleting your profile will remove it from active employer search results, subject to applicable data retention requirements.
117
+
118
+ ---
119
+
120
+ ## 6. Legal Basis for Processing
121
+
122
+ We process personal data based on one or more of the following legal grounds:
123
+
124
+ - Your consent
125
+ - Performance of a contract or service request
126
+ - Legitimate interests related to operating and improving the platform
127
+ - Compliance with applicable laws and regulations
128
+
129
+ ---
130
+
131
+ ## 7. Data Retention
132
+
133
+ We retain personal data only for as long as necessary to:
134
+
135
+ - Provide GoWeekdays Job services
136
+ - Fulfill recruitment and employment-related purposes
137
+ - Comply with legal, accounting, or regulatory requirements
138
+
139
+ Data marked for deletion may be retained in archived or backup systems for a limited period in accordance with internal retention policies.
140
+
141
+ ---
142
+
143
+ ## 8. Data Security
144
+
145
+ We implement reasonable administrative, technical, and organizational measures to protect personal data against unauthorized access, alteration, disclosure, or destruction.
146
+
147
+ While we strive to protect your data, no system can guarantee absolute security.
148
+
149
+ ---
150
+
151
+ ## 9. Your Rights
152
+
153
+ Subject to applicable laws, you may have the right to:
154
+
155
+ - Access your personal data
156
+ - Request correction or updating of inaccurate data
157
+ - Request deletion of your data
158
+ - Withdraw consent where processing is based on consent
159
+ - Object to certain types of processing
160
+
161
+ Requests may be subject to verification and legal limitations.
162
+
163
+ ---
164
+
165
+ ## 10. Changes to This Privacy Policy
166
+
167
+ We may update this Privacy Policy from time to time. Any changes will be effective upon publication on the platform. Continued use of GoWeekdays Job after changes take effect constitutes acceptance of the updated policy.
168
+
169
+ ---
170
+
171
+ ## 11. Contact Information
172
+
173
+ For questions, concerns, or requests related to this Privacy Policy or data protection, please contact:
174
+
175
+ **GoWeekdays Support**
176
+ [Insert official contact email]
177
+
178
+ ---
179
+
180
+ This Privacy Policy is intended to meet general data protection principles and applicable Philippine data privacy requirements.
@@ -0,0 +1,100 @@
1
+ <template>
2
+ <v-container v-if="editor" class="pa-0">
3
+ <v-row no-gutters class="border-sm border-opacity-50 rounded-lg">
4
+ <v-col cols="12" class="pa-1">
5
+ <v-btn-toggle multiple density="comfortable" variant="text">
6
+ <v-btn
7
+ icon="mdi-format-bold"
8
+ size="large"
9
+ :active="editor.isActive('bold')"
10
+ :disabled="!editor.can().toggleBold()"
11
+ @click="editor.chain().focus().toggleBold().run()"
12
+ />
13
+ <v-btn
14
+ icon="mdi-format-italic"
15
+ size="large"
16
+ :active="editor.isActive('italic')"
17
+ :disabled="!editor.can().toggleItalic()"
18
+ @click="editor.chain().focus().toggleItalic().run()"
19
+ />
20
+ <v-btn
21
+ icon="mdi-format-list-bulleted"
22
+ size="large"
23
+ :active="editor.isActive('bulletList')"
24
+ @click="editor.chain().focus().toggleBulletList().run()"
25
+ />
26
+ <v-btn
27
+ icon="mdi-format-list-numbered"
28
+ size="large"
29
+ :active="editor.isActive('orderedList')"
30
+ @click="editor.chain().focus().toggleOrderedList().run()"
31
+ />
32
+ </v-btn-toggle>
33
+ </v-col>
34
+
35
+ <v-divider opacity="50"></v-divider>
36
+
37
+ <v-col cols="12">
38
+ <editor-content :editor="editor" />
39
+ </v-col>
40
+ </v-row>
41
+ </v-container>
42
+
43
+ <v-input
44
+ v-model="strippedContent"
45
+ v-bind="$attrs"
46
+ @update:focused="test()"
47
+ ></v-input>
48
+ </template>
49
+
50
+ <script setup lang="ts">
51
+ import StarterKit from "@tiptap/starter-kit";
52
+ import { Editor, EditorContent } from "@tiptap/vue-3";
53
+
54
+ function test() {
55
+ console.log("focused");
56
+ }
57
+
58
+ defineOptions({
59
+ inheritAttrs: false,
60
+ });
61
+
62
+ const content = defineModel({
63
+ type: String,
64
+ default: "",
65
+ });
66
+
67
+ const strippedContent = ref("");
68
+
69
+ strippedContent.value = content.value.replace(/<[^>]+>/g, "");
70
+
71
+ const editor = new Editor({
72
+ extensions: [StarterKit],
73
+ content: content.value,
74
+ onUpdate: () => {
75
+ content.value = editor.getHTML();
76
+ strippedContent.value = editor.getText();
77
+ },
78
+ editorProps: {
79
+ attributes: {
80
+ class: "custom-tiptap",
81
+ },
82
+ },
83
+ });
84
+ </script>
85
+
86
+ <style lang="scss">
87
+ .tiptap {
88
+ outline: none;
89
+
90
+ ul,
91
+ ol {
92
+ li p {
93
+ margin: 0;
94
+ }
95
+ }
96
+ }
97
+ .custom-tiptap {
98
+ padding: 16px;
99
+ }
100
+ </style>
@@ -0,0 +1,65 @@
1
+ export function useJobApplication() {
2
+ const jobApplication = ref<TJobApplication>({
3
+ post: "",
4
+ jobTitle: "",
5
+ company: "",
6
+ companyName: "",
7
+ location: "",
8
+ user: "",
9
+ name: "",
10
+ email: "",
11
+ contact: "",
12
+ metadata: {
13
+ resume: "",
14
+ resumeUrl: "",
15
+ portfolio: "",
16
+ portfolioUrl: "",
17
+ coverLetter: "",
18
+ coverLetterUrl: "",
19
+ },
20
+ status: "",
21
+ });
22
+
23
+ function add(value: TJobApplication) {
24
+ return useNuxtApp().$api<TJobApplication>(`/api/job/applications`, {
25
+ method: "POST",
26
+ body: value,
27
+ });
28
+ }
29
+
30
+ function getAll({ page = 1, limit = 50, status = "new", search = "" } = {}) {
31
+ return useNuxtApp().$api<Record<string, any>>(`/api/job/applications`, {
32
+ method: "GET",
33
+ query: {
34
+ page,
35
+ limit,
36
+ status,
37
+ search,
38
+ },
39
+ });
40
+ }
41
+
42
+ function getById(id: string) {
43
+ return useNuxtApp().$api<TJobApplication>(
44
+ `/api/job/applications/id/${id}`,
45
+ {
46
+ method: "GET",
47
+ }
48
+ );
49
+ }
50
+
51
+ function updateStatusById(id: string, status: string) {
52
+ return useNuxtApp().$api<string>(`/api/job/applications/id/${id}/status`, {
53
+ method: "PATCH",
54
+ body: { status },
55
+ });
56
+ }
57
+
58
+ return {
59
+ jobApplication,
60
+ add,
61
+ getAll,
62
+ getById,
63
+ updateStatusById,
64
+ };
65
+ }