image.png

user.ts

export class User {
    public username:string = "";
    private password:string = "";
    private LOGIN_ATTEMPTS:number = 0;
    constructor(usernames:string,passwords:string){
        this.username = usernames;
        this.password = passwords;
    }
    public login(password:string):boolean{
        this.LOGIN_ATTEMPTS++
        return this.validatePassword(password);
    }
    private validatePassword(password:string):boolean{
        return this.password === password;
    }
    public getLoginAttempts():number{
        return this.LOGIN_ATTEMPTS;
    }
}

index.ts

import { User } from './user'

const user = new User('john_doe', 'secret123')

console.log(user.username)
// john_doe

user.username = 'jane_doe'

console.log(user.username)
// jane_doe

console.log(user.getLoginAttempts())
// 0

console.log(user.login('wrong_password'))
// false

console.log(user.getLoginAttempts())
// 1

console.log(user.login('wrong_password'))
// false

console.log(user.getLoginAttempts())
// 2

console.log(user.login('wrong_password'))
// false

console.log(user.getLoginAttempts())
// 3

console.log(user.login('secret123'))
// true

console.log(user.getLoginAttempts())
// 4

README.md

# TypeScript Quiz — ข้อ 4 (1 คะแนน)
## 🎯 คำสั่ง

ให้นักเรียนสร้าง class User ในไฟล์ `user.ts` ตาม **UML Class Diagram** ที่กำหนดให้
โดยต้องทำให้ไฟล์ `index.ts` ที่กำหนดให้ สามารถทำงานได้ถูกต้อง และได้ผลลัพธ์ตามที่คาดหวัง

## 📊 UML Class Diagram

![UML Class Diagram](./uml.png)

> ⚠️ **สำคัญ**: ต้องอ่านและทำความเข้าใจ UML Class Diagram ให้ครบถ้วน

## 📌 หมายเหตุสำคัญ

**ในไฟล์ `index.ts` มี comment (`//`) ที่แสดงตัวอย่างผลลัพธ์ที่คาดหวัง**

ให้นักเรียนอ่านผลลัพธ์จาก comment เหล่านั้น แล้วเขียน method logic ใน class ต่างๆ ให้สอดคล้องกับผลลัพธ์ที่แสดงไว้

**ตัวอย่าง:**
```typescript
console.log(user.login('secret123'))
// true

จาก comment ด้านบน แสดงว่าผลลัพธ์ที่คาดหวังคือ true เมื่อรหัสผ่านถูกต้อง ดังนั้น method login() ใน class User ต้อง return ค่าในรูปแบบนี้

📝 หมายเหตุ

📁 โครงสร้างไฟล์ที่ต้องมี
p04/
 ├── user.ts   ← นักเรียนต้องสร้าง
 └── index.ts  ← ไฟล์ที่กำหนดให้