@@ -4,6 +4,8 @@ defmodule Algora.Interviews.JobInterview do
44
55 import Ecto.Changeset
66
7+ alias Algora.Accounts.User
8+
79 @ interview_statuses [ :initial , :ongoing , :passed , :failed , :withdrawn ]
810
911 typed_schema "job_interviews" do
@@ -17,33 +19,43 @@ defmodule Algora.Interviews.JobInterview do
1719 field :company_feedback_token , :string
1820 field :candidate_feedback_token , :string
1921
20- belongs_to :user , Algora.Accounts. User
22+ belongs_to :user , User
2123 belongs_to :job_posting , Algora.Jobs.JobPosting
22- belongs_to :org , Algora.Accounts. User
24+ belongs_to :org , User
2325
2426 timestamps ( )
2527 end
2628
2729 def changeset ( job_interview , attrs ) do
2830 job_interview
29- |> cast ( attrs , [ :user_id , :job_posting_id , :org_id , :status , :notes , :scheduled_at , :completed_at , :company_feedback , :candidate_feedback , :company_feedback_token , :candidate_feedback_token ] )
31+ |> cast ( attrs , [
32+ :user_id ,
33+ :job_posting_id ,
34+ :org_id ,
35+ :status ,
36+ :notes ,
37+ :scheduled_at ,
38+ :completed_at ,
39+ :company_feedback ,
40+ :candidate_feedback ,
41+ :company_feedback_token ,
42+ :candidate_feedback_token
43+ ] )
3044 |> validate_required ( [ :user_id , :job_posting_id , :org_id , :status ] )
3145 |> validate_inclusion ( :status , @ interview_statuses )
3246 |> foreign_key_constraint ( :user_id )
3347 |> foreign_key_constraint ( :job_posting_id )
3448 |> foreign_key_constraint ( :org_id )
3549 |> unique_constraint ( [ :user_id , :org_id ] )
36- |> unique_constraint ( :company_feedback_token )
37- |> unique_constraint ( :candidate_feedback_token )
3850 |> generate_id ( )
3951 |> maybe_generate_feedback_tokens ( )
4052 end
4153
4254 defp maybe_generate_feedback_tokens ( changeset ) do
4355 if get_field ( changeset , :id ) && ! get_field ( changeset , :company_feedback_token ) do
4456 changeset
45- |> put_change ( :company_feedback_token , Nanoid . generate ( 8 ) )
46- |> put_change ( :candidate_feedback_token , Nanoid . generate ( 8 ) )
57+ |> put_change ( :company_feedback_token , Nanoid . generate ( 6 ) )
58+ |> put_change ( :candidate_feedback_token , Nanoid . generate ( 6 ) )
4759 else
4860 changeset
4961 end
0 commit comments