# Contact

# Beschreibung

Beinhaltet die Kontakte die Arbeitgeber & Arbeitnehmer via. zwei Suchen schließen.

# altes contact-Model

  • Functionality
  • Implementierung: ✅
  • Erweiterung:
    • kleinere Anpassungen
    • Auslagerung der Ausgänge der Kontakte
      • ~Company & ~Jobseeker (anstatt ~User)

# old migration

CREATE TABLE `pyou_contacts` (
    `contact_uuid` varchar(36) NOT NULL,
    `company_user_uuid` varchar(36) DEFAULT NULL,
    `jobseeker_user_uuid` varchar(36) DEFAULT NULL,
    `contact_init` varchar(36) NOT NULL,
    `search_uuid` varchar(36) DEFAULT NULL,
    `candidate_uuid` varchar(36) DEFAULT NULL,
    `role_involved` varchar(36) DEFAULT NULL,
    `able_to_move` tinyint(1) DEFAULT NULL,
    `qualification_addition` varchar(255) DEFAULT NULL,
    `company_searched_anonymous` tinyint(1) DEFAULT NULL,
    `contact_shortdetails` text,
    `contact_details` text,
    `company_ts_seen` timestamp NULL DEFAULT NULL,
    `contact_ts_establishingcontact_company` timestamp NULL DEFAULT NULL,
    `contact_ts_receivedapplication_company` timestamp NULL DEFAULT NULL,
    `contact_ts_interviewinvitation_company` timestamp NULL DEFAULT NULL,
    `contact_ts_success_company` timestamp NULL DEFAULT NULL,
    `contact_ts_failed_company` timestamp NULL DEFAULT NULL,
    `company_fail_state` varchar(255) DEFAULT NULL,
    `company_fail_reason` varchar(255) DEFAULT NULL,
    `jobseeker_ts_seen` timestamp NULL DEFAULT NULL,
    `contact_ts_establishingcontact_jobseeker` timestamp NULL DEFAULT NULL,
    `contact_ts_receivedapplication_jobseeker` timestamp NULL DEFAULT NULL,
    `contact_ts_interviewinvitation_jobseeker` timestamp NULL DEFAULT NULL,
    `contact_ts_success_jobseeker` timestamp NULL DEFAULT NULL,
    `contact_ts_failed_jobseeker` timestamp NULL DEFAULT NULL,
    `jobseeker_fail_state` varchar(255) DEFAULT NULL,
    `jobseeker_fail_reason` varchar(255) DEFAULT NULL,
    `contact_ts_create` timestamp NULL DEFAULT NULL,
    `contact_ts_update` timestamp NULL DEFAULT NULL,
    `contact_ts_delete` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`contact_uuid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

# neues Address-Model

Anmerkung

  • 🆕

# Model (json)

{
    "class": "App\\Models\\Contact",
    "database": "mysql",
    "table": "contacts",
    "policy": null,
    "attributes": [
    {
    "name": "id",
    "type": "string(36)",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": true,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "company_id",
    "type": "string(36)",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "jobseeker_id",
    "type": "string(36)",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "init",
    "type": "string",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "search_id",
    "type": "string(36)",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "search_place_id",
    "type": "string(36)",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "candidate_id",
    "type": "string(36)",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "candidate_place_id",
    "type": "string(36)",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "tolerance",
    "type": "boolean",
    "increments": false,
    "nullable": false,
    "default": "0",
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "direct_apply",
    "type": "boolean",
    "increments": false,
    "nullable": false,
    "default": "0",
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "company_satisfied",
    "type": "boolean",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "jobseeker_satisfied",
    "type": "boolean",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": null
    },
    {
    "name": "details",
    "type": "json",
    "increments": false,
    "nullable": false,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": true,
    "appended": null,
    "cast": "object"
    },
    {
    "name": "company_seen_at",
    "type": "datetime",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": "immutable_datetime"
    },
    {
    "name": "jobseeker_seen_at",
    "type": "datetime",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": "immutable_datetime"
    },
    {
    "name": "company_deleted_at",
    "type": "datetime",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": "immutable_datetime"
    },
    {
    "name": "jobseeker_deleted_at",
    "type": "datetime",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": "immutable_datetime"
    },
    {
    "name": "created_at",
    "type": "datetime",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": "datetime"
    },
    {
    "name": "updated_at",
    "type": "datetime",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": "datetime"
    },
    {
    "name": "deleted_at",
    "type": "datetime",
    "increments": false,
    "nullable": true,
    "default": null,
    "unique": false,
    "fillable": true,
    "hidden": false,
    "appended": null,
    "cast": "datetime"
    },
    {
    "name": "company_has_seen",
    "type": null,
    "increments": false,
    "nullable": null,
    "default": null,
    "unique": null,
    "fillable": true,
    "hidden": false,
    "appended": false,
    "cast": "attribute"
    },
    {
    "name": "jobseeker_has_seen",
    "type": null,
    "increments": false,
    "nullable": null,
    "default": null,
    "unique": null,
    "fillable": true,
    "hidden": false,
    "appended": false,
    "cast": "attribute"
    },
    {
    "name": "company_has_deleted",
    "type": null,
    "increments": false,
    "nullable": null,
    "default": null,
    "unique": null,
    "fillable": true,
    "hidden": false,
    "appended": false,
    "cast": "attribute"
    },
    {
    "name": "jobseeker_has_deleted",
    "type": null,
    "increments": false,
    "nullable": null,
    "default": null,
    "unique": null,
    "fillable": true,
    "hidden": false,
    "appended": false,
    "cast": "attribute"
    }
    ],
    "relations": [
    { "name": "jobseeker", "type": "BelongsTo", "related": "App\\Models\\Jobseeker" },
    { "name": "company", "type": "BelongsTo", "related": "App\\Models\\Company" },
    { "name": "search", "type": "BelongsTo", "related": "App\\Models\\Search" },
    { "name": "candidate", "type": "BelongsTo", "related": "App\\Models\\Search" },
    { "name": "searchPlace", "type": "BelongsTo", "related": "App\\Models\\Place" },
    { "name": "candidatePlace", "type": "BelongsTo", "related": "App\\Models\\Place" },
    { "name": "states", "type": "BelongsToManySoft", "related": "App\\Models\\State" },
    { "name": "notes", "type": "HasMany", "related": "App\\Models\\Note" },
    { "name": "outcomes", "type": "HasMany", "related": "App\\Models\\Outcome" },
    { "name": "chat", "type": "HasOne", "related": "App\\Models\\Chat" },
    { "name": "events", "type": "MorphMany", "related": "App\\Models\\Event" },
    { "name": "activities", "type": "MorphMany", "related": "Spatie\\Activitylog\\Models\\Activity" }
    ],
    "observers": [
    { "event": "creating", "observer": ["Closure"] },
    { "event": "created", "observer": ["Closure", "App\\Observers\\ContactObserver@created"] },
    { "event": "updating", "observer": ["Closure"] },
    { "event": "updated", "observer": ["Closure", "App\\Observers\\ContactObserver@updated"] },
    { "event": "deleted", "observer": ["Closure"] },
    { "event": "restored", "observer": ["Closure"] }
    ]
}

# Beziehungen

  • Search - [candidate() - BelongsTo]
  • Place - [candidatePlace() - BelongsTo]
  • Chat - [chat() - HasOne]
  • Company - [company() - BelongsTo]
  • Event - [events() - MorphMany]
  • Jobseeker - [jobseeker() - BelongsTo]
  • Note - [notes() - HasMany]
  • Outcome - [outcome() - HasMany]
  • Search - [search() - BelongsTo]
  • Place - [place() - BelongsTo]
  • Sharedmedia - [sharedmedia() - HasManyThrough]
  • ContactState - [states() - BelongsToMany]

# übergeordnetes Thema

2.6 Datenstruktur

Last Updated: 9/20/2023, 4:15:34 PM