# User
# Beschreibung
Beinhaltet Informationen über den User.
# altes user-Model
# old migration
CREATE TABLE `pyou_users` (
`user_uuid` varchar(36) NOT NULL,
`user_password` text CHARACTER SET utf8,
`user_active` int(1) DEFAULT NULL,
`user_light_account` int(1) DEFAULT NULL,
`referral_code` varchar(15) DEFAULT NULL,
`referral_is_payed` int(1) DEFAULT NULL,
`wants_newsletter` int(1) DEFAULT NULL,
`newsletter_confirmed` timestamp NULL DEFAULT NULL,
`newsletter_hash` varchar(36) DEFAULT NULL,
`user_useragent` text,
`user_logincount` int(11) DEFAULT '0',
`user_ts_lastlogin` timestamp NULL DEFAULT NULL,
`user_ts_lastcheck` timestamp NULL DEFAULT NULL,
`user_ts_tracked` timestamp NULL DEFAULT NULL,
`user_ts_init` timestamp NULL DEFAULT NULL,
`user_ts_create` timestamp NULL DEFAULT NULL,
`user_ts_update` timestamp NULL DEFAULT NULL,
`user_ts_delete` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`user_uuid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
# neues User-Model
Anmerkung
Functionality- Implementierung: ✅
- Erweiterung:
- kleinere Anpassungen
# Model (json)
{
"class": "App\\Models\\User",
"database": "mysql",
"table": "users",
"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": "role_type",
"type": "string(255)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "role_id",
"type": "string(36)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "referrer_id",
"type": "string(36)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "hash",
"type": "string(255)",
"increments": false,
"nullable": false,
"default": null,
"unique": true,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "email",
"type": "string(255)",
"increments": false,
"nullable": false,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "email_verified_at",
"type": "datetime",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "immutable_datetime"
},
{
"name": "onboarded_at",
"type": "datetime",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "immutable_datetime"
},
{
"name": "onboard_state",
"type": "boolean",
"increments": false,
"nullable": false,
"default": "1",
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "password",
"type": "string(255)",
"increments": false,
"nullable": false,
"default": null,
"unique": false,
"fillable": true,
"hidden": true,
"appended": null,
"cast": null
},
{
"name": "remember_token",
"type": "string(100)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": true,
"appended": null,
"cast": null
},
{
"name": "profile_completed_at",
"type": "datetime",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "immutable_datetime"
},
{
"name": "last_active_at",
"type": "datetime",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "datetime"
},
{
"name": "agb_accepted_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": "show_onboarding_component",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "accessor"
},
{
"name": "is_jobseeker",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "accessor"
},
{
"name": "is_company",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "accessor"
},
{
"name": "role_name",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "accessor"
},
{
"name": "has_verified_number",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "accessor"
},
{
"name": "wants_contact_details_sms",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "accessor"
},
{
"name": "is_deleted",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "attribute"
},
{
"name": "profile_is_completed",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "attribute"
},
{
"name": "referral_link",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "accessor"
},
{
"name": "has_accepted_agb",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "attribute"
},
{
"name": "email_is_verified",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "attribute"
},
{
"name": "is_onboarded",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "attribute"
}
],
"relations": [
{ "name": "address", "type": "HasOne", "related": "App\\Models\\Address" },
{ "name": "bankinformation", "type": "HasOne", "related": "App\\Models\\Bankinformation" },
{ "name": "deletereasons", "type": "BelongsToManySoft", "related": "App\\Models\\Deletereason" },
{ "name": "events", "type": "HasMany", "related": "App\\Models\\Event" },
{ "name": "mobileverifications", "type": "HasMany", "related": "App\\Models\\Mobileverification" },
{ "name": "newslettersubscription", "type": "HasOne", "related": "App\\Models\\Newslettersubscription" },
{ "name": "usernotes", "type": "HasMany", "related": "App\\Models\\Usernote" },
{ "name": "notificationtriggers", "type": "BelongsToManySoft", "related": "App\\Models\\Notificationtrigger" },
{
"name": "notificationpreferences",
"type": "BelongsToManySoft",
"related": "App\\Models\\Notificationpreference"
},
{ "name": "oldemailaddresses", "type": "HasMany", "related": "App\\Models\\Oldemailaddress" },
{ "name": "referralsources", "type": "BelongsToManySoft", "related": "App\\Models\\Referralsource" },
{ "name": "referrer", "type": "BelongsTo", "related": "App\\Models\\User" },
{ "name": "referrals", "type": "HasMany", "related": "App\\Models\\User" },
{
"name": "routestatistics",
"type": "HasMany",
"related": "Bilfeldt\\LaravelRouteStatistics\\Models\\RouteStatistic"
},
{ "name": "role", "type": "MorphTo", "related": "App\\Models\\User" },
{ "name": "salarytables", "type": "HasMany", "related": "App\\Models\\Salarytable" },
{ "name": "searches", "type": "HasMany", "related": "App\\Models\\Search" },
{ "name": "searchbenefitsmappers", "type": "HasMany", "related": "App\\Models\\Searchbenefitsmapper" },
{ "name": "sharedmedia", "type": "HasMany", "related": "App\\Models\\Sharedmedia" },
{ "name": "signup", "type": "HasOne", "related": "App\\Models\\Signup" },
{ "name": "socialaccounts", "type": "BelongsToManySoft", "related": "App\\Models\\Socialaccount" },
{ "name": "tasks", "type": "MorphMany", "related": "App\\Models\\Task" },
{ "name": "userinformation", "type": "HasOne", "related": "App\\Models\\Userinformation" },
{ "name": "visits", "type": "MorphMany", "related": "Shetabit\\Visitor\\Models\\Visit" },
{ "name": "actions", "type": "MorphMany", "related": "Laravel\\Nova\\Actions\\ActionEvent" },
{ "name": "notifications", "type": "MorphMany", "related": "App\\Models\\Notification" },
{ "name": "activities", "type": "MorphMany", "related": "Spatie\\Activitylog\\Models\\Activity" },
{ "name": "logins", "type": "MorphMany", "related": "ALajusticia\\AuthTracker\\Models\\Login" },
{ "name": "media", "type": "MorphMany", "related": "App\\Models\\Media" }
],
"observers": [
{ "event": "creating", "observer": ["Closure"] },
{ "event": "created", "observer": ["Closure"] },
{ "event": "updating", "observer": ["Closure", "App\\Observers\\UserObserver@updating"] },
{ "event": "updated", "observer": ["Closure", "App\\Observers\\UserObserver@updated"] },
{ "event": "deleted", "observer": ["Closure", "App\\Observers\\UserObserver@deleted"] },
{ "event": "restored", "observer": ["Closure", "App\\Observers\\UserObserver@restored"] },
{ "event": "deleting", "observer": ["Closure", "App\\Observers\\UserObserver@deleting"] },
{ "event": "restoring", "observer": ["App\\Observers\\UserObserver@restoring"] }
]
}
# Beziehungen
- Address - [
address()-HasOne] - Bankinformation - [
bankinformation()-HasOne] - Deletereason - [
deletereasons()-BelongsToMany] - Event - [
events()-HasMany] - Mobileverification - [
mobileverifications()-HasMany] - Newslettersubscription - [
newslettersubscription()-HasOne] - Usernote - [
usernotes()-HasMany] - Notificationtrigger - [
notificationtrigger()-BelongsToMany] - Notificationpreference - [
notificationpreferences()-BelongsToMany] - Oldemailaddress - [
oldemailaddresses()-HasMany] - Referralsource - [
referralsources()-HasMany] - User - [
referrer()-BelongsTo] - User - [
referrals()-HasMany] - RouteStatistic - [
routeStatistics()-HasMany] - Jobseeker/Company - [
role()-MorphTo] - Search - [
searches()-HasMany] - Searchbenefitsmapper - [
searchbenefitsmappers()-HasMany] - Sharedmedia - [
sharedmedia()-HasMany] - Signup - [
signup()-HasOne] - Task - [
tasks()-MorphMany] - Userinformation - [
userinformation()-HasOne] - Visit - [
visits()-MorphMany]
# übergeordnetes Thema
2.6 Datenstruktur