// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "@wailsio/runtime";

export class Company {
    /**
     * Creates a new Company instance.
     * @param {Partial<Company>} [$$source = {}] - The source object to create the Company.
     */
    constructor($$source = {}) {
        if (!("Id" in $$source)) {
            /**
             * @member
             * @type {number}
             */
            this["Id"] = 0;
        }
        if (!("Name" in $$source)) {
            /**
             * @member
             * @type {string}
             */
            this["Name"] = "";
        }
        if (!("MemberNumber" in $$source)) {
            /**
             * @member
             * @type {string}
             */
            this["MemberNumber"] = "";
        }
        if (!("Username" in $$source)) {
            /**
             * @member
             * @type {string}
             */
            this["Username"] = "";
        }
        if (!("Password" in $$source)) {
            /**
             * @member
             * @type {string}
             */
            this["Password"] = "";
        }

        Object.assign(this, $$source);
    }

    /**
     * Creates a new Company instance from a string or object.
     * @param {any} [$$source = {}]
     * @returns {Company}
     */
    static createFrom($$source = {}) {
        let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
        return new Company(/** @type {Partial<Company>} */($$parsedSource));
    }
}
