# Company
# Beschreibung
Beinhaltet Informationen der Arbeitgeber-Konten.
# altes company-Model
# old migration
CREATE TABLE `pyou_companies` (
`company_uuid` varchar(36) NOT NULL,
`user_uuid` varchar(36) DEFAULT NULL,
`companypresentation_uuid` varchar(36) DEFAULT NULL,
`company_name` varchar(255) DEFAULT NULL,
`company_slug` varchar(255) DEFAULT NULL,
`company_stores` int(11) DEFAULT NULL,
`company_business` varchar(20) DEFAULT NULL,
`company_business_name` varchar(120) DEFAULT NULL,
`company_identifier` varchar(255) DEFAULT NULL,
`contact_firstname` varchar(255) DEFAULT NULL,
`contact_name` varchar(255) DEFAULT NULL,
`contact_gender` varchar(255) DEFAULT NULL,
`contact_countryCode` varchar(6) DEFAULT NULL,
`contact_postalcode` varchar(255) DEFAULT NULL,
`contact_city` varchar(255) DEFAULT NULL,
`contact_address` varchar(255) DEFAULT NULL,
`contact_phone` varchar(255) DEFAULT NULL,
`contact_mobile` varchar(255) DEFAULT NULL,
`contact_cc` varchar(255) DEFAULT NULL,
`mail_info` varchar(255) DEFAULT NULL,
`company_role` varchar(36) DEFAULT NULL,
`discount_name` varchar(36) DEFAULT NULL,
`discount_value` int(10) DEFAULT NULL,
`discount_is_percent` int(1) DEFAULT NULL,
`discount_ts_create` timestamp NULL DEFAULT NULL,
`discount_ts_update` timestamp NULL DEFAULT NULL,
`discount_ts_delete` timestamp NULL DEFAULT NULL,
`company_ts_create` varchar(255) DEFAULT NULL,
`company_ts_update` timestamp NULL DEFAULT NULL,
`company_ts_delete` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`company_uuid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
# neues Address-Model
Anmerkung
Functionality- ~Company
- Implementierung: ✅
- Adresse wird in eigenes Model ausgelagert
- Discounts wird ausgelagert
- Bankverbindung wird in ein eigenes Model ausgelagert
# Model (json)
{
"class": "App\\Models\\Company",
"database": "mysql",
"table": "companies",
"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": "user_id",
"type": "string(36)",
"increments": false,
"nullable": false,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "cooperation_id",
"type": "string(36)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "knowncompany_id",
"type": "bigint unsigned",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "integer"
},
{
"name": "name",
"type": "string(255)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "stores",
"type": "smallint",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "gender",
"type": "string",
"increments": false,
"nullable": false,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "first_name",
"type": "string(255)",
"increments": false,
"nullable": false,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "last_name",
"type": "string(255)",
"increments": false,
"nullable": false,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "full_name",
"type": "string(255)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "telephone",
"type": "string(255)",
"increments": false,
"nullable": false,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "mobile",
"type": "string(255)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "share_mobile_number_at",
"type": "datetime",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "immutable_datetime"
},
{
"name": "email_cc",
"type": "string(255)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "mail_info",
"type": "text(65535)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "website",
"type": "string(255)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": null
},
{
"name": "welcome_message",
"type": "text(65535)",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "attribute"
},
{
"name": "offers_coop_at",
"type": "datetime",
"increments": false,
"nullable": true,
"default": null,
"unique": false,
"fillable": true,
"hidden": false,
"appended": null,
"cast": "immutable_datetime"
},
{
"name": "for_sale_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": "gender_name",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "attribute"
},
{
"name": "better_mobilenumber",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": false,
"cast": "attribute"
},
{
"name": "translated_business",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "attribute"
},
{
"name": "is_for_sale",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "attribute"
},
{
"name": "does_offer_coop",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "attribute"
},
{
"name": "shares_mobile_number",
"type": null,
"increments": false,
"nullable": null,
"default": null,
"unique": null,
"fillable": true,
"hidden": false,
"appended": true,
"cast": "attribute"
}
],
"relations": [
{ "name": "businesses", "type": "BelongsToManySoft", "related": "App\\Models\\Business" },
{ "name": "contacts", "type": "HasMany", "related": "App\\Models\\Contact" },
{ "name": "contactpersons", "type": "HasMany", "related": "App\\Models\\Contactperson" },
{ "name": "cooperation", "type": "BelongsTo", "related": "App\\Models\\Cooperation" },
{ "name": "knowncompany", "type": "BelongsTo", "related": "App\\Models\\Knowncompany" },
{ "name": "jobseekers", "type": "BelongsToManySoft", "related": "App\\Models\\Jobseeker" },
{ "name": "presentation", "type": "HasOne", "related": "App\\Models\\Presentation" },
{ "name": "purchasingpools", "type": "BelongsToManySoft", "related": "App\\Models\\Purchasingpool" },
{ "name": "user", "type": "MorphOne", "related": "App\\Models\\User" },
{ "name": "userinformation", "type": "HasOneThrough", "related": "App\\Models\\Userinformation" },
{ "name": "usernotes", "type": "HasManyThrough", "related": "App\\Models\\Usernote" },
{ "name": "actions", "type": "MorphMany", "related": "Laravel\\Nova\\Actions\\ActionEvent" },
{ "name": "activities", "type": "MorphMany", "related": "Spatie\\Activitylog\\Models\\Activity" }
],
"observers": [
{ "event": "created", "observer": ["Closure", "App\\Observers\\CompanyObserver@created"] },
{ "event": "updating", "observer": ["Closure", "App\\Observers\\CompanyObserver@updating"] },
{ "event": "updated", "observer": ["Closure"] },
{ "event": "deleted", "observer": ["Closure"] },
{ "event": "restored", "observer": ["Closure", "App\\Observers\\CompanyObserver@restored"] },
{ "event": "saving", "observer": ["App\\Observers\\CompanyObserver@saving"] },
{ "event": "restoring", "observer": ["App\\Observers\\CompanyObserver@restoring"] },
{ "event": "deleting", "observer": ["App\\Observers\\CompanyObserver@deleting"] }
]
}
# Beziehungen
- Business - [
businesses()-BelongsToMany] - Contact - [
contacts()-HasMany] - Contactperson - [
contactpersons()-HasMany] - Cooperation - [
businesses()-BelongsToMany] - Knowncompany - [
knowncompany()-BelongsTo] - Jobseeker - [
jobseekers()-BelongsToMany] - Presentation - [
presentation()-HasOne] - Purchasingpool - [
purchasingpools()-BelongsToMany] - User - [
user()-MorphOne] - Userinformation - [
userinformation()-HasOneThrough] - Usernote - [
usernotes()-HasManyThrough]
# übergeordnetes Thema
2.6 Datenstruktur